唐浩漾,王文慶,王曙光
(西安郵電大學自動化學院,陜西西安 710121)
目前,視頻處理技術廣泛采用了基于預測編碼和變換編碼的塊混合編碼方法。變換編碼通過將空域圖像映射到頻域系數的方法,有效去除了像素間的空間相關性,基于運動估計和運動補償的預測編碼則充分利用了相鄰幀間的時間相關性,獲得了較好的壓縮性能。視頻流經過混合編碼后提高了編碼效率,但在信道發生錯誤的情況下容易產生誤碼擴散現象,并導致重建視頻質量的嚴重下降。
基于率失真優化的編碼模式選擇算法作為一種有效防止幀間誤碼擴散的手段早在H.263視頻編碼中就己經開始采用[1]。在H.264/AVC標準中,率失真優化算法被運用在最佳運動矢量判決、最佳參考幀選擇、宏塊最佳編碼模式判決等方面[2-3]。其中基于率失真優化的宏塊編碼模式采用基于拉格朗日乘子法的率失真模型[4],失真判決的衡量函數為絕對誤差和SAD(sum of absolute difference)[5]。但SAD僅反映時域的差異,不能有效反映傳輸過程和解碼器端可能引起的失真。因此本文提出一種基于像素遞歸失真估計ROPE(recursive optimal per-pixel estimate)的率失真優化模式選擇算法,根據H.264/AVC的多模式劃分特點對ROPE方法進行改進,準確估計了差錯環境下的端到端失真,采用合適的率失真模型預測運動補償編碼的總碼率并進行運動估計,并比較所有模式的RDO值以選擇適當的編碼模式。
以宏塊為單位,視頻編碼中宏塊編碼模式選擇的率失真優化問題的可以描述為

其中期望的總比特數是T,Di(mn)表示第i個宏塊在某種選擇參數 mn下編碼產生的失真,Ri(mn)表示第i個宏塊采用參數mn編碼所需要的比特數。給定總碼率R的上限,求每個宏塊編碼模式的失真度D,并將整幀所要求的碼流以適當的策略分配給每個宏塊。該率失真優化編碼模式選擇通過拉格朗日乘子法求解,用式(2)描述

在H.264/AVC的參考模型中,采用上述基于拉格朗日乘子法的RDO算法進行運動估計和編碼模式選擇。首先對所有幀間塊模式進行運動估計,運動估計還涉及參考幀的選擇,由式(3)確定

其中s是當前塊像素值,mv是當前矢量,ref為選擇的參考幀,r(mv,ref)為參考塊的像素值,SAD為當前塊與參考塊像素差值的絕對值和,Rmotion包括運動矢量與其預測值的差值編碼比特和參考幀的編碼比特。
比較所有模式的RDO值,RDO值最小的模式為最佳模式。模式判決的RD函數計算公式為

其中:MODE為候選編碼模式,λmode為用于模式選擇的拉格朗日乘子,s是原始編碼塊,c是對應重構塊,R(s,c,MODE)為碼流位數。
ROPE算法使用一種基于像素的遞歸估計算法[6],將視頻傳輸失真分為由量化引起的編碼失真和傳輸差錯引起的差錯擴散失真以及解碼器端的差錯掩蓋失真。在H.264/AVC中,為了得到最小的預測誤差,幀間預測時不再采用固定塊模式而是采用可變塊模式對每個劃分的塊進行運動估計和運動補償,此外還采用了幀內預測技術,16×16的塊有4種幀內預測模式,4×4塊有4種幀內預測模式。因此,本文在ROPE算法基礎上,針對H.264/AVC的多模式幀內和幀間編碼特點,分別估計各種模式下的端到端失真。
2.1.1 幀間預測的端到端失真 H.264/AVC采用基于塊匹配的運動預測方式,塊的尺寸可以變化。H.264/AVC中總共規定了7種尺寸塊模式(16×16,16×8,8×16,8×8,8×4,4×8,4×4),用B表示某種尺寸塊模式下的用于運動補償預測的基本塊,則基本塊B的尺寸小于或等于16×16像素的宏塊。每個基本塊B的總失真度為該塊內每個像素失真的累計和,即



