彭 婷,楊楷芳,公衍超
(西北工業大學 電子信息學院,陜西 西安710129)
在當前社會,人們對各種視頻應用的需求越來越高,諸如3D視頻、高清視頻的視頻流信息越來越大。同時由于網絡傳輸環境異構、時變且帶寬有限,給視頻信息的傳輸帶來了巨大挑戰。碼率控制技術是保證視頻信息有效傳輸的一項關鍵技術,其目的是在滿足帶寬限制的前提下盡量提高解碼端視頻的質量。
由于高效的編碼性能,目前分級B幀結構得到越來越廣泛的應用。分級B幀結構如圖1所示。圖像組(Group of Picture,GOP)大小為8,共有4個時間層。

圖1 分級B幀編碼結構
黑色表示時間0級,為關鍵幀,幀類型I幀或P幀。其他時間層幀都為B幀,箭頭表示預測方向。因為低時間層幀要直接或間接被高時間層幀作為參考,所以分級B幀結構中不同時間層(Temporal Layer,TL)的幀具有不同的重要性,TL越小的幀其重要性越大。
目前有很多典型的碼率控制算法,例如面向MPEG-2的TM5[1]、面 向MPEG-4的VM8[2]和 面 向H.263的TMN8[3],其原理都是通過預測不同層次的目標比特數和調用某種率失真模型來計算量化參數(Quantization Parameter,QP),實現碼率控制。到了21世紀,H.264[4]的碼率控制成為了國內外學者的研究熱點。H.264的碼率控制采用JVT-H017[5]提案所提算法,采用二階R-QP模型來計算碼率控制基本單元(Basic Unit,BU)的QP,用此QP編碼當前BU實現碼率控制。
但上述碼率控制算法只針對P幀用復雜的模型分配目標比特,對于B幀只根據一些簡單信息判斷其QP在前一編碼P幀QP基礎上增減幅度的方式進行粗糙的碼率控制。對于有B幀結構這些算法的碼率控制性能很差。
針對分級B幀結構,提案JVT-W042[6]提出了相應的碼率控制算法。對于P幀按式(1)分配目標比特

式中:Ti(j)表示P幀的目標比特數;β為0.5;和)分別為


式中:Ri(j)表示比特率;f是幀率;γ的值通常取為0.5或0.25;Si(j)表示當前緩沖區狀態;Vi(j)表示目標緩沖區狀態;i表示一個GOP中的幀數;j表示GOP數;NI,r,NP,r和表示時間l層待編碼的I,P和B幀數。對不同類型幀進行目標比特分配,即

式中:ρB表示B幀分配的目標比特數比例,取固定值0.45;ρI表示I幀分配的目標比特數比例。
W042算法在對B幀分配目標比特數時,ρB取固定值,即對不同時間級B幀,在關鍵幀P幀的目標比特數基礎上的分配比例相同,沒有考慮時間級的影響。事實上在分級B幀結構中,時間層越低的幀被高時間層幀直接或間接作參考的次數越多,所以其對視頻編碼質量影響更大,應當分配更多的比特。分級B幀的預測結構使得一個GOP中的B幀與P幀的比特數之間存在很大的相關性,如果能利用這種相關性,建立準確反映B幀與P幀比特關系的模型,將大大提高碼率控制性能。
文獻[7-8]基于以上考慮提出相關算法,分別通過定義可分級因子與權重因子來決定不同時間級分配的比特數。但文獻[7]參數過多且計算與更新過程很復雜,不適于實際應用;文獻[8]算法相對于W042算法編碼性能沒有明顯的改善;文獻[9]提出不同B幀之間復雜度關系,但是沒有對不同時間級B幀的比特數關系進行深入研究;文獻[10]研究了不同時間級QP分配策略,但是沒有應用碼率控制。
選擇不同內容特性的序列“News”,“Paris”和“Mobile”作為實驗序列。編碼序列格式CIF,幀率30 f/s(幀/s),GOP大小為16,編碼幀數120幀,采用提案JVT-P014[9]中提出的分級B幀結構量化參數分配方法配置各時間級B幀的QP,關鍵幀的QP值為21~36,步長為1。編碼器采用H.264標準測試模型JM17.2[11]。在不同QP配置下分別編碼實驗序列,統計編碼后各時間級B幀所用的平均比特數和關鍵幀的比特數。圖2所示為News序列實驗結果。

圖2 News不同時間級B幀與關鍵幀之間比特數關系
由圖2可知,不同時間級B幀的平均比特數與關鍵幀比特數呈良好的線性關系,線性擬合為

