郭建方,曹麗娜,朱方娥,(石家莊鐵道大學四方學院,河北 石家莊 051132)
數據壓縮理論始于上世紀40年代,數據壓縮是指在數據儲存空間的要求之下,重組龐大的原始數據,從而滿足一定儲存空間的數據集合,使得該數據集合中被恢復出來的數據能夠完全符合原始數據[1]。信息技術的發展,擴大了各個系統的數據量,嚴重阻礙了數據的傳輸與儲存,因此,數據壓縮技術的研究越來越廣泛。國內學者對數據壓縮的研究中,雖然指出了負載均衡對數據壓縮的重要性,但是在壓縮過程中,仍然采用傳統的評估準則,以壓縮率為指標,很少涉及到數據壓縮理論[2];國外學者對數據壓縮的研究僅僅考慮到了壓縮算法在層次上的改進,主要對原始數據進行相應改造和裁剪,缺少壓縮算法在執行效率上的優化研究[3]。
任秀江等人[4]從減少網絡注入數據量的角度出發,對網絡通信實時壓縮技術進行了研究,給出了一種面向網絡通信的硬件實時壓縮引擎RTCE的設計,在網絡通信過程中,硬件自動實現對網絡包的壓縮傳輸,采用SPEC2006,Graph500,CFD算法測試數據進行測試,壓縮后的網絡包數據量平均減少32.8%~48.7%。但是該方法的實時數據壓縮比較大;楊理踐[5]提出一種管道漏磁檢測實時數據壓縮算法,在實時壓縮和提升小波編碼的基礎上,利用雙緩沖區模型對數據進行采集,并根據管道漏磁數據的特征,通過自適應算術編碼完成數據無損壓縮,無損壓縮比可達9.166:1。但是該方法的實時數據的通信能耗較大。
針對上述方法存在的問題,本文在負載均衡策略下,提出了一種實時數據漸進式壓縮方法,減少實時數據的儲存空間、提高數據傳輸速度,從而提升實時數據的漸進式壓縮性能。
由于實時數據在樣本采集過程中,采集頻率過高、樣本數量較大,導致實時數據處理起來較麻煩[6],因此,需要先分塊處理實時數據,以實現實時數據的自適應量化。由于實時數據在漸進式處理時具有周期性,因此對實時數據采用分塊處理的方式,將數據間聯系起來[7],這種聯系可以提高實時數據的漸進式壓縮性能。
在負載均衡策略下,DCT變換和離散小波變換都具有良好的負載均衡特性,但是離散小波變換更適用于強烈且非平穩的數據,DCT變換在處理變化不大的實時數據時具有更優的負載均衡特性[8]。考慮到網絡節點硬件平臺的支持,在負載均衡策略下,采用DCT變換的IV變換為

(1)
其中,k的取值為k=1,2,…,N,N表示實時數據的分塊大小,mn表示原始實時數據。
經過分塊處理后,0得到

(2)

實時數據自適應量化的好壞時刻影響實時數據的失真大小,根據自適應量化原則,能夠提高負載均衡較大的子帶分配的位數,設定每一個實時數據塊所期望的總位數R,子帶負載自適應量化的步驟如下:

Step2:設置每一個子帶對應的初始位數nj為0,求解得到每一個子帶的最大絕對值大小A=[a1,a2,…,aN],計算出每一個子帶所需要的最大位數;

(3)
Step3:計算實時數據子帶j的負載總和
(4)
其中,j的取值為j=1,2,…,N。
Step4:將實時數據子帶的負載總和從大到小進行排序,假設第r個實時能量子帶的負載最大,將實時數據子帶r的分配位數加1,即nr=nr+1,,如果實時數據子帶的分配位數大于最大位數br,那么就使nr=br;
Step5:將實時能量子帶的負載與4作商,并使實時數據總位數減1;
Step6:重復Step4和Step5,直到實時數據總位數等于0,將得到的實時數據子帶分配位數Nb=[n1,n2,…,nN]作為實時數據邊帶信息進行保存。
在完成實時數據各個子帶的位數分配之后,對均勻量化處理分配位數進行計算,將實時數據子帶設置為大于0并且小于最大位數,即

(5)