相對于視頻傳輸時的包丟失和差錯擴散失真,預測殘差的量化失真(即-)很小,近似為零,這樣估計量化預測殘差的最簡單有效方法為設=。用ρ表示數據包丟包率。對于幀間預測模式的期望和方差可分別表示為

2.1.2 SKIP模式的端到端失真 SKIP模式的端到端失真估計類似于幀間預測模式,SKIP模式時每個宏塊MB的端到端失真可表示為


2.1.3 幀內預測的端到端失真 相對于其他視頻標準,H.264/AVC引入了幀內預測技術,對含有較多細節信息的宏塊采用4×4預測,有9種預測模式,對于較平坦的區域采用16×16的預測模式,有4種預測模式。因此計算?pin的期望和方差時,需要計算多種幀內預測模式的預測失真。對于幀內編碼模式的每一宏塊,其端到端失真可表示為



在H.264/AVC的參考模型中,采用基于拉格朗日乘子法的RDO算法對所有幀間塊模式進行運動估計

其中Dmotion(B)為每個子塊的端到端失真,λmotion為拉格朗日乘子,λmotion=0.85×Q2,Rmotion(B)為編碼每種子塊的碼率,包括編碼運動向量和預測殘差的碼率,即

采用運動預測后原始圖像與預測圖像之間幀差信號絕對值的平均值MAD(mean absolute difference)作為圖像內容復雜度的度量[8]。圖1為不同視頻序列各宏塊的RT與MAD的關系圖,圖1(a)為Claire序列(CIF格式)第6幀的RT與MAD的關系圖,圖1(b)為Foreman序列(QCIF格式)第34幀的RT與MAD的關系圖。由圖1的實驗數據可知,RT與MAD之間不是簡單的正比關系,當量化步長一定時,RT與MAD之間更接近一種常數項不為零的一般線性關系。使用量化步長作為失真的測度,將率失真方程近似為以下形式的二次模型

圖1 不同序列的RT與MAD關系圖Fig.1 Relationship between average texture bits and MAD for sequence

其中RT為編碼紋理信息所需的比特數,Q為量化步長,b0,b1,b2為模型參數。然后根據實驗數據的統計特性,在率失真函數中引入圖像內容復雜度度量MAD[9],則可以獲得新的二次率失真模型為

該模型的表達形式說明,當量化步長一定時,編碼紋理信息所用的比特數與MAD之間是一種線性關系,符合實驗觀察的結果。采用式(20)估計預測殘差的比特率,并用絕對誤差和SAD近似代替MAD,從而可按照下式估計

c1=b0,c2=b1Q-1+b2Q-2為該二次率失真模型的參數。求解RDO的拉格朗日代價函數,使代價函數獲得最小值的運動矢量為該子塊B的最優運動矢量。估計每個宏塊內所有子塊B的運動矢量,即得該宏塊各種塊模式劃分下的運動矢量。
每個宏塊幀間預測模式的運動矢量確定后,在編碼端進行相應的宏塊模式選擇,包括所有幀間預測模式、幀內預測模式和 SKIP模式。H.264/AVC總共要進行7種宏塊模式的選擇:SKIP,MB16×16,MB16 ×8,MB8 ×16,SUB8 ×8,INTRA 16×16和INTRA4×4。執行編碼模式最終判決采用如下的率失真判決函數

