Ignore:
Timestamp:
13 May 2015, 15:16:14 (10 years ago)
Author:
hhi
Message:

Alignment and reactivation of DMM and depth encoder optimizations:

  • new macro NH_3D_DMM for DMM functionality, including several clean-ups.
  • new macro NH_3D_SDC for SDC functionality, currently only used for covering common SDC and DMM parts.
  • new macro NH_3D_ENC_DEPTH for encoder optimizations related to depth.
  • temporary macro TEMP_SDC_CLEANUP for covering several proposed cleanups related to SDC and DMM.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev1-HHI/source/Lib/TLibEncoder/TEncCu.cpp

    r1200 r1209  
    733733    }
    734734#endif
    735 #if H_3D_DIM_ENC
     735#if NH_3D_ENC_DEPTH
    736736    if( rpcBestCU->getSlice()->getIsDepth() && rpcBestCU->getSlice()->isIRAP() )
    737737    {
     
    10751075
    10761076        if((rpcBestCU->getSlice()->getSliceType() == I_SLICE)                                     ||
    1077             ((!m_pcEncCfg->getDisableIntraPUsInInterSlices()) && (
     1077           ((!m_pcEncCfg->getDisableIntraPUsInInterSlices()) && ( // avoid very complex intra if it is unlikely
    10781078           (rpcBestCU->getCbf( 0, COMPONENT_Y  ) != 0)                                            ||
    10791079          ((rpcBestCU->getCbf( 0, COMPONENT_Cb ) != 0) && (numberValidComponents > COMPONENT_Cb)) ||
    1080           ((rpcBestCU->getCbf( 0, COMPONENT_Cr ) != 0) && (numberValidComponents > COMPONENT_Cr)))
    1081  // avoid very complex intra if it is unlikely
    1082 #if H_3D_DIM_ENC
     1080          ((rpcBestCU->getCbf( 0, COMPONENT_Cr ) != 0) && (numberValidComponents > COMPONENT_Cr))
     1081 #if NH_3D_ENC_DEPTH
    10831082            || rpcBestCU->getSlice()->getIsDepth()
    10841083#endif
    1085             ))
     1084            )))
    10861085        {
    1087 #if H_3D_DIM
     1086#if NH_3D_ENC_DEPTH
    10881087            Bool bOnlyIVP = false;
    10891088            Bool bUseIVP = true;
    1090             if( rpcBestCU->getSlice()->getIsDepth() && !(rpcBestCU->getSlice()->isIRAP()) &&
    1091               rpcBestCU->getSlice()->getSliceType() != I_SLICE &&
    1092               rpcBestCU->getCbf( 0, TEXT_LUMA     ) == 0 &&
    1093               rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) == 0 &&
    1094               rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) == 0
    1095               )
     1089            if( (rpcBestCU->getSlice()->getSliceType() != I_SLICE) &&
     1090                !( (rpcBestCU->getCbf( 0, COMPONENT_Y  ) != 0)                                            ||
     1091                  ((rpcBestCU->getCbf( 0, COMPONENT_Cb ) != 0) && (numberValidComponents > COMPONENT_Cb)) ||
     1092                  ((rpcBestCU->getCbf( 0, COMPONENT_Cr ) != 0) && (numberValidComponents > COMPONENT_Cr))   ) &&
     1093                  (rpcBestCU->getSlice()->getIsDepth() && !(rpcBestCU->getSlice()->isIRAP())) )
    10961094            {
    10971095              bOnlyIVP = true;
     
    11001098            if( bUseIVP )
    11011099            {
    1102               xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bOnlyIVP );
     1100              xCheckRDCostIntra( rpcBestCU, rpcTempCU, intraCost, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug), bOnlyIVP );
    11031101#else
    11041102          xCheckRDCostIntra( rpcBestCU, rpcTempCU, intraCost, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug) );
     
    11221120            {
    11231121              Double tmpIntraCost;
    1124 #if H_3D_DIM
    1125               xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN, bOnlyIVP );
     1122#if NH_3D_ENC_DEPTH
     1123              xCheckRDCostIntra( rpcBestCU, rpcTempCU, tmpIntraCost, SIZE_NxN DEBUG_STRING_PASS_INTO(sDebug), bOnlyIVP );
    11261124#else
    11271125              xCheckRDCostIntra( rpcBestCU, rpcTempCU, tmpIntraCost, SIZE_NxN DEBUG_STRING_PASS_INTO(sDebug)   );
     
    11351133#endif
    11361134          }
    1137 #if H_3D
     1135#if NH_3D_ENC_DEPTH
    11381136          }
    11391137#endif
     
    26542652#endif
    26552653
    2656 #if H_3D_DIM
    2657 Void TEncCu::xCheckRDCostIntra( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize, Bool bOnlyIVP )
    2658 #else
    26592654Void TEncCu::xCheckRDCostIntra( TComDataCU *&rpcBestCU,
    26602655                                TComDataCU *&rpcTempCU,
    26612656                                Double      &cost,
    26622657                                PartSize     eSize
    2663                                 DEBUG_STRING_FN_DECLARE(sDebug) )
    2664 #endif
     2658                                DEBUG_STRING_FN_DECLARE(sDebug)
     2659#if NH_3D_ENC_DEPTH
     2660                              , Bool bOnlyIVP
     2661#endif
     2662                              )
    26652663{
    26662664  DEBUG_STRING_NEW(sTest)
     
    26902688  Pel resiLuma[NUMBER_OF_STORED_RESIDUAL_TYPES][MAX_CU_SIZE * MAX_CU_SIZE];
    26912689
    2692   m_pcPredSearch->estIntraPredLumaQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], resiLuma DEBUG_STRING_PASS_INTO(sTest) );
     2690  m_pcPredSearch->estIntraPredLumaQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], resiLuma DEBUG_STRING_PASS_INTO(sTest)
     2691#if NH_3D_ENC_DEPTH
     2692                                    , bOnlyIVP
     2693#endif
     2694                                    );
    26932695
    26942696  m_ppcRecoYuvTemp[uiDepth]->copyToPicComponent(COMPONENT_Y, rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getCtuRsAddr(), rpcTempCU->getZorderIdxInCtu() );
     
    26962698  if (rpcBestCU->getPic()->getChromaFormat()!=CHROMA_400)
    26972699  {
    2698 #if H_3D_DIM
    2699     m_pcPredSearch->estIntraPredQT      ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, bSeparateLumaChroma, bOnlyIVP );
    2700 #else
    27012700    m_pcPredSearch->estIntraPredChromaQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], resiLuma DEBUG_STRING_PASS_INTO(sTest) );
    2702 #endif
    27032701  }
    27042702#if H_3D_DIM_SDC
Note: See TracChangeset for help on using the changeset viewer.