马力群,沈海虹,张其善,张益强
(1.北京航空航天大学 电子信息工程学院,北京 100083;2.中国航天员科研训练中心,北京 100094;3.中国地质大学 地球物理与信息技术学院,北京 100083;4.空军驻洛阳军事代表室,河南 洛阳 471000)
H.264是由ITU和ISO联合开发并公布的最新的国际视频压缩标准,与以往编码标准明显不同的是H.264采用了基于Lagrange优化算法的编码控制模型,其编码性能相比以往的所有编码标准有了重大提高[1].H.264码率控制算法比经典码率控制算法要复杂,除了考虑缓冲区的充盈度和图像复杂度外,还要考虑率-失真模型,并且运动估计中的运动矢量选择及分块模式的选择都要执行率-失真优化(rate distortion optimization,RDO).目前的码率控制主要是对帧层、宏块层的比特数分配进行细致的处理[2-5],而且H.264已经接纳的几个码率控制技术提案如JVT-G012、JVT-H014、JVT-I049、JVT-O016以及相关研究等都采用了平均绝对误差(mean absolute difference,MAD)线性预测模型与二次R-Q模型[6-9].其中,JVT-G012是一种经典的H.264码率控制算法提案.本文通过推导分析得知,在JVT-G012提案中,对Baseline profile下的GOP(group of picture)中剩余未编码P帧分配目标比特采用了平均分配比特的方式,而实际上P编码的主要内容是当前帧与其预测帧之间的差值并经过变换量化和熵编码后的比特数.由于不同P帧压缩出来的比特率是不同的,因而其预分配的比特也应该是不同的.对于低目标码率下的码率控制而言,这极易导致后续编码帧的比特分配不能快速响应帧间变化,进而导致码率控制与目标比特偏差大,图像质量降低.针对上述问题,本文提出了一种基于码率缓冲回馈的码率控制算法.该算法能快速对低目标比特率下的码率调整做出响应,减少了原码率控制算法因调整当前帧码率而对后续编码帧比特分配的影响.
H.264当前帧的目标比特f(ni,j)由基于缓冲占有量计算的比特~f(ni,j)和基于剩余未编码帧计算的比特加权计算,即
其中:
编完GOP中第1个P帧后,复位目标缓存级为TBL(ni,2)=Bc(ni,2),而Bc(ni,2)是编完GOP中第1个P帧后的实际缓存占有.随后各P帧的目标缓存级(target buffer level,TBL)由下式确定:
式中:Sp和Sb是编码相应帧产生的比特数,Qp和Qb是相应的量化参数.因此
1)基于剩余未编码帧的目标比特率计算
2)基于缓冲占有量计算的比特
对于Baseline下IP,…,P结构的序列,式(6)转换为
P帧分配的目标比特为
可以看出,未编码P帧分配的目标比特是采用均匀分配剩余目标比特.在低目标比特率下,如果相邻帧之间差异大,后续帧目标比特率分配也应该有差异,否则,依据下面的二次R-Q模型:
式中:MAD为平均绝对误差,Rreal=R-Rheader,为编码码流中除去编码后信息之外的数据长度.执行码率控制操作即根据分配的比特数计算编码操作的量化值Q.因此,均分比特意味着编码过程中相同的量化值,而不同内容、不同运动复杂度的帧、编码基本单元或MB采用相同的Q量化操作必然导致压缩后实际比特与目标比特偏差较多,而这在面向低目标码率下的RC表现更显著,本文试验部分的分析数据也直接证明了这一点.
基于JVT-G012提案算法的分析,在进行目标比特分配时应考虑实际编码帧的差别以减小实际编码比特率与目标比特率的偏差.文献[10]提出了一种基于单帧图像质量加权的视频质量评价模型,其中加权因子描述了视频序列内运动及场景变化的剧烈程度.平均绝对误差MAD描述了视频内前后帧在时间上的距离,记作me.定义参数k对视频运动信息进行描述,有
令Vei=mei-mei-1,利用上述定义的参数对未编码P帧的目标比特分配进行调节:
Tth为试验门限数据,用以表征运动活跃性是否已经显著.在JVT-G012中,编码当前帧后,当前缓冲占有根据下式计算:
式中:nbits0是理想情况下编码一帧所用的比特,即
而在低目标比特率下,为了更有效和快速的抑制比特率波动,在进行比特率回馈时给出了一种强化的回馈方式,即根据实际编码帧所占比特和理想编码帧所占比特的差异进行缓冲回馈比特的调整,通过回馈比特能够快速反映出当前已经发生了显著的帧间变化,后续帧目标比特分配也自动据此做出相应的调整,进而保证最终编码码率与目标比特率相近.具体如下:
利用常见的视频序列采用JVT-G012提案方法,采用H.264参考代码JM8.6中的码率控制方法,将本文的方法与JVT-G012算法在低目标码率下的码率控制结果进行了比较,如表1~4.实验采用多视频序列、多目标码率进行测试,所有序列按IPP,..PP编码,I帧间隔为30帧.基于低目标比特率及甚低目标比特率要求,实验采用QCIF序列在24 kb/s(甚低比特率),32 kb/s,64 kb/s和96 kb/s下进行测试.试验结果证明了本文所提出的算法能够有效减少实际编码比特率与目标比特率的偏差并取得了不错的PSNR,也进一步说明该算法在面向低目标比特率及甚低目标比特率编码时能在保持图像质量的同时有效抑制码率波动的偏差.为了全面综合比较本文算法与JVT-G012提案,对较高比特率下的码率控制结果也进行了比较.
表1 24 kb/s QCIF测试序列码率控制输出结果Table 1 The results of bit rate control with 24 kb/s QCIF sequences
表2 32 kb/s QCIF测试序列码率控制输出结果Table 2 The results of bit rate control with 32 kb/s QCIF sequences
表3 64 kb/s QCIF测试序列码率控制输出结果Table 3 The results of bit rate control with 64 kb/s QCIF sequences
表4 96 kb/s QCIF测试序列码率控制输出结果Table 4 The results of bit rate control with 96 kb/s QCIF sequences
从实验结果可以看出,本文算法在低目标比特率下Y分量的PSNR明显高于原RC算法(虽然本文在色差分量即UV上PSNR降低,但就影响人眼视觉因素而言,Y分量比UV更重要,而且节约比特约10%).在较高目标比特率时,本文算法与JVTG012算法相比取得了相近的结果,但在低目标比特率下,在PSNR比较接近的情况下,本文算法的比特率略有降低,降低约2%.因此,相比JVT-G012算法而言,本文提供的算法能有效的支持低目标比特率下码率控制,取得理想的码率控制结果和图像质量.另外,本文码率控制部分涉及的MAD信息不需要额外计算,只需要在编码过程中进行运动估计时保留SAD信息即可,MAD可由SAD计算,因此,本文提出的码率控制算法几乎没有增加算法复杂度.
本文提出了一种面向低目标码率的码率控制算法,一方面将视频序列运动及场景变化剧烈程度描述因子引入码率控制过程中的帧比特分配,另一方面采用了强化缓冲回馈方式,有效地对低目标比特率下的码率调整做出响应,减少了原码率控制算法因调整当前帧码率而对后续编码帧比特分配的影响.该算法可广泛适用于低目标码率下的视频码率控制,并作为JVT-G012码率控制算法在低码率下的替代算法.本文提出的算法主要是针对低目标码率及甚低目标码率要求,比特分配调整主要在帧层,而宏块层的比特调整将会进一步提高码率控制的精度,这也将是后续研究的内容.另外,在其他格式视频及目标码率下算法的测试和验证也是进一步研究的内容.
致谢
感谢北京航空航天大学佟雨兵博士与本文作者就有关问题的有益探讨.
[1]GARY S.The H.264/AVC video coding standard and its deployment status and future developments[C]//Proc in VCIP.Beijing,2005:709-719.
[2]MA Siwei,GAO Wen.Rate control for H.264/AVC video coding standard[J].Acta Electronica Sinica,2004,32 (12):2024-2027.
[3]XU Jianfeng,HE Yun.A novel rate control for H.264[C]//Proceedings of the 2004 International Symposium on Circuits and Systems.Vancouver,Canada,2004:809-812.
[4]LIM C S.Verification of JVT-G012[DB/OL].(2010-01-05).http://wftp3.itu.int/av-arch/jvt-site/2003_03_ Pattaya/JVT-G020.doc.
[5]JIAN Mingqiang,YI Xiaoquan.Improved frame-layer rate control for H.264 Using MAD ratio[C]//Proceedings of the 2004 International Symposium on Circuits and Systems.Vancouver,Canada,2004:813-816.
[6]LI Zhengguo,GAO Wen,PAN Feng.Adaptive rate control with HRD consideration[DB/OL].[2010-01-05].http://www.asicfpga.com/site_upgrade/asicfpga/pds/image _pds_files/JVT-H014.doc.
[7]GARY S.Joint model reference encoding methods and decoding concealment methods[DB/OL].[2010-01-05].http://wftp3.itu.int/av-arch/jvt-site/2003_09_SanDiego/ JVT-I049d0.doc.
[8]YUAN Wu,LIN Shouxun,ZHANG Yongdong.Optimum bit allocation and rate control for H.264/AVC[DB/OL].[2010-01-05].http://wftp3.itu.int/av-arch/jvt-site/ 2005_04_Busan/JVT-O016.doc.
[9]JIANG Minqiang,LING Nam.On lagrange multiplier and quantizer adjustment for H.264 frame-layer video rate control[J].IEEE Trans on Circuit Syst for Video Technol,2006,16(5):663-669.
[10]CHANG Qing,TONG Yubing.Video quality assessing model based on single image quality with different weights[J].Journal of Beijing University of Aeronautics and Astronautics,2007,33(3):311-314.