本文译自提案JVET-D1001的2.3.6小节的内容。
在HEVC中,运动补偿预测(MCP)仅仅使用平移运动模型。然而在真实世界中,有各种各样的运动,例如:淡入/淡出、旋转、视角运动、不规则运动。在JEM中,使用一种简化的仿射变换来提高编码性能。如下图所示,块的运动矢量域由两个控制点运动矢量描述。
简化的仿射运动模型
块的运动矢量域(MVF)由下面的方程描述:
其中(v0x, v0y)是左上角控制点的运动矢量,(v1x, v1y)是右上角控制点的运动矢量。
为了进一步简化运动补偿预测,使用基于块的仿射变换预测。为了产生每个4x4子块的运动矢量,每个子块的中间样点的运动矢量由上式计算得到,并且四舍五入为1/16分像素精度,如下图所示。然后使用运动补偿内插滤波器和得到的运动矢量产生每个子块的预测。
每一子块的仿射运动矢量域
运动补偿预测后,每一子块的高精度运动矢量进行四舍五入,并保存为正常的运动矢量的精度。
在JEM中,有两种仿射运动模式:AF_INTER模式、AF_MERGE模式。长和宽都大于8的CU可以使用AF_INTER模式。在CU层,一个仿射标记位写到码流里,来标记AF_INTER模式是否使用。在这种模式,运动矢量对候选列表 {(v_0,v_1 )|v_0={v_A,v_B,v_c},v_1={v_(D,) v_E}}通过相邻块组建。如下图所示,v_0从块A、B、C中选择MV。从相邻块来的运动矢量依据参考列表和相邻块的参考块的POC、当前块的参考块的POC、当前块的POC之间的关系进行量化。从参考块D和E选择v_1的方法也相似。如果候选列表的数量小于2,则填入由复制AMVP候选得到的运动矢量对。如果候选列表的数量大于2,
候选首先依据相邻运动矢量的连续性(在一个运动矢量对中的两个运动矢量的相似性)排序,且只保留头两个候选。使用率失真代价来决定选择哪一个运动矢量对作为当前CU的控制点运动矢量预测(CPMVP)。且在码流中用一个索引来指示控制点运动矢量预测(CPMVP)。在确定当前CU的控制点运动矢量预测(CPMVP)后,应用仿射运动估计,且控制点运动矢量(CPMV)被找到。然后将CPMV和CPMVP之间的差标记在码流中。
AF_INTER模式的运动矢量预测
当一个CU使用AF_MERGE模式,它从使用仿射模式的有效相邻重建块中取第一个块。候选块选择的顺序是左、上、右上、左下、左上,如图16.a所示。如果左下相邻块A使用仿射模式,如图16.b所示,包含块A的CU的运动矢量v_2(左上角),v_3(右上角),和v_4(左下角)可以推导出来。且当前块左上角的运动矢量根据v_2,v_3,和v_4计算出来。然后,当前CU右上角的运动矢量v_1被计算出来.
当前CU的控制点运动矢量预测v_0和v_1计算出来后,根据上文中简化的仿射运动模型方程,得到当前CU的运动矢量域(MVF)。当至少有一个相邻块用仿射模式编码时,一个仿射标记位被写进码流中来鉴别当前块是否使用AF_MERGE模式编码。
(a) (b)
Figure 16: AF_MERGE候选