常會麗,周金蓮,2
(1. 寧夏理工學院計算機科學與工程學院,寧夏 石嘴山 753000;2. 東北大學計算機科學與工程學院,遼寧 沈陽 110169)
科技迅速發(fā)展導致數據量朝著大容量以及多樣性的方向發(fā)展,增加了存儲方式的難度。多維數據內存在龐大的冗余信息[1],多維數據壓縮方法的目的是以確保重構數據精準性為基礎,最大限度地降低傳輸所需的碼字,利于數據流的傳輸和存儲[2,3]。
王鶴等人提出基于分布式壓縮感知和邊緣計算的配電網電能質量數據壓縮存儲方法[4],利用同步正交匹配追蹤算法進行配電網電能質量數據壓縮,各節(jié)點稀疏系數間的互相關度實現(xiàn)配電網的諧波污染動態(tài)分區(qū),通過K-SVD字典學習算法對配電網測量值進行分析,實現(xiàn)電能質量數據的高精度壓縮。趙會群等人提出基于密度劃分的數據存儲方法[5],通過密度區(qū)域劃分算法降低高度重復數據的冗余度,利用縮LZW算法有效減少數據存儲空間。但這兩種方法壓縮效率較低,因此以節(jié)約多維數據存儲空間為前提,提升數據壓縮效率以及適用范圍為目的,研究基于MVC架構的多維數據壓縮存儲方法。
MVC架構主要包含三個單元,分別是多視角視頻編碼器、傳輸/存儲與多視角視頻解碼器,其具體架構如圖1所示。
圖1 MVC架構
MVC技術是依據視角間的相關性與視角內部的相關性,提升多維數據的壓縮效率;多視角視頻編碼器利用多維矢量矩陣的MVC方法壓縮多維數據;傳輸/存儲單元利用關系數據庫方法存儲壓縮后的多維數據;多視角解碼器通過多視角編碼器的反過程實現(xiàn)解碼,方便用戶查詢。
基于多維矢量矩陣的MVC多維數據壓縮方法的流程如圖2所示。
圖2 多維數據壓縮流程
利用8×8分塊采樣處理原始數據,方便變換編碼的實現(xiàn),8×8×8分塊代表各分塊在長度維度、寬度維度與時間維度的限制值分別是8、8與8。
利用多維DCT正交變換方法處理重組的數據,表達公式如下
(1)
(2)
變換表達公式如下
(3)
通過壓縮編碼處理變化后的系數矩陣數據,提升多維數據壓縮效果;壓縮編碼操作是利用非均勻量化方式量化編碼變換后的系數矩陣數據;依據差分編碼方式實現(xiàn)量化后數據內相關性強的系數的預測編碼,達到多維數據壓縮目的[6];多維掃描處理差分后的數據,提升零元素的連接數量;行程編碼掃描后的數據,增強多維數據壓縮效果[7]。
正交變換后的多維數據內低頻分量值基本處于四維空間坐標原點周圍,其值與距原點的距離成反比,絕大多數高頻分量值無限接近0;多維數據量化矩陣的表達公式如下
A=(αxymn)8×8×8×8
αxymn=1+q((x+1)2+(y+1)2+(m+1)2+
(n+1)2-1)p
(4)
式中,坐標原點為x,y,m,n=0,1,2,…,7;多維數據排列表用αxymn表示;量化因子分別是p與q,且-0.8≤p≤0.8,1≤q≤100;在p=0,q=0情況下,量化矩陣A內全部系數均是1,說明未展開量化處理;量化因子的取值與量化效果密切相關。
差分編碼量化后的數據,設變換后的數據將矩陣內與坐標原點距離最近的首個元素作為直流分量DC,剩余元素屬于交流分量AC。針對n個視角8×8×8×n分塊的多視角數據,各分塊均包含8×n個直流系數。因為直流分量數值大于交流分量數值,說明直流分量具備很強的相關性[8],所以通過差分編碼形式預測編碼DC分量,保留AC分量,完成多維數據壓縮。
令多視角數據分塊數量是K,每個分塊間直流系數差分的表達公式如下
(5)
式中,差值是Diff。
通過多維掃描處理差分編碼后的數據,增加零元素數量,多維掃描的數學表達公式如下
F(B1,B2,…,Bm)=H
(6)
式中,多維數據量化矩陣集合是Vm;常數是H;在數據的多維分塊是N1×N2×…×Nm時,H的取值范圍是0≤H≤N1+N2+…+Nm-m,Bm的取值范圍是0≤Bm≤Nm-1;Bm的函數是F(*);計算公式如下
F(z)=B1+B2+…+Bm=H
(7)
針對8×8×8×8分塊方式的多維數據,按照多維掃描公式獲取其表達形式如下
u=a+b+c+d
(8)
式中,每個維度中的坐標值分別是a、b、c、d,0≤a≤7,0≤b≤7,0≤c≤7,0≤d≤7且四個坐標值均為整數;多維掃描后的數據是u,0≤u≤28且數值是整數。
依據從小至大的順序排列各個坐標集合中的全部坐標值,多維掃描的坐標排序結果如下
a+b+c+d=0?0000
a+b+c+d=1?0001→0010→0100→1000
a+b+c+d=2?0002→0020→0101→…→1100→2000
? ? ? ? ? ? ?
a+b+c+d=26?5777→6677→6767→6776→…→7766→7775
a+b+c+d=27?6777→7677→7767→7776
a+b+c+d=28?7777
(9)
因為多維掃描結束后,多維數據內存在大量連續(xù)的零元素,沒有重復的非零元素,所以僅利用行程編碼處理多維數據內的零元素,僅保留一個連續(xù)且一致的零元素并記錄一致零元素的數量。在0之后是負數的情況下,僅保留一個0,重復次數為1;在0之后是整數的情況下。以(0,1)形式保存數據,降低解碼過程中0之后的正數被解碼成重復次數的可能性。
利用關系數據庫存儲壓縮后的多維數據,壓縮后的多維數據格式是XML多維數據;關系數據庫的存儲流程如圖3所示。
圖3 關系數據庫的存儲流程
利用關系數據庫存儲壓縮后的多維數據關系的具體步驟如下:
步驟1:大部分多維數據均是基于DTD(Document Type Definition,數據類型定義),轉換XML DTD至XML Schema,提升壓縮后多維數據的標準化。
步驟2:深加工處理XML Schema,生成DOM(Document Object Model,數據對象模型)樹模型。
步驟3:構建存在所有模式的模式空間,根據哈希連接算法構建代價評估模型,獲取查詢代價最小的模式,哈希連接算法的代價模型表達公式如下
O=3(|G1|+|G2|)+P1·P2·|G1|
(10)
式中,壓縮后多維數據列表的大小分別為G1與G2;查詢對關系表的選擇概率分別為P1與P2。
根據壓縮后多維數據實例信息獲取第i個子圖元素Ei的實例數量是|Ei|,Ei的屬性列寬度是Wi,依據這兩個統(tǒng)計量獲取第i個擴展子圖Mi的大小,計算公式如下
(11)
式中,j表示子圖編號。
模式S內依據連接操作順序獲取查詢Ei包含的子圖是{M1,M2,…,Ml},與子圖相應的關系的大小是|Mk|,路徑選擇率是Pk;按照關系數據庫連接操作代價和XML查詢表達式的關系,并基于哈希連接算法的代價模型計算出Ei的查詢代價,計算公式如下
(12)
式中,k表示子圖編號;l表示子圖數量。
針對模式S,其查詢負載的計算公式如下
(13)
式中,查詢代價的權值是ωi。
步驟4:通過改進的爬山算法獲取最優(yōu)模式,利用映射規(guī)則結合DOM樹模型將最優(yōu)模型映射成關系模式,構建關系數據庫。
在某網站隨機抽取10組多維YUV視頻數據為實驗對象,并按照數據量從小到大的順序排列這10組多維YUV視頻數據,10組多維YUV視頻數據的數據量范圍是1GB-100GB,Y幀代表多維視頻數據的亮度信息,U幀與V幀代表均多維視頻數據的顏色信息,利用本文方法對10組多維YUV視頻數據實施壓縮存儲。
將壓縮比與峰值信噪比作為分析本文方法壓縮效果的評價標準,壓縮比代表壓縮能力的好壞,其值與壓縮效果成正比,壓縮比Cr的計算公式如下
(14)
峰值信噪比代表壓縮后數據和原始數據的差距,其值與數據還原度成正比,與壓縮效果成正比,峰值信噪比PSNR的計算公式如下
(15)
式中,原始多維視頻數據是f(m,n);壓縮后多維視頻數據是g(m,n);目前幀的長是M;目前幀的寬是N。
在10組多維YUV視頻數據內隨機選取1組多維YUV視頻數據,利用本文方法對這組多維YUV視頻數據的全部分塊實施壓縮,在不同數值的量化因子p與q時,計算本文方法的壓縮比與峰值信噪比,評價本文方法的壓縮性能,壓縮比與峰值信噪比計算結果如表1所示。
表1 不同量化因子時的壓縮比與峰值信噪比
根據表1可知,情況1中,在Y幀的量化因子pY與qY固定時,其峰值信噪比也未發(fā)生變化;在U幀的量化因子pU降低qU增加時,其峰值信噪比不斷降低;V幀的峰值信噪比變化情況與U幀一致;在降低U幀與V幀峰值信噪比的同時提升整體多維YUV視頻數據壓縮比,但提升幅度較小,此時多維數據壓縮效果不明顯。情況2中,在不改變U幀與V幀的量化因子僅改變Y幀的量化因子時,隨著量化因子pY不斷增加,qY不斷降低,其峰值信噪比呈現(xiàn)小幅度降低趨勢,同時多維YUV視頻數據壓縮比存在較大幅度的提升趨勢。實驗證明:在U幀與V幀量化因子數值固定不變時,合理增加Y幀量化因子數值,可確保以最小峰值信噪比下降幅度,換取最大程度壓縮比提升幅度,提升多維數據壓縮性能。
將文獻[4]的配電網電能質量數據壓縮存儲方法與文獻[5]的密度劃分數據存儲方法作為本文方法的對比方法,分別記為方法1與方法2,利用三種方法對10組多維YUV視頻數據的全部分塊實施壓縮,三種方法的壓縮時間如表2所示。
表2 三種方法的壓縮時間(s)
根據表2可知,隨著多維PUV視頻數據的數據量不斷增加,三種方法的壓縮時間均開始延長,本文方法的壓縮時間明顯低于其余兩種方法,本文方法的平均壓縮時間是40.345s,方法1的平均壓縮時間是190.929s,方法2的平均壓縮時間是175.714s。實驗證明:本文方法的壓縮時間較短,具有較優(yōu)的多維數據壓縮效果。
利用三種方法對10組多維PUV視頻數據實施存儲,測試三種方法的存儲效率,測試結果如圖4所示。
圖4 三種方法存儲效率測試結果
根據圖4可知,三種方法隨著數據量的增加其存儲消耗時間也隨之增長,本文方法存儲時間的增長幅度明顯低于其余兩種方法,在存儲同一數據時,本文方法的存儲消耗時間均低于其余兩種方法。實驗證明:本文方法的存儲效率較高。
利用三種方法對10組多維PUV視頻數據實施存儲,用戶對三種方法存儲的數據分別展開索引列與非索引列查詢測試,并記錄查詢每組數據所需時間,查詢時間越短,說明其存儲性能越好,查詢時間測試結果如表3所示。
表3 查詢時間測試結果(ms)
根據表3可知,隨著數據量的增加,三種方法的查詢時間均有所延長,三種方法索引列查詢時間均低于非索引列查詢時間,兩種情況下本文方法的查詢時間均明顯低于其余兩種方法,說明本文方法的存儲結構較優(yōu),方便數據查詢。實驗證明:本文方法在兩種情況下的查詢時間均較短,適用范圍較廣,具備較優(yōu)的存儲性能。
本文提出基于MVC架構的多維數據壓縮存儲方法,提升多維數據壓縮效果以及存儲性能。MVC架構具有廣闊的發(fā)展空間,日后可通過改進多維矢量DCT操作算子,擴展正交變換過程的適用范圍,研究正交變換后數據的能量集中性能,獲取更加有效的量化與掃描方法,提升行程編碼效率。