H.264的码率控制算法采用了多种技术,其中包括自适应基本单元层(Adaptive Basic Unit Layer)、流量往返模型(Fluid Traffic Model)、线性MAD模型、二次率失真模型等。并且采用了分层码率控制策略,共分为三层:GOP层、帧层和基本单元层。在JVT的提案中,采用的是JVT-G012码率控制算法,该算法提出了基本单元的概念,将一帧划分为若干个基本单元,基本单元可能是一宏块、一行宏块、一场或一帧。帧层码率控制根据网络带宽、缓存占用量、缓存大小及剩余比特来分配每一帧的目标比特;在基本单元层码率控制中,目标比特由该帧的剩余目标比特平均得到。这些技术的采用成功地解决了传统码率控制算法与H.264的率失真优化技术之间存在的因果矛盾,能较准确地控制输出码率,输出视频质量较好。
H.264中的JVT.G012算法采用的二次R—Q模型如下:
这一模型用于基本单元的量化参数计算,其中R代表编码量化系数所需的码字位数,Q指基本单元的量化步长,MAD通过以下线性预测模型进行预测:
其中MADcb和MADpb代表当前基本单元和前一帧相应位置处的MAD,a1,a2是模型系数,在每一个基本单元的最后一个宏块处理中通过线性回归的方法进行更新。
JVT的码率控制比以往的标准更加困难。因为量化参数不仅在码率控制算法中使用而且在率失真优化中应用,从而导致一种称为“鸡与蛋"的悖论(Chicken and Egg Dilemma):为了在当前帧的宏块中应用率失真优化,首先要有一个量化参数,这个量化参数通过计算当前帧的MAD(Mean Absolute Difference)得到。然而,只有在率失真优化以后才能得到当前帧的MAD。并且编码处理所使用的信道带宽可能是恒定的,也可能是可变的。必须同时考虑恒定比特率(Constant Bit Rate,CBR)和可变比特率(Variable Bit Rate,VBR)两种情况。目前的码率控制机制大多针对恒定码率的情况.
率失真理论是视频编码的一个基本部分。率失真优化(RDO)在给定的码率限制下最小化解码失真,Lagrangian方法可以在码率和失真之间有效地进行折中。在H.264标准中,Lagrangian方法用于运动补偿的模式选择和帧内预测。换言之,它可以在给定的码率限制下,最小化失真,寻找到块的最佳运动向量和编码模式。然而,Lagrangian方法的应用使码率控制变得更困难,因为QP涉及到码率控制和失真计算。换言之,码率控制方案在调整QP后将影响块的运动和模式选择。在MPEG.4码率控制中,可以在估计QP前通过执行二次R—D模型来获得X1,X2、MAD和目标比特数。但在H.264标准中,QP在码率控制和RDO中都指定了,因此在执行RC时就存在一个问题:对MB执行RDO,要先通过MB的MAD决定MB的QP,然而MB的MAD只有在RDO运行后才能获得。这就是一个蛋鸡悖论。
如上所述,在H.264标准的码率控制中存在两个问题:
1.在执行RDO之前,MAD是未知的。
2.虽然在运动补偿后可以获得每个编码模式的MAD,但最佳编码模式仍然未知,所以不能决定哪个MAD可以用于估计QP。
Ma等人提出了一个新的H.264码率控制方案,该方案没有考虑QP与MAD之间的相关性,但它不是single—pass码率控制算法。虽然该算法可以实现目标比特数且没有明显的比特变动,但执行RDO要花费2倍的时间,对宏块而言这样的时I司复杂度是不可接受的。
H.264中的码率控制方法是以提案JVT—G012为蓝本的。JVT.G012提案通过引入基本单元和线形模型的概念,提出一种自适应基本单元层码率控制方案。基本单元可能是一帧、片或宏块。并提出了一种线性模型,通过前一帧相应位置的基本单元预测当前基本单元MAD。为阐述G012提案,本文首先对其中的关键技术进行分析。
1。基本单元的定义
假设某一帧由Nmbpic个宏块组成,那么定义基本单元为一个由Nmbpic个宏块中连续的Nmbunit个宏块所组成的组。那么在该帧中的总的基本单元的个数为:
Nunit=Nmbpic/Nmbunit
需要注意的是,如果采用了比较大的基本单元,那么PSNR可以达到一个较高的值,同时比特的波动也会增大。另一方面,如果采用了比较小的基本单元,比特的波动会比较的小,但是相应的会带来PSNR的损失。
2.流量往返模型(Fluid Tramc Model)
3.MAD的线性预测模型
这里,该算法一个线性模型来预测当前帧中的基本单元的MAD值,它的参
预测模型参数a1和a2更新方法分为三步,如下所述:
第一步一数据点选择:数据点是用于更新模型参数,数据点的数量以及质量对于模型的准确性有着重要的影响。通常而言,数据点越多,模型越准确。在JM86模型中,采用滑动窗口机制进行数据点的选择,窗口大小通常为20。
第二步一计算模型参数:根据选中的数据点,算法收集预测的MAD和实际MAD的值,采用线性回归的方法,计算得到a1和a2。
第三步一去除坏的数据点:在得到al和a2之后,根据滑动窗口中数据点的参考值,用a1和a2形成的预测模型计算数据点的预测值,然后将得到的值与数据点的原始预测值比较,计算误差,如果误差大于一定的值(JM中取误差的均值),则将该数据点去除,用更新后的数据点重新计算模型参数al和a2。
分享到:
相关推荐
一种基于图像复杂度的新的H.264码率控制算法
H.264码率控制算法研究,卢姗,,H.264/AVC是一种先进的视频编码标准,码率控制作为视频编码和网络传输的一项重要技术在H.214的应用中必不可少。本文首先对固定码率控�
H.264码率控制算法研究与JM相应代码分析
这个是H.264码率控制的程序,带注释的那种哦。 不收钱了,随便下
H264码率控制算法研究,对于H264码率控制原理,以及实现有很好的帮助。
基于无线环境的改进的H.264码率控制算法研究,杨爱龙,杨杰,随着电子通信技术的不断发展,传统的语音、短信通信业务已经无法满足人们的日常生活需要。新兴的视频业务正逐步渗透到日常的工作
3 H.264码率控制算法改进 3.1 码率控制的目的、意义与研究现状 3.2 基于卡尔曼滤波(Kalman Filtering)的H.264 头信息量估计及帧级码率控制改进算法 3.3 本章小结 4 快速H.264编码算法的研究与应用 4.1 H.264...
在JVT-G012码率控制算法的基础上,提出了一种改进的H.264码率控制算法。首先,利用像素灰度值差值的方法检测场景切换,并对检测到的场景切换进行处理;其次,使用一种新的P帧的比特分配原则,根据P帧在GOP中的位置...
一种用于在H.264标准中控制码率的跳帧算法
已有的快速搜索算法中,绝大多数都不检查搜索区中所有候选项,所以,当视频序列中有快速或随机运动时,这些算法常导致搜索陷入局部最优。为了解决这一问题,提出了一种估算当前搜索点和最佳点之间的距离的度量方法,在此...
基于模糊控制的H.264/AVC宏块层码率控制算法
一种新的H.264/AVC码率控制改进算法,朱冰莲,廖志成,针对头信息比特灵活多变、预测困难的问题,提出一种新的基于概率选择的头信息比特预测方法。其次对于H.264码率控制算法中所采用的帧
基于H.264帧层码率控制算法的改进,罗娟,,H.264/AVC采用的码率算法JVT-G012包括图像组(GOP)层码率控制、帧层码率控制和基本单元层码率控制。对其中的帧层码率控制算法进行分析,��
采用平均像素信息比特来克服H.264...仿真结果表明,该算法与H.264中的G012码率控制算法相比不仅控制精度提高了0.11 kbps,而且使峰值信噪比平均提高0.224 dB。与H.264原算法相比,该算法具有更高的实时性和视频质量。
H264码率控制算法研究2010.pdfH264码率控制算法研究2010.pdf
为了更好地控制H.264的码流输出,针对H.264标准中码率控制方案提出一种基于λ参量的码率控制算法.该算法从另一角度定义了复杂度的概念,改善了标准码率控制方案中存在目标比特分配不准确和剧烈运动场景量化不准确的...
1.在深入分析H.264的率失真优化算法和码率控制算法的基础上,提出了一种 新的MAD(mean absolute difference)预测算法。该算法根据相邻两帧中运动矢量的时 间相关性,利用前一帧中宏块的运动矢量信息,结合当前编码帧...
提出了一种新颖的编码特性预测机制,较为充分地利用了视频信源的时空...控制能力稍优于后者 和H·264/AVC参考软件中所采用的JVT G012码率控制算法相比,两种新算法在获得更高 编码效率的同时,能够更加准确地控制输出码率.
H.264/AVC提出的码率控制算法不能有效处理场景切换,因此导致关于场景切换的解码图像质量下降。为了解决该问题,文章提出了一种自适应控制算法来提高场景切换点的图像质量,使用像素不同灰度值来检测场景切换序列,...
本文基于最新的视频编码标准H.264提出一种改进的码率控制算法--关于MAD(mean absolute differences)在计算QP(量化参数)上的改进.MAD在二次失真模型中用于计算QP,取得了很好的信噪比、压缩比和码流的稳定性。...