李 琳
(國網遼寧省電力有限公司營口供電公司,遼寧 營口 115000)
?
基于H.264AVC的碼率控制算法研究
李 琳
(國網遼寧省電力有限公司營口供電公司,遼寧 營口 115000)
以H.264/AVC具體的視頻編碼理論為基礎,研究了進行碼率控制的主要技術和實際使用方法,闡述了H.264/AVC率失真優化產生的主要問題,同時做出具體研究。
H.264AVC;碼率控制;分布;算法研究
1.1 H.264編碼主要構架
H.264和一般的視頻編碼有很大不同,H.264編碼的壓縮效率比以前的視頻編碼有很大提升,但H.264編碼技術還是以傳統預測混合編碼方案來進行,特別是和H.26x視頻編碼標準非常相像。它主要利用幀內及時預測方式來進行優化結構里的冗余,利用運動補償方式減少時間上面的冗余,然后經過變換編碼降低頻率區域的冗余,最終完全清理信源統計方面的冗余。這樣視頻壓縮效率得到大幅度提升,同樣的編碼質量條件,H.264要比之前的H.263節省50%的視頻碼率,但仍有一些代價,即它計算的復雜程度要比H.263提高很多,通常情況下會增加3倍左右難度。
1.2 H.264視頻編碼主要技術
H.264在很多方面皆有較大進步,在編碼效率和壓縮效果這兩方面尤為突出,這和很多新編碼技術的使用有密切聯系。H.264視頻編碼主要技術:幀內編碼的預測,幀間編碼的預測和整數量化。同時,這三個主要技術也是決定視頻編碼效果和質量好壞的標準和參照。
2.1 制約輸出碼率的要素
A.圖像的類型。進行視頻編碼的過程中,經常會使用到的編碼圖像幀有三種形式:I幀,P幀與B幀。絕大部分的視頻壓縮標準里面,不一樣的編碼形式幀在比特數上面會有很大不同。I幀使用幀內的編碼模式,主要是使用圖像內空間聯系性做出壓縮的編碼。因為沒有用視頻的順序相關性特征,I幀的壓縮率相對于P幀與B幀,非常的小。P幀和B幀依照臨近幀的時間性使用幀間的預測模式,這樣會節省一些碼流,可以在壓縮效率上得到大幅提升。所以面對同樣的視頻圖像,使用不一樣的幀編碼,相應輸出的比特流也就不一樣,影響碼率波動主要的原因就是這個。
B.圖像的內容。視頻順序里臨近的幀有很強相關性,這就是幀和幀之間的預測可以形成很高壓縮效率原因。但是如果視頻順序發生場景的改變時,臨近的圖像間在運動的內容復雜性上就會出現很大差別,而且這種差別會明顯增大。要確保視頻的圖像質量,當前編碼圖像的幀一定要從幀的預測編碼開始,進行切換到幀內預測的編碼上才可以。因為編碼的預測模式發生了改變,編碼的比特流相應也要迅速增加。在現存的視頻標準里面,運動搜索主要是以“塊”作為基本單位開始。因為數據量有一些具體的限制,我們常在一定的搜尋范圍下開始運動的搜索,若現在的宏塊運動范圍很大,就會出現比特流突然增加的現象。
C.變換的模式。現在各種不同的視頻標準使用整數DCT進行變換。進行變換的原因是把視頻信號分成視覺方面感覺重要性偏大的兩個部分,一個是低頻部分,另一個是高頻部分,它可以有效降低視頻數據的空間域相關性,最終獲得集中能量的效果,這樣就可很好的壓縮視頻編碼。
D.量化具體視頻參數。進行視頻編碼的過程中,量化處理通常和各種變換過程結合使用,目標就是除去圖像一些殘差的數據。通常情況是變換操作能夠把圖像能量重新取得集中,之后再利用量化保留對人眼比較敏感和興奮的內容,去掉不是很重要的部分,就可獲得圖像壓縮效果。因為圖像失真主要在量化這個階段發生,所以選擇量化參數非常重要。量化參數和生成碼率是與圖像質量最有聯系的兩個因素。
2.2 碼率控制視頻編碼的參數
編碼器輸出的碼率需要進行控制,須重視質量與壓縮效率保持平衡的關系,碼率進行減少會影響質量,碼率如果增加又可能降低壓縮的效率。我們可以利用調整一些主要的編碼參數來對視頻編碼進行控制。首先是預測模式。它主要有幀類型與預測塊的相關尺寸。使用不一樣的幀類型和預測模式,輸出的碼率和視頻質量不一樣。通常情況下,幀內預測的輸出碼率很高,視頻質量很好。其次是編碼幀。利用調整編碼幀率讓它和需要比特率進行匹配。因為幀率進行調整的方法主要是對視頻信號時間上的冗余來說的,因此會用在單個圖像的質量情況里。在此情景下,幀率需要進行保持,避免空間視頻在細節上面的粗糙化。
2.3 視頻碼率控制性能的相關指標
視頻圖像經歷了系統的編碼以后,和以前的視頻進行比較可明顯看出發生一些失真現象。若圖像失真不大,人眼在視覺主觀上不容易進行感知。所以要想客觀的評價處理過的圖像質量,要計算峰值信噪比,這被很多學者認為是測試碼率控制關鍵性能最好的方式,PSNR值越高說明圖像的失真越小,相應的這個視頻的質量就越好。峰值信噪比PSNR公式:
3.1 H.264碼率控制算法的具體研究
H.264碼率控制算法里有很多種類的技術,主要有自適應的基本單元層,流體的流量阻塞型,線性MAD模型等等。這幾種技術的使用成功化解了傳統的碼率控制算法和H.264失真優化技術出現的矛盾,可以準確的把握輸出的碼率,將輸出視頻畫面的質量進行大幅度的提高。現在來看適合于H.264碼率控制算法的方案有JVT-F086,JVT-H017等。
幀層碼率的控制。第一要務是要確定出P的比特率是多少,決定目標的緩沖區具體水平是怎樣的。編碼第一個P幀以后,可以獲得目標的緩沖區初始水平值Tbl是:
Tbl(ni,2)=Bc(ni,2)
其中B(ni,2)是編碼第一個P幀以后緩沖區具體的水平。這個P幀目標緩沖區的水平定義是:
3.2 以Cauchy分布碼率的控制計算方法
對基本單元層來講,當設置的基本單元只是一個宏塊的時候,即是宏塊層碼率的控制了。對于H.264里面DCT系數全新的率失真特點,依照之前提出的改進Cauchy分布碼率模型的分配方法就可以了。
3.2.1 宏塊層碼率的控制算法
需要減小研究復雜性,這一節的GOP結構使用了IPP模式。在進行宏塊的碼率分配以前,必須要對現在的宏塊幀做出碼率的平均合理分配。在編碼T幀與GOP的P幀里面,使用固定量化的參數,其他的P幀依照目標的碼率與視頻信源實際的編碼,對其余的宏塊計算出最優量化的參數。如圖1所示,具體步驟詳看圖中標注:
圖1 宏塊層碼率的控制算法Fig.1 Control algorithm of macro block code rate
3.2.2 實驗的探究分析和結論
需要評估及驗證新的算法在編碼性能上的可靠性,在JVT模型JM10.1上實現了以Cauchy分布宏塊層碼率的控制算法,同時和JM10.1使用的算法做出了對比實驗。我們要參考JVT-6012模型的實驗方法,I幀與第一個P幀再量化的參數方面進行的初始化數據分別是24,28 ,32,36,對這些序列做出量化的參數進行編碼固定處理,可得出碼率,將它當作后面的實驗目標。剩下主要編碼的具體參數在設置上可見表1。
表1 主要編碼具體參數Tab.1 Concrete parameter of the main code
碼率進行控制的目標是在有限帶寬環境下,取得比較流暢和良好的視頻畫面質量,這不但要求編碼這些幀的實際比特要和目標比特進行完美的匹配,同時還要求了每幀的圖像都要有很高的峰值信噪比。所以為了可以正確的對算法的性能做出客觀的比較,筆者在不一樣的目標碼率下做出測試,利用碼率的預測平均誤差Eb與平均的峰值信噪反映視頻輸出的碼流在控制精度上和圖像質量上。
對于帶寬受到限制的使用環境,一定要利用合理的碼率控制逐漸緩解視頻碼流的波動,讓編碼輸出的比特率可以較好適應網絡的帶寬,使編碼的質量得到具體改善。
[1] 劉峰.視頻圖像編碼技術及國際標準[M].北京:北京郵電大學出版社,2016.
[2] 鐘玉琢,沈洪,呂小星.多媒體技術及其應用[M].北京:機械工業出版社,2015.
[3] 虞露.AVS一視頻技術概述[J].中國多媒體視訊,2016,(09):25.
[4] 張靜,張春田.視頻傳輸中的碼率控制技術[J].電路與系統學報,2016,(04):55-57.
[5] 袁武,林守勛,牛振東.H.264/AVC碼率控制優化算法[J].計算機學報,2015,(05):63-65.
Research on rate control algorithm based on H.264AVC
LI Lin
(State Grid Yingkou Power Supply Company, Liaoning Electric Power Company, Yingkou 115000, China)
Based on the video coding theory of H.264/AVC, the main techniques and practical application methods of rate control are studied. The main problems of H.264/AVC rate distortion are discussed, and the concrete research is made in this paper.
H.264AVC; Rate control; Distribution; Algorithm research
2016-08-29
李琳(1984-),女,碩士,工程師。
TN
A