陳立峰,李子印
(中國計(jì)量學(xué)院 光學(xué)與電子科技學(xué)院,浙江 杭州 310018)
基于圖像復(fù)雜度及運(yùn)動信息的碼率控制算法
陳立峰,李子印
(中國計(jì)量學(xué)院 光學(xué)與電子科技學(xué)院,浙江 杭州 310018)
JVT-H017是H.264視頻編碼標(biāo)準(zhǔn)中采用的碼率控制算法提案,但在許多實(shí)時場景應(yīng)用中該算法還存在平均絕對差值(MAD)預(yù)測不準(zhǔn)確等一些不足。針對現(xiàn)有碼率控制技術(shù)的缺陷,提出一種改進(jìn)的基本單元層碼率控制算法。一方面在基于圖像復(fù)雜度和運(yùn)動信息的基礎(chǔ)上采用了4種時空加權(quán)模型預(yù)測平均絕對差值,并且采用運(yùn)動矢量信息對圖像復(fù)雜程度進(jìn)行判定;另一方面結(jié)合MAD的變化情況分配目標(biāo)比特。實(shí)驗(yàn)結(jié)果表明,相比于JVT-H017和一些新的文獻(xiàn)算法,改進(jìn)算法的編碼圖像峰值信噪比得到了提高,同時實(shí)際碼率更接近于目標(biāo)碼率,碼率控制性能更優(yōu)越。
H.264;碼率控制;平均絕對差值;運(yùn)動矢量
作為新一代的視頻編碼標(biāo)準(zhǔn),H.264以其高效的編碼效率、良好的網(wǎng)絡(luò)適應(yīng)能力以及諸多新技術(shù)引起了人們的廣泛關(guān)注[1]。碼率控制是H.264視頻編碼器結(jié)構(gòu)中的重要組成部分,其作用在于根據(jù)信道的狀態(tài)平滑碼流,控制和改善視頻質(zhì)量,因此碼率控制的性能直接關(guān)系到視頻編碼標(biāo)準(zhǔn)的應(yīng)用與推廣[2]。
然而在H.264編碼過程中量化參數(shù)QP同時用于率失真優(yōu)化和碼率控制,導(dǎo)致“蛋雞悖論”而不能直接套用以往編碼標(biāo)準(zhǔn)的算法,如MPEG-2中的TM5[3]、H.263中的TMN8[4]以及MPEG-4中采用的VM8[5-6]。為解決此問題,現(xiàn)有的H.264編碼標(biāo)準(zhǔn)采用了由Ma等人提出的JVT-H017提案[7]中的算法,但該算法在視頻序列存在快速運(yùn)動或場景變換時,由于各幀的復(fù)雜度相差過大以及線性MAD預(yù)測模型的不準(zhǔn)確,導(dǎo)致最終編碼輸出的碼率波動性較大,圖像質(zhì)量不高。
因此,針對H017算法在基本單元層碼率控制上的不足,學(xué)者們提出了多種碼率控制算法進(jìn)行改進(jìn)。JVT-W042提案[8]沿用了H017的基本算法流程,著重于代碼的優(yōu)化重寫,并支持全I(xiàn)幀和分級B幀的碼率控制。另外,文獻(xiàn)[9]通過一種簡單的幀差法來衡量圖像復(fù)雜度,進(jìn)而改進(jìn)幀層碼率控制。文獻(xiàn)[10]針對視頻中的大量場景切換,提出一種基于非連接點(diǎn)的場景切換檢測算法,結(jié)合自適應(yīng)GoP分組技術(shù)提高碼率控制性能。文獻(xiàn)[11]在ρ域模型基礎(chǔ)上提出平方根模型,用于改進(jìn)基本單元層的碼率控制。文獻(xiàn)[12]提出一種結(jié)合人眼視覺特性的碼率控制算法,在基本單元層引入視覺敏感因子進(jìn)行目標(biāo)比特分配。文獻(xiàn)[13]利用視頻信源的時空相關(guān)性提出一種新穎的編碼特性預(yù)測機(jī)制,并利用Lagrangian優(yōu)化技術(shù)推導(dǎo)出兩種高效的位率失真優(yōu)化分配算法。文獻(xiàn)[14]采用兩個率失真模型進(jìn)行碼率預(yù)測,即給出一種基于雙模預(yù)測的自適應(yīng)碼率控制方法來提高碼率控制精度。
本文將MAD值作為圖像復(fù)雜性的度量參數(shù)來調(diào)整目標(biāo)比特的分配。在MAD值的預(yù)測方面,充分利用視頻序列中的空間信息來改進(jìn)MAD預(yù)測模型,同時利用運(yùn)動矢量的大小作為判斷依據(jù)來決定所采用的MAD預(yù)測模型。實(shí)驗(yàn)結(jié)果表明,與JVT-H017以及較新的文獻(xiàn)算法相比,本文算法可獲得更好的圖像質(zhì)量,并且具有更高的碼率控制性能。
JVT-H017碼率控制方案由兩層組成:GoP(Group of Picture)層碼率控制和幀層碼率控制,若編碼中基本單元不是一幀,則再增加額外的基本單元層碼率控制。
H017提案中的基本單元層碼率控制算法主要包括3個步驟:1)目標(biāo)比特?cái)?shù)的分配;2)預(yù)測當(dāng)前基本單元的MAD值;3)基本單元量化參數(shù)QP值的計(jì)算。
1.1 目標(biāo)比特?cái)?shù)的分配
假設(shè)P幀中未編碼的基本單元數(shù)為Nbu,用frb表示分配給當(dāng)前幀中未編碼基本單元的剩余比特?cái)?shù),則對于當(dāng)前編碼基本單元所分配的目標(biāo)比特?cái)?shù)為frb/Nbu,即平均分配剩余比特?cái)?shù)。
1.2 預(yù)測當(dāng)前基本單元的MAD值
在H017提案中使用線性預(yù)測模型來預(yù)測當(dāng)前基本單元的MAD值
MADcur=a1×MADpre+a2
(1)
式中:MADcur為當(dāng)前基本單元的預(yù)測值;MADpre表示前一幀相同位置處基本單元的實(shí)際值;a1和a2為預(yù)測模型系數(shù),初始值分別為1和0,之后通過線性回歸技術(shù)進(jìn)行更新。
1.3 基本單元量化參數(shù)QP值的計(jì)算
完成MAD值的線性預(yù)測后,使用二次率失真模型[15]來計(jì)算當(dāng)前基本單元的QP值。二次率失真模型如下
(2)
式中:Ri(j)是編碼第i幀第j個基本單元所需要的比特?cái)?shù);X1和X2為該模型的一、二階系數(shù),在每個基本單元編碼結(jié)束后進(jìn)行更新;MAD為上一步所得到的預(yù)測值,由此可計(jì)算量化參數(shù)QP。
通過對H017算法中的基本單元層碼率控制方案的描述可知,該算法的MAD預(yù)測模型只考慮了基本單元間的時間相關(guān)性,沒有利用其空間相關(guān)性。
另外,在對未編碼基本單元的目標(biāo)比特分配方面,H017中的算法同樣沒有考慮圖像的復(fù)雜度因素,只是平均分配剩余比特。
這兩方面的不足將導(dǎo)致該算法在處理高速運(yùn)動或頻繁發(fā)生場景切換的視頻序列時出現(xiàn)較大誤差,重新更新的模型參數(shù)也會同樣因?yàn)槿鄙購?fù)雜度因子而造成誤差傳播,從而影響視頻的碼率穩(wěn)定性以及圖像編碼質(zhì)量。因此本文分別從MAD預(yù)測模型和分配剩余比特?cái)?shù)兩個方面來對原算法進(jìn)行改進(jìn)。
2.1 改進(jìn)的基本單元MAD預(yù)測模型
由于在一般的視頻序列中,MAD值的大小在時間和空間兩方面均有很強(qiáng)的相關(guān)性。因此本文利用基本單元間的空間相關(guān)性來改進(jìn)MAD預(yù)測模型,并且引入運(yùn)動矢量作為衡量圖像復(fù)雜度的標(biāo)準(zhǔn),根據(jù)圖像的復(fù)雜程度來決定選用的預(yù)測模型。
如圖1所示,編碼過程中利用當(dāng)前編碼基本單元Cur和前一幀相同位置基本單元Pre的鄰域?qū)υ惴ㄟM(jìn)行改進(jìn)。
圖1 編碼幀的基本單元分布情況
具體的MAD時空加權(quán)預(yù)測模型為
(3)
2.1.1 水平運(yùn)動矢量較大的情況
(4)
式中:X1和X2為當(dāng)前幀水平方向上的擴(kuò)展參考基本單元,如圖2所示。
圖2 水平運(yùn)動矢量較大時的參考基本單元分布情況
2.1.2 垂直運(yùn)動矢量較大的情況
(5)
式中:X3,X4,X5為當(dāng)前幀垂直方向上的擴(kuò)展參考基本單元,如圖3所示。
圖3 垂直運(yùn)動矢量較大時的參考基本單元分布情況
2.1.3 其他情況
在不符合前兩種情況時仍然采用式(3)來計(jì)算當(dāng)前基本單元的MAD值。
在上述4種預(yù)測模型中,加權(quán)系數(shù)為常數(shù),算法復(fù)雜度低,并且考慮了基本單元MAD值之間的時間和空間相關(guān)性。在圖像運(yùn)動劇烈的情況下,不僅在原算法基礎(chǔ)上加入了相鄰基本單元的平均MAD值,還對加權(quán)系數(shù)分別賦予不同的權(quán)值來進(jìn)行調(diào)整。
改進(jìn)算法還通過設(shè)置4個預(yù)測模型來針對不同復(fù)雜度的編碼圖像,再結(jié)合運(yùn)動矢量作為圖像復(fù)雜度的判斷依據(jù)來對加權(quán)預(yù)測進(jìn)行分級處理。這也是利用了運(yùn)動矢量的性質(zhì),由于運(yùn)動矢量本身就部分體現(xiàn)了圖像的復(fù)雜度,其絕對值越大,圖像變換速度越快,運(yùn)動也就越劇烈,以此作為衡量圖像復(fù)雜度的標(biāo)準(zhǔn)可以使MAD的預(yù)測更為合理。改進(jìn)的預(yù)測模型在引入運(yùn)動矢量作為圖像復(fù)雜度閾值判斷的同時,也將其水平、垂直分量進(jìn)行比較來判斷圖像的復(fù)雜類型,針對不同類型的視頻序列在預(yù)測模型中分別添加水平或垂直預(yù)測基本單元,從而更精確地預(yù)測當(dāng)前基本單元的MAD值。
通過大量實(shí)驗(yàn),并且考慮到實(shí)時低碼率下的應(yīng)用,采用宏塊作為基本單元,取b1=0.35,b2=0.45,b3=0.2,Th=16(在下文實(shí)驗(yàn)中均按此參數(shù)進(jìn)行測試)可提高預(yù)測精度。
2.2 基于圖像復(fù)雜度的目標(biāo)比特分配優(yōu)化
H017提案在基本單元層中采用將剩余比特?cái)?shù)平均分配給所有未編碼基本單元的碼率控制方案,這樣的平均分配方案并沒有考慮到圖像中不同基本單元之間復(fù)雜度的差異性,在場景快速變化時分配過少的目標(biāo)比特,導(dǎo)致量化參數(shù)QP過大,影響碼率控制的精度和圖像編碼質(zhì)量。
文獻(xiàn)[16]中用MADradio來代替MAD,其中MADradio是線性預(yù)測的MAD值與已編碼幀的平均MAD的比值,即用已編碼幀的平均MAD值來表征圖像序列的復(fù)雜度,并指出MADradio能很好地反映當(dāng)前幀相對于整個序列的運(yùn)動劇烈程度。
為了更合理地給未編碼基本單元分配目標(biāo)比特,本文在MAD時空加權(quán)預(yù)測模型的基礎(chǔ)之上,將式(3)所得到的MADcur引入到目標(biāo)比特的分配計(jì)算中。
本文利用當(dāng)前基本單元的預(yù)測值MADcur與之前已編碼基本單元的MAD平均值MADave的比值作為復(fù)雜度衡量因子λMAD,用來調(diào)整剩余比特?cái)?shù)的分配。具體算法如下
(6)
(7)
(8)
為了驗(yàn)證本文算法的有效性,所有的實(shí)驗(yàn)都是在JVT的開源模型JM10.1上進(jìn)行,并且與JVT-H017算法以及文獻(xiàn)[9]的相關(guān)算法進(jìn)行了比較。選用的測試序列為akiyo,silent,mother-daughter,foreman,carphone,highway的QCIF格式視頻以及waterfall的CIF格式視頻,其中waterfall視頻代表了垂直方向運(yùn)動大于水平方向運(yùn)動的非常規(guī)運(yùn)動序列。
在測試條件上將目標(biāo)碼率分別設(shè)置為48kbit/s和64kbit/s,編碼幀數(shù)為200幀,幀率為30f/s(幀/秒),參考幀數(shù)為1,采用Hadamard編碼,熵編碼類型采用CAVLC,初始量化參數(shù)為28,GoP結(jié)構(gòu)為IPPP,即編碼時第一幀為I幀,其余為P幀。
實(shí)驗(yàn)結(jié)果見表1與表2,兩份表格分別記錄和比較了各序列的峰值信噪比以及碼率控制情況,其中碼率偏差是實(shí)際碼率與目標(biāo)碼率的差值與目標(biāo)碼率的百分比,比值越小說明算法碼率控制得越精確。圖4是foreman視頻序列在目標(biāo)碼率為48kbit/s時各幀PSNR的比較曲線,比較算法為JVT-H017以及本文算法。圖5是foreman視頻序列在目標(biāo)碼率為48kbit/s時的主觀質(zhì)量比較情況,左、右分別為JVT-H017和本文算法所得到的圖像。
表1 JVT-H017、文獻(xiàn)[9]算法和本文算法的PSNR比較
由表1及表2的實(shí)驗(yàn)數(shù)據(jù)可以看出,在低碼率條件下,相比于其他算法,本文算法不僅得到了更高的PSNR,還使實(shí)際碼率更接近于目標(biāo)碼率。同時本文算法對waterfall這一非常規(guī)類型的視頻序列也能有較好的表現(xiàn),在48kbit/s的目標(biāo)碼率下能夠使碼率偏差由JVT-H017的0.40%降低到0.17%,這是由于本文算法考慮了垂直運(yùn)動矢量較大這一情況后所得到的結(jié)果。
由圖4和圖5可以從客觀和主觀兩個方面發(fā)現(xiàn)本文算法得到的視頻質(zhì)量更好,在視頻主觀質(zhì)量上,本文算法更好地還原了人物的面部特征,這也是改進(jìn)了JVT-H017算法中平均分配剩余比特方案后所帶來的優(yōu)勢。
本文分析了H.264中的JVT-H017碼率控制算法,指出該算法的不足并進(jìn)行了相應(yīng)改進(jìn)。改進(jìn)后的算法充分利用了編碼過程中的運(yùn)動矢量信息來預(yù)測MAD值,在此基礎(chǔ)上根據(jù)MAD值的變化情況來反映圖像序列的復(fù)雜度,從而更精確地分配目標(biāo)比特。實(shí)驗(yàn)結(jié)果表明,與JVT-H017算法以及較新的算法相比,本文算法在碼率控制方面更加精確,圖像質(zhì)量也有一定提高,從而改善了H.264視頻編碼的性能。
表2 JVT-H017、文獻(xiàn)[9]算法和本文算法的碼率比較
圖4 foreman序列PSNR實(shí)驗(yàn)結(jié)果比較
圖5 foreman序列的主觀質(zhì)量比較
[1]THOMASW,GARYJS,GISLEB,etal.OverviewoftheH.264/AVCvideocodingstandard[J].IEEETrans.CircuitsandSystemsforVideoTechnology,2003,13(7):560-576.
[2]CHENZ,NGANK.Recentadvancesinratecontrolforvideocoding[J].SignalProcessingImageCommunication,2007,22(1):19-38.
[3]ISO/IEC/JTC1/SC29/WG11,MPEG93/457,MPEG-2videotestmodel5[S].1993.
[4]CORBERAJR,LEIS.RatecontrolinDCTvideocodingforlow-delaycommunication[J].IEEETrans.CircuitsandSystemsforVideoTechnology,1999,9(1):172-185.
[5]LEEH,CHIANGT,ZHANGYQ.ScalableratecontrolforMPEG-4video[J].IEEETrans.CircuitsandSystemsforVideoTechnology,2000,10(9):878-894.
[6]VETROA,SUNH,WANGY.MPEG-4ratecontrolformultiplevideoobjects[J].IEEETrans.CircuitsandSystemsforVideoTechnology,1999,9(1):186-199.
[7]JVT-H017,Proposeddraftofadaptiveratecontrol[S]. 2003.
[8]JVT-W042,Ratecontrolreorganizationinthejointmodel(JM)referencesoftware[S]. 2007.
[9]陳曉,劉海英.一種改進(jìn)的H.264/AVC幀層碼率控制算法[J].電視技術(shù),2013,37(9):5-7.
[10]方志軍,高永彬,舒雷,等.場景切換視頻自適應(yīng)幀間碼率控制[J].中國圖象圖形學(xué)報(bào),2013,18(6):692-698.
[11]LIULi,ZHUANGXinhua.AnovelsquarerootratecontrolalgorithmforH.264/AVCencoding[C]//Proc.IEEEInternationalConferenceonMultimediaandExpo.NewYork:IEEEPress,2009:814-817.
[12]鄭巧燕,郁梅,彭宗舉.一種結(jié)合人眼視覺特性的H.264/AVC碼率控制算法[J].光電子·激光,2011, 22(3):440-445.
[13]袁武,林守勛,牛振東.H.264/AVC碼率控制優(yōu)化算法[J].計(jì)算機(jī)學(xué)報(bào),2008,31(2):329-339.
[14]朱仲杰,白永強(qiáng),蔣剛毅,等. 基于雙模預(yù)測的精確碼率控制[J].中國圖象圖形學(xué)報(bào),2010,15(4): 541-546.
[15]CHIANGT,ZHANGYQ.Anewratecontrolschemeusingquadraticratedistortionmodel[J].IEEETrans.CircuitsandSystemsforVideoTechnology,1997,7(1):246-250.
[16]JIANGMQ,YIXQ,LINGN.Improvedframe-layerratecontrolforH.264usingMADratio[J].IEEEInternationalSymposiumonCircuitsandSystems,2004,23(5):813-816.
Novel Rate Control Algorithm Based on Image Complexity and Motion Information
CHEN Lifeng,LI Ziyin
(CollegeofOpticalandElectronicTechnology,ChinaJiliangUniversity,Hangzhou310018,China)
In view of drawbacks of existing rate control algorithms,an improve rate control algorithm for H.264 is proposed. On the one hand,four novel weighted models using both temporal and spatial information are proposed to predict the MAD of different motion intensity. On the other hand,the changes ofMADare adopted to represent the image complexity,and used as a coefficient of the target bit allocation. Compared with algorithms of JVT-H017 and references, the bit rate of proposed algorithm is closer to the target bit,and the average of peak signal to noise ratio is improved.
H.264;rate control;mean absolute difference(MAD);motion vector(MV)
國家自然科學(xué)基金項(xiàng)目(61007012);國家科技支撐計(jì)劃子課題項(xiàng)目(2012BAF07B05-3);浙江省科技創(chuàng)新團(tuán)隊(duì)項(xiàng)目(2010R50020)
TN919.81
A
10.16280/j.videoe.2015.01.007
2004-12-10
【本文獻(xiàn)信息】陳立峰,李子印.基于圖像復(fù)雜度及運(yùn)動信息的碼率控制算法[J].電視技術(shù),2015,39(1).
陳立峰(1987— ),碩士生,主要研究方向?yàn)橐曨l編解碼技術(shù);
李子印(1978— ),博士,碩士生導(dǎo)師,主要從事視頻壓縮與通信、圖像處理、模式識別等方面的研究。
責(zé)任編輯:時 雯