引起编码器的输出比特码率波动的原因主要有两个。首先,数字视频信号中包含了大量的时域和空域冗余,编码器的主要任务就是去除这些冗余。由于时间冗余和空间冗余是随机的,从而造成编码器输出比特率波动。另一个原因是变长编码,变长编码根据某个事件(如零游程)的发生概率来设计码字。事件发生的概率越大,其编码码字越短,反之亦然,从而引起编码器输出比特率的变化。由于视频应用的要求和目的不同,根据输出码率是否要求恒定,传输码流的信道可分为两种类型,即可变比特率的码率控制VBR(Variable Bit Rate)和恒定比特率的码率控制CBR(Constant Bit Rate)。在变比特率信道下,可以为更高的运动量或更详细的纹理信息分配更多的带宽,从而获得更高效的带宽共享,有利于获得恒定图像质量,同时有利于动态分配可用带宽。这种动态带宽分配需要一种码率控制机制,可以根据时变网络条件和需求,调整并限定各视频源的输出业务量。 码率控制中的性能指标有码率、缓冲延时、缓冲区状态等。在码率控制系统中,校正装置为码率控制器。它负责收集码率、延时和缓冲区状态信息并调节编码参数,使得性能指标维持在给定水平上。缓冲区起平滑码率波动的作用。在编码端,数据输入缓冲区的码率是变化的,而输出端则取决于码率控制模式。在恒定码率模式下,输出码率维持不变;在可变码率模式下,输出码率允许在一定的范围内波动。理论上讲,当缓冲区无限大时,延时长短和缓冲区大小成正比。对实时视频通信系统而言,延时要求比较苛刻,延时越小越好。这就是说长期的码率波动不能通过加大缓冲区的方式消除。 由于传输带宽和存储空间的限制,视频应用对压缩比有较高的要求。无损编码所能提供的压缩比远不能满足实际视频应用的需求,但如果我们能够接受某种程度的失真,高的压缩比也不难获得。人眼视觉系统对高频信号变化不敏感,部分高频信息丢失不会降低主观视频质量,主流的视频编码算法正是采用了量化方法消除视频信号的生理视觉冗余,获得比无损压缩更高的压缩比而又不会带来视频质量的显著降低。率失真(RateDistortion理论旨在描述编码失真度(Distortion,重构误差)和编码数据速率的关系。该理论建立在图像是连续的基础上,在有限数据速率下,由于存在量化误差,必然存在失真。尽管率失真理论没有给出最优编码器,但它还是给出了容许失真条件下信息压缩允许的下界。当使用有损编码方法时,重构图像g(x,y)和原始图像f(x,y)存在差别。一般地,失真度D函数形式可以根据需要任意选取,例如平方代价函数、绝对代价函数等。在图像编码中,D常用均方差形式表示: 当D=O时,编码对应于无损压缩,输入码率应大于或等于信源熵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进行基于块的混和视频编码时,对于每块选取的编码模式应该使编码后的Lagrange代价函数J(S,II九)达到最小。编码后比特流的比特率和失真度与时间和空间有着密切联系,而不仅仅是和编码模式有关,但当且仅当为每个块Sk所选定的编码模式使得代价函数J(S,IIX)最小时,编码器得到最优化。 对于INTRA模式,失真是重建宏块s与原始宏块s的平方差(SSD),按下式计算: 对于SKIP模式,DReC禾RReC不取决于当前量化参数的值,DReC由当前宏块与参考以前帧的宏块的SSD计算得到,RREC约为1bit/宏块。对于INTER模式,它的拉格朗日代价函数计算较为复杂,这是由于多种块模式和多参考帧的运动估计。给定拉格朗日常数.t,MOTION,宏块Si拉格朗日代价函数
拉格朗日常数的选择如下: |
|