Affine motion compensated prediction

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/VioletHan7/article/details/83746429

参考提案:JVET-K1002


一、

在HEVC中,运动补偿预测(MCP)仅采用平移运动模型。而在现实世界中,有很多种运动,比如放大/缩小、旋转、透视等不规则运动。在VTM中,采用了基于块的仿射变换运动补偿预测方法。如图13所示,通过两个控制点(4参数)或三个控制点运动向量(CPMV)(6参数)来描述块的仿射运动场(MF)。
在这里插入图片描述

对于4参数仿射运动模型,推导出块中样本位置(x, y)的运动向量为:
在这里插入图片描述

对于6参数仿射运动模型,推导出块中样本位置(x, y)的运动向量为:
在这里插入图片描述

式中(v0x, v0y)为左上角控制点的运动矢量,(v1x, v1y)为右上角控制点的运动矢量,(v2x, v2y)为左下角控制点的运动矢量。

为了简化运动补偿预测,采用了基于块的仿射变换预测方法。获得每个4×4子块的运动矢量,每个子块的运动矢量中心的样本,如图14所示,根据上面的计算方程,四舍五入到1/16精度。然后应用运动补偿插值滤波器,利用导出的运动矢量对每个子块进行预测。

在这里插入图片描述


二、

在VTM中,有两种仿射运动模式:AF_INTER模式和AF_MERGE模式。
2.1
AF_MERGE mode可应用于宽度和高度>=8的CUs,当CU使用AF_MERGE mode时,当前块的CPMVs可通过使用affine mode编码的相邻块的CPMVP得到。候选块的选择顺序是从左、上、右、左下到左上,如图15.a所示。如果相邻的左下块A以仿射模式编码,如图15.b所示,可以得到了包含A块的CU的左上角、右上角和左下角的运动矢量v2 v3 v4。

当A块采用4参数affine mode编码时,当前CU的CMVPs可通过v2 v3计算得到;
当A块采用6参数affine mode编码时,当前CU的CMVPs可通过v2 v3 v4计算的得到;

为了确定当前CU是否使用AF_MERGE模式进行编码,在码流中,当至少有一个相邻块以affine模式进行编码时,就会写入一个affine标志。

在这里插入图片描述

2.2
AF_INTER模式适用于宽度和高度均>=16的CUs。在码流中,需要写入一个CU层级的affine标志来表示是否使用AF_INTER模式,然后向另一个标志表示是否使用4参数仿射或6参数仿射。在这种模式下,需要在码流中传输当前CU的CPMV与预测器CPMVP的差值。CPMVPs候选列表的大小为2,按顺序使用以下三种CPMV候选生成:
1)CPMV是从相邻块的CPMV中推断出来的
2)利用相邻块的平移MVs构建CPMVs
3)复制每个AMVP候选对象生成的CPMVs

猜你喜欢

转载自blog.csdn.net/VioletHan7/article/details/83746429