利用離散余弦變換的負載均衡特性,對原始實時數據進行了分塊處理和DCT變換,使實時數據中DCT變換系數的負載均衡儲存在少量子帶中,根據實時數據各個子帶的負載均衡大小自適應分配量化位數,完成實時數據的自適應量化處理,接下來通過設計實時數據漸進式壓縮算法,來簡化實時數據漸進式壓縮的程序。
實時數據在漸進式壓縮過程中會面臨兩個比較關鍵的問題,首先,實時數據漸進式壓縮算法必須可以為系統提供比較高的實時數據壓縮率,從而來支持實時數據的儲存特點;其二,實時數據的記錄功能和查詢功能需要漸進式壓縮算法在數據壓縮和解壓兩項都具有一定的速度性能。
實時數據漸進式壓縮算法在運行原理和實現方面都比較容易,代碼實現過程中也沒有相對復雜的運算過程,需要消耗更短的數據壓縮和解壓時間。尤其在實時數據的解壓過程中,具有更高的加壓效率,但是實時數據漸進式壓縮算法也存在很多缺點和不足,因此,在負載均衡策略下,設計實時數據漸進式壓縮算法。
對于實時數據而言,如果直接采用漸進式壓縮算法會因為實時數據的波動浮動較大、規律性不強等特點,導致實時數據的漸進式壓縮速度和效率不理想,通過在負載均衡策略下設計實時數據漸進式壓縮算法,從而提高壓縮算法的執行速度。
實時數據漸進式壓縮以測點為單元,讀取單位時間內的實時數據,分別對其進行壓縮處理,實時數據的壓縮過程是一個以字節為單位的字符串,根據讀入的字符依次添加到表項中,記錄一段時間后就要將其清空,保留一個標識項。實時數據漸進式壓縮流程如圖1所示。

圖1 實時數據漸進式壓縮流程
根據上述流程可知:
Step1:初等變換原始實時數據,并將變換處理后的實時數據采用字節為單位進行讀取;
Step2:對字典進行初始化處理,使字典中包含單字符實時數據;
Step3:對代碼進行清零處理,使字符串為空集;
Step4:對于輸入實時數據字符流中的每一個字符重復操作Step5~ Step9;
Step5:抽取實時數據字符保存在字符串中;
Step6:如果實時數據字符串S+String在字典中,那么S=S+String,轉到Step5;
Step7:在字典中編寫與S對應的代碼,將其輸出為字符流;
Step8:將實時數據字符串S+String寫在字典中,并在字典中添加一項;
Step9:S=String,再一次轉到Step5;
Step10:在字典中編寫與S對應的代碼,將其輸出為字符流;
Step11:編寫實時數據漸進式壓縮算法的結束碼。
針對實時數據漸進式壓縮面臨的問題,依據實時數據漸進式壓縮算法的原理,設計了實時數據漸進式壓縮算法流程,利用實時數據漸進式壓縮算法的實現步驟,完成實時數據漸進式壓縮算法設計,接下來通過設計實時數據漸進式壓縮程序,來實現實時數據的漸進式壓縮。
在對實時數據沒有先驗了解的情況下,選取第一個周期內的實時數據樣本作為基準,利用距離測度來判斷實時數據出現的時刻,并再一次重新選擇基準數據。采用歸一化距離測度的計算方法,如下式

(6)
其中,a表示實時數據向量,b表示基準向量,d(a,b)表示實時數據向量和基準向量的歸一化距離測度。
由于實時數據的信號頻率會出現一個比較小的波動,在確定實時數據周期的起止點時還會產生誤差,為了消除外界因素對實時數據漸進式壓縮的影響,需要建立一個數據組,來保存各個周期實時數據的起點和終點。實時數據漸進式壓縮流程如圖2所示。

