HTM-16.2代码(9)——fillMvpCand

本文详细介绍了在编码器中fillMvpCand函数如何实现AMVP技术,该技术利用空域和时域的mv相关性,创建候选预测mv列表。编码端选择最优mvp并差分编码,解码端依据MVD和候选列表序号计算mv。内容包括空域(左侧和上方)及时域(H和C3位置)候选列表的建立流程。
摘要由CSDN通过智能技术生成

fillMvpCand是AMVP技术构建候选列表的实现。AMVP利用空域和时域上mv的相关性,为当前PU建立了候选预测mv列表。编码器从中选出最优的预测mvp,并对mv进行差分编码;解码端通过建立相同的列表,仅需要MVD和mvp在候选列表中的序列号,即可计算出当前PU的mv。

mv候选列表的构建:
(1)空域列表的建立。
这里写图片描述
左侧A0->A1->scaled A0->scaled A1;
当A0和A1不可用时,上方B0->B1->B2->scaled B0->scaled B1->scaled B2

(2)时域列表的建立。
scaled H;若H位置不可用,则选取scaled C3
这里写图片描述

AMVP候选列表的构建流程:
这里写图片描述

Void TComDataCU::fillMvpCand ( const UInt partIdx, const UInt partAddr, const RefPicList eRefPicList, const Int refIdx, AMVPInfo* pInfo ) const
{
  //AMVP候选列表的构建
  pInfo->iN = 0;
  if (refIdx < 0)
  {
    return;
  }

  //-- Get Spatial MV
  UInt partIdxLT, partIdxRT, partIdxLB;
  deriveLeftRightTopIdx( partIdx, partIdxLT, partIdxRT );//得到当前CU最左上边4*4小块的Z索引partIdxLT和最右上边4*4小块的Z索引partIdxRT
  deriveLeftBottomIdx( partIdx, partIdxLB );//得到左下边
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值