xEstimateMvPredAMVP函数在获取到AMVP列表之后,调用xGetTemplateCost函数,来逐个计算每个AMVP候选的失真大小。
参数cMvCand,即为需要计算失真的AMVP候选。iMVPIdx为AMVP候选在列表中的idx,iMVPNum为AMVP候选列表的大小。失真的计算,就是AMVP候选mv所指向的pred像素predBuf,与pu原始像素origBuf之间的失真。
xGetTemplateCost函数中,调用xPredInterBlk函数来计算AMVP候选mv所指向的预测像素predBuf。其在运动补偿MC过程中已经分析过。
Distortion InterSearch::xGetTemplateCost( const PredictionUnit& pu,
PelUnitBuf& origBuf,
PelUnitBuf& predBuf,
Mv cMvCand,
int iMVPIdx,
int iMVPNum,
RefPicList eRefPicList,
int iRefIdx
)
{
Distortion uiCost = std: