在AVS2中运动预测中使用的MV都是1/4像素精度,通过在整像素间插值能显著提升非整像素运动预测的精度,同时带来的问题是随着MV精度的提高编码MVD所需的比特数也会增加。

AMVR


AMVR支持的MVD编码5种精度的MVR{1/4,1/2,1,2,4},索引为0到4,如下表。

编码端从5种精度中选择RD cost最小的,将MVR索引传输到解码端,其中索引使用截断二元码编码,解码端获取到MVR后将MVD和对应的MVP对齐到该精度。

注意,对于使用仿射模式的CU,AMVR仅支持3种精度{1/4,1,1/16}。CU的索引CPMV使用相同的精度。

EMVR


EMVR是在AMVR的基础上将MVR和HMVP绑定。当使用EMVR时,MVP候选项由HMVP构成,此时MVR和MVP共用同一个索引。

HMVP候选集由历史已编码CU的MV构成,距离当前越近分配的索引越大。EMVR将MVR和HMVP的索引绑定,绑定的规则基于这样的假设,离当前越近的MVP和当前的运动越相关。因此,MVR小的索引和MVP大的索引绑定,也即对越近的MVP使用的MV精度越高。

假设MVR的数量是N,HMVP中MVP的数量是M,则根据M和N的大小关系有两种情况:

  • 当M>=N时,如上图(a),MVR的索引0对应MVP的索引(M-1),MVR的索引(N-1)对应MVP的索引(M-N),此时对于MVR的每项HMVP中都有对应的MVP。

  • 当M<N时,如上图(b),MVR的索引0对应MVP的索引(M-1),MVR的索引(M-1)对应MVP的第一个索引。MVR的索引M到(N-1)都对应HMVP中的同一个索引(M-1)。

根据HMVP候选集构建规则可以得到运动信息,如果运动信息只有L0对应的mvH0,则L1中的mvH1由mvH0缩放得到,反之亦然。

缩放规则如上表,其中dE0和dE1分别是当前帧和L0和L1中参考帧的距离,dL0和dL1分别是当前帧和L0和L1中运动信息的参考帧的距离。

当前的MVP由下式求得:

经AMVR调整精度后:

实验结果


下表是AMVR和EMVR在RA配置下的效果,实验平台为HPM6.0,anchor是AMVR和EMVR均关闭。

AVS3中的AMVR和EMVR相关推荐

  1. H.266/VVC相关技术学习笔记18:帧间预测中的AMVR技术(自适应运动适量精度)

    AMVR技术也称为自适应运动适量精度技术,就是在以前的HEVC中,MVD的精度只有一个默认的1/4像素精度,但是由于要适应不同分辨率的图像,仅仅使用一个精度去表示MVD是远远不够的,因此在VTM6.0 ...

  2. AVS3中Intra预测过程 - HPM代码分析

    视频编码中,帧内预测需要获取相邻块的参考像素才能获得重建,在AVS3参考软件平台HPM中,这个过程是如何实现的呢? HPM中的map_scu 1.什么是SCU? SCU是Smallest CU的缩写. ...

  3. AVS3关键技术、性能和复杂度分析

    本文由北京大学的范逵博士在LiveVideoStack线上分享第三季,第七期的内容整理而成,本次分享将主要从AVS3关键技术介绍.AVS3性能测试两个方面介绍AVS3基准档次中新采纳的编码工具,并分析 ...

  4. AVS3:对称运动矢量差SMVD

    对于帧间预测来说,当视频内容较简单时编码残差的比特数可能会较少而编码运动信息的比特数占比可能会变高,此时编码运动信息的码率成为了压缩率的​瓶颈.AVS3中引入了对称运动矢量差(SMVD,Symmetr ...

  5. GNU Make 使用手册(于凤昌中译版)

    GNU Make 使用手册(中译版) 翻译:于凤昌 GNU make Version 3.79 April 2000 Richard M. Stallman and Roland McGrath 1 ...

  6. ICME2021:基于VVC的角度加权预测

    本文来自ICME2021论文<Angular Weighted Prediction for Next-Generation Video Coding Standard> 加权预测是视频编 ...

  7. 论文阅读:Prediction With Multicross Component forFuture Video Coding

    论文来源:2020 IEEE Digital Object Identififier 概要:为了全方位探索不同色彩通道之间的相似度,本文面向AVS3标准提出了一种跨分量预测方法PMC作为一种新的色度帧 ...

  8. 面试:第十二章:所有总结

    Java基础 java基本类型哪些,所占字节 byte :1个字节 short :2个字节 char :2个字节 int :4个字节 long :8个字节 float :4个字节 double :8个 ...

  9. linux内核分析(转自某位大哥网上的笔记)

    启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码.BIOS先进行一系列的系统自检,然后初始化位于地址0的中断 ...

最新文章

  1. UITextField的详细使用
  2. 怎样让你的安全预算更具战略性?
  3. [临时]关于tar.gz .gz的压缩研究
  4. 基于asp.net + easyui框架,一步步学习easyui-datagrid——界面(一)
  5. 格式怎么转换_爱奇艺下载的视频怎么转换成常见的mp4格式?
  6. 推荐算法实现java_利用Java写开源库 覆盖70多种推荐算法
  7. 60-320-040-使用-去重-HyperLogLog 去重计数
  8. 2016.1.20 总结(for语句,选择语句和循环语句混合使用)
  9. logback 打印日志参考,包含异步打印日志及历史日志压缩
  10. hdu acm2548
  11. URLDecoder
  12. U-Boot源码之NAND Flash驱动
  13. ROS 使用 gazebo 仿真时遇到的问题
  14. UVALive 6657 GCD XOR
  15. win10操作快捷键 VsCode操作快捷键及使用
  16. 最美的公式:你也能懂的麦克斯韦方程组
  17. 中英文停止词表(stopword)
  18. 面向对象程序设计(Java)实验
  19. 10个jQuery Page Peel插件
  20. 小功能⭐️Unity中利用材质自发光实现物体闪烁效果

热门文章

  1. ChatGPT:从问题解答到赚钱
  2. FII-PRA006/010开发板硬件实验一
  3. 30. 小浣熊干脆面
  4. 圆形上下挤压 matlab,基于Matlab的GUI设计双螺杆挤压机系统仿真软件
  5. 编译错误/usr/bin/ld: cannot find -lz
  6. h5 禁止微信内置浏览器调整字体大小
  7. 【Flume】Flume原理简述及示例实践
  8. docker之cgroup、compose
  9. 计算智能 — 模糊计算
  10. 计算机维修要学英文吗,学计算机编程需要英文吗?