开始看白皮书4,帧内预测,有一点收获:
宏块内预测模式,4x4块,9种预测模式;16x16块,4种预测模式
先预测,然后计算SAE(The Sum ofAbsolute Errors),选用SAE值最小的作为预测模式
关于代价函数的使用场合,一个帖子:
=====================================
几种代价函数
SAD(Sum of Absolute Difference)=SAE(Sum ofAbsolute Error)即绝对误差和
SATD(Sum of Absolute TransformedDifference)即hadamard变换后再绝对值求和
SSD(Sum of Squared Difference)=SSE(Sum of SquaredError)即差值的平方和
MAD(Mean Absolute Difference)=MAE(Mean AbsoluteError)即平均绝对差值
MSD(Mean Squared Difference)=MSE(Mean SquaredError)即平均平方误差
还有一个RDO,它是用来进行编码模式选择的,那么当不启用 RDO时,又是什么作为编码模式选择的判断准则?
请问以上概念具体在什么地方会用到?也就是它们的计算位于什么环节?谢谢!
---------------------------------
SAD在作整数像素搜索的时候作为代价函数sad+MVCOST
satd 在作1/2和1/4像素搜索的时候作为代价函数
ssd在作模式选择的时候 一般是ssd作为distrotion(RDOoff的情况下作为代价函数)
mad
msd在JM中好像没有用到
------------------------------------------------------
1、MVCOST 又是如何计算的?
2、RDO做为编码模式选择依据的时候,是否是所有的编码模式(帧间16*16、16*8、8*16、8*8、8*4、4*8、4*4、SKIP,帧内4*4、16*16、IPCM)都采用它来做判断?
3、你说的好像还不完整,据我所知:SAD 在 4*4帧内预测模式选择时候也被用做代价函数。请高手补充一下。谢谢
----------------------------------------------------------
1.查看以前的MVCOST详细介绍的帖子(简单说就是在运动估计中运动矢量残差编码所需的bit数)
2.关于RD,不采用rd优化的时候就是用ssd作为代价函数
所有的都是这样,标准一样才有可比性
3.你说的对,高手补充…………
--------------------------------------------------------
这样说要清楚些:
SAD和MAD、SSD和MSD是一样的,就差个倍数关系而已。
SAD+COST(MV)用于整数像素运动估计
如果使能SATD的话,亚像素运动估计使用SATD+COST(MV),否则依然使用SAD+COST(MV)。
使用SA(T)D+COST(MV)+COST(ref)得到7个模式下各自的最佳匹配运动矢量和参考帧后,
如果使能RDO,使用SSD+COST(R)判断最佳模式。这里SSD是重建块和源图像的均方和,R是该模式编码下的码流,
否则,使用SA(T)D+COST(MV)+COST(ref)+COST(mode)判断最佳模式。
帧内模式下,情况类似,略
=======================================
又,这里提到了MVCOST,查了一下,只有一个不太好的解释,没看懂的说
MV_COST详解
where
f = lambda factor,
cx, cy = candidate x and y position for motion estimation,
s = motion vector shift
px, py = predicted x and y position for motion estimation,
and
WEIGHTED_COST = returns the cost for the bits using the
lambda factor
The RD-cost scheme, on the other hand, takes intoconsideration
the distortion factor and the rate of the compressed stream.The
distortion is computed by calculating the SNR of the blockand
the rate is calculated by taking into consideration the lengthof
the stream after the last stage of encoding The proposed mode
selection techniques use the MV_COST for deciding the best
mode for encoding as explained in section 4.
=====================================
又:还提到一个名词RDO,率失真优化,下面是一个也不太好的解释:
Rate-Distortion Optimization是视频编码中最优选择mode的一种方法。比如h.264里好多mode 8x8 16x16I4x4 I16 在给定的条件下,哪个是最好的?
Distortion 是指选用candidatemode产生的失真,rate是用这个mode需要的rate.他们换算成RDCost =Distortion + lamda *rate.两个mode谁的rdcost 低就选谁
其中的数学原理是条件极值转非条件极值。
JM 里用的RDO是比较经典的方法。最早是GaryJ.Sullivan做的 参见 IEEE Signal Processing Magazine 1998Nov. "Rate-Distortion Optimization for videocompression"rdo的经典。 h264里的rdo还可参考CSVTH.264 special issue