x264中模式选择:SAD与SATD

以下来自网络的解释一(http://lheric.blog.163.com/blog/static/11659673120116304373175/):
SAD 离最优匹配点越远,匹配误差值SAD越大,SAD只能反映PSNR的大小,而不能反映码流大小

SATD值并不满足 离最优匹配点越远,匹配误差值SAD越大的条件 ,但可以反映码流大小

也就是一般来说,SAD是单峰函数,SATD是多 函数。
在整数点运动估计的时候,因为搜索点比较多,SATD容易陷入局部最优,所以整数运动估计一般使用SAD。
在分数点运动估计的时候,因为搜索点比较少,SAD差异不大,使用SATD可以选择码较小的匹配位置。
解释二(http://www.cnblogs.com/liuokay/archive/2010/12/30/1921444.html):
Q:如果不用率失真最优化,为什么选择SATD+delta×r(mv,mode)作为模式选择的依据?为什么运动估计中,整象素搜索用SAD,而亚象素用SATD?为什么帧内模式选择要用SATD?

      SAD即绝对误差和,仅反映残差时域差异,影响PSNR值,不能有效反映码流的大小。SATD即将残差经哈德曼变换的4×4块的预测残差绝对值总和,可以将其看作简单的时频变换,其值在一定程度上可以反映生成码流的大小。因此,不用率失真最优化时,可将其作为模式选择的依据。

      一般帧内要对所有的模式进行检测,帧内预测选用SATD的原因同上。

      在做运动估计时,一般而言,离最优匹配点越远,匹配误差值SAD越大,这就是有名的单一平面假设,现有的运动估计快速算法大都利用该特性。但是,转换后SATD值并不满足该条件,如果在整象素中运用SATD搜索,容易陷入局部最优点。而在亚象素中,待搜索点不多,各点处的SAD差异相对不大,可以用SATD选择码流较少的匹配位置。


你可能感兴趣的:(优化,算法,网络,2010)