コード例 #1
0
ファイル: TEncEntropy.cpp プロジェクト: GregDobby/16.4pgr
//! encode prediction mode
Void TEncEntropy::encodePredMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
{
  if( bRD )
  {
    uiAbsPartIdx = 0;
  }

#if SCM_T0227_INTRABC_SIG_UNIFICATION
  if ( pcCU->getSlice()->isIntra() && !pcCU->getSlice()->getSPS()->getUseIntraBlockCopy() )
  {
    return;
  }
#else
  if ( pcCU->getSlice()->isIntra() )
  {
    if ( pcCU->isIntra( uiAbsPartIdx ) )
    {
      encodePLTModeInfo( pcCU, uiAbsPartIdx );
      if ( pcCU->getPLTModeFlag( uiAbsPartIdx ) )
      {
        if ( !bRD )
        {
          pcCU->saveLastPLTInLcuFinal( pcCU, uiAbsPartIdx, MAX_NUM_COMPONENT );
        }
      }
    }

    return;
  }

  if( pcCU->isIntraBC( uiAbsPartIdx ) )
  {
    return;
  }
#endif

  m_pcEntropyCoderIf->codePredMode( pcCU, uiAbsPartIdx );
  if(pcCU->isIntra( uiAbsPartIdx ))
  {
    encodePLTModeInfo (pcCU, uiAbsPartIdx);
    if (pcCU->getPLTModeFlag(uiAbsPartIdx))
    {
      if (!bRD)
      {
        pcCU->saveLastPLTInLcuFinal( pcCU, uiAbsPartIdx, MAX_NUM_COMPONENT );
      }
    }
  }

}
コード例 #2
0
ファイル: TEncEntropy.cpp プロジェクト: JoaoBarth/SCM-6.0
//! encode prediction mode
Void TEncEntropy::encodePredMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
{
  if( bRD )
  {
    uiAbsPartIdx = 0;
  }

  if ( pcCU->getSlice()->isIntra() )
  {
    return;
  }

  m_pcEntropyCoderIf->codePredMode( pcCU, uiAbsPartIdx );

#if !SCM_S0043_PLT_DELTA_QP
  if(pcCU->isIntra( uiAbsPartIdx ))
  {
    encodePLTModeInfo (pcCU, uiAbsPartIdx);
    if (pcCU->getPLTModeFlag(uiAbsPartIdx))
    {
      if (!bRD)
      {
        pcCU->saveLastPLTInLcuFinal( pcCU, uiAbsPartIdx, MAX_NUM_COMPONENT );
      }
    }
  }
#endif
}