Ignore:
Timestamp:
14 Aug 2013, 21:05:40 (11 years ago)
Author:
hisilicon-htm
Message:

JCT3V-E0238: Fast Intra Prediction Mode Selection for Intra Depth Map Coding

Location:
branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TComRdCost.cpp

    r537 r573  
    483483
    484484}
     485
     486#if SCU_HS_FAST_DEPTH_INTRA_E0238
     487
     488UInt TComRdCost::calcVAR (Pel* pi0, Int iStride, Int cuDepth)
     489{
     490  UInt uiSum = 0;
     491  Int x, y;
     492  Int temp = 0;
     493  if (iStride == 4)
     494      cuDepth = 4;
     495
     496  for (x = 0; x < iStride; x++)
     497  {
     498      for (y = 0; y < iStride; y++)
     499      {
     500         temp += pi0[x*iStride+y];
     501      }
     502  }
     503  temp = temp >> (6-cuDepth)*2;
     504
     505  for (x = 0; x < iStride; x++)
     506  {
     507      for (y = 0; y < iStride; y++)
     508      {
     509         uiSum += (pi0[x*iStride+y]-temp)*(pi0[x*iStride+y]-temp);
     510      }
     511  }
     512  return (uiSum >> (6-cuDepth)*2);
     513
     514}
     515#endif
     516
    485517
    486518#if WEIGHTED_CHROMA_DISTORTION
  • branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TComRdCost.h

    r537 r573  
    228228 
    229229  UInt    calcHAD(Int bitDepth, Pel* pi0, Int iStride0, Pel* pi1, Int iStride1, Int iWidth, Int iHeight );
    230  
     230#if SCU_HS_FAST_DEPTH_INTRA_E0238
     231  UInt    calcVAR (Pel* pi0, Int iStride, Int cuDepth);
     232#endif 
    231233  // for motion cost
    232234#if !FIX203
  • branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TypeDef.h

    r572 r573  
    181181                                              // LG_ZEROINTRADEPTHRESI_A0087
    182182#define SCU_HS_DMM4_REMOVE_DIV_E0242      1   // DMM4 Division Removal
     183#define SCU_HS_FAST_DEPTH_INTRA_E0238     1   // Fast DMM and RBC Mode Selection
    183184#if H_3D_DIM_SDC
    184185#define LGE_SDC_REMOVE_DC_E0158           1   // Removal of DC mode from SDC
  • branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibEncoder/TEncSearch.cpp

    r557 r573  
    28332833    if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight )
    28342834    {
     2835
     2836#if SCU_HS_FAST_DEPTH_INTRA_E0238
     2837Int threshold = max(((pcCU->getQP(0))>>3)-1,3);
     2838Int varThreshold = (int)(threshold*threshold - 8);
     2839UInt uiVarCU=m_pcRdCost->calcVAR(piOrg, uiWidth,pcCU->getDepth(0));
     2840#endif
     2841
    28352842#if H_3D_DIM_DMM
    2836       if( m_pcEncCfg->getUseDMM() )
    2837       {
     2843       if( m_pcEncCfg->getUseDMM()
     2844#if SCU_HS_FAST_DEPTH_INTRA_E0238
     2845        && (uiRdModeList[0] != 0 || uiVarCU >= varThreshold)
     2846#endif
     2847         )
     2848       {
    28382849        for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ )
    28392850        {
     
    29082919#endif
    29092920#if H_3D_DIM_RBC
    2910       if( m_pcEncCfg->getUseRBC() )
    2911       {
     2921       if( m_pcEncCfg->getUseRBC()
     2922#if SCU_HS_FAST_DEPTH_INTRA_E0238
     2923          && (uiRdModeList[0] != 0 || uiVarCU >= varThreshold)
     2924#endif
     2925         )
     2926       {
    29122927        if( xSearchRbcEdge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight ) )
    29132928        {
Note: See TracChangeset for help on using the changeset viewer.