馬宏興,張 伶
(北方民族大學(xué) 電氣信息工程學(xué)院,寧夏 銀川 750021)
H.264/AVC視頻編碼標(biāo)[1]在編碼模式、編碼參數(shù)、熵編碼、參考幀、高精度預(yù)測(cè)、去塊濾波以及抗誤碼等方面采取了一系列切合實(shí)際的技術(shù)措施,相對(duì)于H.263和MPEG-4,視頻壓縮比提高1倍,節(jié)約了50%的碼率[2]。然而,H.264/AVC仍以傳統(tǒng)的混合編碼框架為基礎(chǔ),編碼器依據(jù)圖像內(nèi)容,采用率失真優(yōu)化的方法[3],在幀內(nèi)和幀間眾多的可選模式里選取最佳的編碼模式,對(duì)每一種編碼模式都要計(jì)算其失真度和比特率,致使編碼過(guò)程變得復(fù)雜,編碼時(shí)間增加。但是,正是率失真優(yōu)化技術(shù)的應(yīng)用,H.264/AVC在運(yùn)動(dòng)估計(jì)及編碼模式的選擇過(guò)程中,盡可能獲得最佳運(yùn)動(dòng)信息,得到最佳匹配,從而保證了圖像的質(zhì)量,節(jié)省碼率,整體編碼性得到了顯著提高。
視頻壓縮是典型的限失真編碼,率失真理論同樣適應(yīng)于視頻編碼。視頻編碼率失真優(yōu)化指的是在限比特率為R的條件下,即R值不能超過(guò)信道傳輸率Rc,如何選擇最佳編碼模式,使得失真D最小,約束條件為R≤Rc[4-5]。要實(shí)現(xiàn)該目標(biāo),在R和D之間必須選擇一個(gè)恰當(dāng)?shù)恼壑小?/p>
在實(shí)際解決問(wèn)題的過(guò)程中,可由量化步長(zhǎng)、宏塊編碼模式等組成的編碼參數(shù)集,對(duì)視頻序列進(jìn)行編碼,得到一系列相應(yīng)的編碼比特率R和失真D點(diǎn),從而形成R-D率失真曲線。如果給定一個(gè)目標(biāo)碼率Rc,與其對(duì)應(yīng)的最小失真D點(diǎn)必然在這一曲線上。視頻編碼的率失真優(yōu)化目標(biāo)正是尋找這些合適的編碼參數(shù)集,使其代表的R-D點(diǎn)盡可能地位于或接近這條曲線,如圖1所示。
約束條件下的極值求解常用拉格朗日乘子法,部分拉格朗日方法不能很好解決的可以用動(dòng)態(tài)規(guī)劃求解[4]。拉格朗日乘子法能夠找出一個(gè)或數(shù)個(gè)性能最好的編碼參數(shù)集,這些參數(shù)可被用于視頻編碼器以獲得最佳的編碼性能。但如果編碼參數(shù)組合的數(shù)目極大,率失真計(jì)算的復(fù)雜性常常比編碼算法本身還高,要使率失真優(yōu)化方法更實(shí)用,可以對(duì)編碼參數(shù)簡(jiǎn)化。
圖1 視頻編碼的R-D模型
根據(jù)率失真理論,H.264/AVC視頻標(biāo)準(zhǔn)中,每幀圖像的編碼模式選擇問(wèn)題便是可選模式中最佳模式的選擇問(wèn)題,使得在限定碼率Rc下,D最小。
設(shè) X={X1, X2,…, XN}表示當(dāng)前幀中的所有宏塊,M表示視頻編碼可選的編碼模式集,那么當(dāng)前幀率失真優(yōu)化編碼就可以表示為
因?yàn)镠.264/AVC是基于宏塊的編碼結(jié)構(gòu),當(dāng)前幀的失真和碼率可以由各個(gè)宏塊的失真或比特?cái)?shù)累加,即有
因此,當(dāng)前幀的率失真函數(shù)可以轉(zhuǎn)換成
式中:J(X,M,λ)=D(X,M)+λ×R(X,M)。
顯然,只要參數(shù)λ可知,該式的極值就可以決定出最優(yōu)編碼模式M*,使得此時(shí)的編碼失真D(X,M*)就是在限率Rc下的最小失真。但是,由于單個(gè)宏塊Xi在編碼模式M*下的比特?cái)?shù)R(Xi,M*)必須在其他所有宏塊計(jì)算完畢才能獲得,所以嚴(yán)格地講,當(dāng)前幀各宏塊最佳編碼模式的決定是相互依賴的,將導(dǎo)致問(wèn)題非常復(fù)雜,難于求解。為了將問(wèn)題簡(jiǎn)化,設(shè)各宏塊的編碼模式率失真優(yōu)化決定是相對(duì)獨(dú)立的,忽略各宏塊的碼率對(duì)其他宏塊的編碼模式的影響[7],即有:
式中:Mi表示宏塊Xi的編碼模式參數(shù)集。整幀圖像的最優(yōu)化問(wèn)題可以進(jìn)一步分解為
由此,全幀的率失真優(yōu)化轉(zhuǎn)化為每個(gè)宏塊的優(yōu)化,只需要計(jì)算單個(gè)宏塊的率失真開(kāi)銷就行了。
Wiegand等[5-7]依照R-D的近似數(shù)量關(guān)系和大量的實(shí)驗(yàn)結(jié)果,得出參數(shù)λ與量化步長(zhǎng)QP有著某種關(guān)系,目前H.264/AVC采用的λ和量化參數(shù)QP關(guān)系有[3]:
1)對(duì)I幀、P幀,如果編碼時(shí)沒(méi)有B幀,則
2)對(duì)I幀、P幀,如果編碼時(shí)有B幀,則
3)對(duì)B幀,則有
運(yùn)動(dòng)估計(jì)的率失真優(yōu)化包括決定最佳運(yùn)動(dòng)向量和最佳參考幀及相應(yīng)的運(yùn)動(dòng)信息兩個(gè)方面。公式分別為
式中:m=(mx,my)T表示運(yùn)動(dòng)估計(jì)所得到的運(yùn)動(dòng)向量;p=(px,py)T表示通過(guò)對(duì)相鄰宏塊預(yù)測(cè)得到的運(yùn)動(dòng)向量;λMOTION為拉格朗日參數(shù),R(m-p)表示運(yùn)動(dòng)向量差值編碼所需比特?cái)?shù),SA(T)D為失真度,計(jì)算公式為
式中:B=16,8 或 4;s表示原始視頻信號(hào)值;c表示實(shí)際編碼的視頻信號(hào)值。如果運(yùn)動(dòng)向量是小數(shù)精度,則失真度在Hadamard Transform 后采用 SA(T)D 來(lái)度量,R(REF)表示選取參考幀REF編碼所需的比特?cái)?shù)。
H.264/AVC在進(jìn)行宏塊模式的選擇時(shí),要對(duì)各種可選模式進(jìn)行遍歷,計(jì)算出每種模式下的編碼比特?cái)?shù)和失真度,計(jì)算公式[8]為
計(jì)算拉格朗日函數(shù)值J即率失真開(kāi)銷,經(jīng)過(guò)比較,選取最小值下的編碼模式MODE做為宏塊的最終編碼模式。其中QP為宏塊的量化參數(shù),s,c分別表示原始圖像和重建圖像的像素值,R(s,c,MODE|QP)表示在特定QP和 MODE下當(dāng)前宏塊的編碼輸出比特?cái)?shù),SSD(s,c,MODE|QP)表示圖像失真度,計(jì)算公式為
式中:λMODE為拉格朗日系數(shù),MODE為當(dāng)前宏塊可選的一種編碼模式,針對(duì)不同圖像類型,編碼模式集見(jiàn)表1。
表1 編碼模式集
另外,INTRA4×4亦有多種預(yù)測(cè)模式選擇,見(jiàn)圖2。
圖2 INTRA4×4預(yù)測(cè)模式
INTRA4×4的預(yù)測(cè)模式選擇率失真優(yōu)化計(jì)算公式為
式中 :IMODE代表可選的多種預(yù)測(cè)模式,SSD(s,c,IMODE|QP)表示失真,R(s,c,IMODE|QP)表示編碼輸出比特?cái)?shù),包括幀內(nèi)預(yù)測(cè)模式和DCT亮度系數(shù)所需比特?cái)?shù)。
以測(cè)試模型JM7.6為例,下面分析視頻標(biāo)準(zhǔn)H.264/AVC在宏塊編碼所采用的率失真優(yōu)化算法詳細(xì)步驟。
算法描述如下:
在三位負(fù)責(zé)人的帶領(lǐng)下,我們身著工作服,參觀了從上鋁卷到電化學(xué)處理、涂布和干燥、在線分切、包裝,直至儲(chǔ)運(yùn)、物流的完整生產(chǎn)流程。我們看到,在監(jiān)控室里高速生產(chǎn)線的實(shí)時(shí)數(shù)據(jù)不斷閃現(xiàn),所有數(shù)據(jù)可以保留2年;生產(chǎn)全過(guò)程參數(shù)自動(dòng)檢測(cè),全球同步;安裝于生產(chǎn)線上的在線檢測(cè)系統(tǒng),可檢測(cè)到50微米缺陷,自動(dòng)切走缺陷部分;采用環(huán)保包裝方式,自動(dòng)打包。此外,我們了解到,其關(guān)鍵材料由總部統(tǒng)一進(jìn)口;新開(kāi)發(fā)產(chǎn)品,需經(jīng)過(guò)12個(gè)月嚴(yán)格測(cè)試,才能投入正式生產(chǎn)……或許正因?yàn)閳?zhí)行著最嚴(yán)苛的生產(chǎn)要求,無(wú)錫工廠才敢于做出最高質(zhì)量標(biāo)準(zhǔn)的莊重承諾。
1)參數(shù)初始化,確定宏塊的量化參數(shù)QP及參考幀信息,依照當(dāng)前編碼圖像類型,計(jì)算拉格朗日參數(shù)λMODE,λMOTION;
2)決定當(dāng)前宏塊決定最佳INTRA4×4預(yù)測(cè)模式;
3)通過(guò)計(jì)算SA(T)D,最小值對(duì)應(yīng)的預(yù)測(cè)模式為當(dāng)前宏塊最佳INTRA16×16預(yù)測(cè)模式;
4)為當(dāng)前宏塊選取運(yùn)動(dòng)估計(jì)的最佳參考幀及相應(yīng)運(yùn)動(dòng)信息;
5)在 2),3),4)基礎(chǔ)上,計(jì)算各種編碼模式下的率失真開(kāi)銷J,選取最小值對(duì)應(yīng)的編碼模式作為當(dāng)前宏塊最佳的編碼模式;
6)當(dāng)前宏塊編碼后續(xù)處理,準(zhǔn)備下一宏塊的編碼。
在H.264/AVC進(jìn)行編碼時(shí),要依據(jù)率失真優(yōu)化,對(duì)I,P,B幀的多種模式(見(jiàn)表1)進(jìn)行遍歷計(jì)算。但在實(shí)際的編碼過(guò)程中,可以依據(jù)圖像中的某些相關(guān)信息,例如紋理,對(duì)編碼模式進(jìn)行預(yù)判,從而減少計(jì)算的復(fù)雜性。D.Wu,F(xiàn).Pan等人就提出了一種改進(jìn)的算法[8],該算法對(duì)紋理比較均勻,變化比較緩慢的視頻,在視頻質(zhì)量PSNR減少小于0.06 dB時(shí),編碼時(shí)間可節(jié)省近50%。目前,針對(duì)H.264/AVC的率失真優(yōu)化技術(shù)的改進(jìn)較多,大致分為:1)建立視頻圖像在時(shí)間、空間域相關(guān)性基礎(chǔ)之上的算法,此類方法可處理幀內(nèi)及幀間眾多編碼模式;2)建立運(yùn)動(dòng)估計(jì)和補(bǔ)償基礎(chǔ)之上的率失真算法,利用殘差大小在眾多編碼模式中快速選擇。還有諸如基于DCT變換、直方圖等改進(jìn)的率失真優(yōu)化算法,在此不再一一贅述。
1)如果當(dāng)前宏塊的平均絕對(duì)差MAD值小于T1,則當(dāng)前宏塊采用SKIP/DIRECT模式;
2)如果當(dāng)前宏塊的宏塊平均絕對(duì)差MAD值小于T2,則當(dāng)前宏塊采用 16×16,16×8,8×16 的宏塊進(jìn)行預(yù)測(cè);
3)否則,按標(biāo)準(zhǔn)算法進(jìn)行預(yù)測(cè)。其中 T1,T2定義如下
式中:MADSKIP/DIRECT為當(dāng)前宏塊之前所采用SKIP/DIRECT模式的宏塊所對(duì)應(yīng)的MAD值,MAD16×16為當(dāng)前宏塊之前所采用 16×16 模式的宏塊所對(duì)應(yīng)的 MAD 值;△1,△2為修正值,其隨著MAD值的變化而變化。
在采用測(cè)試模型JM7.6的標(biāo)準(zhǔn)參數(shù)時(shí),該算法的實(shí)驗(yàn)結(jié)果如表2所示,其中△t為所用時(shí)間差,△PSNRY為亮度峰值信噪比之差,△Rbit為新算法碼率之差,Rbit264為原H.264碼率,負(fù)值表示改進(jìn)算法比H.264/AVC算法節(jié)省或減少,正值表示增加。由實(shí)驗(yàn)結(jié)果來(lái)看,該算法基本能夠保持圖像質(zhì)量,碼率沒(méi)有太大增加的情況下,各種視頻序列在編碼時(shí)間上都有不同程度的節(jié)省,從而彌補(bǔ)了標(biāo)準(zhǔn)算法在進(jìn)行幀間模式選擇時(shí)計(jì)算時(shí)間的不足,提高了編碼器的工作效率。
表2 實(shí)驗(yàn)結(jié)果
率失真優(yōu)化技術(shù)是當(dāng)前圖像視頻處理中的一項(xiàng)十分活躍的技術(shù),在H.264/AVC視頻標(biāo)準(zhǔn)中,其應(yīng)用雖然保證了圖像的質(zhì)量,節(jié)省了碼率,但也會(huì)致使編碼過(guò)程變得復(fù)雜,編碼時(shí)間增加。針對(duì)這種情況,現(xiàn)有很多的改進(jìn)率失真優(yōu)化算法,可在保證圖像質(zhì)量,碼率不會(huì)有太大變化的情況下,節(jié)省編碼時(shí)間,減少計(jì)算的復(fù)雜性。隨著人們更進(jìn)一步的研究,相信在未來(lái)幾年內(nèi),該領(lǐng)域內(nèi)一定會(huì)出現(xiàn)大量的學(xué)術(shù)研究和成果。
[1]Joint Video Team (JVT)of ISO/IEC MPEG and ITU-T VCEG.H.264|ISO/IEC 14496-10 AVC,Document JVT-G050[S].2003.
[2]WIEGAND T,SULLIVAN G J,BJOTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits and Systems for Video Technology,2003,7(13):560-572.
[3]WIEGAND T,SCHWARZ H,JOCH A,et al.Rate-constrained coder control and comparison of video coding standards[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(7):688-703.
[4]ORTEGA A,RAMCHANDRAN K.Rate-distortion methods for image and video compression[J].IEEE Signal Processing Magazine,1998,15(11):23-50.
[5]SULLIVAN G J,WIEGAND T.Rate-distortion optimization for video compression[J].IEEE Signal Processing Magazine,1998,15(11):74-90.
[6]WIEGAND T,LIGHTSTONE M,MUKHERJEE D,et al.Rate-distortion optimized mode selection for very low bit rate video coding and the emerging H.263 standard[J].IEEE Trans.Circuits and Systems for Video Technology,1996,6(2):182-190.
[7]WIEGAND T,GIROD B.Lagrange multiplier selection in hybrid video coder control[EB/OL].[2009-09-20].http://www.asicfpga.com/site_upgrade/asicfpga/pds/image_pds_files/icip01c.pdf.
[8]WU D,PAN F,LIM K P,et al.Fast intermode decision in H.264/AVC video coding[J].IEEE Trans.Circuits and Systems for Video Technology,2005,15(7):406-409.