H.266 JEM7.0 帧间预测之九(解码端运动矢量提取DMVR)

解码端运动矢量提取 decoder-side motion vector refinement (DMVR)

在双向预测操作中,对于一个块区域的预测,两个预测块,分别用一个list0的MV和一个list1的MV结合成一个预测信号。在解码端,采用解码端的运动矢量细化DMVR方法,双向预测的两个运动矢量通过双边模板匹配被进一步优化。解码端使用双边模板匹配来在参考图像中执行双边模板和重构样本之间的基于失真的搜索,以获得不添加附加运动信息的精细MV。

在DMVR中,生成双边模板作为两个预测块的加权组合(即平均值),分别来自list0的初始MV0以及list1的初始MV1。模板匹配操作包括计算生成模板与参考图像中样本区域(在初始化预测块附近)之间的成本代价。对每两个参考图像的一个来说,产生最小模板成本的MV被视为该列表的更新MV并替换原来的模板。JEM中,每个list会搜索9个MV候选。9个MV候选包括原始MV和8个围绕的MV,其一个亮度样本相对于原始MV的偏移不是在水平就是在垂直方向,或者二者都有。最终,两个新的MV,MV0'以及MV1‘,被用来产生最终双向预测结果。代价衡量采用绝对误差和SAD。

此过程在函数:

TComPrediction::xWeightedAverage()

DMVR在merge模式的双向预测一个参考图像的MV来自过去一个来自未来的情况,没有附加语法元素的传输。JEM中,当LIC,仿射运动,FRUC,或者子CU的merge候选在CU中被使用,DMVR不可用。

猜你喜欢

转载自blog.csdn.net/yolo_life/article/details/81181284