上一篇提到的merge模式下直接使用MVP作为MV,AMVP模式多了一个MVD的计算,当然并不仅仅是这点,下面看AMVP实现的理论流程,我尽力还原我学习的思维历程。

参考西电杨老师的书《H.265/HEVC原理、标准与实现》,学习HEVC的手头备一本很方便。

AMVP(Advanced Motion Vector Prediction)高级运动向量预测,类似merge,先建立候选列表,建立列表之后从中选出最优的MV,并对MV进行差分编码(就是与真正的MV对比求差,保存差值MVD)。

我一开始的疑惑是,你参考其他的MV,其他的MV参考另一个的MV,那最早的一个MV怎么求的?还有那个真正的MV是怎么求的?是用默认值吗,默认值怎么想都不合理啊。这个问题还与后面运动估计相关,H.265中运动估计用到的起始搜索点和MVP是由AMVP确定的,到了运动估计我相信你也会有疑问,那最早那一帧的第一个搜索点和MVP是怎么确定的?这问题先保留,一步一步往下来探索。

AMVP空域:

图一、候选PU

AMVP的候选列表建立的繁琐一点,大小也是5,不够5个就补零,列表填充顺序:左面,A0->A1->scaledA0->scaledA1,上面三个,B0->B1->B2(->scaledB0->scaledB1->scaledB2),按顺序哪个能用用哪个。

能用的标准:①参考的PU存在

②参考的PU不是帧内预测模式(想用也没办法,它没MV)

③参考的PU有MV,但它的MV参考的那帧图像和当前PU参考的图像不是一幅,它的MV不能直接用,而是使用比例伸缩后得到scaledMV(是不是觉得比例伸缩还挺好使),所以一个PU的MV与scaledMV同时只存在一个(个人理解)。

④上面三个参考PU,只有在左侧不用时才会选它们作为备选(代码中可能会有出入,不知道会不会一下子都填好)。

AMVP时域:

时域列表的建立与merge相同,参考同位PU并进行MV的伸缩(同位PU是怎么寻找的?)。

AMVP最终列表:

参考merge,流程如下:

图二、AMVP候选列表建立

先建空域列表、时域列表,从空域选两个、时域选一个共三个,三个里有相同的MV就合并,组成一个新表,新表里其余都填(0,0),最后只保留前两个作为AMVP模式下的候选列表。

发现上一篇和这一篇主要是说候选表的建立(挑学习好的抄作业,不能老嗑一个人抄,还专门做了个小本本记下名字,用到就瞅瞅看这次翻谁的牌子>~<),涉及的不是太多,路还很长,要拼命跑呀。

回首向来潇洒处,也无风雨也无晴!

