丁 彬,陳耀武
(浙江大學(xué)數(shù)字技術(shù)及儀器研究所,杭州310027)
H.264/AVC由于編碼效率的提高和實際應(yīng)用中的靈活性,在視頻編解碼領(lǐng)域取得了極大的成功[1]。然而,網(wǎng)絡(luò)帶寬的限制和對超高清視頻的需求對H.264的編碼效率提出了挑戰(zhàn)。基于此,視頻編碼專家組(VCEG)和運動圖像專家組(MPEG)成立了視頻編碼聯(lián)合協(xié)作小組(JCT-VC),提出了高效視頻編碼(High Efficiency Video Coding,HEVC)作為新一代視頻編碼標準。在相同視頻質(zhì)量下,HEVC和H.264相比節(jié)約50%的碼率[2]。由于H.264的普及性和HEVC較高的編碼復(fù)雜度,利用H.264壓縮流信息實現(xiàn)H.264到HEVC的轉(zhuǎn)碼成為本文的主題。
雖然在編碼框架方面和H.264存在相似性,HEVC的編碼單元卻存在較大差異。為了提高編碼的靈活性,HEVC采用了自適應(yīng)四叉樹編碼單元(Coding Tree Unit,CTU),最大編碼單元達到64×64,而且可以繼續(xù)劃分成32×32,16×16,8×8大小的編碼單元(Coding Unit,CU)[3]。此外,HEVC支持更多的預(yù)測單元,包括對稱分割模式(2 N×2 N,N×2 N,22 N×2 N,N×2 N)和非對稱分割模式(nL×2 N,nR×2 N,22 N×2nU,22 N×2nD)[4],其中,HEVC的預(yù)測單元(Prediction Unit,PU)模式中N可以為4,8,16,32,N×2 N 模式只有在編碼深度為3時才可能出現(xiàn)。
為了適應(yīng)不同設(shè)備和場合的需要,視頻轉(zhuǎn)碼能夠改變壓縮視頻流的碼率、分辨率,還可以改變視頻內(nèi)容和編碼標準[5]。本文提出的從 H.264到HEVC轉(zhuǎn)碼器屬于改變編碼標準的異構(gòu)轉(zhuǎn)碼器,在H.264解碼過程中提取有用信息,并經(jīng)過處理后優(yōu)化HEVC編碼過程。
HEVC的模式選擇原理和H.264相似,在紋理復(fù)雜高的區(qū)域選擇尺寸較小的編碼單元,相應(yīng)的分配較多的編碼比特數(shù)。HEVC的編碼單元最大可達64×64,在模式選擇時根據(jù)率失真優(yōu)化(Rate Distortion Optimization,RDO)模型判斷最佳編碼結(jié)構(gòu)。本文轉(zhuǎn)碼器框架如圖1所示,首先在解碼器部分提取信息,然后在編碼部分處理信息。
圖1 轉(zhuǎn)碼器框架
該算法的具體過程如圖2所示,先計算SKIP模式的率失真代價,接著逐次計算幀間預(yù)測單元的率失真代價,然后計算幀內(nèi)預(yù)測單元的率失真代價。
圖2 模式選擇流程
在圖像的高復(fù)雜度區(qū)域,CU可遞歸分割成更小的編碼單元,重復(fù)執(zhí)行上述過程,直至CU達到8×8。在HEVC編碼過程中,需要遞歸至最大深度時才能計算出最佳編碼樹結(jié)構(gòu),這樣每個CTU將會進行85次CU計算,該過程雖然提高了編碼效率,但犧牲了較多的編碼時間。
由于在H.264解碼過程中,可以知道每個MB的編碼比特數(shù),相應(yīng)的可以預(yù)測該區(qū)域的圖像復(fù)雜度,從而可以縮小HEVC編碼的搜索深度,降低編碼時間。本文根據(jù)每個CTU所覆蓋區(qū)域在H.264中消耗的比特數(shù)和當前幀平均消耗比特數(shù)的比值預(yù)測該CTU的紋理復(fù)雜度,從而對搜索深度進行決策。計算公式如下:
其中,Npu是每一幀中的宏塊個數(shù);PUBitsi是第i個PU所消耗的比特數(shù);AvgBitsmb為H.264中每個宏塊平均消耗的比特數(shù);Nc是每個CTU覆蓋的PU數(shù)目;PUBitsi是每個CTU映射到H.264中第i個宏塊所消耗的比特數(shù);CTUBits(k)是HEVC中第k個CTU所覆蓋區(qū)域的宏塊平均比特數(shù);R(k)是CUT所在區(qū)域消耗的宏塊平均比特數(shù)和當前幀的宏塊平均比特數(shù)之比。
對于復(fù)雜度較低的區(qū)域,HEVC可以采用大小為64×64的編碼單元,而H.264只能采用SKIP模式或Inter16×16模式,因此,從H.264分割模式也可以預(yù)測HEVC編碼深度。本文用N16×16代表當前CTU覆蓋區(qū)域的SKIP塊和Inter16×16塊的個數(shù)。文獻[6]做了關(guān)于 HEVC搜索深度和H.264相應(yīng)區(qū)域編碼比特數(shù)之間關(guān)系的實驗,根據(jù)該實驗的結(jié)果和H.264分割模式對CTU搜索深度預(yù)測如下:
如前文所述,HEVC通過遞歸至最大深度構(gòu)造最優(yōu)編碼樹結(jié)構(gòu),其中,比較耗時的過程是在每個深度層次遍歷各種PU預(yù)測模式。文獻[6]中指出,在HEVC各種分割模式中,2N×2N分割模式所占比例最高,其次是2N×2N和N×2N分割模式,而非對稱分割模式所占比例很小。因此,為了節(jié)省編碼時間,可以預(yù)先建立分割模式的候選集,排除可能性比較小的分割模式。本文根據(jù)H.264解碼信息中每個預(yù)測單元的運動矢量信息預(yù)測每種分割模式的可能性。計算公式為:
其中,NPU為H.264中相應(yīng)區(qū)域預(yù)測單元的個數(shù);αi是每個運動矢量(Motion Vector,MV)的權(quán)重系數(shù),由PU尺寸大小與4×4的比值得到;MVi是每個PU的運動矢量;μPU是預(yù)測單元的平均運動矢量;VARPU是每個PU所覆蓋區(qū)域的運動矢量方差;VARCU是當前編碼單元(Coding Unit,CU)第k種分割模式所對應(yīng)總的運動矢量方差。按照每種分割模式下的方差值大小,只選取方差最小的3種分割模式作為分割模式候選集。
HEVC運動估計是為當前幀每個編碼塊在參考幀的搜索窗內(nèi)找到最佳匹配塊的過程[7]。搜索過程分為全局搜索和快速搜索,由于全局搜索耗時較長,HEVC可采用基于增強預(yù)測區(qū)域搜索(Enhanced Predictive Zonal Search,EPZS)的快速搜索算法。具體來講,HEVC以運動矢量預(yù)測值(Motion Vector Prediction,MVP)作為搜索起點,原理是根據(jù)當前塊在空間和時間相關(guān)塊的運動矢量建立若干個候選集,對于集合中每個MVP運用拉格朗日函數(shù)。無論從編碼時間和壓縮效率來講,候選集的設(shè)計和選擇對該搜索算法都至關(guān)重要,文獻[8]在此基礎(chǔ)之上通過優(yōu)化減小了運動估計搜索范圍。
本文基于H.264解碼信息對搜索起點和搜索范圍大小進行優(yōu)化。為了快速確定搜索起點,本文利用每個預(yù)測單元所在區(qū)域的平均運動矢量和運動矢量中值作為候選搜索起點,代替了HEVC中基于相鄰塊的預(yù)測算法。搜索起點的計算公式如下:
其中,MVavg是H.264中相應(yīng)區(qū)域的平均運動矢量;MVmid是對PU中各個MV求中值得到。由此,得到下列搜索起點候選集式(9),其中,包括式(7)和式(8)中得到的運動矢量平均值和中值。
HEVC中運動搜索范圍可以由相應(yīng)區(qū)域所有運動矢量的最大范圍預(yù)測得到,其計算公式分別為式(10)和式(11)。式(10)中,表示該PU中任意2個運動矢量的絕對差值,MVmax表示該PU中運動矢量的最大絕對差值,Ro是HEVC預(yù)先設(shè)定的搜索范圍,Range是最終的搜索范圍,由兩者中取最大值得到。
在本文實驗中,H.264編解碼器為參考代碼JM18.6,HEVC編碼器為參考代碼 HM16.0,編碼時量化系數(shù)(Quantization Coefficient,QP)選擇為22,27,31,35。本文實驗硬件平臺為Intel i7-3537U@2.0GHz雙核處理器,8 GB內(nèi)存。軟件配置具體信息如表1所示,其他配置均為默認條件。
表1 H.264和HEVC配置信息
為了全面的衡量本文算法的性能,實驗從文獻[9]中選取不同分辨率和運動特性的視頻序列。實驗從3個指標衡量算法的性能,指標均為本文轉(zhuǎn)碼算法的編碼部分和參考算法的對比結(jié)果。其中,ΔTime衡量本文算法的編碼時間;ΔRate衡量本文算法的編碼碼率;ΔPSNR衡量本文算法的信噪比。
為了具體評價本文各部分算法在轉(zhuǎn)碼性能的貢獻程度,表2分別給出了模式選擇和運動估計和HM參考代碼的對比結(jié)果。實驗數(shù)據(jù)表明,模式選擇算法平均節(jié)省了35.6%的編碼時間,而運動估計算法平均節(jié)省了15.0%的編碼時間。其中,隨著QP變大模式選擇快速算法節(jié)省的編碼時間逐漸變小,這是因為QP變大時編碼比特數(shù)的差異減小,導(dǎo)致搜索深度范圍變大。此外,運動估計算法在編碼Cactus和RaceHorses視頻序列時性能較優(yōu),這和它們具有較強的運動特性有關(guān)。為了更全面衡量本文算法的性能,實驗測試了本文轉(zhuǎn)碼算法整體性能指標,同時和文獻[10]算法進行對比,具體實驗數(shù)據(jù)如表3、表4所示。
表3 2種算法整體性能對比(QP為22時)
表4 2種算法不同QP下的平均性能對比
實驗結(jié)果表明,本文算法相比于HM參考代碼節(jié)省了45.3%編碼時間,編碼碼率僅增加了1.6%,信噪比降低了0.081 dB。對比文獻[10]算法可知,本文算法在編碼時間上提高了10%,同時率失真性能相差不大。
本文提出一種基于幀間預(yù)測的H.264到HEVC轉(zhuǎn)碼技術(shù),在H.264解碼過程中提取能夠?qū)EVC編碼過程進行優(yōu)化的相關(guān)信息,通過對該信息的統(tǒng)計與分析,在HEVC編碼過程中重新利用這些信息從而提高編碼速度。實驗結(jié)果表明,該算法和HEVC參考代碼相比明顯減少了編碼時間復(fù)雜度。此外,為了更大程度地加快碼轉(zhuǎn)速度,本文算法還可以結(jié)合基于視覺顯著性的轉(zhuǎn)碼技術(shù)[11]和 HEVC編碼快速算法[12]等加速轉(zhuǎn)碼過程。然而由于HEVC標準的計算復(fù)雜度過高,其并不能較好地支持視頻實時編碼,因此需要利用多核處理器實現(xiàn)并行轉(zhuǎn)碼。
[1]Wiegand T,Sullivan G J,Bjntegaard G,et al.Overview of the H.264/AVC Video Coding Standard[J].IEEE Transactions on Circuits and System for Video Technology,2003,13(7):560-576.
[2]Sullivan G J,Ohm J R,Han W J,et al.Overview of the High Efficiency Video Coding(HEVC)Standard[J].IEEE Transactions on Circuits and System for Video Technology,2012,22(12):1649-1668.
[3]Goswami K,Kim B,Jun D S,et al.Early Coding Unit Splitting Termination Algorithm for High Efficiency Video Coding(HEVC)[J].ETRI Journal,2014,36(3):407-417.
[4]Zhang Dong,Li Bin,Xu Jizheng,et al.Fast Transcoding from H.264/AVC to High Efficiency Video Coding[C]//Proceedings of ICME’12.Washington D.C.,USA:IEEE Press,2012:651-656.
[5]Ahmad I,Wei Xiaohui,Sun Yu,et al.Video Transcoding:An Overview of Various Techniques and Research Issues[J].IEEE Transactions on Multimedia,2005,7(5):793-804.
[6]Jiang Wei,Chen Yaowu,Tian Xiang.Fast Transcoding from H.264to HEVC Based on Region Feature Analy-sis[J].Multimedia Tools and Applications,2013,73(3):2179-2200.
[7]Purnachand N,Alves L N,Navarro A.Fast Motion Estimation Algorithm for HEVC[C]//Proceedings of ICCE’12.Washington D.C.,USA:IEEE Press,2012:34-37.
[8]Fang J T,Chen Zongyi,Liao T L,et al.A Fast PU Mode Decision Algorithm for H.264/AVC to HEVC Transcoding[J].Computer Science & Information Tech-nology,2014,4(2):215-225.
[9]Bossen F.Common Test Conditions and Software Reference Configurations[C]//Proceedings of JCTVC’12.Stockholm,Sweden:[s.n.],2012:1-3.
[10]Chen Zongyi,Tseng C T,Chang Paochi.Fast Inter Prediction for H.264to HEVC Transcoding[C]//Proceedings of ICMT’13.[S.l.]:Atlantis Press,2013:1301-1308.
[11]蔣 煒,田 翔,陳耀武.H.264到HEVC的低復(fù)雜度視頻轉(zhuǎn)碼算法[J].浙江大學(xué)學(xué)報:工學(xué)版,2014,48(6):994-1003.
[12]周承濤.HEVC編碼快速算法關(guān)鍵技術(shù)研究[D].杭州:浙江大學(xué),2014.