//xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
#if AMP_MRG//< encoder only force merge for AMP partition (no motion search for AMP)
Void TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bUseMRG)
#else
Void TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize )
#endif
{
UChar uhDepth = rpcTempCU->getDepth( 0 );
rpcTempCU->setDepthSubParts( uhDepth, 0 );//setDepthSubParts( UInt uiDepth, UInt uiAbsPartIdx )
rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );//setSkipFlagSubParts( Bool skip, UInt absPartIdx, UInt depth )
rpcTempCU->setPartSizeSubParts ( ePartSize, 0, uhDepth );//setPartSizeSubParts( PartSize eMode, UInt uiAbsPartIdx, UInt uiDepth )
rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth );
#if AMP_MRG
rpcTempCU->setMergeAMP (true);
m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], false, bUseMRG );
#else
m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] );
#endif
#if AMP_MRG
if ( !rpcTempCU->getMergeAMP() )
{
return;
}
#endif
m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false );
rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
xCheckDQP( rpcTempCU );
xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
}
xCheckRDCostInter
最新推荐文章于 2021-07-15 16:20:19 发布