在JEM中,引入了一种特殊merge模式——帧率上变换FRUC模式。该模式下块的运动信息不需要传输,在解码器端直接推到得到。FRUC模式分为双边匹配模式和模板匹配模式。
当merge flag为真的时候,会为CU传输FRUC flag。当FRUC flag是假时,使用正常merge模式并传输merge索引。当FRUC flag为真的时候,一个额外的FRUC模式flag被传输来表示使用双边匹配还是模板匹配。
在编码器端,CU使用RD代价选择是否使用FRUC merge模式。FRUC模式分为双边匹配和模板匹配,CU会对两者进行RD代价检测,选择代价最小者进一步和其他CU模式比较,如果最终判决FRUC模式最高效,则设置该CU的FRUC flag为真,使用其对应的匹配模式。
在FRUC merge模式中运动推导处理分为两步,首先执行一个CU级别的运动搜索,然后进行一个亚CU级别的运动优化:
1.CU级别运动搜索中,会为整个CU基于双边匹配或模板匹配推导得到一个初始运动矢量。首先生成一个MV候选列表,选择其中匹配代价最小的候选作为下一步CU级优化的起始点。
2.在上一步找到的起始点周围执行基于双边匹配或模板匹配的局部搜索,将找到的匹配代价最小的MV作为整个CU的MV。接下来以这个CU级的MV作为起点进行亚CU级别的优化。
例如,对一个WxH的CU进行运动信息推导。第一阶段推导WxH的整个CU的MV;第二阶段将CU划分为MxM的子CU,推导每个子CU的MV。子CU尺寸的M值由下式计算得到,其中D是预先定义的划分深度,在JEM中默认为3。
如下图所示,双向匹配通过在两个不同的参考图像中,根据当前CU的运动轨迹找到两个块之间的最接近匹配,来推导当前CU的运动信息。假设运动轨迹连续,分别指向两个参考块的运动矢量MV0和MV1应该是和时域距离(当前图像与两个参考图像的时域距离TD0和TD1)成比例的。当TD0=TD1时,双边匹配就变为了基于镜像的双向MV。
模板匹配会在当前图像中选择当前CU的上方/左侧邻近块作为模板,通过在参考图像中找到一个和模板大小相同的最接近匹配块计算当前CU的运动信息,如下图所示。
除了上述的FRUC merge模式,模板匹配也被用于AMVP模式。JEM和HEVC一样,AMVP有两个候选。模板匹配被作为一个新的候选,如果通过模板匹配推导得到的新的候选和第一个已有的AMVP候选不同,它会被插入到AMVP候选最前位置,列表尺寸被设置为2(此时AMVP原有的第二候选会被删除)。当应用AMVP模式时,只有应用CU级别的搜索。
在CU和亚CU两个级别处理阶段,MV候选列表如下:
CU级别MV候选列表:
1.Original AMVP candidates if the current CU is in AMVP mode
2.all merge candidates
3.several MVs in the interpolated MV field
4.top and left neighbouring motion vectors
亚CU级别MV候选列表
1.an MV determined from a CU-level search,
2.top, left, top-left and top-right neighbouring MVs,
3.scaled versions of collocated MVs from reference pictures,
4.up to 4 ATMVP candidates,
5.up to 4 STMVP candidates
在双向预测操作中,对一个块进行预测时,会使用分别来自于list0和list1的MV构造两个预测块,组合得到当前块的预测块。在解码器端运动矢量修正(DMVR)算法中,这两个MV进一步通过双边模板匹配来进行优化。在解码器中,双边模板匹配在参考帧中对双边模板和重构采样基于失真进行搜索,获取修正MV,不需要阐述额外的运动信息。
在DMVR中,一个双边模板通过list0的MV0和list1的MV1得到的两个预测块加权得到,如下图。模板匹配包括计算生成的模板和参考图像中采样区域(初始预测块周围)之间的代价。用两个参考图生成最小匹配代价的MV更新列表中原始MV。在JEM中,为每个列表搜索9个MV候选。9个MV候选包括包括原始MV和相对于原始MV的亮度采样水平/垂直/水平+垂直方向偏移后的8个周围MV。最终,两个新的MV也就是MV0’和MV1’如下图所示,被用于生成最终的双向预测结果。其中使用SAD作为失真度量标准。
DMVR分为两步:
1.根据初始MV0和MV1的预测块加权生成双边模板。
2.通过双边模板匹配最优匹配块,更新MV0和MV1得到MV0’和MV1’。
DMVR用于双向预测中两个MV来自不同方向的merge模式,不需要传输额外的语法元素。在JEM中,在CU中,如果LIC、affine motion、FRUC或亚CU merge候选可用,DMVR不可用。