H.264/AVC码率控制中初始量化参数设置的一种改进算法
2010-05-18林其伟张伟龙张志刚
韩 霜,林其伟,张伟龙,饶 琴,张志刚
(华侨大学 信息科学与工程学院,福建 泉州 362021)
快速增长的视频通信需求刺激着视频压缩技术的发展。与已有的其他视频压缩标准相比,最新的H.264/AVC标准因采用多参考帧、运动补偿等新的编码技术,在编码效率上提供了重要的改进。目前,码率控制(RC)作为视频编码的重要组成部分也变得越来越完善,并且得到了学者们的高度关注。
为了在码率和失真之间实现最好的折中性能,在H.264标准中提出了率失真优化(RDO)。然而,RDO使得H.264码率控制更加复杂并且导致了蛋鸡悖论[1],这就对H.264的码率控制算法提出了新的挑战,也是一个非常热门的研究课题。
为了解决蛋鸡悖论的问题,一些码率控制算法已经开发出来[1-3]。LI等人提出了一次编码码率控制算法JVT-G012。鉴于其效率,它已在H.264/AVC的参考软件中被采用。然而在此方案中仍然存在着一些不足之处:(1)不精确的初始QP估计:在JVT-G012中,初始 QP的估计仅仅取决于每像素的比特数(bpp),然而,这种初始化方案没有考虑帧的复杂度,不够精确;(2)缓存控制能力不足:可以看到,缓存器有时会失控导致跳帧,尤其是在低比特率的情况下;(3)不精确的帧层比特控制:有时,一帧的目标比特和它实际产生的编码比特偏差相当大。
所有这些不足都可能引起跳帧、平均PSNR值下降及不良的PSNR波动,特别是对于复杂的视频序列和低目标比特率的情况。本文主要针对第一个不足进行改进。
1 对初始QP设置的改进
1.1 H.264中初始QP设置
在JVT-G012中,码率控制开始时,第一个 GOP的第一个I帧的初始QP值是根据经验预先设定的,在没预先设定时采用如下方法计算:
由bpp的表达式不难看出,对于不同的视频序列,在已设定的目标比特率、帧率及同一图像格式的情况下,计算出来的bpp的值是一样的,再通过式(1)计算就得到相同的初始QP值。即不同视频序列的第一个I帧均采用相同的初始QP值编码。但不同视频序列的复杂度是不同的,其需求的目标比特数也不相同,若采用统一的初始QP值编码,势必会导致码率控制不精确。
1.2 本文的改进算法
目前已有很多针对QP初始化设置的算法研究[4-7],但为了减少算法及编码的复杂度,本文采用基于bpp和I帧复杂度的算法来设置QP的初始值。参考文献[6]提到采用梯度来衡量图像复杂度的方法性能较好,因此本文采用基于梯度的方法来衡量I帧复杂度。梯度G的定义如下:
其中,W和H分别是一帧图像的宽度和高度,Pi,j表示(i,j)处的像素值。
为了更好地看出每个视频序列的第一个I帧复杂度与最佳初始 QP的关系, 选择 foreman、football、news、mobile等视频序列进行试验。使用H.264/AVC的参考软件JM8.6,测试序列为标准QCIF格式,目标码率为64 kb/s,帧率为15 S/s,编码50 S,采用IPPP编码模式。实验结果如图1所示。
图中QP=25的直线是在上述给定的实验条件下通过式(1)计算出来的初始QP值,再次说明了JVT-G012中不同视频采用相同初始QP值。从图中不难看出,在一定的条件下,复杂度低的图像初始QP值应较小,而复杂度高的图像初始QP值应较大。同时也发现G与最佳初始QP的关系比较难拟合。因此根据参考文献[7]定义F(G)函数如下:
对 QCIF和 CIF格式的图像编码时,e1、e2、e3的取值分别为{0.68,-7.21,12.29}和{-0.76,18.87,-91.42}。
本文算法是在式(1)计算出的qp的基础上结合G对初始QP的影响,来确定最终的初始QP值,经大量数据统计,最终的算法如下:
2 后续GOP量化参数的选取
对于序列后续GOP的量化参数,由下式计算得到:
其中,SumPQP表示前一个GOP中所有P帧的量化参数的和,Np是前一个GOP中P帧的总数。
3 实验结果
为了验证本文改进算法的有效性,本文使用了H.264/AVC的参考软件JM8.6并与其码率控制算法进行比较。实验条件:测试序列为标准QCIF格式,目标码率为64 kb/s,帧率为 15帧/s,GOP长度为 25,编码 100帧,采用IPPP编码格式。结果如表1所示。
表1 不同序列测试结果
本文对JVT-G012算法中初始QP的设置进行改进,尽管表达式(4)不够精确,计算出的初始QP值可能不是最佳值,但相对于式(1)仅利用bpp计算得出的初始QP却比较合理。从表1可以看出本文算法可以选择较优的初始QP值,使编码效果在PSNR值及码率控制准确度两方面均优于原算法,尤其对于运动较剧烈的football、mobile序列效果明显。而且从图2和图3中可以看到,本文算法得到的PSNR曲线的波动范围更小。此外,与目前很多相关算法相比,本文算法简单,相对于JVTG012算法,引入的编码复杂度也较小。
[1]LI Z G,PAN F,et al.Adaptive basic unit layer rate control for JVT.JVT-G012,7th meeting,Thailand,2003.
[2]JING X,CHAU L P.A novel intra-rate estimation method for H.264 Rate Control.Proc.of IEEE International Symposium on Circuits and Systems,Greece,2006.
[3]ZHOU S,LI J J.Improvement on rate-distortion performance of H.264 rate control in low bit rate.IEEE Trans.on Circ.and Sys.for Video Tech.,2007,17.
[4]JING Xuan,CHAU L P,SIU W C.Frame complexitybased rate-quantization model for H.264/AVC intraframe rate control[J].IEEE Signal Processing Letters,2008,15.
[5]WANG Han Li,KWONG S.Rate-distortion optimization of rate control for H.264 with adaptive initial quantization parameter Determination[J].IEEE Transactions on Circuits and Systems for Video Technology,2008,18(1).
[6]王海婴,张新发.I帧QP设置算法及其在场景变换中的应用[J].北京邮电大学学报,2008,31(16).
[7]侯晨娟,何小海,曾强宇,等.优化的 H.264/AVC码率控制算法[J].计算机工程与应用,2009,45(24).