彭 婷,楊楷芳,公衍超
(西北工業(yè)大學 電子信息學院,陜西 西安710129)
在當前社會,人們對各種視頻應(yīng)用的需求越來越高,諸如3D視頻、高清視頻的視頻流信息越來越大。同時由于網(wǎng)絡(luò)傳輸環(huán)境異構(gòu)、時變且?guī)捰邢蓿o視頻信息的傳輸帶來了巨大挑戰(zhàn)。碼率控制技術(shù)是保證視頻信息有效傳輸?shù)囊豁楆P(guān)鍵技術(shù),其目的是在滿足帶寬限制的前提下盡量提高解碼端視頻的質(zhì)量。
由于高效的編碼性能,目前分級B幀結(jié)構(gòu)得到越來越廣泛的應(yīng)用。分級B幀結(jié)構(gòu)如圖1所示。圖像組(Group of Picture,GOP)大小為8,共有4個時間層。
圖1 分級B幀編碼結(jié)構(gòu)
黑色表示時間0級,為關(guān)鍵幀,幀類型I幀或P幀。其他時間層幀都為B幀,箭頭表示預(yù)測方向。因為低時間層幀要直接或間接被高時間層幀作為參考,所以分級B幀結(jié)構(gòu)中不同時間層(Temporal Layer,TL)的幀具有不同的重要性,TL越小的幀其重要性越大。
目前有很多典型的碼率控制算法,例如面向MPEG-2的TM5[1]、面 向MPEG-4的VM8[2]和 面 向H.263的TMN8[3],其原理都是通過預(yù)測不同層次的目標比特數(shù)和調(diào)用某種率失真模型來計算量化參數(shù)(Quantization Parameter,QP),實現(xiàn)碼率控制。到了21世紀,H.264[4]的碼率控制成為了國內(nèi)外學者的研究熱點。H.264的碼率控制采用JVT-H017[5]提案所提算法,采用二階R-QP模型來計算碼率控制基本單元(Basic Unit,BU)的QP,用此QP編碼當前BU實現(xiàn)碼率控制。
但上述碼率控制算法只針對P幀用復雜的模型分配目標比特,對于B幀只根據(jù)一些簡單信息判斷其QP在前一編碼P幀QP基礎(chǔ)上增減幅度的方式進行粗糙的碼率控制。對于有B幀結(jié)構(gòu)這些算法的碼率控制性能很差。
針對分級B幀結(jié)構(gòu),提案JVT-W042[6]提出了相應(yīng)的碼率控制算法。對于P幀按式(1)分配目標比特
式中:Ti(j)表示P幀的目標比特數(shù);β為0.5;和)分別為
式中:Ri(j)表示比特率;f是幀率;γ的值通常取為0.5或0.25;Si(j)表示當前緩沖區(qū)狀態(tài);Vi(j)表示目標緩沖區(qū)狀態(tài);i表示一個GOP中的幀數(shù);j表示GOP數(shù);NI,r,NP,r和表示時間l層待編碼的I,P和B幀數(shù)。對不同類型幀進行目標比特分配,即
式中:ρB表示B幀分配的目標比特數(shù)比例,取固定值0.45;ρI表示I幀分配的目標比特數(shù)比例。
W042算法在對B幀分配目標比特數(shù)時,ρB取固定值,即對不同時間級B幀,在關(guān)鍵幀P幀的目標比特數(shù)基礎(chǔ)上的分配比例相同,沒有考慮時間級的影響。事實上在分級B幀結(jié)構(gòu)中,時間層越低的幀被高時間層幀直接或間接作參考的次數(shù)越多,所以其對視頻編碼質(zhì)量影響更大,應(yīng)當分配更多的比特。分級B幀的預(yù)測結(jié)構(gòu)使得一個GOP中的B幀與P幀的比特數(shù)之間存在很大的相關(guān)性,如果能利用這種相關(guān)性,建立準確反映B幀與P幀比特關(guān)系的模型,將大大提高碼率控制性能。
文獻[7-8]基于以上考慮提出相關(guān)算法,分別通過定義可分級因子與權(quán)重因子來決定不同時間級分配的比特數(shù)。但文獻[7]參數(shù)過多且計算與更新過程很復雜,不適于實際應(yīng)用;文獻[8]算法相對于W042算法編碼性能沒有明顯的改善;文獻[9]提出不同B幀之間復雜度關(guān)系,但是沒有對不同時間級B幀的比特數(shù)關(guān)系進行深入研究;文獻[10]研究了不同時間級QP分配策略,但是沒有應(yīng)用碼率控制。
選擇不同內(nèi)容特性的序列“News”,“Paris”和“Mobile”作為實驗序列。編碼序列格式CIF,幀率30 f/s(幀/s),GOP大小為16,編碼幀數(shù)120幀,采用提案JVT-P014[9]中提出的分級B幀結(jié)構(gòu)量化參數(shù)分配方法配置各時間級B幀的QP,關(guān)鍵幀的QP值為21~36,步長為1。編碼器采用H.264標準測試模型JM17.2[11]。在不同QP配置下分別編碼實驗序列,統(tǒng)計編碼后各時間級B幀所用的平均比特數(shù)和關(guān)鍵幀的比特數(shù)。圖2所示為News序列實驗結(jié)果。
圖2 News不同時間級B幀與關(guān)鍵幀之間比特數(shù)關(guān)系
由圖2可知,不同時間級B幀的平均比特數(shù)與關(guān)鍵幀比特數(shù)呈良好的線性關(guān)系,線性擬合為
式中,Ti表示關(guān)鍵幀比特數(shù)。從式(5)可知,隨著時間級的增大,斜率逐漸降低。這是因為編碼設(shè)置中采用了JVT-P014提案的QP配置方法,隨著時間級數(shù)的增大,分配的QP也增大,因此,高時間級的平均比特數(shù)較低時間級的平均比特數(shù)低。
不同時間級B幀的平均比特數(shù)與關(guān)鍵幀比特數(shù)最終可表示為
式中:k表示斜率;b為常數(shù)。
式(6)所示的線性模型充分考慮了不同時間層B幀的特性,若將此模型應(yīng)用到分級B幀結(jié)構(gòu)碼率控制中,可以大大提高碼率控制性能。
提出的算法如圖3所示,具體步驟如下。
圖3 改進算法驗證流程圖
1)GOP層
計算當前GOP剩余總比特數(shù)和起始QP
式中:u(nj,1)是可用帶寬;NGOP是GOP中所有幀的總數(shù);Bc(nj,i)表示編碼第i幀的實際緩沖區(qū)占用率。每編碼完一幀,Tr更新一次。
初始QP按照式(8)計算
式中:QP0表示初始QP;bpp是每個像素的比特數(shù);l1表示時間一級。
2)幀層
采用式(1)來計算P幀目標比特數(shù);根據(jù)當前B幀的序號判斷時間級數(shù),根據(jù)線性模型(6)對不同時間級B幀分配目標比特數(shù)。
P、B幀最終分配的QP由二次R-Q模型來計算
式中:R表示分配給當前幀的目標比特數(shù);c1,c2為模型參數(shù);MADcb表示當前幀的預(yù)測MAD。
式中,MADpb表示前一幀實際MAD。
3)BU層
BU層碼率控制步驟與幀層步驟一致。
實驗設(shè)置與2.1節(jié)實驗基本一致。只是要開啟碼率控制,設(shè)定帶寬分別為256 kbit/s,512 kbit/s,768 kbit/s,1 024 kbit/s,QP的設(shè)定由本文算法給定。模型參數(shù)使用預(yù)編碼并通過最小二乘法計算得到。表1~表3為實驗結(jié)果,其中JVT-W042采用默認的權(quán)重分配參數(shù)。
表1 News JVT-W042提案與改進算法性能對比
表2 Paris JVT-W042提案與改進算法性能對比
從表中數(shù)據(jù)可得,本文提出的基于分級B幀優(yōu)先級的碼率控制算法與JVT-W042相比,對于大部分內(nèi)容特性序列,平均ΔPSNR提高了0.15 dB以上,具有優(yōu)越的編碼性能。
表3 Mobile JVT-W042提案與改進算法性能對比
本文針對現(xiàn)有分級B幀碼率控制算法比特分配算法中存在的問題,提出了一種改進的分級B幀優(yōu)先級的碼率控制算法,討論了不同時間級的B幀分配的目標比特數(shù)與關(guān)鍵幀的比特數(shù)之間存在線性關(guān)系,建立不同時間級B幀比特數(shù)與關(guān)鍵幀比特數(shù)之間的線性模型,將線性模型應(yīng)用到分級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]姜益中,沈禮權(quán),王向前,等.一種基于分層B幀架構(gòu)的高效比特分配算法[J].電視技術(shù),2012,36(1):6-9.
[10]韓公海,萬帥,公衍超.一種低碼率下視頻分級B幀量化參數(shù)的分配方法[J].電視技術(shù),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.