xCheckRDCostIntra为帧内预测的总入口函数。
xCheckRDCostIntra在xCompressCU函数中被调用,用来计算帧内预测模式,获取intra模式的最优帧内模式的数据
其中调用estIntraPredLumaQT函数和estIntraPredChromaQT函数,分别获得最优亮度帧内模式和色度帧内模式。
void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode& encTestMode )
{
const PPS &pps = *tempCS->pps;
const CodingUnit *bestCU = bestCS->getCU( partitioner.chType );
Distortion interHad = m_modeCtrl->getInterHad();
for( UChar numPasses = 0; numPasses < 1; numPasses++ )
{
//3) if interHad is 0, only try further modes if some intra mode was already better than inter
if( m_pcEncCfg->getUsePbIntraFast() && !tempCS->slice->isIntra() && bestCU && CU::isInter( *bestCS->getCU( partitioner.chType ) ) && interHad == 0 )
{
continue;
}
tempCS->initStructData( encTestMode