在VVC中,除了单向预测和双向预测MVD信令外,还应用了双向MVD信令的对称MVD模式,即SMVD。
在SMVD模式下,list-0和list-1的参考帧索引,以及列表1的MVD的运动信息可以被推导出,不再传flag。
1 使用条件
对称MVD模式的解码过程如下:
1.在Slice级别, 语法元素BiDirPredFlag
, RefIdxSymL0
和RefIdxSymL1
推导如下:
如果 list-1的MVD是0,则BiDirPredFlag
设置为0;
否则,如果list-0中最近的参考帧和list-1中最近的参考帧是前后一对参考图片,并且list-0和list-1的参考帧是短期参考帧,则BiDirPredFlag
设置为1,否则 ,BiDirPredFlag依然设置为0。
2.在CU级别, 如果CU是双向预测,并且BiDirPredFlag
等于1,则显式地发出指示是否使用smvd标志。
2 解码端计算方式
当smvd使用时,仅发送mvp_l0_flag
, mvp_l1_flag
和 MVD0
。将list-0和list-1的参考帧索引分别设置为等于该对参考图片。 令MVD1为等于(-MVD0)。最终计算出MV如下:
下图为一个smvd预测的样例:
3 编码MV的选择过程
在编码端,SMVD运动估计从初始MV估计开始。一组初始MV候选包括从单向预测搜索中获得的MV,从双向预测搜索中获得的MV和从AMVP列表中获得的MV。选择RD代价最小的一个作为SMVD运动搜索的初始MV。