H.266/VVC技术描述_3-帧间预测_5-SbTMVP

1、子块时域运动矢量预测SbTMVP

  HEVC种使用了时域运动矢量预测TMVP(temporal motion vector prediction),VVC种使用了子块时域运动矢量预测SbTMVP(subblock-based temporal motion vector prediction),用于使用相关帧预测当前帧子块的运动矢量。TMVP和SbTMVP两者使用相同的相关帧,两者的不同在于:
  1、TMVP预测CU级的运动,SbTMVP预测sub-CU级运动。
  2、TMVP从相关帧的相关块得到运动信息 (相关块是当前CU左下或者中心对应的),SbTMVP添加了运动平移(相关块位置不同),运动平移从当前块的一个空间相邻块中得到。

2、预测步骤

  SbTVMP分为两步:
  1、检验空间相邻块A1,如果A1有一个使用相关帧作为参考帧的运动矢量,这个运动矢量用来得到运动平移。如果A1没有这样的运动矢量,运动平移设为0.
  2、添加运动平移来得到预测的运动信息。
  下图中使用了A1来得到运动平移。然后对应每个sub-CU, 用相关帧中其匹配块的运动信息来产生运动信息。确认了sub-CU相关块的运动信息后,使用类似HECV的TMVP的方法把运动矢量和参考帧索引覆盖到当前CU(调整时域运动矢量的参考帧来对齐)。
H.266/VVC技术描述_3-帧间预测_5-SbTMVP

3、开启条件

  VTM6中,子块merge列表包含了SbTVMP候选和affine merge候选,用于表示子块merge模式。SbTVMP模式可以通过一个SPS标志开关。如果开启SbMVP,SbMVP预测首先加入到子块merge列表候选中,然后是affine merge候选。子块merge列表长度在SPS中标记,VTM6中最大值设为5。
  SbTMVP子块大小为8x8,与affine中一样,只对宽高均大于8的CU使用。
  SbTMVP merge候选的编码逻辑与其他merge候选相同,对于P帧和B帧的每个CU,使用RD check来决定是否使用SbTMVP候选。