圖2 實時數據漸進式壓縮流程
根據實時數據漸進式壓縮流程,得到實時數據漸進式壓縮步驟,如下:
Step1:獲取第一個采樣周期內實時數據樣本作為初始的基準向量Db,并將基準向量Db賦值給實時數據漸進式壓縮過程中的運算基準向量Dt;
Step2:按照一定順序將一個采樣周期內的實時數據樣本保存至中間向量Do中,將表征該數據起點和終點的參數保存在數組中,將Do與Dt做差值處理,并將計算得到的差值向量De保存到數據文件中;
Step3:通過與事先設定好的判決門限進行對比,觀察實時數據樣本的歸一化測度值是否在連續兩個周期內超過了該限值,從而來判斷實時數據樣本在連續兩個周期內是否發生了畸變,如果實時數據樣本發生了較大畸變,將數組中表征該采樣周期內截止點的實時數據后面添加一個標記0,此時令該周期數據等于實時數據漸進式壓縮過程中的運算基準向量Dt;如果實時數據樣本沒有發生了較大畸變,將數組中表征該采樣周期內截止點的實時數據后面添加一個標記-1,且實時數據漸進式壓縮過程中的運算基準向量Dt保持不變;
Step4:如果仍然存在待處理的實時數據,那么就跳轉到Step2繼續處理,否則就要跳轉到Step5;
Step5:對實時數據進行閾值處理,如下式

(7)
綜上所述,在負載均衡策略下,對實時數據進行了自適應量化處理,通過設計實時數據漸進式壓縮算法,簡化了實時數據漸進式壓縮的程序,結合實時數據漸進式壓縮程序設計,實現了實時數據的漸進式壓縮。
為了驗證負載均衡策略下實時數據漸進式壓縮方法在實際應用中的性能,通過MATLAB平臺進行仿真分析。在仿真軟件中50m*50m的區域內部署100個實時數據節點。仿真分析過程中采用1024*4個具有光強、溫度、濕度和節點電壓的實時數據,擬合多項式的次數為1,2,3,相關性閾值為0.7,0.8,0.9,1.0時,將負載均衡策略下實時數據漸進式壓縮方法與文獻[4]提出的面向網絡通信的高實時壓縮方法、文獻[5]提出的管道漏磁檢測實時數據壓縮方法進行對比,分別從壓縮比和通信能耗兩個指標進行對比實驗分析。
三種方法的實時數據壓縮比測試結果如圖3所示。

圖3 實時數據壓縮比測試結果
從圖3中的測試結果可以看出,隨著相關性閾值的增大,三種數據壓縮方法的實時數據壓縮比也在逐漸增大,但是負載均衡策略下實時數據漸進式壓縮方法始終小于文獻[4]提出的面向網絡通信的高實時壓縮方法和文獻[5]提出的管道漏磁檢測實時數據壓縮方法。原因是相關性閾值越大,實時數據序列之間的相關性就比較弱,需要設置更多的參數來進行描述,當相關性閾值為1時,不需要考慮實時數據的相關性,此時實時數據的壓縮比達到了最大值;在相關性閾值相同的情況下,擬合次數越大,負載均衡策略下實時數據漸進式壓縮方法對實時數據序列的分段個數就越少,因此,本文提出的負載均衡策略下實時數據漸進式壓縮方法可以縮小實時數據的壓縮比。
對本文提出的負載均衡策略下實時數據漸進式壓縮方法、文獻[4]提出的面向網絡通信的高實時壓縮方法和文獻[5]提出的管道漏磁檢測實時數據壓縮方法的實時數據通信能耗進行測試對比,對比結果如圖4所示。

圖4 實時數據的通信能耗測試結果
從圖4的測試結果可以看出,隨著相關性閾值的增大,負載均衡策略下實時數據漸進式壓縮方法的實時數據通信能耗逐漸降低,說明負載均衡策略下實時數據漸進式壓縮方法的壓縮效果越來越好,而隨著相關性閾值的增大,文獻[4]提出的面向網絡通信的高實時壓縮方法和文獻[5]提出的管道漏磁檢測實時數據壓縮方法的實時數據通信能耗逐漸上升。說明本文提出的負載均衡策略下實時數據漸進式壓縮方法的通信能耗始終小于其它兩種壓縮方法。
針對實時數據在漸進式壓縮過程中受到數據特征的影響,降低了實時數據的漸進式壓縮性能,本文提出了負載均衡策略下實時數據漸進式壓縮方法,在負載均衡策略下,對實時數據進行了自適應量化處理,通過設計實時數據漸進式壓縮算法,實現了實時數據的漸進式壓縮。仿真結果顯示,該數據壓縮方法具有較高的實時數據漸進式壓縮能力。