文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.191074
中文引用格式: 胡金艷,,宋紹京. VPx幀內(nèi)壓縮的快速算法[J].電子技術應用,2020,,46(4):75-78,,88.
英文引用格式: Hu Jinyan,Song Shaojing. Fast algorithm for VPx intra-frame compression[J]. Application of Electronic Technique,,2020,,46(4):75-78,88.
0 引言
目前主流的視頻編碼標準包括3個體系:國際聯(lián)合視頻工作組(Joint Video Team,,JVT)的H.26x、國內(nèi)數(shù)字音視頻編解碼技術標準工作組(Audio Video Coding Standard,AVS)的AVSx和Google公司的VPx[1-4],。其中,VPx編解碼器(COder/DECoder,,CODEC)憑借開源和免專利費的優(yōu)勢,,在全球范圍內(nèi)各種網(wǎng)絡瀏覽器的支持率已經(jīng)超過92%[5]。
視頻編碼標準中的幀內(nèi)壓縮是決定最終編碼效率的關鍵,,但由于該過程的算法復雜度高而導致非常耗時,,因此對幀內(nèi)壓縮快速算法的研究顯得尤為必要。近年來這方面的研究主要集中在H.264和H.265/高性能視頻編碼(High Efficiency Video Coding,,HEVC)[6-9],。文獻[6]通過統(tǒng)計方法與閾值法,文獻[7]基于紋理方向檢測,,文獻[8]利用時間與時空相關性,,分別對HEVC幀內(nèi)預測進行加速,實現(xiàn)將編碼時間減少24~30%,。文獻[9]提出梯度法加快確定幀內(nèi)模式,,將編碼時間減少15%,再結(jié)合支持向量機(Support Vector Machine,,SVM)加快確定HEVC編碼單元劃分,,使編碼時間進一步減少到50%以上。文獻[10]對HEVC和VP9兩種標準的幀內(nèi)壓縮算法及其對編碼效率的影響進行了比較,。本文針對VPx的幀內(nèi)壓縮提出了加速算法,,并通過實驗驗證了算法的效果。
1 VPx幀內(nèi)壓縮
幀內(nèi)壓縮是基于相鄰像素之間的相關性,,通過當前塊的相鄰塊對其進行預測,,并對預測值與實際值之間的殘差進行一系列變換、量化和熵編碼,,以消除空間冗余達到壓縮的目的,。圖1所示為VPx幀內(nèi)壓縮框圖。VPx幀內(nèi)壓縮以宏塊/超級塊為單位,,其中VP8標準的宏塊大小為16×16,,VP9標準的超級塊大小為64×64。VP8采用4×4的子塊劃分方式將宏塊劃分為4×4大小的子塊,,其變換包括離散余弦變換(Discrete Cosine Transform,,DCT)和沃爾什-哈達瑪變換(Walsh-Hadmard Transform,WHT),。VP9采用四叉樹子塊劃分方式將超級塊劃分為4×4~64×64大小的子塊,,其變換包括非對稱離散正弦變換(Asymmetric Discrete Sine Transform,ADST)和DCT。
VPx幀內(nèi)預測分為亮度塊預測和色度塊預測,。亮度塊預測包括以下10種預測模式:
其中,,DC和TM分別為直流和真運動預測模式,另外8種為角度預測模式,,圖2中以4×4的亮度塊預測為例說明,。HE和VE分別為水平和垂直預測模式,LD和RD分別為45°和135°預測模式,,VL和VR分別為63°和117°預測模式,,HD和HU分別為153°和207°預測模式。
在幀內(nèi)壓縮過程中,,要從上述10種預測模式中選擇一種,,使碼率在不超過某最大碼率的情況下失真最小。VPx采用率失真優(yōu)化(Rate Distortion Optimization,,RDO)方法來尋找碼率和失真之間的平衡,,其率失真代價函數(shù)表示為:
其中,Jmode為預測模式對應的率失真代價,,Dmode為失真,,λmode為拉格朗日系數(shù),Bmode為所需比特數(shù),。通過計算預測殘差的平方和(Sum Squared Error,,SSE)得到失真Dmode。對于每個亮度子塊,,要進行10次變換,、量化、反量化和反變換的重構(gòu)過程,,根據(jù)率失真代價Jmode最小的原則選取最終預測模式,,進入熵編碼。
假設幀內(nèi)壓縮圖像寬度和高度分別為W和H,,宏塊/超級塊大小為C×C,,則總的宏塊/超級塊數(shù)為:
以1 280×720的圖像為例,宏塊大小為16×16,,按4×4的子塊劃分方式,,得到4×4的亮度子塊,則RecCnt的理論值為576 000次,,意味著如此大量次數(shù)的變換,、量化、反量化,、反變換和率失真計算代價,。
2 快速算法
為減少幀內(nèi)壓縮的運算量,可以從兩方面入手:一方面減少亮度子塊的重構(gòu)次數(shù),另一方面優(yōu)化幀內(nèi)壓縮的算法程序,。下面主要討論前者,。
2.1 最近鄰加速法
最近鄰加速法利用當前子塊與其最近鄰子塊的相關性,以最近鄰子塊的預測模式作為其最終預測模式,,從而減少遍歷預測模式帶來的重構(gòu)次數(shù),。
圖3所示為將圖像中一個16×16的宏塊劃分為16個4×4的亮度子塊,虛線框表示當前子塊,,箭頭所在子塊表示其候選最近鄰子塊。
首先根據(jù)當前子塊在宏塊中的位置確定最鄰近子塊,。設當前子塊為Si,,j,3個候選最近鄰子塊分別為Si-1,,j,、Si,j-1,、Si-1,,j-1。S1,,1作為第一個子塊,,不存在最近鄰子塊。
將Si,,j的最鄰近子塊定義為NBi,,j,當候選最近鄰子塊僅存在于水平和垂直方向時,,有:
當候選最近鄰子塊存在水平,、垂直和對角方向時,則先根據(jù)不同方向上子塊的率失真代價從候選最近鄰子塊中確定最近鄰子塊:
其中,,Jl,,m為3個方向率失真代價Ji,j-1,、Ji-1,,j、Ji-1,,j-1中最小的,,l和m代表最近鄰子塊的坐標。則有:
假設最近鄰子塊NBi,,j的最佳預測模式為mode,,對當前子塊在該模式下進行重構(gòu)和率失真Ji,j計算。當滿足如下關系時,,將模式mode作為當前子塊的最終預測模式,。
否則將對當前子塊進行預測模式的遍歷,得到最終預測模式,。
在最近鄰子塊的判斷過程中,,要在當前宏塊/超級塊范圍內(nèi),保存當前子塊Si,,j的前序子塊的最佳預測模式和與其對應的率失真,,用于與當前子塊直接比較以簡化率失真計算。 2.2 閾值加速法
對當前子塊的率失真Ji,,j設置閾值TH,。當某一預測模式下的Ji,j滿足如下關系時,,終止對預測模式的遍歷,,將該預測模式作為當前子塊的最終預測模式:
否則將繼續(xù)進行下一個預測模式。如果所有預測模式對應的率失真均不滿足式(9),,則根據(jù)RDO原則選取最佳預測模式,。
閾值的選取直接影響最終結(jié)果。閾值越大,,越容易提前終止對預測模式的遍歷,,從而提高壓縮速度,同時降低壓縮質(zhì)量,;反之閾值越小,,越難滿足閾值要求,遍歷的預測模式越多,,從而保持壓縮質(zhì)量,,但壓縮速度提高少。式(10)給出了閾值選取公式:
其中,,J表示已有子塊率失真的集合,,Jmax和Jmin分別為J中的最大率失真和最小率失真,Coef取值0.062 5,。
2.3 兩級加速法
采用最近鄰法加速時,,如果當前子塊存在最近鄰子塊,則能夠減少子塊重構(gòu)運算量,;否則仍需要對所有預測模式進行遍歷,。采用閾值加速法時,如果當前子塊的率失真滿足閾值條件,,則能夠減少子塊重構(gòu)運算量,;否則仍需要對所有預測模式進行遍歷,。
將上述兩種加速方法結(jié)合,構(gòu)成如圖4所示的兩級加速法,,使幀內(nèi)壓縮速度進一步提高,。兩級加速法的第一級為最近鄰加速,第二級為閾值加速,。
3 實驗結(jié)果與分析
為了驗證算法的有效性,,將本文算法在Google官方發(fā)布的libwebp-1.0.0上進行實現(xiàn)。該庫利用VP8幀內(nèi)壓縮算法對WebP圖像進行編解碼,。
實驗的硬件環(huán)境:Inter-CoreTM i5-6200 CPU,,主頻為2.40 GHz,內(nèi)存為4.00 GB,,操作系統(tǒng)為64 位Windows 10,。軟件環(huán)境:Visual C++ 6.0。參數(shù)設置:品質(zhì)因數(shù)(Quality factor)為80,。選用源自Wikipedia的6張測試圖像,如圖5所示,。這些圖像涵蓋不同的分辨率和內(nèi)容復雜度,。
對測試圖像分別用原始方法、最近鄰加速法,、閾值加速法和兩級加速法進行編碼實驗,。表1所示為幾種方法對應的單張圖像子塊重構(gòu)數(shù)統(tǒng)計??梢钥闯?,采用最近鄰法和閾值法均使子塊重構(gòu)次數(shù)在一定程度上降低。對于圖像Balloon,,由于原圖像較平坦,,最近鄰法得到的子塊重構(gòu)次數(shù)降低到原重構(gòu)次數(shù)的1/3以下;而對于圖像Boy,,原圖像具有較多細節(jié),,最近鄰法得到的子塊重構(gòu)次數(shù)僅有少量降低。結(jié)合閾值法后,,對于上述測試圖像,,通過兩級法加速后得到的子塊重構(gòu)次數(shù)均大幅度減少。
圖6對幾種加速方法從編碼時間T,、編碼比特率BR和峰值信噪比PSNR 3個方面進行比較,。可以看出對分辨率和內(nèi)容不同的圖像,,幀內(nèi)編碼的時間都有大幅度降低,,而BR和PSNR只有很小的變化,。通過式(11)可以進一步得到上述算法的具體性能指標:
其中,ΔT表示所提出算法的編碼時間減少的百分比,,Torg和Tproposed分別為原始編碼時間和所提出算法的編碼時間,;ΔPSNR表示PSNR減少的dB值,PSNRorg和PSNRproposed分別為原始編碼的PSNR和所提出算法的PSNR,;ΔBR表示BR增加的百分比,,BRorg和BRproposed分別為原始編碼的BR和所提出算法的BR。根據(jù)對測試圖像的實驗統(tǒng)計和計算結(jié)果,,得到最近鄰法的ΔT平均為37%,,ΔBR平均為1%,ΔPSNR平均為0.06 dB,;兩級法的ΔT平均為49%,,ΔBR平均為4%,ΔPSNR平均為0.14 dB,。采用兩級法加速時,,圖像Balloon加速最多,ΔT達到59%,,對應編碼質(zhì)量ΔBR為6%,,ΔPSNR為0.24;圖像Boy加速最少,,ΔT為41%,,對應編碼質(zhì)量ΔBR為1%,ΔPSNR為0.07,。
4 結(jié)論
為了降低VPx幀內(nèi)壓縮的計算復雜度,,減少編碼時間,本文提出了一種快速算法,。實驗結(jié)果表明:對于不同內(nèi)容復雜度的圖像,,所提出的最近鄰法在編碼時間明顯減少平均37%的情況下,對圖像質(zhì)量影響極??;基于最近鄰法進一步提出的兩級加速法在對圖像質(zhì)量影響很小的情況下,編碼時間大幅度減少平均49%,。進一步的優(yōu)化工作包括子塊劃分,、幀內(nèi)壓縮算法的軟件優(yōu)化和硬件加速。
參考文獻
[1] SULLIVAN G J,,OHM J,,HAN W J,et al.Overview of the high efficiency video coding(HEVC) standard [J].IEEE Transactions on Circuits & Systems for Video Technology, 2012, 22(12): 1649-1668.
[2] 黃鐵軍.AVS2標準及未來展望[J].電視技術,,2014,,38(22):7-10.
[3] BANKOSKI J,,WILKINS P,XU Y W.Technical overview of VP8,,an open source video codec for the web[C].2011 IEEE International Conference on Multimedia and Expo,,ICME′11.IEEE,2011:1-6.
[4] SRINIVASAN M.VP9 Encoder and decoders for next generation online video platforms and services[C].SMPTE 2016 Annual Technical Conference and Exhibition,,SMPTE,,2016:1-14.
[5] LI Z R,DUANMU ZH F,,LIU W T,,et al.AVC,HEVC,,VP9,,AVS2 or AV1?-A comparative study of state-of-the-art video encoders on 4K videos[C].Image Analysis and Recognition ICIAR 2019,Springer,,2019,,11662:162-173.
[6] 李偉,王讓定,,王家驥.一種HEVC幀內(nèi)預測模式快速選擇算法[J].計算機工程與應用,,2016,52(14):161-166.
[7] RUIZ D,,ESCRIBANO G F,MARTINEZ J L,,et al.Fast intra mode decision algorithm based on texture orientation detection in HEVC[J].Signal Processing: Image Communication,,2016,44:12-28.
[8] 諶博,,顧梅花,,馬蒙蒙.一種改進的HEVC幀內(nèi)預測算法[J].計算機與數(shù)字工程,2017,,45(1):131-134.
[9] ZHANG T,,SUN M T,ZHAO D,,et al.Fast intra mode and CU size decision for HEVC[J].IEEE Transactions on Circuits & Systems for Video Technology,,2017,27(8):1714-1726.
[10] SHARABAYKO M P,,PONOMAREV O G,,CHERNYAK R I.Intra compression effciency in VP9 and HEVC[J].Applied Mathematical Sciences, 2013, 7(137): 6803-6824.
作者信息:
胡金艷,宋紹京
(上海第二工業(yè)大學 計算機與信息工程學院,,上海201209)