关于HM/JEM Merge Candidates

TComDataCU::getInterMergeCandidates函数用于得到Merge模式的候选列表。Merge模式的候选列表最多为5个,且默认为5个:
software-manual可以设置参数:MaxNumMergeCand 5 Specifies the maximum number of merge candidates to use.
CommonDef.h中的最大值:
static const Int MRG_MAX_NUM_CANDS = 5; ///< MERGE
其中最多4个空域候选,一个时域候选。时域候选在software-manual开关为:

TMVPMode 1 Controls the temporal motion vector prediction mode.

TMVPMode的取值及其含义:
0 Disabled for all slices.
1 Enabled for all slices.
2 Disabled only for the first picture of each GOPSize.
此开关在TAppEncCfg::parseCfg函数中的对应代码为:

("TMVPMode", m_TMVPModeId, 1, "TMVP mode 0: TMVP disable for all slices. 1: TMVP enable for all slices (default) 2: TMVP enable for certain slices only")

而AMVP技术的候选列表长度为2,在software-manual没有对应的参数:
CommonDef.h中的最大值:
static const Int AMVP_MAX_NUM_CANDS = 2; ///< AMVP: advanced motion vector prediction - max number of final candidates

在JEM中,MRG_MAX_NUM_CANDS的值是7:

#if COM16_C806_VCEG_AZ10_SUB_PU_TMVP
  printf("Max Num Merge Candidates               : %d\n", m_maxNumMergeCand+(m_useAtmvpFlag? 2:0 ));
#else
  printf("Max Num Merge Candidates               : %d\n", m_maxNumMergeCand);
#endif
#if COM16_C806_VCEG_AZ10_SUB_PU_TMVP
static const Int MRG_MAX_NUM_CANDS =                                7; ///< MERGE
#else
static const Int MRG_MAX_NUM_CANDS =                                5; ///< MERGE
#endif

关于InterDir:若使用了list0,LSB置为1;若使用了list1,倒数第二位置为1。
相关功能在HM/JEM的TComDataCU::getInterMergeCandidates函数中实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值