式中,Ti表示關鍵幀比特數。從式(5)可知,隨著時間級的增大,斜率逐漸降低。這是因為編碼設置中采用了JVT-P014提案的QP配置方法,隨著時間級數的增大,分配的QP也增大,因此,高時間級的平均比特數較低時間級的平均比特數低。
不同時間級B幀的平均比特數與關鍵幀比特數最終可表示為

式中:k表示斜率;b為常數。
式(6)所示的線性模型充分考慮了不同時間層B幀的特性,若將此模型應用到分級B幀結構碼率控制中,可以大大提高碼率控制性能。
提出的算法如圖3所示,具體步驟如下。

圖3 改進算法驗證流程圖
1)GOP層
計算當前GOP剩余總比特數和起始QP

式中:u(nj,1)是可用帶寬;NGOP是GOP中所有幀的總數;Bc(nj,i)表示編碼第i幀的實際緩沖區占用率。每編碼完一幀,Tr更新一次。
初始QP按照式(8)計算

式中:QP0表示初始QP;bpp是每個像素的比特數;l1表示時間一級。
2)幀層
采用式(1)來計算P幀目標比特數;根據當前B幀的序號判斷時間級數,根據線性模型(6)對不同時間級B幀分配目標比特數。
P、B幀最終分配的QP由二次R-Q模型來計算

式中:R表示分配給當前幀的目標比特數;c1,c2為模型參數;MADcb表示當前幀的預測MAD。

式中,MADpb表示前一幀實際MAD。
3)BU層
BU層碼率控制步驟與幀層步驟一致。
實驗設置與2.1節實驗基本一致。只是要開啟碼率控制,設定帶寬分別為256 kbit/s,512 kbit/s,768 kbit/s,1 024 kbit/s,QP的設定由本文算法給定。模型參數使用預編碼并通過最小二乘法計算得到。表1~表3為實驗結果,其中JVT-W042采用默認的權重分配參數。

表1 News JVT-W042提案與改進算法性能對比

表2 Paris JVT-W042提案與改進算法性能對比
從表中數據可得,本文提出的基于分級B幀優先級的碼率控制算法與JVT-W042相比,對于大部分內容特性序列,平均ΔPSNR提高了0.15 dB以上,具有優越的編碼性能。

表3 Mobile JVT-W042提案與改進算法性能對比
本文針對現有分級B幀碼率控制算法比特分配算法中存在的問題,提出了一種改進的分級B幀優先級的碼率控制算法,討論了不同時間級的B幀分配的目標比特數與關鍵幀的比特數之間存在線性關系,建立不同時間級B幀比特數與關鍵幀比特數之間的線性模型,將線性模型應用到分級B幀的比特分配中,提高了基于分級B幀的碼率控制算法的性能,本文算法與JVT-W042算法相比,在有效控制碼率的同時,ΔPSNR平均提高0.15 dB。
[1]ISO-IEC/JTC1/SC29/WG11,MPEG-2 video test model,Version 5.0[S].1993.
[2]ITU-T/SG16/VCEG/Q15,Video codec,test model near-term,version 8.0[S].1997.
[3]ISO-IEC/JTC1/SC29/WG11,MPEG-4 video verification model,version 8.0,coding of moving pictures and associated audio[S].1999.
[4]畢厚杰,王健.新一代視頻壓縮編碼標準——H.264/AVC[M].2版.北京:人民郵電出版社,2009.
[5]MA S,LI Z,WU F.Proposed draft of adaptive rate control[EB/OL].[2012-09-02].http://www.docin.com/p-34935775.html.
[6]LEONTARIS A,TOURAPIS A.Rate control reorganization in the joint model(JM)reference software[EB/OL].[2012-09-02].http://wftp3.itu.int/av-arch/jvt-site/2007_04_SanJose/JVT-W042.zip.
[7]XU L,GAO W.Rate control for hierarchical B-picture coding with scaling-factors[C]//Proc.ISCAS 2007.New Orleans,LA:IEEE Press,2007:49-52.
[8]YANG B,MEN A.Rate control for hierarchical B-frames in H.264/AVC[J].The Journal of China Universities of Posts and Telecommunications,2010,17(5):116-121
[9]姜益中,沈禮權,王向前,等.一種基于分層B幀架構的高效比特分配算法[J].電視技術,2012,36(1):6-9.
[10]韓公海,萬帥,公衍超.一種低碼率下視頻分級B幀量化參數的分配方法[J].電視技術,2011,35(17):27-29.
[11]SCHWARZ H,MARPE D,WIEGAND T.JVT-P014,hierarchical B picture[S].2005.
[12]JVT.H.264/14496-10 AVC reference software[EB/OL].[2012-09-02].http://iphome.hhi.de/suehring/tml/download/old_jm/Jun.2009.