H.264/AVC码率控制中初始量化参数设置的改进算法

时间:2011-07-09

  摘   要: 针对H.264/AVC码率控制算法,提出了一种基于I帧复杂度和每像素的比特数的初始量化参数设置算法。实验结果表明,与H.264/AVC标准参考软件JM8.6中的算法相比,改进后的算法在提高峰值信噪比(PSNR)和码率控制度的同时减小了PSNR值的波动。

  快速增长的视频通信需求刺激着视频压缩技术的发展。与已有的其他视频压缩标准相比,的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设置

  H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。

  H.264的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。

  在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值,经大量数据统计,终的算法如下:

  3 实验结果

  为了验证本文改进算法的有效性,本文使用了H.264/AVC的参考软件JM8.6并与其码率控制算法进行比较。实验条件:测试序列为标准QCIF格式,目标码率为64 kb/s,帧率为15帧/s,GOP长度为25,编码100帧, 采用IPPP编码格式。结果如表1所示。

  本文对JVT-G012算法中初始QP的设置进行改进,尽管表达式(4)不够,计算出的初始QP值可能不是值,但相对于式(1)仅利用bpp计算得出的初始QP却比较合理。从表1可以看出本文算法可以选择较优的初始QP值,使编码效果在PSNR值及码率控制准确度两方面均优于原算法,尤其对于运动较剧烈的football、mobile序列效果明显。而且从图2和图3中可以看到,本文算法得到的PSNR曲线的波动范围更小。此外,与目前很多相关算法相比,本文算法简单,相对于JVT-G012算法,引入的编码复杂度也较小。


  

参考文献:

[1]. H.261 datasheet https://www.dzsc.com/datasheet/H.261_2060787.html.


上一篇:USB接口扩展与差分信号仿真
下一篇:浅谈通信车辆的电磁兼容

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料