asp网站开发实训总结,wordpress底部版权备案,wordpress导航怎么设置,wordpress幻灯片不显示图片率失真优化概述#xff1a;率失真优化(Rate D isto r t i on Op t i m ized)策略是在率失真理论[3 ]的基础上提出的一种代价函数方案, RDO 的主要思想是, 在计算代价函数时, 同时考虑码率和失真度两方面因素的制约, 在保证低失真度的同时保证低码率, 这样更加有利于视频流的…率失真优化概述率失真优化(Rate D isto r t i on Op t i m ized)策略是在率失真理论[3 ]的基础上提出的一种代价函数方案, RDO 的主要思想是, 在计算代价函数时, 同时考虑码率和失真度两方面因素的制约, 在保证低失真度的同时保证低码率, 这样更加有利于视频流的传输。 H. 264在运动搜索、 参考帧择优、 模式决策三个方面运用了不同的RDO 代价函数, 也将非RDO 代价函数列为可选模式, 以满足不同的需要。。 可描述如下: 在保证比特率R 不超过最大比特率R max 的条件下, 使失真D 达到最小, 即m in{D } 限制条件:R ≤R max。可以通过选择最优的编码参数给出最好的图像质量(最低的失真) , 并不超过目标比特率。 在实际中, 用一套编码参数(量化步长、 块模式选择等)对视频序列进行编码, 得到相应的编码比特率 (R ) 和解码图像质量(或失真D ) , 两者结合, 即形成一个R -D 工作点。 用不同套的编码参数重复上述编码过程,获得不同的R - D 工作点曲线为凸的曲线横坐标为D纵坐标为R曲线为R(D)。公式如J(mode)Dλ*R。根据不同的情况D可取下面的值(常用的就是SSD、SAD和SATD):以H.264亮度为例在帧内预测块大小(16x16或4x4)和预测方向(4个或9个)决策、运动搜索(选择最有匹配点)、参考帧选择、帧间模式选择等都需要进行RDO。SAD(Sum of Absolute Difference)SAE(Sum of Absolute Error)即绝对误差和SATD(Sum of Absolute Transformed Difference)即hadamard变换后再绝对值求和SSD(Sum of Squared Difference)SSE(Sum of Squared Error)即差值的平方和MAD(Mean Absolute Difference)MAE(Mean Absolute Error)即平均绝对差值MSD(Mean Squared Difference)MSE(Mean Squared Error)即平均平方误差RDO概述众所周知评价编码效率的有两大指标码率和PSNR。码流越小则压缩率越大PSNR越大重建图像越好。在模式选择的时候判别公式实质上也就是对二者的综合评价。首先以RDO为例模式对应的代价J(mode)SSDλ*R(ref,mode,mv,residual)这里SSD是指重建块与源图像的差值均方和λ是拉格朗日乘子就当是权值吧R就是该模式下宏块编码的实际码流包括对参考帧、模式、运动矢量、残差等的比特总和。当然如果是帧内模式就只有R(mode,residual)。很多人迷惑的是改宏块还没编码啊怎么知道它的码流和重建图像实际上RDO就是对每个模式都实际编码一次得到J(mode)然后选择J(mode)最小的模式为实际编码模式。就像编码器引入了一个大反馈这也正是JM选用RDO编码起来龟速的原因当然编码效率最佳。后来“随意”注意到不论熵编码选用cavlc还是cabac各个模式下的residual编码都使用cavlc为什么此时不用cabac呢难道cabac复杂么我的看法是因为cabac会对模型表更新数据解码端是没有模式选择模块的如果编码端此时使用cabac会造成编解码端模型表不匹配不能正常解码。λ的取值是就是码率控制相关的概念。SAD和SATD前已所述RDO包含各模式的实际编码过程也就是变换量化、熵编码、反变换反量化、重建等计算量是相当大的实时编码领域不可能直接使用。因此就有了下面的替代公式J(mode)SADλ*R(ref,mode,mv)J(mode)SATDλ*R(ref,mode,mv)这里SAD就是该模式下预测块与源图像的绝对误差和。比特R中少了对residual的编码也就是运动估计后就可以直接得到该模式的J(mode)值极大的减少了运算复杂度。SATD就是对残差进行哈德曼变换后的系数绝对和在大多数情形下SATD比SAD评价效果更好些我对foreman CIF图像的测试psnr增加了约0.2db码流差不多。当然SATD比SAD多了个变换计算量大些。注意SAD和SATD对应的λ与RDO的λ取值是不一样的。容易困惑的还有运动估计的匹配准则很多运动估计的论文中都直接是SAD或SSE。编码器中对残差、MV、ref都要编码所以匹配准则也就是SAD和码流R的综合评价在同一个模式下参考块与编码块的不同信息有ref、MV故匹配准则为JmotionSADλ*R(ref,mv)最后附上我以前在群“H264乐园”中的帖子Q:如果不用率失真最优化 为什么选择SATDdelta×r(moderefmv)作为模式选择的依据为什么运动估计中整象素搜索用SAD而亚象素用SATD为什么帧内模式选择要用SATDA: SAD即绝对误差和仅反映残差时域差异影响PSNR值不能有效反映码流的大小。SATD即将残差经哈德曼变换的4×4块的预测残差绝对值总和可以将其看作简单的时频变换其值在一定程度上可以反映生成码流的大小。因此不用率失真最优化时可将其作为模式选择的依据。一般帧内要对所有的模式进行检测帧内预测选用SATD的原因同上。 在做运动估计时一般而言离最优匹配点越远匹配误差值SAD越大这就是有名的单一平面假设现有的运动估计快速算法大都利用该特性。但是转换后SATD值并不满足该条件如果在整象素中运用SATD搜索容易陷入局部最优点。而在亚象素中待搜索点不多各点处的SAD差异相对不大可以用SATD选择码流较少的匹配位置。转自http://zmshy2128.blog.163.com/blog/static/2544637200658104210/