HM Inter/Merge模式的TMVP的计算

HM16.9支持的预测类型有两大类:MODE_INTER和MODE_INTRA。

/// supported prediction type
enum PredMode
{
  MODE_INTER                 = 0,     ///< inter-prediction mode
  MODE_INTRA                 = 1,     ///< intra-prediction mode
  NUMBER_OF_PREDICTION_MODES = 2,
};

merge属于MODE_INTER预测类型。
inter/merge模式,获取时域候选列表对应的函数是TComDataCU::xGetColMVP。

TMVP的原理是从collocated的PU获得MV,并根据距离远近做伸缩变换,具体做法如下(Recommendation 8.5.3.2.6 Derivation process for motion vector predictor candidates):

HM Inter/Merge模式的TMVP的计算_第1张图片

上面的公式看起来很复杂,其实就是MV乘了一个距离的比例。为了防止编解码端失配,运算过程中不能出现浮点数,所以运算过程中先将数值放大,计算完再右移,计算过程全程为整数。

你可能感兴趣的:(C/C++,H.265,视频编码)