码率控制与实现算法
2016
码率控制技术原理与 H.264的码率控制算法介绍
小组成员:池品臻 陈申 陈天壹 陈仙锋 程 宏浩
码率控制技术原理
引起编码器的输出比特码率波动的原因主要有两个。首先,数字视
频信号中包含了大量的时域和空域冗余,编码器的主要任务就是去
除这些冗余。由于时间冗余和空间冗余是随机的,从而造成编码器 输出比特率波动。另一个原因是变长编码,变长编码根据某个事件 (如零游程)的发生概率来设计码字。事件发生的概率越大,其编码
码字越短,反之亦然,从而引起编码器输出比特率的变化。
码率控制技术原理
由于视频应用的要求和目的不同,根据输出码率是否要求恒定,传
输码流的信道可分为两种类型,即可变比特率的码率控制
VBR(Variable Bit Rate)和恒定比特率的码率控制CBR(Constant Bit Rate)。在变比特率信道下,可以为更高的运动量或更详细的 纹理信息分配更多的带宽,从而获得更高效的带宽共享,有利于获
H(X);若D一为最大允许失真,则相应码率下限为R(D一)。典型的
率失真曲线R—D如图3.1所示。R(D’)为D’的凸递减函数。
码率控制技术原理
率失真优化主要用于模式选择。在H.264视频标准中,有以下几种
模式:INTRA.4x4,INTRA.16x16,SKIP,INTER—16×16,
INTER.16×8,INTER.8×16,INTER.8×8。 假设图像序列S被分割为K个不同的块4,相应的像素用6t来表示。 编码6t所选择的编码模式%分为帧间编码和帧内编码。每种编码模
所需的码字位数,Q指基本单元的量化步长,MAD通过以下线性预测
模型进行预测:
H.264的码率控制算法
1。基本单元的定义 假设某一帧由Nmbpic个宏块组成,那么定义基本单元为一 个由Nmbpic个宏块中连续的Nmbunit个宏块所组成的组。那么在该 帧中的总的基本单元的个数为: Nunit=Nmbpic/Nmbunit 需要注意的是,如果采用了比较大的基本单元,那么PSNR 可以达到一个较高的值,同时比特的波动也会增大。另一方面,如 果采用了比较小的基本单元,比特的波动会比较的小,但是相应的
种长时缓冲使得视频业务不能达到实时传输,因此,除了缓冲视频 数据,需要采用其他措施来减少编码器的突发量。最常用的技术是 调整一些编码参数作为缓冲器饱和度的函数,如反馈控制。
码率控制技术原理
由于传输带宽和存储空间的限制,视频应用对压缩比有较高的要求。无损 编码所能提供的压缩比远不能满足实际视频应用的需求,但如果我们能够 接受某种程度的失真,高的压缩比也不难获得。人眼视觉系统对高频信号 变化不敏感,部分高频信息丢失不会降低主观视频质量,主流的视频编码
输出码率维持不变;在可变码率模式下,输出码率允许在一定的范
围内波动。理论上讲,当缓冲区无限大时,延时长短和缓冲区大小 成正比。对实时视频通信系统而言,延时要求比较苛刻,延时越小 越好。这就是说长期的码率波动不能通过加大缓冲区的方式消除。
码率控制技术原理
然而,诸如公共交换电话网络PSTN(Public Switched
码率控制技术原理
其中,M为所有可能的编码模式,失真按下式计算:
拉格朗日常数的选择如下:
H.264的码率控制算法
H.264的码率控制算法采用了多种技术,其中包括自适应基本单 元层(Adaptive Basic Unit Layer)、流量往返模型(Fluid Traffic Model)、线性MAD模型、二次率失真模型等。并且采用了分层码率控
实现对每一个宏块编码模式的选定。对于宏块St,模式Ik,拉格朗 日模型选择公式为:
码率控制技术原理
对于INTRA模式,失真是重建宏块s与原始宏块s的平方差(SSD),按 下式计算:
对于SKIP模式,DReC禾RReC不取决于当前量化参数的值,DReC由当 前宏块与参考以前帧的宏块的SSD计算得到,RREC约为1bit/宏块。 对于INTER模式,它的拉格朗日代价函数计算较为复杂,这是由于 多种块模式和多参考帧的运动估计。给定拉格朗日常数.t,MOTION, 宏块Si拉格朗日代价函数 如下式:
会带来PSNR的损失。
H.264的码率控制算法
2.流量往返模型(Fluid Tramc Model)
H.264的码率控制算法
3.MAD的基本单元的MAD值,
它的参预测模型参数a1和a2更新方法分为三步,如下所述:
第一步一数据点选择:数据点是用于更新模型参数,数据点的数量 以及质量对于模型的准确性有着重要的影响。通常而言,数据点越 多,模型越准确。在JM86模型中,采用滑动窗口机制进行数据点的 选择,窗口大小通常为20。 第二步一计算模型参数:根据选中的数据点,算法收集预测的MAD 和实际MAD的值,采用线性回归的方法,计算得到a1和a2。 第三步一去除坏的数据点:在得到al和a2之后,根据滑动窗口中数 据点的参考值,用a1和a2形成的预测模型计算数据点的预测值,然 后将得到的值与数据点的原始预测值比较,计算误差,如果误差大 于一定的值(JM中取误差的均值),则将该数据点去除,用更新后的
了获得固定速率的视频比特流传输,在视频编码器和信道间采用了 缓冲器来平滑比特率的波动。缓冲器的引入虽然有利于平滑码流, 然而,它也引入了一定的延迟。同时,在很多视频序列中,比特率
波动会持续几帧,从而需要一个大缓冲器来缓冲长时间的波动。这
种长时缓冲使得视频业务不能达到实时传输,因此,除了缓冲视频 数据,需要采用其他措施来减少编码器的突发量。最常用的技术是 调整一些编码参数作为缓冲器饱和度的函数,如反馈控制。
仅是和编码模式有关,但当且仅当为每个块Sk所选定的编码模式使
得代价函数J(S,IIX)最小时,编码器得到最优化。 编码控制模式中,宏块分割模式的判决与帧间模式运动估计的最佳 比特分配这两个问题将会被分别处理。在Lagrange参数A'MODE与量
化参数选定后,H.264/AVC编码器通过最小化Lagrange代价函数
目标比特由该帧的剩余目标比特平均得到。这些技术的采用成功地 解决了传统码率控制算法与H.264的率失真优化技术之间存在的因 果矛盾,能较准确地控制输出码率,输出视频质量较好。
H.264的码率控制算法
H.264中的JVT.G012算法采用的二次R—Q模型如下:
这一模型用于基本单元的量化参数计算,其中R代表编码量化系数
式都包括预测编码的模式和编码参数。其中编码参数包括变换系数
和量化参数等。对于帧间模式,编码参数还包括一个或多个运动矢 量。
码率控制技术原理
在对图像序列S进行基于块的混和视频编码时,对于每块选取的编 码模式应该使编码后的Lagrange代价函数J(S,II九)达到最小。编 码后比特流的比特率和失真度与时间和空间有着密切联系,而不仅
数据点重新计算模型参数al和a2。
H.264的码率控制算法
谢谢观看
了容许失真条件下信息压缩允许的下界。当使用有损编码方法时,重构图 像g(x,y)和原始图像f(x,y)存在差别。一般地,失真度D函数形式可以根 据需要任意选取,例如平方代价函数、绝对代价函数等。在图像编码中,D 常用均方差形式表示:
码率控制技术原理
当D=O时,编码对应于无损压缩,输入码率应大于或等于信源熵
码字越短,反之亦然,从而引起编码器输出比特率的变化。
码率控制技术原理
引起编码器的输出比特码率波动的原因主要有两个。首先,数字视
频信号中包含了大量的时域和空域冗余,编码器的主要任务就是去
除这些冗余。由于时间冗余和空间冗余是随机的,从而造成编码器 输出比特率波动。另一个原因是变长编码,变长编码根据某个事件 (如零游程)的发生概率来设计码字。事件发生的概率越大,其编码
制策略,共分为三层:GOP层、帧层和基本单元层。在JVT的提案中,
采用的是JVT-G012码率控制算法,该算法提出了基本单元的概念, 将一帧划分为若干个基本单元,基本单元可能是一宏块、一行宏块、 一场或一帧。帧层码率控制根据网络带宽、缓存占用量、缓存大小
及剩余比特来分配每一帧的目标比特;在基本单元层码率控制中,
TelephoneNetwork)固定带宽信道却常用固定比特率传送信息。为
了获得固定速率的视频比特流传输,在视频编码器和信道间采用了 缓冲器来平滑比特率的波动。缓冲器的引入虽然有利于平滑码流, 然而,它也引入了一定的延迟。同时,在很多视频序列中,比特率
波动会持续几帧,从而需要一个大缓冲器来缓冲长时间的波动。这
码率控制技术原理
码率控制中的性能指标有码率、缓冲延时、缓冲区状态等。在码
率控制系统中,校正装置为码率控制器。它负责收集码率、延时和
缓冲区状态信息并调节编码参数,使得性能指标维持在给定水平上。 缓冲区起平滑码率波动的作用。在编码端,数据输入缓冲区的码率 是变化的,而输出端则取决于码率控制模式。在恒定码率模式下,
算法正是采用了量化方法消除视频信号的生理视觉冗余,获得比无损压缩
更高的压缩比而又不会带来视频质量的显著降低。率失真(RateDistortion 理论旨在描述编码失真度(Distortion,重构误差)和编码数据速率的关系。 该理论建立在图像是连续的基础上,在有限数据速率下,由于存在量化误
差,必然存在失真。尽管率失真理论没有给出最优编码器,但它还是给出
得恒定图像质量,同时有利于动态分配可用带宽。这种动态带宽分
配需要一种码率控制机制,可以根据时变网络条件和需求,调整并 限定各视频源的输出业务量。
码率控制技术原理
然而,诸如公共交换电话网络PSTN(Public Switched
TelephoneNetwork)固定带宽信道却常用固定比特率传送信息。为