开始看h264的码率控制,很多地方都提到G012,拿来做为参考比较,看来很有必要研究清楚。
偶这人,E文文档不翻译的话,看过就忘了,于是草草翻译了下,因为不打算做B帧,也不准备在同一帧中使用不同的MB,这些地方就跳过了。
Title:
|
Adaptive Basic Unit Layer Rate Control for JVT
|
1.Introduction
编码器使用码率控制来控制编码码流变化的bit rate特性,以追求给定目标bit rate下的高质量解码。码率控制因此成为了编码器的必要部分,并在标准中被广泛的研究,比如MPEG2,MPEG4,H.263等等。因此,他也被JVT充分的研究。JVT的码率控制与其他的标准相比更加困难。这是因为量化参数被同时应用到码率控制算法(rate control algorithm)和码率失真最优化(rate distortion optimization RDO)中,这样在进行码率控制研究的时候导致了蛋鸡悖论:要对当前帧的宏块进行RDO,需要用当前帧或者宏块的MAD决定每个宏块的QP值。然而,当前帧或宏块的MAD只有在RDO之后才能算出。此外,可用的编码信道带宽也可能是固定的或是随时间变化的。因此我们需要同时考虑固定bit
rate(CBR)和可变bit rate(VBR)。然而现存的方案集中与CBR。
JVT通过引入基本单元的概念和线性模型,提出了一种自适应基本单元层的码率控制算法。这个基本单元可以是帧,条带,或者宏块MB,线性模型通过前一帧的相关位置的基本单元来预测当前帧当前基本单元的MAD。蛋鸡悖论解决如下:当前帧的目标码率采用漏桶(leaky bucket)模型和线性跟踪理论根据预先定义的帧率,当前缓冲区占有率,目标缓冲区级别和可用的信道带宽计算。因为未编码的基本单元MAD未知,所以剩余的bit平均分配到未编码的当前帧基本单元中。当前基本单元的MAD靠线性模型使用前一帧相关位置的基本单元的MAD来预测。二次率失真模型(RD)用于计算相应的QP,这个值用与当前基本单元中每个宏块的最小率失真(rate
distortion optimization)我们同时也关注VBR。我们设计了虚拟缓冲区来根据信道带宽的动态变化而调整编码程序。该缓冲区是不能向上或者向下溢出的。因为该模型和漏桶模型基本一致,我们的码率控制因此符合理想参考解码器(hypothetical reference decoder)
我们测试VBR和CBR来验证我们的设计。VBR比特率曲线是一条预定义的曲线。他表明实际生成的比特数保持接近比特率曲线并且缓冲并没有溢出。CBR中,我们的码率控制方案的编码效率与使用固定QP值的比较。编码的计算率由我们的码率控制方案指定。我们方案的编码效率提高了1.02dB,所有测试序列的平均PSNR提高了0.32dB。我们也同使用AHM2.0软件AHG推荐的F086进行比较。PSNR提高了1.73dB,最高损失0.25dB,必须提及的是我们的方案是one pass而F086是two pass(two pass:采用2次编码,每一帧的第一次编码用来产生第2次编码所需要的编码策略)
- Preliminary Knowledge
在这一章中,我们提出关于H.264码率控制的相关问题。
2.1The Chicken and Egg Dilemma
涉及码率控制的MB编码过程如下
因为QP由码率控制和RDO指定,这里就有个问题,当进行码率控制时:为MB做RDO,MB的QP应该首先使用MB的MAD决定。然而,当前MB的MAD只有在做了RDO之后才能得到。这是一个典型的蛋鸡悖论。因此,H.264的码率控制要比MPEG2,MPEG4,H.263的更加困难。学习H.264的码率控制,我们必须解决这个问题去建立当前MB的MAD。除此之外,我们也应该计算当前MB的目标码率和决定共享相同QP的连续MB数量。为了解决这些问题,我们需要下列的预备知识。
2.2Definition of A Basic Unit
基本单元的概念定义。
定义1:假设一帧由MB组成,基本单元定义为一组由MB组成的连续MB,其中属于
在一帧中基本单元的总数如下
(1)
假设一个基本单元可以为MB,条带,场,帧。例如,一个QCIF大小的视频序列= 99.根据定义1,可以为 1, 3, 9, 11, 33, or 99. 相应的分别为 99, 33, 11, 9, 3, and 1,
这表明使用一个较大的基本单元,可以实现较高的PSNR值同时码率波动也就更大。换句话说,使用较小基本单元,码率波动会显著变小,但是会轻微损失PSNR
2.3A Fluid Flow Traffic Model
我们现在提出一种流体流动通信模型(fluid flow traffic model)来计算当前编码帧的目标bit。标识一组图片(GOP)的总帧数。表示在ithGOP中的jth帧,表示编码jth帧后虚拟缓存的占有率。那么我们得到
(2)
其中A()是ithGOP中jth帧生成的比特数。u()是可用信道带宽,可以使VBR,也可以是CBR,是预定义的帧率,是缓存大小,其最大值由不同的level和profile决定。
注意初始缓冲区的值设置为,这个是可以设置为其他的值的,通常,初始缓冲区值可以设置为一个小的值如果比特波动很小的话。
这个模型和漏桶模型[7]类似,令,在我们的设计中,我们保证码流包含在上述的虚拟缓存中,因此,当码流以参数and输入到HRD,中,HRD缓存是不会向上或者向下溢出的,换句话说,我们的码率控制方案是符合HRD的。
2.4A Linear Model for MAD Prediction
现在引入线性模型在当前帧中预测当前基本单元的MAD。
这个同样是依赖于前一帧中相关位置的基本单元。假设当前帧中当前基本单元的预测MAD和前一帧相关位置基本单元的实际MAD分别表示为为和,线性预测模型由下式给出
(3)
其中和为预测模型的2个相关系数。和的初始值分别设置为1和0,他们在每个基本单元被编码后更新。线性模型被用来解决蛋鸡悖论。
使用基本单元的概念和模型(2)模型(3),我们方案的步骤如下:
1.使用fluid traffic模型(2)和线性跟踪理论[5]计算当前帧的目标bit
2.把剩余的bit平均分配给给当前帧的未编码基本单元。
3.使用前一帧相关位置的基本单元的实际MAD通过线性模型(3)来预测当前帧基本单元的MAD。
4.使用二次RD模型计算相应的参数
5.使用来自step4的QP计算当前基本单元每个MB的RDO
如果基本单元选择为帧,那么我们的码率控制方案由2层组成:GOP层和帧层。否则,应该加上基本单元层码率控制。他们会在下面详细说明。
以上内容为转载,个人接着翻译以后的章节,属于原创了吧。
分享到:
相关推荐
自适应基本单元级率控制算法_JVT-G012.pdf H.264碼率控制好資料
h.264资料JVT-G050r1,供大家参考
JVTG012为码率控制提案,此提案是基于H.264视频编码标准的。可以给码率控制的朋友带来一定帮助。
经典码率控制算法JVT-G102文档An encoder employs rate control as a way to regulate varying bit rate characteristics of the coded bitstream in order to produce high quality decoded frame at a given ...
自己翻译的JVT-G012,中英文对照,没翻译完,发现这个网站有中文版的了,不过有些地方翻译的有问题。
JVT-G050[1]h.264英文版学习h264必备,还有对应中文版本。
JVT-G050[1]h.264中文标准,强烈推荐,是一句英文,一句中文对应的版本
H.264 国际标准,H.264的标准文档,属于建议性文档
H264码率控制经典资料 1. JVT-G012.doc 2. Scalable Rate Control for MPEG-4 Video.pdf 3. 其他
h.264中快速的运动估计算法,是由清华大学一个知名的老师提出的,被h.264采纳为标准的,快速算法
H264码率控制经典资料 1. JVT-G012英文介绍与翻译.doc 2. Scalable Rate Control for MPEG-4 Video.pdf 3. H.264、AVC中的码率控制方案及算法实现 4. H264码率控制简介
基于H.264帧层码率控制算法的改进,罗娟,,H.264/AVC采用的码率算法JVT-G012包括图像组(GOP)层码率控制、帧层码率控制和基本单元层码率控制。对其中的帧层码率控制算法进行分析,��
JVT官方文档JVT-O016,O016对G012的基本单元层码率控制算法进行了许多改进,编码效率更高。
在JVT-G012码率控制算法的基础上,提出了一种改进的H.264码率控制算法。首先,利用像素灰度值差值的方法检测场景切换,并对检测到的场景切换进行处理;其次,使用一种新的P帧的比特分配原则,根据P帧在GOP中的位置...
提出了一种新颖的编码特性预测机制,较为充分地利用了视频信源的时空...控制能力稍优于后者 和H·264/AVC参考软件中所采用的JVT G012码率控制算法相比,两种新算法在获得更高 编码效率的同时,能够更加准确地控制输出码率.
H.264/AVC 码率控制提案,rate control.
对于新一代的视频压缩编码标准-H.264,这是关于其中JVT的编码说明,对于整个的编码过程,这是一个很好的参考资料。
JVT-H017是一个有关 H. 264码率控制的提案。对 JVT-H017帧级码率控制方案进行了分析,并在此基础上提出了改进。改进后的算法复杂度大大降低,峰值信噪比( PSNR)与 JVT-H017相比略有降低,适用于对复杂度要求较高的场合...
UMHexagonS搜索算法的JVT文件
JVT-O016提案的具体实现代码,可以移植到JM平台上。