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