Ignore:
Timestamp:
24 Jul 2014, 14:29:09 (10 years ago)
Author:
hhi
Message:

Integration of JCT3V-I0066: Encoder modification for DMM4, macro is HHI_DMM4_ENC_I0066.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.2-dev3-HHI/source/Lib/TLibEncoder/TEncSearch.cpp

    r1015 r1019  
    29772977Void
    29782978TEncSearch::estIntraPredQT( TComDataCU* pcCU,
    2979                            TComYuv*    pcOrgYuv,
    2980                            TComYuv*    pcPredYuv,
    2981                            TComYuv*    pcResiYuv,
    2982                            TComYuv*    pcRecoYuv,
    2983                            UInt&       ruiDistC,
    2984                            Bool        bLumaOnly )
     2979                            TComYuv*    pcOrgYuv,
     2980                            TComYuv*    pcPredYuv,
     2981                            TComYuv*    pcResiYuv,
     2982                            TComYuv*    pcRecoYuv,
     2983                            UInt&       ruiDistC,
     2984                            Bool        bLumaOnly
     2985#if HHI_DMM4_ENC_I0066
     2986                          , Bool        bOnlyIVP
     2987#endif
     2988                          )
    29852989{
    29862990  UInt    uiDepth        = pcCU->getDepth(0);
     
    30283032    Int numModesForFullRD = g_aucIntraModeNumFast[ uiWidthBit ];
    30293033   
     3034#if HHI_DMM4_ENC_I0066
     3035    if( bOnlyIVP )
     3036    {
     3037      numModesForFullRD = 0;
     3038    }
     3039    else
     3040    {
     3041#endif
    30303042    Bool doFastSearch = (numModesForFullRD != numModesAvailable);
    30313043    if (doFastSearch)
     
    31193131      }
    31203132    }
    3121    
     3133#if HHI_DMM4_ENC_I0066
     3134    }
     3135#endif
     3136
    31223137#if H_3D_DIM
    31233138    //===== determine set of depth intra modes to be tested =====
    31243139    if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight )
    31253140    {
    3126 
     3141#if HHI_DMM4_ENC_I0066
     3142#if SEPARATE_FLAG_I0085
     3143      if( bOnlyIVP && m_pcEncCfg->getUseIVP() )
     3144#else
     3145      if( bOnlyIVP )
     3146#endif
     3147      {
     3148        TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
     3149        xPredContourFromTex( pcCU, uiPartOffset, uiWidth, uiHeight, dmm4Segmentation );
     3150
     3151        Pel deltaDC1 = 0; Pel deltaDC2 = 0;
     3152        xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, dmm4Segmentation->getPattern(), dmm4Segmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 );
     3153        pcCU->setDimDeltaDC( DMM4_IDX, 0, uiPartOffset, deltaDC1 );
     3154        pcCU->setDimDeltaDC( DMM4_IDX, 1, uiPartOffset, deltaDC2 );
     3155
     3156#if HS_DMM_SIGNALLING_I0120
     3157        uiRdModeList[ numModesForFullRD++ ] = (DMM4_IDX+DIM_OFFSET);
     3158#else
     3159        uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX  +DIM_OFFSET);
     3160        if( deltaDC1 != 0 || deltaDC2 != 0 )
     3161          uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX+1+DIM_OFFSET);
     3162#endif
     3163        dmm4Segmentation->destroy(); delete dmm4Segmentation;
     3164      }
     3165      else
     3166      {
     3167#endif
    31273168#if H_3D_FAST_DEPTH_INTRA
    31283169      Int  threshold    = max(((pcCU->getQP(0))>>3)-1,3);
     
    32233264#else
    32243265            uiRdModeList[ numModesForFullRD++ ] = (2*dmmType  +DIM_OFFSET);
     3266#if HHI_DMM4_ENC_I0066
     3267            if( deltaDC1 != 0 || deltaDC2 != 0 )
     3268#endif
    32253269            uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET);
    32263270#endif
     
    32303274        }
    32313275      }
     3276#if HHI_DMM4_ENC_I0066
     3277      }
     3278#endif
    32323279#endif
    32333280    }
Note: See TracChangeset for help on using the changeset viewer.