学习笔记 | VVC帧间预测 | AMVR

AMVR技术要点请参考VVC标准文档,本文仅记录学习过程。

1) 功能理解

H266 亮度MV默认采用 1/4 像素精度(内部计算时采用1/16像素精度),而AMVR就是对每个cu依次按照整像素、4倍像素、半像素的精度进行ME,再预测计算RDCost,并取最优结果。

  • ME时得到的MV需要按照精度进行缩放,然后再存储。
  • ME的一般过程是 整像素搜索 -> 1/2像素搜索 -> 1/4像素搜索。

2)VTM代码(在VTM9基础上有所改动)

在xCheckRDCostInterIMV()函数中,通过 cu.imv 标识当前采用的是何种像素精度。

对于Normal AMVP模式,处理流程如下:

  • 先计算亮度的 1/4 和 整像素 MVD的RDCost,分别标记为 bestNoImvCost 和 bestIntPelCost
  • 两者比较之后,再决定是否要做 4倍像素的RDCost
    • 如果1/4像素精度的RDCost 远小于 整像素的RDCost,就直接跳过4倍像素精度的检查;说明MVD比较精细
    • VTM中是 bestIntPelCost > 1.06 * bestNoImvCost
  • 如果整像素MVD的RDCost 明显大于之前的最佳RDCost,那么就直接跳过 1/2 像素的检查
    • 因为如果整像素的cost远大于最优cost,那么最优结果要么是1/4像素,要么是4倍像素;说明MVD要么很精细,要么很粗糙,两个极端。
    • VTM中是 bestIntPelCost > 1.25 * bestCost

代码流程图如下

3)直观感受

用工具分析一段使用AMVR工具的码流,图像中每个CU的预测模式、AMVR模式和MV0信息见下图。

其中红色方框内的几个CU分别使用了整像素精度(Fpel)和1/2像素精度(Hpel),其余默认采用1/4像素精度。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值