王 凱,張立博,李昌偉,李 帥,王 林
(中國綠發(fā)投資集團有限公司 北京 100010)
多維數(shù)據(jù)壓縮有助于傳輸和存儲數(shù)據(jù)流。 為應(yīng)對龐大且復(fù)雜的多維數(shù)據(jù)冗余信息[1],應(yīng)在保障重構(gòu)數(shù)據(jù)精準(zhǔn)性的基礎(chǔ)上,最大程度提升數(shù)據(jù)壓縮質(zhì)量。 王鶴等[2]為實現(xiàn)電能質(zhì)量數(shù)據(jù)高精度壓縮目的,提出壓縮存儲配電網(wǎng)電能質(zhì)量數(shù)據(jù)的方法,趙會群等[3]為保障數(shù)據(jù)存儲精度,提出以密度劃分為基礎(chǔ)的多維數(shù)據(jù)存儲方法,但兩種方法的壓縮存儲效率較低。 為進一步提高多維數(shù)據(jù)的存儲壓縮效率,本文將在節(jié)約數(shù)據(jù)存儲空間的基礎(chǔ)上,以提高普適性、壓縮效率和精準(zhǔn)性為目的,探討多維數(shù)據(jù)的壓縮存儲方法。
MVC 技術(shù)根據(jù)視角間和視角內(nèi)部的相關(guān)性提高多維數(shù)據(jù)壓縮效率。 本文將以MVC 架構(gòu)為基礎(chǔ)建立多維數(shù)據(jù)壓縮存儲方法,具體見圖1。
圖1 MVC 架構(gòu)
圖1 中,多視角視頻編碼器單元采用多維矢量矩陣的MVC 壓縮多維數(shù)據(jù);傳輸/存儲單元通過關(guān)系數(shù)據(jù)庫方法存儲壓縮后的多維數(shù)據(jù);多視角解碼器對壓縮數(shù)據(jù)實行反過程解碼,以利于用戶訪問。
方法流程見圖2。
圖2 多維數(shù)據(jù)壓縮流程
流程1:通過8×8(長×寬)分塊采樣處理原始數(shù)據(jù)以重組編碼。
流程2:重組數(shù)據(jù)經(jīng)多維離散余弦變換(discrete cosine transform,DCT)正交變換處理的操作為式(1)所示:
式(1)中:
LXX、均是偶數(shù)維,為多維DCT 操作算子;
T為正交變化次數(shù);
fXY為數(shù)據(jù)源矩陣;
FXY表示變換后的多維系數(shù)矩陣。
以矢量X與Y劃分變換輸入后的數(shù)據(jù)源矩陣f8×8×8×8得式(2):
變換表達公式為式(3)所示:
流程3:對編碼變換后的系數(shù)矩陣數(shù)據(jù)進行非均勻量化以實現(xiàn)壓縮編碼操作,具體如下:多維數(shù)據(jù)經(jīng)正交變換后的低頻分量值多位于四維空間坐標(biāo)原點附近,且該值與其距離原點的長度成反比例關(guān)系,多數(shù)高頻分量值與0 無限接近,多維數(shù)據(jù)的量化公式為式(4)所示:
式(4)中:x,y,m,n=0,1,2,…,7,表示坐標(biāo)原點;αxymn表示多維數(shù)據(jù)排列表;q、p表示量化因子,-0.8 ≤p≤0.8、1 ≤q≤100;當(dāng)p=q=0 時量化矩陣系數(shù)均為1,即未進行量化處理;量化因子值對量化效果有較大影響。 系數(shù)矩陣數(shù)據(jù)經(jīng)壓縮編碼處理后可提升壓縮質(zhì)量。
流程4:通過差分編碼預(yù)測數(shù)據(jù)量化后相關(guān)性較強的系數(shù)編碼[4]。 具體如下:
假設(shè)變換數(shù)據(jù)后,與坐標(biāo)原點距離最短的矩陣元素為直流分量DC,剩余則為交流分量AC[5]。 在n個8×8×8×n多視角數(shù)據(jù)里,各分塊有8×n個直流系數(shù)。 因DC >AC,即DC有更強相關(guān)性[6],因此在差分編碼時選擇保留交流分量AC而預(yù)測編碼直流分量DC, 以此實現(xiàn)多維數(shù)據(jù)的有效壓縮。 各分塊間直流系數(shù)差分值在K個多視角數(shù)據(jù)分塊中的計算方式為式(5)所示:
式(5)中:Diff表示差值。
流程5:對差分編碼后的數(shù)據(jù)進行多維掃描處理,以使零元素數(shù)量增加。 計算公式為式(6)所示:
式(6)中:F為多維數(shù)據(jù)量化矩陣集合;H為常數(shù),在N1×N2× …×Nm數(shù)據(jù)多維分塊中,H取值范圍0 ≤H≤N1+N2+…+Nm - m;Bm取值范圍為0 ≤H≤Nm -1;Bm函數(shù)為F(z),計算式為式(7)所示:
在8× 8× 8× 8 分塊的多維數(shù)據(jù)中,基于多維掃描公式可得其表達式為式(8)所示:
式(8)中:a、b、c、d表示各維度坐標(biāo)值,取值范圍為0 ≤a≤7,0 ≤b≤7,0 ≤c≤7,0 ≤d≤7,且均為整數(shù);u為多維掃描后數(shù)據(jù),取值范圍為0 ≤u≤28 且為整數(shù)。
將各坐標(biāo)集中里的全部坐標(biāo)值按小到大順序進行排列,多維掃描坐標(biāo)順序排列結(jié)果為式(9)所示:
流程6:結(jié)束多維掃描后,多維數(shù)據(jù)中連續(xù)存在較多零元素,因此,僅需通過行程編碼處理零元素。 在0 后為負(fù)數(shù)時,僅需保存一個0,并進行1 次重復(fù);在0 后為整數(shù)時,則需采用(0,1)的形式保存數(shù)據(jù),以盡可能避免解碼時0 后的整數(shù)被解碼為重復(fù)次數(shù)。
將多維數(shù)據(jù)壓縮后存儲至關(guān)系數(shù)據(jù)庫,具體流程見圖3。
圖3 關(guān)系數(shù)據(jù)庫存儲流程
具體步驟為:
步驟1:壓縮后的可擴展標(biāo)識語言(extensible markup language,XML)多維數(shù)據(jù)經(jīng)數(shù)據(jù)類型定義后轉(zhuǎn)換成XML DTD,隨后再轉(zhuǎn)換成XML Schema,以提高數(shù)據(jù)標(biāo)準(zhǔn)化程度。
步驟2:XML Schema 數(shù)據(jù)經(jīng)深加工處理后生成數(shù)據(jù)對象模型;
步驟3:獲取查詢代價最小的模式S。 搭建含有各類模式的空間,并以哈希連接算法建立代價評估模型[式(10)]對各模式加以評估。
式(10)中:G1和G2表示多維數(shù)據(jù)壓縮后的列表大??;P1和P2表示查詢代價表的選擇概率。
按照多維數(shù)據(jù)壓縮后的實例信息獲取第i個子圖元素Ei的實例數(shù)量為|Ei |,Ei屬性列寬為Wi,按上述統(tǒng)計量計算第i個擴展子圖Mi的值,計算式為式(11)所示:
式(11)中:j表示子圖編號。
S模式根據(jù)連接操作順序獲取Ei所含的子圖{M1,M2,…,Ml} 以及與之相對應(yīng)的|Mk |、路徑選擇率Pk;操作代價和XML查詢表達式以關(guān)系數(shù)據(jù)庫加以連接,Ei查詢代價以哈希連接算法代價模型加以計算,具體為式(12)所示:
式(12)中:k和l分別表示子圖編號和數(shù)量。
S模式查詢負(fù)載計算式為式(13)所示:
式(13)中:ω為查詢代價權(quán)值。
步驟4:構(gòu)建關(guān)系數(shù)據(jù)庫。 通過爬山算法取得最優(yōu)模式,再在映射規(guī)則基礎(chǔ)上通過數(shù)據(jù)對象模型將最優(yōu)模型映射為關(guān)系模型數(shù)據(jù)庫。
隨機抽取7 組多維YUV 視頻數(shù)據(jù)為對象,并根據(jù)小到大的數(shù)據(jù)量順序加以排列,10 組實驗數(shù)據(jù)的數(shù)據(jù)量范圍為(1GB,10GB),Y 幀為亮度信息,U 幀和V 幀為顏色信息,以上述方法壓縮存儲試驗數(shù)據(jù)。
所用壓縮效果評價指標(biāo)為峰值信噪比(PSNR) 和壓縮比(Cr)。 隨機選取1 組數(shù)據(jù)并壓縮其全部分塊,計算在量化因子p、q不同時的峰值信噪比和壓縮比,以所得結(jié)果評價壓縮性能,詳見表1。
表1 不同量化因子下的峰值信噪比和壓縮比
如表1 所示,工況1 中,固定pY及qY時的,峰值信噪比固定不變;在減小pU并增加qU時,峰值信噪比有所減??;V 幀與U 幀的峰值信噪比基本一致;在減小V 幀與U幀的峰值信噪比并小幅提升數(shù)據(jù)壓縮比時,數(shù)據(jù)壓縮效果一般。 工況2 中,固定U 幀量化因子和V 幀量化因子,但改變Y 幀,此時隨pY增加,qY逐漸降低,峰值信噪比出現(xiàn)較小降幅但壓縮比大幅提升。 結(jié)果表明:固定V 幀與U幀量化因子時,適當(dāng)提高Y 幀量化因子值可在小幅度減小峰值信噪比的條件下,大幅提高壓縮比,提高多維數(shù)據(jù)壓縮性能。
以王鶴等[2]提供方法為方法1,以趙會群、李春良[3]提供方法為方法2,與本文所提供方法進行試驗對比,通過三種方法分別壓縮全部分塊,所得結(jié)果見表2。
表2 三種方法壓縮時間 單位:s
從結(jié)果看,三種方法的壓縮時間隨數(shù)據(jù)量的增加而不斷增加,但文中所提供方法所需壓縮時間顯著少于其他兩種方法,即本文所提供方法所需壓縮時間較短,壓縮效果更好。
三種方法的存儲效率試驗結(jié)果見圖4。
圖4 三種方法存儲效率測試結(jié)果
從結(jié)果看,越多數(shù)據(jù)量下三種方法的存儲消耗時間也越長,但本文方法存儲消耗時間較少,增幅較小,表明本文方法存儲效率較高。
為提高數(shù)據(jù)壓縮存儲效果,本文利用MVC 架構(gòu)搭建了多維數(shù)據(jù)的壓縮存儲方法,從對比實驗結(jié)果看,所提出方法有較高的壓縮存儲效率,有一定的推廣應(yīng)用價值。MVC 架構(gòu)發(fā)展空間大,后續(xù)可從多維矢量操作算子的角度出發(fā)優(yōu)化掃描和量化方法,提高行程編碼性能。