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