丁 彬,陳耀武
(浙江大學(xué)數(shù)字技術(shù)及儀器研究所,杭州310027)
H.264/AVC由于編碼效率的提高和實(shí)際應(yīng)用中的靈活性,在視頻編解碼領(lǐng)域取得了極大的成功[1]。然而,網(wǎng)絡(luò)帶寬的限制和對超高清視頻的需求對H.264的編碼效率提出了挑戰(zhàn)?;诖?,視頻編碼專家組(VCEG)和運(yùn)動圖像專家組(MPEG)成立了視頻編碼聯(lián)合協(xié)作小組(JCT-VC),提出了高效視頻編碼(High Efficiency Video Coding,HEVC)作為新一代視頻編碼標(biāo)準(zhǔn)。在相同視頻質(zhì)量下,HEVC和H.264相比節(jié)約50%的碼率[2]。由于H.264的普及性和HEVC較高的編碼復(fù)雜度,利用H.264壓縮流信息實(shí)現(xiàn)H.264到HEVC的轉(zhuǎn)碼成為本文的主題。
雖然在編碼框架方面和H.264存在相似性,HEVC的編碼單元卻存在較大差異。為了提高編碼的靈活性,HEVC采用了自適應(yīng)四叉樹編碼單元(Coding Tree Unit,CTU),最大編碼單元達(dá)到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時(shí)才可能出現(xiàn)。
為了適應(yīng)不同設(shè)備和場合的需要,視頻轉(zhuǎn)碼能夠改變壓縮視頻流的碼率、分辨率,還可以改變視頻內(nèi)容和編碼標(biāo)準(zhǔn)[5]。本文提出的從 H.264到HEVC轉(zhuǎn)碼器屬于改變編碼標(biāo)準(zhǔn)的異構(gòu)轉(zhuǎn)碼器,在H.264解碼過程中提取有用信息,并經(jīng)過處理后優(yōu)化HEVC編碼過程。
HEVC的模式選擇原理和H.264相似,在紋理復(fù)雜高的區(qū)域選擇尺寸較小的編碼單元,相應(yīng)的分配較多的編碼比特?cái)?shù)。HEVC的編碼單元最大可達(dá)64×64,在模式選擇時(shí)根據(jù)率失真優(yōu)化(Rate Distortion Optimization,RDO)模型判斷最佳編碼結(jié)構(gòu)。本文轉(zhuǎn)碼器框架如圖1所示,首先在解碼器部分提取信息,然后在編碼部分處理信息。
圖1 轉(zhuǎn)碼器框架
該算法的具體過程如圖2所示,先計(jì)算SKIP模式的率失真代價(jià),接著逐次計(jì)算幀間預(yù)測單元的率失真代價(jià),然后計(jì)算幀內(nèi)預(yù)測單元的率失真代價(jià)。
圖2 模式選擇流程
在圖像的高復(fù)雜度區(qū)域,CU可遞歸分割成更小的編碼單元,重復(fù)執(zhí)行上述過程,直至CU達(dá)到8×8。在HEVC編碼過程中,需要遞歸至最大深度時(shí)才能計(jì)算出最佳編碼樹結(jié)構(gòu),這樣每個(gè)CTU將會進(jìn)行85次CU計(jì)算,該過程雖然提高了編碼效率,但犧牲了較多的編碼時(shí)間。
由于在H.264解碼過程中,可以知道每個(gè)MB的編碼比特?cái)?shù),相應(yīng)的可以預(yù)測該區(qū)域的圖像復(fù)雜度,從而可以縮小HEVC編碼的搜索深度,降低編碼時(shí)間。本文根據(jù)每個(gè)CTU所覆蓋區(qū)域在H.264中消耗的比特?cái)?shù)和當(dāng)前幀平均消耗比特?cái)?shù)的比值預(yù)測該CTU的紋理復(fù)雜度,從而對搜索深度進(jìn)行決策。計(jì)算公式如下:
其中,Npu是每一幀中的宏塊個(gè)數(shù);PUBitsi是第i個(gè)PU所消耗的比特?cái)?shù);AvgBitsmb為H.264中每個(gè)宏塊平均消耗的比特?cái)?shù);Nc是每個(gè)CTU覆蓋的PU數(shù)目;PUBitsi是每個(gè)CTU映射到H.264中第i個(gè)宏塊所消耗的比特?cái)?shù);CTUBits(k)是HEVC中第k個(gè)CTU所覆蓋區(qū)域的宏塊平均比特?cái)?shù);R(k)是CUT所在區(qū)域消耗的宏塊平均比特?cái)?shù)和當(dāng)前幀的宏塊平均比特?cái)?shù)之比。
對于復(fù)雜度較低的區(qū)域,HEVC可以采用大小為64×64的編碼單元,而H.264只能采用SKIP模式或Inter16×16模式,因此,從H.264分割模式也可以預(yù)測HEVC編碼深度。本文用N16×16代表當(dāng)前CTU覆蓋區(qū)域的SKIP塊和Inter16×16塊的個(gè)數(shù)。文獻(xiàn)[6]做了關(guān)于 HEVC搜索深度和H.264相應(yīng)區(qū)域編碼比特?cái)?shù)之間關(guān)系的實(shí)驗(yàn),根據(jù)該實(shí)驗(yàn)的結(jié)果和H.264分割模式對CTU搜索深度預(yù)測如下:
如前文所述,HEVC通過遞歸至最大深度構(gòu)造最優(yōu)編碼樹結(jié)構(gòu),其中,比較耗時(shí)的過程是在每個(gè)深度層次遍歷各種PU預(yù)測模式。文獻(xiàn)[6]中指出,在HEVC各種分割模式中,2N×2N分割模式所占比例最高,其次是2N×2N和N×2N分割模式,而非對稱分割模式所占比例很小。因此,為了節(jié)省編碼時(shí)間,可以預(yù)先建立分割模式的候選集,排除可能性比較小的分割模式。本文根據(jù)H.264解碼信息中每個(gè)預(yù)測單元的運(yùn)動矢量信息預(yù)測每種分割模式的可能性。計(jì)算公式為:
其中,NPU為H.264中相應(yīng)區(qū)域預(yù)測單元的個(gè)數(shù);αi是每個(gè)運(yùn)動矢量(Motion Vector,MV)的權(quán)重系數(shù),由PU尺寸大小與4×4的比值得到;MVi是每個(gè)PU的運(yùn)動矢量;μPU是預(yù)測單元的平均運(yùn)動矢量;VARPU是每個(gè)PU所覆蓋區(qū)域的運(yùn)動矢量方差;VARCU是當(dāng)前編碼單元(Coding Unit,CU)第k種分割模式所對應(yīng)總的運(yùn)動矢量方差。按照每種分割模式下的方差值大小,只選取方差最小的3種分割模式作為分割模式候選集。
HEVC運(yùn)動估計(jì)是為當(dāng)前幀每個(gè)編碼塊在參考幀的搜索窗內(nèi)找到最佳匹配塊的過程[7]。搜索過程分為全局搜索和快速搜索,由于全局搜索耗時(shí)較長,HEVC可采用基于增強(qiáng)預(yù)測區(qū)域搜索(Enhanced Predictive Zonal Search,EPZS)的快速搜索算法。具體來講,HEVC以運(yùn)動矢量預(yù)測值(Motion Vector Prediction,MVP)作為搜索起點(diǎn),原理是根據(jù)當(dāng)前塊在空間和時(shí)間相關(guān)塊的運(yùn)動矢量建立若干個(gè)候選集,對于集合中每個(gè)MVP運(yùn)用拉格朗日函數(shù)。無論從編碼時(shí)間和壓縮效率來講,候選集的設(shè)計(jì)和選擇對該搜索算法都至關(guān)重要,文獻(xiàn)[8]在此基礎(chǔ)之上通過優(yōu)化減小了運(yùn)動估計(jì)搜索范圍。
本文基于H.264解碼信息對搜索起點(diǎn)和搜索范圍大小進(jìn)行優(yōu)化。為了快速確定搜索起點(diǎn),本文利用每個(gè)預(yù)測單元所在區(qū)域的平均運(yùn)動矢量和運(yùn)動矢量中值作為候選搜索起點(diǎn),代替了HEVC中基于相鄰塊的預(yù)測算法。搜索起點(diǎn)的計(jì)算公式如下:
其中,MVavg是H.264中相應(yīng)區(qū)域的平均運(yùn)動矢量;MVmid是對PU中各個(gè)MV求中值得到。由此,得到下列搜索起點(diǎn)候選集式(9),其中,包括式(7)和式(8)中得到的運(yùn)動矢量平均值和中值。
HEVC中運(yùn)動搜索范圍可以由相應(yīng)區(qū)域所有運(yùn)動矢量的最大范圍預(yù)測得到,其計(jì)算公式分別為式(10)和式(11)。式(10)中,表示該P(yáng)U中任意2個(gè)運(yùn)動矢量的絕對差值,MVmax表示該P(yáng)U中運(yùn)動矢量的最大絕對差值,Ro是HEVC預(yù)先設(shè)定的搜索范圍,Range是最終的搜索范圍,由兩者中取最大值得到。
在本文實(shí)驗(yàn)中,H.264編解碼器為參考代碼JM18.6,HEVC編碼器為參考代碼 HM16.0,編碼時(shí)量化系數(shù)(Quantization Coefficient,QP)選擇為22,27,31,35。本文實(shí)驗(yàn)硬件平臺為Intel i7-3537U@2.0GHz雙核處理器,8 GB內(nèi)存。軟件配置具體信息如表1所示,其他配置均為默認(rèn)條件。
表1 H.264和HEVC配置信息
為了全面的衡量本文算法的性能,實(shí)驗(yàn)從文獻(xiàn)[9]中選取不同分辨率和運(yùn)動特性的視頻序列。實(shí)驗(yàn)從3個(gè)指標(biāo)衡量算法的性能,指標(biāo)均為本文轉(zhuǎn)碼算法的編碼部分和參考算法的對比結(jié)果。其中,ΔTime衡量本文算法的編碼時(shí)間;ΔRate衡量本文算法的編碼碼率;ΔPSNR衡量本文算法的信噪比。
為了具體評價(jià)本文各部分算法在轉(zhuǎn)碼性能的貢獻(xiàn)程度,表2分別給出了模式選擇和運(yùn)動估計(jì)和HM參考代碼的對比結(jié)果。實(shí)驗(yàn)數(shù)據(jù)表明,模式選擇算法平均節(jié)省了35.6%的編碼時(shí)間,而運(yùn)動估計(jì)算法平均節(jié)省了15.0%的編碼時(shí)間。其中,隨著QP變大模式選擇快速算法節(jié)省的編碼時(shí)間逐漸變小,這是因?yàn)镼P變大時(shí)編碼比特?cái)?shù)的差異減小,導(dǎo)致搜索深度范圍變大。此外,運(yùn)動估計(jì)算法在編碼Cactus和RaceHorses視頻序列時(shí)性能較優(yōu),這和它們具有較強(qiáng)的運(yùn)動特性有關(guān)。為了更全面衡量本文算法的性能,實(shí)驗(yàn)測試了本文轉(zhuǎn)碼算法整體性能指標(biāo),同時(shí)和文獻(xiàn)[10]算法進(jìn)行對比,具體實(shí)驗(yàn)數(shù)據(jù)如表3、表4所示。
表3 2種算法整體性能對比(QP為22時(shí))
表4 2種算法不同QP下的平均性能對比
實(shí)驗(yàn)結(jié)果表明,本文算法相比于HM參考代碼節(jié)省了45.3%編碼時(shí)間,編碼碼率僅增加了1.6%,信噪比降低了0.081 dB。對比文獻(xiàn)[10]算法可知,本文算法在編碼時(shí)間上提高了10%,同時(shí)率失真性能相差不大。
本文提出一種基于幀間預(yù)測的H.264到HEVC轉(zhuǎn)碼技術(shù),在H.264解碼過程中提取能夠?qū)EVC編碼過程進(jìn)行優(yōu)化的相關(guān)信息,通過對該信息的統(tǒng)計(jì)與分析,在HEVC編碼過程中重新利用這些信息從而提高編碼速度。實(shí)驗(yàn)結(jié)果表明,該算法和HEVC參考代碼相比明顯減少了編碼時(shí)間復(fù)雜度。此外,為了更大程度地加快碼轉(zhuǎn)速度,本文算法還可以結(jié)合基于視覺顯著性的轉(zhuǎn)碼技術(shù)[11]和 HEVC編碼快速算法[12]等加速轉(zhuǎn)碼過程。然而由于HEVC標(biāo)準(zhǔn)的計(jì)算復(fù)雜度過高,其并不能較好地支持視頻實(shí)時(shí)編碼,因此需要利用多核處理器實(shí)現(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é)報(bào):工學(xué)版,2014,48(6):994-1003.
[12]周承濤.HEVC編碼快速算法關(guān)鍵技術(shù)研究[D].杭州:浙江大學(xué),2014.