摘 要: 通过分析在H.264/AVC中预测初始量化参数的方法过于简单,导致视频序列整体编码量化参数和重建图像PSNR的波动,甚至PSNR急剧下降的问题,利用基于Cauchy分布的R-Q模型,结合I帧图像复杂度建立R-C-Q模型,提出了自适应的初始量化参数预测算法。该算法能够根据不同视频序列的特性,准确地预测I帧的初始量化参数,有效地抑制视频序列的整体量化参数及PSNR的波动,从而提高码率控制精度和重建图像质量。
关键词: H.264/AVC;码率控制;初始量化参数
随着数字视频技术的快速发展,在人们日常工作生活中出现了形式多样的视频应用,这些视频业务给现有的存储资源和通信系统带来了巨大的挑战。H.264/AVC是目前使用最广泛的视频编码标准,因在码率控制和率失真优化过程之间存在编码参数的依赖关系,使其码率控制技术也更加复杂,如何提高码率控制精度,更好地平衡编码效率和图像质量之间的关系,成为码率控制领域的研究热点。
1 初始量化参数分析
初始量化参数(QP0)是指编码视频序列的I帧所使用量化参数,在H.264/AVC的JVT-G012码率控制算法提案中,初始量化参数QP0采用两种方法进行预测:(1)预先定义的方法,QP0取值范围为0~51;(2)在没有预先定义的情况下,在参考软件JM10.1中,QP0根据每像素的比特数bpp(bits per pixel)将信道分成4个级别,不同的级别采用不同的初始量化参数,通过式(1)计算,bpp由式(2)确定。
其中,Rtarget为当前可用的信道带宽,即目标比特数;f为编码时的帧率;Npixel为每帧图像的像素个数。l1、l2、l3为经验常数,对于QCIF视频格式,取l1=0.1,l2=0.3,l3=0.6;CIF视频格式,取l1=0.2,l2=0.6,l3=1.2;其他比CIF大的视频格式,取l1=0.6,l2=1.4,l3=2.4。由式(1)、(2)可知,对于相同视频格式不同图像内容的视频序列,在信道带宽、帧率相同的情况下,将使用相同的初始量化参数。
在编码前预定义QP0,如果取值过小,编码I帧将占用过多的目标比特数,为了避免编码缓冲区上溢,在编码GOP中后续的图像时,就会持续增加量化参数,以减少后续图像编码码率,导致图像质量急剧下降。另一方面,如果取值过大,就会浪费信道带宽,甚至出现缓冲区下溢造成解码端延迟,同时增加I帧的图像失真,由于I帧是后续帧的参考帧,这些后续帧的重建图像质量也会相应下降。显然,在视频编码之前预先设定QP0,不能充分考虑视频序列的特征,要设定合适的QP0是比较困难的。
在不预先设定QP0的情况下,分别选取Akiyo和Foreman两个标准视频序列,实验参数设置为信道带宽64 Kb/s,帧率30 f/s,视频格式QCIF,序列结构Ippp,编码帧数100。实验结果如图1和图2所示。
如图1所示,两个序列都采用了相同的QP0(QP0=35)。对于Foreman序列,QP0接近序列的平均量化参数(QPave=36),整个序列的量化参数和PSNR波动不大,如图2所示。而Akiyo序列的平均量化参数为25,QP0与QPave之间的差为10,导致整个序列的PSNR和QP的剧烈波动。
由于视频序列中I帧的图像复杂度不同,采用相同的方式确定初始量化参数,势必会影响码率控制的精度,造成重建图像质量的波动甚至下降。
2 I帧的R-C-Q模型
视频序列中I帧没有参考帧,使用帧内预测方式编码,因此应考虑不同图像的特性来预测QP0。通常在给定相同的信道带宽时,对于空间纹理复杂或运动剧烈的视频序列,需要较大的QP0,反之则对于空间内容简单或运动缓慢的视频序列,则选择较小的QP0。
参考文献[1]中提出Cauchy分布比Laplace分布更接近残差图像DCT变换系数的实际分布情况,尤其是帧内编码的图像,使用基于Cauchy分布的熵函数能使码率估计的准确度得到很大提高,Cauchy熵函数可通过R-Q模型近似得到。
基于Cauchy分布的R-Q模型为:
其中,Rtotal为目标比特数,包括头比特数和纹理比特数;Qstep为量化步长;C为模型参数,与编码图像的内容相关,本文将其表示为图像复杂度;?茁(?茁<0)为与DCT系数分布相关的常数,当编码I帧时,取值为{-0.75,-0.8,-0.85}。
假设在时间间隔ΔT内编码帧数为N,信道带宽为B,C?琢表示N个帧的平均复杂度,则有:
为了验证式(7)中QPave的有效性,选择QCIF(Akiyo、Foreman、Mobile)及CIF(News、Waterfall、Bus)格式的标准测试序列,这些序列包含从简单到复杂的纹理细节和从低到高的运动强度。在不同的信道带宽下,对每个序列(QCIF:60~800 kb/s,CIF:80~1 600 kb/s)进行测试。图3所示为序列实际编码的QPave和信道带宽B的线性拟合结果。图中圆点代表序列在不同带宽下编码的QPave;相关系数R2表示线性拟合的准确度,其值越接近1说明样本值越接近线性关系。从实验结果可以看到在不同序列的和信道带宽之间接近线性关系,说明最佳QP0可以通过式(6)得到。
3 I帧图像复杂度
为了得到最佳QP0,在编码视频序列前首先要确定I帧的图像复杂度。目前有多种图像复杂度测量方法,在参考文献[3]中将这些方法分为4类:基于方差的方法、DCT系数的方法、边缘强度的方法和梯度的方法,这些方法在编码前都不需要进行预处理,对4种方法的计算复杂度和性能进行比较,结果显示基于梯度的方法最有效。通常图像的梯度用于测量图像局部的变化,图像的亮度和色度直方图则反映了图像全局的变化,参考文献[4]中用实验验证了通过结合图像局部和全局的变化信息,其结果能更好地表示编码图像的复杂度。因此,本文借签参考文献[4]中方法,结合梯度和直方图计算I帧的图像复杂度。
如图3所示,在相同的信道带宽下,QCIF和CIF序列的QP0明显不同,即使是相同格式序列的QP0也存在较大差异,QP0的差异是由I帧的图像复杂度不同造成的。用式(11)计算所有测试序列的最佳QP0,实验结果如图4所示,最佳QP0呈线性分布,这说明式(11)能够准确地反映不同内容视频序列I帧的特性。通过线性拟合方法得到式(11)中的参数?准和?渍,分别为?准=-6.532,?渍=51.44。参数?滋可根据应用场景进行调整,对于空间内容简单或运动缓慢的场景,选择较小值;反之,取较大值。
4 实验结果及分析
将本文算法写入JVT-G012参考软件JM10.1中,选取QCIF和CIF格式的视频序列,参数设置如表1所示。QCIF和CIF序列的信道带宽分别设定为60~512 kb/s及120~1 024 kb/s。实验结果如表2所示。
从表2可以看出,本文算法的平均码率误差?驻R降低了0.438%,说明能够更准确地控制编码输出码率。对于不同格式和不同图像复杂度的序列,在不预定义QP0时,本文算法得到的初始QP0非常接近JM10.1算法的平均QP,两者最大误差仅为3,说明本文的QP0更加准确。本文算法有效提高了重建图像质量,PSNR的增益最高达到1.31 dB,平均PSNR增益达到0.61 dB,由于本文算法在编码前仅需要计算视频序列第一个I帧的图像复杂度,计算复杂度增加有限,序列每帧的编码时间仅比JM10.1平均增加了0.47%。
本文分析了JVT-G012码率控制提案中预测初始量化参数的方法过于简单、没有考虑不同I帧图像特性的问题,提出了基于Cauchy分布R-Q模型的自适应初始量化参数预测方法。实验结果表明,本文算法减少了视频序列整体的量化参数和PSNR的波动,在提高码率控制精度的同时,保持了稳定的重建图像质。
参考文献
[1] KAMACI N, ALTINBASAK Y, MERSEREAU R M. Frame bit allocation for the H.264/AVC video coder via cauchy density-based rate and distortion models[J]. IEEE Transactions on Circuits and System for Video Technology, 2005,15(8):994-1006.
[2] Ma Siwei, Gao Wen, Lu Yan. Rate-distortion analysis for H.264/AVC videocoding and its application to rate control[J]. IEEE Transactions on Circuits and System for Video Technology, 2005,15(12):1533-1544.
[3] KIM W J, YI J W, KIM S D. A bit allocation method based on pictureactivity for still image coding[J].IEEE Transactions on Image Processing,1999,8(7):974-977.
[4] Zhou Yimin, Sun Yu, Feng Zhidan, et al. New rate-distortion modeling and efficient rate controlfor H.264/AVC video coding[J]. Signal Processing: Image Communication,2009,24(5):345-356.