帧间预测--AMVP模式理论部分

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

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

AMVPAdvanced 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模式下的候选列表。

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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值