李俊娟,劉 昱
(天津大學(xué)電子信息工程學(xué)院,天津300072)
高效視頻編碼(HEVC)標(biāo)準(zhǔn)由國際電信聯(lián)盟通信標(biāo)準(zhǔn)部門(ITU-T)的視頻編碼專家組(VCEG)和國際標(biāo)準(zhǔn)化組織/國際電工委員會(ISO/IEC)的運動圖像專家組(MPEG)組成的聯(lián)合協(xié)作視頻編碼組(JCT-VC)制定,標(biāo)準(zhǔn)號為ITU-T Rec.H.265或ISO/IEC 23008-2。繼H.264/AVC之后,該標(biāo)準(zhǔn)面向比高清晰度電視(HDTV)更高級別的圖像格式,編碼效率大幅提升。
HEVC與自H.261以來的視頻編碼標(biāo)準(zhǔn)一樣,也沿用了混合視頻編碼技術(shù),包括幀內(nèi)/幀間預(yù)測、變換編碼和熵編碼等。與此同時,與H.264/AVC相比,HEVC還采用了許多新的視頻編碼技術(shù),如編碼四叉樹結(jié)構(gòu)、變換四叉樹結(jié)構(gòu)、編碼單元、預(yù)測單元、變換單元等。這些新的編碼技術(shù)使得在同等視頻質(zhì)量下,采用HEVC對高分辨率的視頻編碼可節(jié)省約50%比特率[1]。
在獲更高壓縮效率的同時,HEVC編碼計算復(fù)雜度也顯著增加。在幀內(nèi)預(yù)測處理中,HEVC支持35種幀內(nèi)預(yù)測模式,如圖1所示。其中,包括33種方向相關(guān)的預(yù)測模式(角度預(yù)測模式),和2種非方向相關(guān)的幀內(nèi)預(yù)測模式(直流和平面預(yù)測模式)。實際上,每個角度預(yù)測模式都對應(yīng)一個特定的預(yù)測方向[2-3]。例如,當(dāng)幀內(nèi)預(yù)測模式為34,待預(yù)測塊的尺寸為4×4時(見圖2),待預(yù)測塊中的所有像素點由右上角的對角線至參考像素所在行或列投影,然后將待預(yù)測塊中的像素點按其投影到的參考點的像素值賦值。
HEVC編碼中,需遍歷所有幀內(nèi)編碼模式,得相應(yīng)的預(yù)測數(shù)據(jù)值并計算預(yù)測誤差。為了降低幀內(nèi)預(yù)測復(fù)雜度,應(yīng)避免計算所有35種預(yù)測模式的預(yù)測數(shù)據(jù)和預(yù)測誤差。顯然,如果待預(yù)測塊的紋理信息可提前獲取,那么預(yù)測方向就變?yōu)橐阎?,而只需選取該預(yù)測方向?qū)?yīng)的1種角度預(yù)測模式和與其相鄰的幀內(nèi)預(yù)測模式作為疑似最優(yōu)預(yù)測模式,于是無須遍歷所有33種角度預(yù)測模式。
文獻(xiàn)[4-6]采用基于DCT系數(shù)的思想實現(xiàn)了H.264/AVC幀內(nèi)預(yù)測模塊的加速。由于HEVC 支持的幀內(nèi)預(yù)測模式更多,且支持從4×4到64×64尺寸的待預(yù)測塊,因此要想用基于DCT系數(shù)的方案加速HEVC幀內(nèi)預(yù)測,需研究DCT變換系數(shù)與33種HEVC幀內(nèi)預(yù)測模式的對應(yīng)關(guān)系。
圖1 HEVC支持的35種幀內(nèi)預(yù)測模式
圖2 用相應(yīng)參考像素生成預(yù)測塊的示例
在HEVC幀內(nèi)預(yù)測中,待預(yù)測塊的樣點值是根據(jù)重建好的參考樣點值通過外推法得到。為了簡化,參考樣點均取自待預(yù)測塊的相鄰的參考行或列。當(dāng)角度幀內(nèi)預(yù)測模式取值為2~17時,參考樣點取自待預(yù)測塊左側(cè)參考列;當(dāng)角度幀內(nèi)預(yù)測模式取值為18~34時,參考樣點取自待預(yù)測塊上方參考行。
獲取待預(yù)測塊中每一樣點值的具體方法是:將該待預(yù)測樣點位置沿給定角度幀內(nèi)預(yù)測模式代表的方向向參考行或列做投影;當(dāng)投影所得位置為整數(shù)時,直接將該位置處的參考樣點值賦值給該待預(yù)測樣點,當(dāng)投影所得位置不是整數(shù)時,將距該位置最近的兩參考樣點值加權(quán)平均,得待預(yù)測樣點值
式中:wy代表投影位置到兩個最近參考樣點位置距離的權(quán)重;“>>”代表按位右移操作。距離投影位置最近的兩個參考樣點的位置坐標(biāo)為(i,0),(i+10),及權(quán)重wy計算方法如下
式中:d為與角度幀內(nèi)預(yù)測模式相關(guān)的參數(shù),取值范圍-32~+32,如表1第2、第4列所示;&代表按位與運算。可以看出,cy和wy只依賴于待預(yù)測樣點位置坐標(biāo)y與角度幀內(nèi)預(yù)測模式相關(guān)的參數(shù)d。因此,在特定角度幀內(nèi)預(yù)測模式下,待預(yù)測塊內(nèi)同一行的待預(yù)測樣點對應(yīng)的和均相等,即只需計算一次。
表1 角度預(yù)測模式與紋理方向映射表
式(1)和式(2)給出了在幀內(nèi)預(yù)測模式為18~34情況下,待預(yù)測塊內(nèi)樣點值的計算方法,此時利用待預(yù)測塊上方參考行完成。當(dāng)角度幀內(nèi)預(yù)測模式為2~17時,預(yù)測由待預(yù)測塊左側(cè)參考列完成。
在某些情況下,投影所得像素位置可能為負(fù)值。此時,需對參考行或參考列擴展。參考行需向左擴展時,用參考列沿給定預(yù)測方向為參考行左側(cè)樣點值賦值;參考列需向上擴展時,用參考行沿給定預(yù)測方向為參考列上方樣點值賦值。
DCT變換是一種為去除空間域相關(guān)性而廣泛使用的方法。其計算式為
式中:ACu,v代表位于第i行第j列的DCT系數(shù)。事實上,每個DCT系數(shù)代表一個有特定紋理方向的基圖像,如圖3所示。此外,每個DCT系數(shù)的絕對值反映了原始待預(yù)測塊的紋理特征與該基圖像紋理特征的相似程度。顯然,第1行DCT系數(shù)的基圖像具有垂直的紋理特性,類似地,第1列的DCT系數(shù)的基圖像具有水平紋理特性。此處用Energyv,Energyh分別表示原始待預(yù)測塊具有垂直或水平紋理特征的可能性。因此這兩個量的計算方法如
圖3 DCT系數(shù)和相應(yīng)的基圖像
基于上述對DCT系數(shù)特性的分析,本文建議采用如下方法計算待預(yù)測塊的紋理方向
式中:變量θ表示原始待預(yù)測塊的紋理方向與水平軸正向間的角度值。
由于每個角度預(yù)測模式分別代表一個特定預(yù)測方向,因此33種角度預(yù)測模式與預(yù)測方向角度間的映射關(guān)系如表1第5列所示。以角度預(yù)測模式33為例(見圖1),其預(yù)測方向角記為 α1,根據(jù)平行線定理,角度 α1與 α2相等,而 α2=arctan(32)=50.91°,因此 α= α=50.91°。2612
此外,如圖1所示,角度預(yù)測模式19的預(yù)測方向角度為b1,其補角為 c1,c1的平行角為 c2。對于等腰三角形,c2=α2,于是b1與α1互補,因此本文將角度預(yù)測模式19和33稱為對稱模式對,這樣表1可簡化為第3列所示。
考慮到式(7)計算的紋理方向角度連續(xù),其取值區(qū)間為(0°,90°),因此需對其離散化,來匹配離散的33種角度預(yù)測模式。以角度預(yù)測模式13為例,通過查表1的第5列可知,其預(yù)測方向角度為15.71°,其相鄰的角度預(yù)測模式12和14的預(yù)測方向角度分別為 8.88°和 22.11°。
假設(shè)這三種角度預(yù)測模式被選為最優(yōu)預(yù)測模式的可能性相等,本文采用如下方法計算角度預(yù)測模式13對應(yīng)的紋理方向角度區(qū)間
類似地,其他角度預(yù)測模式的紋理方向角度區(qū)間也可計算得到,如表1的第6列所示。
建立了紋理方向區(qū)間和角度預(yù)測模式間的映射關(guān)系后,用式(7)對原始待預(yù)測塊的紋理方向角度進(jìn)行估計,再根據(jù)該紋理方向角度位于表1第6列的哪一個區(qū)間中來將相應(yīng)的角度預(yù)測模式(記為紋理模式)確定為備選幀內(nèi)預(yù)測模式。選擇第1列還是第3列的角度預(yù)測模式作為紋理模式取決于AC0,1和 AC1,0符號是否同號,同號時選第 3 列,否則選第 1 列。
本文基于HEVC編碼器HM12.0[7],采用C語言實現(xiàn)了本文提出的DCT系數(shù)與幀內(nèi)預(yù)測模式之間的映射處理,并對標(biāo)準(zhǔn)的HEVC編碼器進(jìn)行改進(jìn),改進(jìn)后稱為基于DCT系數(shù)的HEVC編碼器。
為了提高編碼器的預(yù)測精度,本文在計算得到紋理方向角度后,以該紋理方向角度為中心,左右各取相同的角度偏移,構(gòu)成一個預(yù)測角度范圍,來彌補本文計算紋理方向角度的方法存在的誤差,并允許預(yù)測方向角度位于該預(yù)測角度范圍內(nèi)的所有角度預(yù)測模式進(jìn)入幀內(nèi)預(yù)測模塊。
本實驗做出如下兩個假定:
假定一,基于DCT系數(shù)的HEVC編碼器與原始HEVC編碼器相比,比特率差異小于0.5%,且編碼質(zhì)量PSNR差異小于0.01 dB時,認(rèn)為本實驗得到的最優(yōu)預(yù)測模式與原始HEVC編碼器一致,誤差近似為0。
假定二,33種角度預(yù)測模式均勻分布于180°的范圍中。該假定是為方便統(tǒng)計左右角度偏移量和預(yù)測角度范圍。
實驗采用全Ⅰ幀高效率配置條件,進(jìn)行全Ⅰ幀編碼,實驗序列為 PeopleOnStreet(2 560×1 600 Class A)、Kimono(1 920×1 080 Class B)、RaceHorses(832 × 480 Class C)、BlowingBubbles(416×240 Class D)、Vidyo4(1 280×720 Class E),實驗素材為分別從上述5個測試序列中隨機抽取出的50幀視頻畫面。量化系數(shù)設(shè)置為22,27,32和37。考慮到不同預(yù)測塊尺寸下的紋理方向誤差的差異性,本實驗對不同尺寸的預(yù)測塊采用了不同的預(yù)測角度范圍,所得實驗結(jié)果如表2所示。
表2 粗略紋理方向與實際最優(yōu)預(yù)測模式方向的偏差
以PeopleOnStreet序列為例,為保證基于 DCT系數(shù)的HEVC編碼器的編碼質(zhì)量,對于尺寸為64×64的預(yù)測塊,需在計算出紋理方向后,以該紋理方向為中心,向左右各偏移5.625,形成11.25的預(yù)測角度范圍即可覆蓋最優(yōu)預(yù)測模式所在位置,所得粗略紋理方向與實際最優(yōu)預(yù)測模式方向的偏差在5.625以內(nèi)。
由實驗結(jié)果可知,所得粗略紋理方向與最優(yōu)預(yù)測模式的預(yù)測方向很接近:最小偏差為0,即計算出的紋理方向與最優(yōu)預(yù)測模式基本一致;最大偏差為28.125,即最優(yōu)預(yù)測模式存在于以粗略紋理方向為中心形成的56.25的角度范圍內(nèi)。為避免出現(xiàn)最大偏差,本文采用下文所述按不同塊尺寸設(shè)定幀內(nèi)預(yù)測模式備選數(shù)量的措施。
由表2數(shù)據(jù)可知,對64×64尺寸的數(shù)據(jù)塊,預(yù)測精度最高,平均約15,而4×4數(shù)據(jù)塊的預(yù)測精度較低,平均約31。據(jù)此,應(yīng)相應(yīng)確定備選的幀內(nèi)預(yù)測模式數(shù)量,例如64×64數(shù)據(jù)塊的備選模式數(shù)量為4,而4×4數(shù)據(jù)塊為12。這表明,本文基于DCT系數(shù)預(yù)測HEVC幀內(nèi)角度的方法,可大幅降低HEVC幀內(nèi)預(yù)測計算的復(fù)雜度。
本文建立了基于DCT系數(shù)的紋理方向與33種HEVC幀內(nèi)角度預(yù)測模式間的映射關(guān)系,提出了一種根據(jù)DCT系數(shù)的分布特征來快速鎖定疑似最優(yōu)幀內(nèi)預(yù)測模式的方法。該方法先將原始待預(yù)測塊進(jìn)行DCT變換,利用DCT系數(shù)粗略提取出原始待預(yù)測塊的紋理信息,根據(jù)與角度預(yù)測模式之間的映射關(guān)系,鎖定疑似最優(yōu)幀內(nèi)預(yù)測模式。該種映射關(guān)系將最優(yōu)幀內(nèi)預(yù)測模式的搜索范圍從180°降低為最高56.25°,從而避免了遍歷35種幀內(nèi)預(yù)測模式造成的高計算量和高編碼時間。
[1] SULLIVAN GJ,OHM JR,HAN WJ,et al.Overview of the high efficiency video coding(HEVC)standard[J].IEEE Trans.Circuits And Systems for Video Technology,2012,22(12):1648-1667.
[2] LEE SW,KIM Y M,CHOI SW.Fast scene change detection using direct feature extraction from MPEG compressed videos[J].IEEE Trans.Multimedia,2000,2(4):240-254.
[3] EOM M,CHOE Y.Fast extraction of edge histogram in DCT domain based on MPEG7[J].IEEE Trans.Engineering Computing and Technology,2005(9):209-212.
[4] LA B,EOM M,CHOE Y.Fast mode decision for intra prediction in H.264/AVC encoder[C]//Proc.IEEE International Conference on Image Processing.San Antonio,TX:IEEE Press,2007:321-324.
[5] LIU X,YOO K Y,KIM SW.Low complexity intra prediction algorithm for MPEG-2 to H.264/AVC transcoder[J].IEEE Trans.Consumer Electronics,2010,56(2):987-994.
[6] HAN Xiaojun,WANG Yongsheng,DU Xianyan.Optimization and realization of texture-based H.264 video coding algorithm[C]//Proc.IEEE International Conference on Control,Automation and Systems Engineering.Singapore:IEEE Press,2011:1-3.
[7] JCT-VC.HEVC reference software hm 12.0[EB/OL].[2014-08-08].https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-12.0/.