Adaptive motion vector resolution (AMVR)

在 HEVC 中,当slice header中的 use_integer_mv_flag 等于 0 时,运动矢量差(MVD)(CU 的运动矢量和预测运动矢量之间)以四分之一亮度样本为单位用信号表示。 在VVC中,引入了CU级自适应运动矢量分辨率(AMVR)方案。 AMVR允许CU的MVD以不同的精度进行编码。 根据当前CU的模式(正常AMVP模式或仿射AVMP模式),可以如下自适应地选择当前CU的MVD:

– 正常 AMVP 模式:四分之一亮度样本、半亮度样本、整数亮度样本或四亮度样本。
– 仿射 AMVP 模式:四分之一亮度样本、整数亮度样本或 1/16 亮度样本。

如果当前CU具有至少一个非零MVD分量,则有条件地用信号发送CU级MVD分辨率指示。 如果所有 MVD 分量(即,参考列表 L0 和参考列表 L1 的水平和垂直 MVD)均为零,则推断四分之一亮度样本 MVD 分辨率。

对于具有至少一个非零MVD分量的CU,用信号发送第一标志以指示是否将四分之一亮度样本MVD精度用于CU。 如果第一标志为0,则不需要进一步的信令并且四分之一亮度样本MVD精度用于当前CU。 否则,用信号发送第二标志以指示将半亮度样本或其他MVD精度(整数或四亮度样本)用于正常AMVP CU。 在半亮度样本的情况下,半亮度样本位置使用 6 抽头插值滤波器而不是默认的 8 抽头插值滤波器。 否则,用信号发送第三标志以指示对于正常AMVP CU使用整数亮度样本还是四亮度样本MVD精度。 在仿射 AMVP CU 的情况下,第二个标志用于指示是使用整数亮度样本还是 1/16 亮度样本 MVD 精度。 为了确保重建的 MV 具有预期的精度(四分之一亮度样本、半亮度样本、整数亮度样本或四亮度样本),CU 的运动矢量预测器将四舍五入为相同的精度。 与 MVD 相加之前的精度与 MVD 的精度相同。 运动矢量预测值向零舍入(即,负运动矢量预测值向正无穷大舍入,正运动矢量预测值向负无穷大舍入)。

编码器使用 RD 检查确定当前 CU 的运动矢量分辨率。 为了避免总是对每个 MVD 分辨率执行四次 CU 级 RD 检查,在 VTM 中,仅有条件地调用除四分之一亮度样本之外的 MVD 精度的 RD 检查。 对于普通 AVMP 模式,首先计算四分之一亮度样本 MVD 精度和整数亮度样本 MV 精度的 RD 成本。 然后,将整数亮度样本MVD精度的RD成本与四分之一亮度样本MVD精度的RD成本进行比较,以决定是否有必要进一步检查四亮度样本MVD精度的RD成本。 当四分之一亮度样本MVD精度的RD成本远小于整数亮度样本MVD精度的RD成本时,跳过四亮度样本MVD精度的RD检查。 然后,如果整数亮度样本 MVD 精度的 RD 成本显着大于先前测试的 MVD 精度的最佳 RD 成本,则跳过半亮度样本 MVD 精度的检查。 对于仿射 AMVP 模式,如果在检查仿射合并/跳过模式、合并/跳过模式、四分之一亮度样本 MVD 精度正常 AMVP 模式和四分之一亮度样本 MVD 精度仿射 AMVP 的速率失真成本后未选择仿射帧间模式,则不检查 1/16 亮度样本 MV 精度和 1-pel MV 精度仿射帧间模式。 此外,在四分之一亮度样本MV精度仿射帧间模式中获得的仿射参数被用作1/16亮度样本和四分之一亮度样本MV精度仿射帧间模式中的起始搜索点。

《Adaptive motion vector resolution (AMVR)》有2个想法

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注