引言:本文在H.264碼率控制機制的基礎上,提出了一種基于平均絕對差(MAD)比率的跳幀算法。該算法將圖像的MAD比率和緩沖器占用量作為跳幀判別標準,為運動劇烈的圖像保留緩沖器空間。實驗結果表明,本算法一方面可以有效地降低緩沖器的占用量和節省編碼時間,從而在硬件方面表現為降低對緩沖器大小等方面的要求,達到降低成本的目的;另一方面,可以保證圖像序列連續性和提高圖像質量。
大多數視頻壓縮技術和標準產生的比特率都是可變的,為了能夠在恒定比特率的通信信道和網絡中傳輸,需要在碼率控制中引入一個緩沖區機制,先將壓縮后的碼流存入緩沖區,然后以恒定碼率輸出。因此,碼率控制的任務就是在保證緩沖器不產生上溢和下溢的前提下,通過調整一些編碼參數(如量化參數)來使編碼比特率達到期望值。
跳幀策略是碼率控制算法中防止緩沖器上溢的手段。以往的跳幀算法往往確定某一個固定的限值(通常為80%)[1],當緩沖器的占用量到達這個限值時,不考慮下一幀的任何情況就把它跳過。這種跳幀算法的缺陷有兩點:當緩沖器占用量達到80%時盲目地跳過下一幀,有可能錯過運動劇烈的圖像而導致譯碼后圖像序列質量的下降;當緩沖器占用量未達到80%,但卻很接近80%時,如果下一幀圖像運動比較劇烈的話,較多的編碼比特數就會導致緩沖器發生嚴重的上溢。
本文提出了基于MAD比率的跳幀判斷準則,將當前緩沖器的占用量與每一幀圖像的運動劇烈程度結合起來,對緩沖器的占用量設定幾個閾值,并且用MAD比率來對每幅圖像的運動劇烈程度進行標識。對于某個MAD比率的圖像來說,當緩沖器占用量達到跳幀判別準則中規定的閾值時,即將該幀跳過。這樣就可以通過跳過一些運動平緩的圖像,而為運動劇烈的圖像保留緩沖器空間,從而保證圖像序列的連續性,提高圖像質量。
碼率控制算法
幀層的碼率控制算法
幀層的碼率控制分為兩個階段:第一階段為每一個P幀計算一個目標比特數,第二階段持續地更新率失真模型的各個參數并且進行跳幀控制。
假設只有一組圖像(GOP),并且圖像序列的編碼順序是第一幀為I幀,后面為連續的P幀。假設N表示組圖中所有幀的數目,nj表示組圖中的第j幀,Bc(nj)表示編碼第j幀圖像后緩沖器實際的占用量,A(nj)表示編碼第j幀時實際產生的比特數,Bs表示緩沖器大小,Tbl(nj)表示第j幀被編碼后緩沖器的目標值,Rr表示剩余比特數,Nr表示組圖中剩余的幀數。因此,第j+1幀圖像被編碼后緩沖器的實際占用量Bc(nj+1)可以表示為[2][3]:
假設第一個P幀的量化參數等于組圖的量化參數,所以有:
其它P幀被編碼后緩沖器的目標值由下式給出:
因此,考慮緩沖器占用量而得到的目標比特數Tbuff可以表示為:
其中gama是個常量,它的值通常為0.75。
考慮剩余比特數而得到的目標比特數Tr可以表示為:
所以,最后的目標比特數T可以通過Tbuff和Tr的加權和得到:
試驗中β=0.5[2]。
宏塊層的碼率控制
在宏塊層,根據每一個宏塊的MAD來給每一個宏塊分配比特數并且求出量化參數。宏塊層的碼率控制分為三個步驟:首先為每一個宏塊分配比特數;其次根據目標比特數計算出量化參數;最后在對每一個宏塊編碼后,進行參數的預測。
a.比特數的分配
假設Nm表示一幀中宏塊的個數,Ave_MAD表示一幀圖像中各個宏塊的MAD的平均值,MAD[i][j]表示第i幀中第j個宏塊的MAD。因此第i幀中第j個宏塊所分配的目標比特數b[i][j]可表示為:
b.計算各個宏塊的量化參數
率失真函數是許多碼率控制算法的核心,它將量化參數Q與編碼比特數R聯系起來,其關系式為:
其中S表示宏塊的編碼復雜度,X1和X2是率失真模型參數。Q值較小時,分配較多的編碼比特數;Q值較大時,則分配較少的編碼比特數。
c.模型參數的預測
在對每一個幀進行編碼后,都要根據前面n幀的編碼結果對模型參數(X1、X2)進行更新。由上式可以得出:
最小均方誤差可以表示為:
該等式成立的條件是:(a)n>1,(b)所有的n個Q值不完全相同。
基于MAD比率的跳幀算法
在恒定比特率應用中,編碼器和傳輸信道間的緩沖器起了十分重要的作用。編碼器應該使緩沖器的占用量保持在50%左右。如果緩沖器發生上溢,則會損失一些數據。相反,如果緩沖器的占用量過低就會浪費帶寬。當緩沖器的值很高時,避免上溢的方法就是跳過一個完整的幀。
由以往的經驗可以知道,大多數的跳幀過程都是由于緩沖器上溢引起的。與緩沖器的目標值即緩沖器大小的一半相比較,實際中緩沖器發生上溢的可能性遠遠大于發生下溢的可能性。緩沖器的占用量低于緩沖器大小25%的情況是非常少見的。因此,有必要把緩沖器的占用量控制在50%左右,以保證緩沖器的占用量有足夠的上升空間。
下面詳細介紹一下基于MAD比率的跳幀算法:
假設圖像序列的編碼順序為第一幀為I幀,后面是連續的P幀,ω1、ω2、ω3表示緩沖器占用百分比;ξ1、ξ2、ξ3表示圖像的運動劇烈程度,它等于當前幀圖像的MAD預測值與整個組圖中所有已編碼P幀圖像的平均MAD的比值(見下面的公式)。
基于MAD比率的跳幀算法的思想是盡量跳過運動平緩的幀而保存運動劇烈的幀。對于運動平緩的圖像而言,緩沖器的占用量不用達到80%,而只要達到一個預先設定的限值時就將它跳過。運動越劇烈,對應的限值就越高。運動的劇烈程度ξ(i)用下式表示:
其中,MADPi表示第i幀圖像的MAD預測值,MADAi表示第i幀圖像的MAD實際值。
當ξ(i)小于ξ1時,只要緩沖器的占用量達到ω1,就將該幀跳過;當ξ(i)小于ξ2時,只要緩沖器的占用量達到ω2,就將該幀跳過;當ξ(i)小于ξ3時,只要緩沖器的占用量達到ω3,就將該幀跳過;當緩沖器的占用量達到80%時,無論下一幀圖像運動劇烈與否,都將它跳過。
由于I幀和前面幾個P幀對于運動補償的估計比較重要,跳過這些幀容易影響到后面的幀,因此,本文的跳幀算法從第三個P幀,即第四幀開始;而對前三幀的處理方法是:對I幀不采取跳幀,對第一和第二個P幀只有當緩沖器的占用量達到80%時才跳過。
對于需要跳過的幀將不進行編碼,而是用上一幀圖像來代替。
圖1為基于MAD比率的跳幀算法流程圖。其中Q表示量化參數;N表示幀編號。
試驗結果
本節根據第三部分基于MAD比率跳幀算法的思路,將該新型跳幀算法的實驗結果與傳統跳幀算法的試驗結果相比較。
實驗采用JM9.6的實驗平臺,實驗環境是MicosoftVisualC++6.0。官方網站
http://iphome.hhi.de/suehring.tml中下載到JM的各個版本的程序。實驗中所使用的計算機的CPU為Pentium41.5G;內存大小為256M。
采用的圖像序列為Mobile和Tempete,二者均為CIF格式。圖像序列的編碼順序為IPP...IPP...,每隔30個P幀有一個I幀。
下面從緩沖器占用量、編碼時間、運動估計時間和SNR四個方面給出本文的跳幀算法與以往算法的對比實驗結果。
緩沖器占用量的比較
圖2和圖3表示對Tempete序列和Mobile序列每一幀進行編碼后緩沖器中的比特數。圖中,橫坐標表示編碼幀數目,縱坐標表示緩沖器占用量;實線表示的是使用原始的跳幀算法時緩沖器占用量的曲線圖,*線表示的是采用基于MAD比率的跳幀算法后緩沖器占用量的曲線圖。從圖2和圖3可以看出,在第0、30、60和90幀處,緩沖器占用量急劇
上升,這是由于在這四處均為I幀,編碼比特數比較大,緩沖器的輸入遠遠大于輸出。對于每個I幀后的P幀,由于編碼比特數比較小,緩沖器的輸入小于輸出,所以緩沖器的占用量逐漸減少。圖2和圖3均表明:基于MAD比率的跳幀算法可以降低緩沖器的占用量、避免了緩沖器發生上溢。
編碼時間、運動估計時間和SNR的比較
表1和表2給出對Tempete序列和Mobile序列編碼,傳統跳幀算法與基于MAD比率的跳幀算法在編碼時間、運動估計時間和SNR三個方面性能的比較。
從表1和表2可以看出,基于MAD比率的跳幀算法可以較大幅度地縮短編碼時間和運動估計時間。在Tempete序列中,編碼時間的改進量高達12.73%。在Mobile序列中,運動估計時間的改進量達到了8.58%。
此外,基于MAD比率的跳幀算法使得Y、U和V三個分量的SNR值均有所提高。由于在解碼過程中是用前面一個已經編碼的幀來代替跳過的幀,所以對于一個運動比較劇烈的幀而言,若按照傳統跳幀算法將其跳過的話,將會影響到解碼端圖像恢復的連續性,從而造成圖像質量的下降。而本文提出的跳幀算法其實質就是通過放棄運動平緩的幀,為運動劇烈的幀保留緩存空間。從而提高了整個圖像序列的SNR值。
參考文獻:
[1]MinqiangJiang,NamLing.OnEnhancingH.264/AVCVideoRateControlbyPSNR-BasedFramecomplexityEstimation.IEEETransactionsonConsumerElectronics,V.51,No.1,February
2005:P281-286.
[2]NamryeSon,YoonjeongShin,GueesangLee.ANovelRateControlSchemeforH.264VideoCodingusingAdaptiveQuantizationParameter.ProceddingsofSPIE.2004,V.5600:P70-77.
[3]景華,何蕓.一種低復雜度碼率控制究.計算機工程與應用.2003,V(02):P116-122.
[4]ThomasMeierandKingN.Ngan.ImprovedsingleVOratecontrolforconstantbit-rateapplicationsusingMPEG-4.ProcessingofSPIE.2000,V.4067:P64-75.
[5]MingiangJiang,XiaoquanYi,NamLing.Improve-
dFrame-LayerRateControlforH.264usingMADratio.Proceedingsofthe2004InternationalSymposium.
May2004,V.3:P813-816.
:
-
緩沖器
+關注
關注
6文章
1924瀏覽量
45560 -
Mobile
+關注
關注
0文章
518瀏覽量
26528 -
SNR
+關注
關注
3文章
196瀏覽量
24466
發布評論請先 登錄
相關推薦
評論