唐浩漾,王文慶,王曙光
(西安郵電大學(xué)自動(dòng)化學(xué)院,陜西西安 710121)
目前,視頻處理技術(shù)廣泛采用了基于預(yù)測(cè)編碼和變換編碼的塊混合編碼方法。變換編碼通過(guò)將空域圖像映射到頻域系數(shù)的方法,有效去除了像素間的空間相關(guān)性,基于運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)編碼則充分利用了相鄰幀間的時(shí)間相關(guān)性,獲得了較好的壓縮性能。視頻流經(jīng)過(guò)混合編碼后提高了編碼效率,但在信道發(fā)生錯(cuò)誤的情況下容易產(chǎn)生誤碼擴(kuò)散現(xiàn)象,并導(dǎo)致重建視頻質(zhì)量的嚴(yán)重下降。
基于率失真優(yōu)化的編碼模式選擇算法作為一種有效防止幀間誤碼擴(kuò)散的手段早在H.263視頻編碼中就己經(jīng)開始采用[1]。在H.264/AVC標(biāo)準(zhǔn)中,率失真優(yōu)化算法被運(yùn)用在最佳運(yùn)動(dòng)矢量判決、最佳參考幀選擇、宏塊最佳編碼模式判決等方面[2-3]。其中基于率失真優(yōu)化的宏塊編碼模式采用基于拉格朗日乘子法的率失真模型[4],失真判決的衡量函數(shù)為絕對(duì)誤差和SAD(sum of absolute difference)[5]。但SAD僅反映時(shí)域的差異,不能有效反映傳輸過(guò)程和解碼器端可能引起的失真。因此本文提出一種基于像素遞歸失真估計(jì)ROPE(recursive optimal per-pixel estimate)的率失真優(yōu)化模式選擇算法,根據(jù)H.264/AVC的多模式劃分特點(diǎn)對(duì)ROPE方法進(jìn)行改進(jìn),準(zhǔn)確估計(jì)了差錯(cuò)環(huán)境下的端到端失真,采用合適的率失真模型預(yù)測(cè)運(yùn)動(dòng)補(bǔ)償編碼的總碼率并進(jìn)行運(yùn)動(dòng)估計(jì),并比較所有模式的RDO值以選擇適當(dāng)?shù)木幋a模式。
以宏塊為單位,視頻編碼中宏塊編碼模式選擇的率失真優(yōu)化問(wèn)題的可以描述為
其中期望的總比特?cái)?shù)是T,Di(mn)表示第i個(gè)宏塊在某種選擇參數(shù) mn下編碼產(chǎn)生的失真,Ri(mn)表示第i個(gè)宏塊采用參數(shù)mn編碼所需要的比特?cái)?shù)。給定總碼率R的上限,求每個(gè)宏塊編碼模式的失真度D,并將整幀所要求的碼流以適當(dāng)?shù)牟呗苑峙浣o每個(gè)宏塊。該率失真優(yōu)化編碼模式選擇通過(guò)拉格朗日乘子法求解,用式(2)描述
在H.264/AVC的參考模型中,采用上述基于拉格朗日乘子法的RDO算法進(jìn)行運(yùn)動(dòng)估計(jì)和編碼模式選擇。首先對(duì)所有幀間塊模式進(jìn)行運(yùn)動(dòng)估計(jì),運(yùn)動(dòng)估計(jì)還涉及參考幀的選擇,由式(3)確定
其中s是當(dāng)前塊像素值,mv是當(dāng)前矢量,ref為選擇的參考幀,r(mv,ref)為參考?jí)K的像素值,SAD為當(dāng)前塊與參考?jí)K像素差值的絕對(duì)值和,Rmotion包括運(yùn)動(dòng)矢量與其預(yù)測(cè)值的差值編碼比特和參考幀的編碼比特。
比較所有模式的RDO值,RDO值最小的模式為最佳模式。模式判決的RD函數(shù)計(jì)算公式為
其中:MODE為候選編碼模式,λmode為用于模式選擇的拉格朗日乘子,s是原始編碼塊,c是對(duì)應(yīng)重構(gòu)塊,R(s,c,MODE)為碼流位數(shù)。
ROPE算法使用一種基于像素的遞歸估計(jì)算法[6],將視頻傳輸失真分為由量化引起的編碼失真和傳輸差錯(cuò)引起的差錯(cuò)擴(kuò)散失真以及解碼器端的差錯(cuò)掩蓋失真。在H.264/AVC中,為了得到最小的預(yù)測(cè)誤差,幀間預(yù)測(cè)時(shí)不再采用固定塊模式而是采用可變塊模式對(duì)每個(gè)劃分的塊進(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,此外還采用了幀內(nèi)預(yù)測(cè)技術(shù),16×16的塊有4種幀內(nèi)預(yù)測(cè)模式,4×4塊有4種幀內(nèi)預(yù)測(cè)模式。因此,本文在ROPE算法基礎(chǔ)上,針對(duì)H.264/AVC的多模式幀內(nèi)和幀間編碼特點(diǎn),分別估計(jì)各種模式下的端到端失真。
2.1.1 幀間預(yù)測(cè)的端到端失真 H.264/AVC采用基于塊匹配的運(yùn)動(dòng)預(yù)測(cè)方式,塊的尺寸可以變化。H.264/AVC中總共規(guī)定了7種尺寸塊模式(16×16,16×8,8×16,8×8,8×4,4×8,4×4),用B表示某種尺寸塊模式下的用于運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的基本塊,則基本塊B的尺寸小于或等于16×16像素的宏塊。每個(gè)基本塊B的總失真度為該塊內(nèi)每個(gè)像素失真的累計(jì)和,即
相對(duì)于視頻傳輸時(shí)的包丟失和差錯(cuò)擴(kuò)散失真,預(yù)測(cè)殘差的量化失真(即-)很小,近似為零,這樣估計(jì)量化預(yù)測(cè)殘差的最簡(jiǎn)單有效方法為設(shè)=。用ρ表示數(shù)據(jù)包丟包率。對(duì)于幀間預(yù)測(cè)模式的期望和方差可分別表示為
2.1.2 SKIP模式的端到端失真 SKIP模式的端到端失真估計(jì)類似于幀間預(yù)測(cè)模式,SKIP模式時(shí)每個(gè)宏塊MB的端到端失真可表示為
2.1.3 幀內(nèi)預(yù)測(cè)的端到端失真 相對(duì)于其他視頻標(biāo)準(zhǔn),H.264/AVC引入了幀內(nèi)預(yù)測(cè)技術(shù),對(duì)含有較多細(xì)節(jié)信息的宏塊采用4×4預(yù)測(cè),有9種預(yù)測(cè)模式,對(duì)于較平坦的區(qū)域采用16×16的預(yù)測(cè)模式,有4種預(yù)測(cè)模式。因此計(jì)算?pin的期望和方差時(shí),需要計(jì)算多種幀內(nèi)預(yù)測(cè)模式的預(yù)測(cè)失真。對(duì)于幀內(nèi)編碼模式的每一宏塊,其端到端失真可表示為
在H.264/AVC的參考模型中,采用基于拉格朗日乘子法的RDO算法對(duì)所有幀間塊模式進(jìn)行運(yùn)動(dòng)估計(jì)
其中Dmotion(B)為每個(gè)子塊的端到端失真,λmotion為拉格朗日乘子,λmotion=0.85×Q2,Rmotion(B)為編碼每種子塊的碼率,包括編碼運(yùn)動(dòng)向量和預(yù)測(cè)殘差的碼率,即
采用運(yùn)動(dòng)預(yù)測(cè)后原始圖像與預(yù)測(cè)圖像之間幀差信號(hào)絕對(duì)值的平均值MAD(mean absolute difference)作為圖像內(nèi)容復(fù)雜度的度量[8]。圖1為不同視頻序列各宏塊的RT與MAD的關(guān)系圖,圖1(a)為Claire序列(CIF格式)第6幀的RT與MAD的關(guān)系圖,圖1(b)為Foreman序列(QCIF格式)第34幀的RT與MAD的關(guān)系圖。由圖1的實(shí)驗(yàn)數(shù)據(jù)可知,RT與MAD之間不是簡(jiǎn)單的正比關(guān)系,當(dāng)量化步長(zhǎng)一定時(shí),RT與MAD之間更接近一種常數(shù)項(xiàng)不為零的一般線性關(guān)系。使用量化步長(zhǎng)作為失真的測(cè)度,將率失真方程近似為以下形式的二次模型
圖1 不同序列的RT與MAD關(guān)系圖Fig.1 Relationship between average texture bits and MAD for sequence
其中RT為編碼紋理信息所需的比特?cái)?shù),Q為量化步長(zhǎng),b0,b1,b2為模型參數(shù)。然后根據(jù)實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)特性,在率失真函數(shù)中引入圖像內(nèi)容復(fù)雜度度量MAD[9],則可以獲得新的二次率失真模型為
該模型的表達(dá)形式說(shuō)明,當(dāng)量化步長(zhǎng)一定時(shí),編碼紋理信息所用的比特?cái)?shù)與MAD之間是一種線性關(guān)系,符合實(shí)驗(yàn)觀察的結(jié)果。采用式(20)估計(jì)預(yù)測(cè)殘差的比特率,并用絕對(duì)誤差和SAD近似代替MAD,從而可按照下式估計(jì)
c1=b0,c2=b1Q-1+b2Q-2為該二次率失真模型的參數(shù)。求解RDO的拉格朗日代價(jià)函數(shù),使代價(jià)函數(shù)獲得最小值的運(yùn)動(dòng)矢量為該子塊B的最優(yōu)運(yùn)動(dòng)矢量。估計(jì)每個(gè)宏塊內(nèi)所有子塊B的運(yùn)動(dòng)矢量,即得該宏塊各種塊模式劃分下的運(yùn)動(dòng)矢量。
每個(gè)宏塊幀間預(yù)測(cè)模式的運(yùn)動(dòng)矢量確定后,在編碼端進(jìn)行相應(yīng)的宏塊模式選擇,包括所有幀間預(yù)測(cè)模式、幀內(nèi)預(yù)測(cè)模式和 SKIP模式。H.264/AVC總共要進(jìn)行7種宏塊模式的選擇:SKIP,MB16×16,MB16 ×8,MB8 ×16,SUB8 ×8,INTRA 16×16和INTRA4×4。執(zhí)行編碼模式最終判決采用如下的率失真判決函數(shù)
式中,Dmode(MB)為端到端失真,R(MB)為宏塊編碼產(chǎn)生的比特?cái)?shù),λmode為編碼模式的拉格朗日乘子,λmode=λmotion,將最小 Jmode(MB)所對(duì)應(yīng)的宏塊編碼模式確定為率失真最優(yōu)宏塊編碼模式。
為了驗(yàn)證本算法的有效性,在基于H.264/AVC標(biāo)準(zhǔn)的測(cè)試模型JM15.1中進(jìn)行了模擬實(shí)驗(yàn)。實(shí)驗(yàn)中采用2個(gè)具有代表性的CIF格式的標(biāo)準(zhǔn)測(cè)試序列,F(xiàn)oreman,Paris,分別代表不同的運(yùn)動(dòng)程度和紋理特性,每個(gè)測(cè)試序列編碼的幀數(shù)都是300幀。視頻幀的編碼模式為IPPP,除了第1幀為I幀外,其余幀均為 P幀。差錯(cuò)模式采用VCEG-N79中提供的數(shù)據(jù)包丟包模擬文件,它包含4個(gè)平均包丟失率分別為3%,5%,10%及20%的錯(cuò)誤圖樣[10]。
作為對(duì)比參考,同時(shí)給出了文獻(xiàn)[11]中基于I幀隨機(jī)更新的編碼模式選擇方法(記為MDIU),H.264/AVC的參考模型[12]中率失真優(yōu)化的編碼模式選擇方法(記為RDOMD-H.264),本文的率失真優(yōu)化的編碼模式選擇方法(記為RDOMD-Proposed)的實(shí)驗(yàn)結(jié)果。表1和表2為不同丟包率條件下3種算法的平均PSNR值對(duì)比。從表中可以看出,在各種丟包條件下,本文提出的方法始終優(yōu)于其他兩種方法,表中的平均PSNR增益為RDOMD-Proposed算法和RDOMDH.264算法的差值,可以看出對(duì)于不同的視頻序列本文方法有1~2 dB左右的增益。
表1 不同丟包率的Foreman序列平均PSNR值對(duì)比Tab.1 Performance comparison on average PSNR(dB)for Foreman sequence
表2 不同丟包率的Paris序列平均PSNR值對(duì)比Tab.2 Performance comparison on average PSNR(dB)for Paris sequence
本文的率失真優(yōu)化模式選擇算法需要依次進(jìn)行運(yùn)動(dòng)估計(jì)和編碼模式選擇,為測(cè)試本文中運(yùn)動(dòng)估計(jì)算法的效果,在H.264/AVC的測(cè)試模型中不再進(jìn)行本文提出的幀間運(yùn)動(dòng)估計(jì),只按照本文方法進(jìn)行模式選擇。本文把該測(cè)試方法記為RDOMD-Partial。
圖2 4種方法PSNR性能比較Fig.2 Performance comparison for the four algorithms
圖2 為在各種丟包條件下,4種方法應(yīng)用于Foreman序列的PSNR性能比較。由圖2可以看出,在各種丟包條件下,RDOMD-Partial算法和RDOMD-Proposed的 PSNR性能都優(yōu)于 MD-IU和RDOMD-H.264方法,但 RDOMD-Partial算法的PSNR性能改進(jìn)相對(duì)較小。由此證明本文能取得較高PSNR增益的一個(gè)重要原因是在幀間預(yù)測(cè)模式中采用了更優(yōu)的多模式運(yùn)動(dòng)估計(jì)方法,多模式運(yùn)動(dòng)估計(jì)方法中對(duì)每個(gè)子塊的失真和碼率的準(zhǔn)確估計(jì),提高了整個(gè)編碼模式選擇方法的效果。
圖3為丟包率為10%時(shí),本文算法對(duì)Paris序列300幀壓縮數(shù)據(jù)流的改進(jìn)情況。從這些數(shù)據(jù)流的亮度信號(hào)PSNR值可以看出,本文算法相對(duì)于RDOMD-H.264算法有明顯的改進(jìn),平均性能提高約1 dB,改善了整個(gè)視頻流的差錯(cuò)恢復(fù)性能。
圖3 Paris序列壓縮數(shù)據(jù)流改進(jìn)情況Fig.3 Performance for the Foreman video sequence with 10%packet lost rate
本文結(jié)合 H.264/AVC中的多模式劃分特點(diǎn),提出了一種基于像素遞歸失真估計(jì)的率失真優(yōu)化模式選擇算法。根據(jù)H.264的多種幀內(nèi)和幀間預(yù)測(cè)模式,對(duì)基于像素的遞歸失真估計(jì)方法(ROPE)進(jìn)行改進(jìn),準(zhǔn)確估計(jì)了差錯(cuò)環(huán)境下的視頻失真,采用二次率失真模型預(yù)測(cè)運(yùn)動(dòng)補(bǔ)償編碼的總碼率并進(jìn)行運(yùn)動(dòng)估計(jì)和編碼模式判決。實(shí)驗(yàn)結(jié)果顯示,本文的模式選擇算法提高了整個(gè)率失真優(yōu)化編碼模式選擇方法的有效性,相對(duì)于H.264參考軟件的模式選擇算法,該算法顯著提高了視頻差錯(cuò)恢復(fù)性能,能有效改善視頻傳輸?shù)聂敯粜浴?/p>
[1]ZHANG Z,SUN Q,WONG W C,et al.Rate-distortion-authentication optimized streaming of authenticated video[J].IEEE Transactions on Circuits and Systems for Video Technology,2007,17(5):544-557.
[2]KUMAR S,XU L Y,MANDAL M K,et al.Error resiliency schemes in H.264/AVC standard [J].Elsevier J.of Visual Communication and Image Representation,2006,17(2):570-576.
[3]HE Z H,XIONG H K.Transmission distortion analysis for real-time video encoding and streaming over wireless networks[J].IEEE Transactions on Circuits and Systems for Video Technology,2006,16(9):1051-1062.
[4]LU X,MARTIN G R.Fast H.264/SVC inter-frame and inter-layer mode decisions based on motion activity[J].Electronics Letters,2012,48(2):84-86.
[5]崔力.基于時(shí)域處理的視頻質(zhì)量評(píng)價(jià)方法[J].西北大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,42(1):47-51.
[6]LEONTARIS A,COSMAN P C.Video compression for lossy packet networks with mode switching and dual-frame buffer[J].IEEE Transactions on Image Process,2004,13(7):885-897.
[7]萬(wàn)帥,常義林.一種新的視頻編碼二次率失真模型及其性能分析[J].電子與信息學(xué)報(bào),2007,29(5):1136-1139.
[8]PAUL M,F(xiàn)RATER M R,ARNOLD J F.An Efficient mode selection prior to the actual encoding for H.264/AVC Encoder[J].IEEE Transactions on Multimedia,2009,11(4):581-588.
[9]ZHANG Y,GAO W,LU Y et al.Joint source-channel rate-distortion optimization for H.264 video coding over error-prone networks[J].IEEE Transactions on Multimedia,2007,9(3):445-454.
[10]WENGER S.Common conditions for wire-line,low delay IP/UDP/RTP packetloss resilienttesting[OL].(2001-12-09)[2012-12-12]http://standard.pictel. com/ftp/video-site/0109-San/VCEG-N79r1.doc.
[11]KIM C S,KUO C C J.Feature-Based Intra-/Inter Coding Mode Selection for H.264/AVC [J].IEEE Transactions on Circuits and Systems for Video Technology,2007,17(4):441-453.
[12]KARSTEN S.H.264/AVC reference software[OL].[2012-12-12]http://iphome.hhi.de/suehring/tml/download/old-jm/.