式中,Dmode(MB)為端到端失真,R(MB)為宏塊編碼產生的比特數,λmode為編碼模式的拉格朗日乘子,λmode=λmotion,將最小 Jmode(MB)所對應的宏塊編碼模式確定為率失真最優宏塊編碼模式。
為了驗證本算法的有效性,在基于H.264/AVC標準的測試模型JM15.1中進行了模擬實驗。實驗中采用2個具有代表性的CIF格式的標準測試序列,Foreman,Paris,分別代表不同的運動程度和紋理特性,每個測試序列編碼的幀數都是300幀。視頻幀的編碼模式為IPPP,除了第1幀為I幀外,其余幀均為 P幀。差錯模式采用VCEG-N79中提供的數據包丟包模擬文件,它包含4個平均包丟失率分別為3%,5%,10%及20%的錯誤圖樣[10]。
作為對比參考,同時給出了文獻[11]中基于I幀隨機更新的編碼模式選擇方法(記為MDIU),H.264/AVC的參考模型[12]中率失真優化的編碼模式選擇方法(記為RDOMD-H.264),本文的率失真優化的編碼模式選擇方法(記為RDOMD-Proposed)的實驗結果。表1和表2為不同丟包率條件下3種算法的平均PSNR值對比。從表中可以看出,在各種丟包條件下,本文提出的方法始終優于其他兩種方法,表中的平均PSNR增益為RDOMD-Proposed算法和RDOMDH.264算法的差值,可以看出對于不同的視頻序列本文方法有1~2 dB左右的增益。

表1 不同丟包率的Foreman序列平均PSNR值對比Tab.1 Performance comparison on average PSNR(dB)for Foreman sequence

表2 不同丟包率的Paris序列平均PSNR值對比Tab.2 Performance comparison on average PSNR(dB)for Paris sequence
本文的率失真優化模式選擇算法需要依次進行運動估計和編碼模式選擇,為測試本文中運動估計算法的效果,在H.264/AVC的測試模型中不再進行本文提出的幀間運動估計,只按照本文方法進行模式選擇。本文把該測試方法記為RDOMD-Partial。

圖2 4種方法PSNR性能比較Fig.2 Performance comparison for the four algorithms
圖2 為在各種丟包條件下,4種方法應用于Foreman序列的PSNR性能比較。由圖2可以看出,在各種丟包條件下,RDOMD-Partial算法和RDOMD-Proposed的 PSNR性能都優于 MD-IU和RDOMD-H.264方法,但 RDOMD-Partial算法的PSNR性能改進相對較小。由此證明本文能取得較高PSNR增益的一個重要原因是在幀間預測模式中采用了更優的多模式運動估計方法,多模式運動估計方法中對每個子塊的失真和碼率的準確估計,提高了整個編碼模式選擇方法的效果。
圖3為丟包率為10%時,本文算法對Paris序列300幀壓縮數據流的改進情況。從這些數據流的亮度信號PSNR值可以看出,本文算法相對于RDOMD-H.264算法有明顯的改進,平均性能提高約1 dB,改善了整個視頻流的差錯恢復性能。

圖3 Paris序列壓縮數據流改進情況Fig.3 Performance for the Foreman video sequence with 10%packet lost rate
本文結合 H.264/AVC中的多模式劃分特點,提出了一種基于像素遞歸失真估計的率失真優化模式選擇算法。根據H.264的多種幀內和幀間預測模式,對基于像素的遞歸失真估計方法(ROPE)進行改進,準確估計了差錯環境下的視頻失真,采用二次率失真模型預測運動補償編碼的總碼率并進行運動估計和編碼模式判決。實驗結果顯示,本文的模式選擇算法提高了整個率失真優化編碼模式選擇方法的有效性,相對于H.264參考軟件的模式選擇算法,該算法顯著提高了視頻差錯恢復性能,能有效改善視頻傳輸的魯棒性。
[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]崔力.基于時域處理的視頻質量評價方法[J].西北大學學報(自然科學版),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]萬帥,常義林.一種新的視頻編碼二次率失真模型及其性能分析[J].電子與信息學報,2007,29(5):1136-1139.
[8]PAUL M,FRATER 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/.