欢迎来到天天文库
浏览记录
ID:9798863
大小:882.50 KB
页数:18页
时间:2018-05-10
《率失真理论及经典的码率控制算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、率失真理论及经典的码率控制算法一、视频编码的率失真思想率失真理论研究的是限失真编码问题:能使限失真条件下比特数最小的编码为最佳编码。设信源为,经过编码后,信宿为,定义信源、信宿概率空间分别为。定义平均失真函数如下:其中,为失真度,度量准则可是均方误差MSE、绝对差分和SAD或差分平方和SSD等。若信源概率分布已知,则平均失真仅仅取决于条件概率,从而必然存在这样一个条件概率使得,即:即为保证平均失真在允许范围内的条件概率集合。进一步,定义为接收端获取的平均信息量:同样,在给定的前提下,的大小也只取决于。现在率失真函数定义为在范围内寻找最起码的信息量,即:该公
2、式的含义:在允许的失真度为的条件下,信源编码给出的平均信息量的下界,也就是数据压缩的极限数码率。当数码率小于率失真函数时,无论采用什么编码方式,其平均失真必大于。视频压缩是典型的限失真编码,率失真理论同样适应于视频编码。视频编码率失真优化策略的主要内容是在限比特率为的条件下,即的值不能超过信道传输率,怎样选择最佳编码模式,使得失真最小,归结为下式:要实现上述目标,在比特率和失真之间必须选择一个恰当的折中。在实际解决问题的过程中,可用一编码参数集(量化步长、宏块编码模式等)对视频序列进行编码,得到相应的编码比特率和解码图像质量(或失真),两者结合,即形成一个
3、点。通过用多组编码参数集重复上述编码过程,可获得不同的点。众多的R-D点拟合成率失真曲线((曲线)如图所示。如果给定一个目标码率R},与其对应的最小失真点必然在这一曲线上。视频编码的率失真优化目标正是寻找一合适的编码参数集,这一参数集代表的点尽可能地位于或接近这条曲线。约束条件下的极值求解常用拉格朗日乘子法,部分拉氏方法不能良好解决的可以用动态规划求解。拉格朗日乘子法能够找出一个或数个最好性能的编码参数集,这些参数即可被用于视频编码器以获得最佳的编码性能。不过如果编码参数组合的数目极大,率失真计算的复杂性常常比编码算法本身还高,要使率失真优化方法更实用,可
4、以对编码参数简化。例如,提前判断某些编码参数优劣,使用率失真特征模型来估计最佳点等简化算法。二、H.264/AVC率失真优化算法:1.理论分析根据率失真理论,当前帧编码模式选择问题归结为:在可选模式中选择最佳的模式,使得在限定码率下,失真最小。假设表示当前帧所有宏块,表示视频编码可选的编码模式集,那么当前帧失真优化编码就可以由下式来表示:其中,,分别表示当前帧在编码模式集下的失真和编码比特数,为限定码率。因为当前视频标准是基于宏块的编码结构,所以当前帧的失真或码率可以由各个宏块的失真或比特数累加,计算公式如下:求解约束条件下极值常用拉格朗日乘数法,式1转换
5、为下列方程式:其中是拉格朗日算子。显然。只要参数可知,上式的极值就可以决定出最优编码模式,使得此时的编码失真就是在限率下的最小失真。事实上因为单个宏块在编码模式矿下的比特数必须在其他所有宏块计算完毕才能获得,所以严格地讲,当前帧各宏块最佳编码模式的决定是相互依赖的。但是这将导致问题非常复杂,难于求解。为了将问题简化,忽略各宏块的码率对其他宏块的编码模式的影响,也就是假设各宏块的编码模式率失真优化决定是相对独立的,即有:其中表示宏块的编码模式参数集。从而整帧图像的最优化问题可以进一步分解为:由此,整帧的率失真优化转化为每个宏块的优化。对于单个宏块的率失真开销
6、函数可以由式2简化为:其中为当前宏块可选编码模式集。2.拉格朗日系数的确定经上分析,只有获得拉格朗日系数,宏块编码模式的率失真优化就可以实现。Wiegand等依照的近似数量关系和大量的实验结果,得出参数与量化步长有着近似的线性关系,给出公式:其中为量化参数。该公式被用于H.263标准。由于H.264/AVC编码参数的改变,对此做出了改进。目前H.264/AVC采用的和量化参数关系式是:1)如果编码时没有B帧,对于I帧和P帧则:2)如果编码时有B帧,对于I帧和P帧则:对于B帧则:另外,H.264/AVC采用了运动向量预测和多参考帧技术,为了让运动估计获得最佳
7、运动信息,同样采用率失真优化技术。运动估计失真采用SAD度量,而不是编码模式决定采用的SSD,因此,近似认为拉格朗日系数二者具有下列关系:3.运动估计的率失真优化运动估计的率失真优化包括两方面的内容,一个是决定最佳运动向量,另一个是决定最佳参考帧及相应的运动信息。其中决定最佳参考帧及相应的运动信息,实现前提是多参考帧技术。首先,运动向量的优化,实现公式如下:其中表示运动估计所得到的运动向量,表示通过相邻宏块预测得到的运动向量,为拉格朗日参数,表示运动向量差值编码所需比特数(采用UVLC表来估计),SA(T)D为失真度,计算公式为:其中表示原始视频信号值,c
8、表示实际编码的视频信号值,如果运动向量是小数精度,则失真度在Had
此文档下载收益归作者所有