HEVC帧间预测之三——TEncCu::xCheckRDCostMerge2Nx2N函数分析

本文聚焦于HEVC编码中merge模式的关键函数xCheckRDCostMerge2Nx2N,通过代码分析,帮助读者理解merge模式的工作流程。尽管getInterMergeCandidates、motionCompensation和encodeResAndCalcRdInterCU等函数也重要,但它们的功能可从名称推断,不影响对merge模式整体理解。
摘要由CSDN通过智能技术生成

本文将对实现merge模式的主函数xCheckRDCostMerge2Nx2N进行分析,方便理清merge模式的整个过程。之前的一篇分析了getInterMergeCandidates的具体实现,还有两个比较重要的函数motionCompensation和encodeResAndCalcRdInterCU,将留在后面陆续进行分析,但是根据它们的命名就不难猜出它们的作用,而且事实也是这样,因此对理解merge模式的整个过程没有影响,可以暂时不用去细究具体实现。下面仍然以贴代码及注释的方式来进行分析:

Void TEncCu::xCheckRDCostMerge2Nx2N( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool *earlyDetectionSkipMode ) {   assert( rpcTempCU->getSlice()->getSliceType() != I_SLICE );   TComMvField  cMvFieldNeighbours[MRG_MAX_NUM_CANDS << 1]; // double length for mv of both lists   UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS];   Int numValidMergeCand = 0;

  for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui )   {     uhInterDirNeighbours[ui] = 0;   }   UChar uhDepth = rpcTempCU->getDepth( 0 );   rpcTempCU->set

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值