Ignore:
Timestamp:
16 Jun 2013, 05:33:39 (11 years ago)
Author:
lg
Message:

1.IC and full pel depth coding are integrated and is guarded by Macro H_3D_IC.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2a/source/Lib/TLibEncoder/TEncCu.cpp

    r465 r468  
    457457  }
    458458#endif
    459 
     459#if H_3D_IC
     460  Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE );
     461  bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC();
     462#endif
    460463  // If slice start or slice end is within this cu...
    461464  TComSlice * pcSlice = rpcTempCU->getPic()->getSlice(rpcTempCU->getPic()->getCurrSliceIdx());
     
    513516      if( rpcBestCU->getSlice()->getSliceType() != I_SLICE )
    514517      {
     518#if H_3D_IC
     519        for( UInt uiICId = 0; uiICId < ( bICEnabled ? 2 : 1 ); uiICId++ )
     520        {
     521          Bool bICFlag = uiICId ? true : false;
     522#endif
    515523        // 2Nx2N
    516524        if(m_pcEncCfg->getUseEarlySkipDetection())
    517525        {
     526#if H_3D_IC
     527          rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     528#endif
    518529          xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );  rpcTempCU->initEstData( uiDepth, iQP );//by Competition for inter_2Nx2N
    519530        }
    520531        // SKIP
     532#if H_3D_IC
     533        rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     534#endif
    521535        xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, &earlyDetectionSkipMode );//by Merge for inter_2Nx2N
    522536        rpcTempCU->initEstData( uiDepth, iQP );
     
    538552          if ( !bEarlySkip )
    539553          {
     554#if H_3D_IC
     555            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     556#endif
    540557            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );  rpcTempCU->initEstData( uiDepth, iQP );
    541558            if(m_pcEncCfg->getUseCbfFastMode())
     
    545562          }
    546563        }
     564#if H_3D_IC
     565        }
     566#endif
    547567      }
    548568
     
    12451265  {
    12461266    m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx );
     1267#if H_3D_IC
     1268    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1269#endif
    12471270#if H_3D_ARP
    12481271    m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     
    12691292  // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    12701293  m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
     1294#if H_3D_IC
     1295  m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1296#endif
    12711297#if H_3D_ARP
    12721298  m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     
    12991325  }
    13001326  UChar uhDepth = rpcTempCU->getDepth( 0 );
    1301 
     1327#if H_3D_IC
     1328  Bool bICFlag = rpcTempCU->getICFlag( 0 );
     1329#endif
    13021330#if H_3D_VSO // M1  //nececcary here?
    13031331  if( m_pcRdCost->getUseRenModel() )
     
    13481376    {
    13491377      {
     1378#if H_3D_IC
     1379        if( rpcTempCU->getSlice()->getApplyIC() && rpcTempCU->getSlice()->getIcSkipParseFlag() )
     1380        {
     1381          if( bICFlag && uiMergeCand == 0 )
     1382          {
     1383            continue;
     1384          }
     1385        }
     1386#endif
    13501387        if(!(uiNoResidual==1 && mergeCandBuffer[uiMergeCand]==1))
    13511388        {
     
    13571394          rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(),     0, uhDepth );
    13581395          rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
     1396#if H_3D_IC
     1397          rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
     1398#endif
    13591399#if H_3D_ARP
    13601400          rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
Note: See TracChangeset for help on using the changeset viewer.