帧间预测--AMVP模式理论部分相关推荐

  1. 帧间预测-AMVP 模式

    高级运动向量预测(AMVP)利用空域.时域上运动向量的相关性,为当前PU建立了候选预测MV列表. 其候选列表长度为2. AMVP 模式下,编码的不是merge index ,而是MVD,MVD 是指当 ...

  2. HM编码器代码阅读(16)——帧间预测之AMVP模式(四)预测MV的获取

    帧间预测的原理 AMVP的原理 帧间预测的实质就是为当前的PU在参考帧中寻找一块最相似块(相似度的判断准则有SAD等方法).但是参考图像通常都比较大,我们直接去搜索的话就太费时了,应该使用某种方法在参 ...

  3. HM编码器代码阅读(13)——帧间预测之AMVP模式(一)总体流程

    帧间预测的原理 AMVP的原理 帧间预测的实质就是为当前的PU在参考帧中寻找一块最相似块(相似度的判断准则有SAD等方法).但是参考图像通常都比较大,我们直接去搜索的话就太费时了,应该使用某种方法在参 ...

  4. HM编码器代码阅读(32)——帧间预测之AMVP/Merge模式(七)encodeResAndCalcRdInterCU函数:残差计算、变换量化

    encodeResAndCalcRdInterCU 原理和细节 经过运动估计.运动补偿,我们得到了MV以及参考块,那么接下来是计算残差.计算MVD,然后对系数进行变换.量化. encodeResAnd ...

  5. VVC帧间预测(一)扩展的merge模式

    VVC在HEVC的基础上增加了很多新的帧间预测工具,在VTM5里新增的帧间预测工具如下: Extended merge prediction Merge mode with MVD (MMVD) AM ...

  6. 【三】 VVC理论知识之帧间预测(1)

    一.帧内预测的基本原理 帧间预测主要用于去除图像的时间相关性.帧间预测算法是通过将已编码的图像作为当前图像的参考图像,来获得当前图像的各个块在参考图像中的运动信息,通常用运动矢量和参考帧索引表示,如下 ...

  7. H.266/VVC相关技术学习笔记21:帧间预测中五种Merge模式的熵编码方式

    今天主要详细讲一下帧间预测中五种Merge模式的熵编码方式,以及对应的VTM的代码中的编码方式的实现.现阶段VTM6.0中Merge模式大致上分为五种,分别是Subblock_Merge.MMVD_M ...

  8. H.266/VVC帧间预测技术学习:几何划分模式(Geometric partitioning mode, GPM)

    几何划分模式 (Geometric partitioning mode ,GPM)原理 针对图像中运动物体的边界部分,VVC采用了几何划分模式进行帧间预测.如下图所示,GPM模式在运动物体的边界处进行 ...

  9. HEVC帧间预测流程梳理

    HEVC帧间预测流程 前言:最近在琢磨hevc理论知识,看着那本书绕过去绕过来咋也没把流程想通,去找了师兄说耽误他一分钟,结果叭叭叭了六小时哈哈哈哈. 最后还是感谢师兄给我解答问题,我写这篇文章主要是 ...

最新文章

  1. 远程如何修改Windows 2003机器名
  2. c语言删除文件remove_C程序删除文件
  3. 实操|如何将 Containerd 用作 Kubernetes runtime
  4. 《视频直播技术详解》系列之二:采集
  5. Vim+ctags+cscope+Nerdtree+Taglist入门
  6. 用于MyBatis CRUD操作的Spring MVC 3控制器
  7. java数组的四个要素_Java零基础系列教程04Java数组
  8. mysql5.7的客户端软件_mysql数据库管理客户端工具|mysql数据库管理软件 v5.7.22 64位官方版 - 软件下载 - 绿茶软件园|33LC.com...
  9. android学习笔记---51_编码实现软件界面,把固定不变的界面写到xml中,逻辑改变的写到程序中,
  10. mac自带自动化java_java Mac自动化-java和ant环境搭建
  11. 管理系统中的计算机应用答案,《管理系统中计算机应用》试卷答案
  12. lock.lock()使用,与synchronized对比
  13. 渠道效果五步优化,让采购的流量物超所值
  14. 15投影矩阵与Moore-Penrose逆(2)
  15. 基于 TI 方案 CC2540 低功耗无线蓝牙模块详解
  16. 论文阅读——MobileNetV2: Inverted Residuals and Linear Bottlenecks
  17. POI单元格合并(合并后边框空白修复)、自动列宽、水平居中、垂直居中、设置背景颜色、设置字体等常见问题
  18. 金蝶云苍穹集成,苍穹到eas审核反审核
  19. 毕业设计-基于深度学习的图像隐写分析
  20. 双网卡设置一个外网一个内网_双网卡同时上网,内网外网同时启用的解放办法...

热门文章

  1. 购买新款macbook pro,现在买还是等双十一?
  2. html文字段落缩进,CSS text-indent段落首行文字缩进分享
  3. 漏洞复现----11、GlassFish任意文件读取
  4. spring boot入门 -- 介绍和第一个例子
  5. 【720开发】 spring boot 快速入门
  6. 百万调音师—Audition降噪
  7. 点击地图获取经纬度(基于腾旭地图api)
  8. 微信浏览器页面默认背景色的问题
  9. 利用Proteus仿真基于stm32的智能家居并上传至阿里云
  10. Error: [$injector:unpr] AngularJS 注入报错