Changeset 655 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncCu.cpp


Ignore:
Timestamp:
23 Oct 2013, 23:01:30 (10 years ago)
Author:
tech
Message:

Merged 8.1-Cleanup@654

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r622 r655  
    103103 
    104104  m_bEncodeDQP = false;
    105 #if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT
     105#if RATE_CONTROL_LAMBDA_DOMAIN
     106#if !M0036_RC_IMPROVEMENT
    106107  m_LCUPredictionSAD = 0;
    107108  m_addSADDepth      = 0;
    108109  m_temporalSAD      = 0;
     110#endif
     111#if M0036_RC_IMPROVEMENT && KWU_RC_MADPRED_E0227
     112  m_LCUPredictionSAD = 0;
     113  m_addSADDepth      = 0;
     114  m_temporalSAD      = 0;
     115  m_spatialSAD       = 0;
     116#endif
     117#endif
     118#if !RATE_CONTROL_LAMBDA_DOMAIN && KWU_RC_MADPRED_E0227
     119  m_LCUPredictionSAD = 0;
     120  m_addSADDepth      = 0;
     121  m_temporalSAD      = 0;
     122  m_spatialSAD       = 0;
    109123#endif
    110124
     
    256270  m_ppcTempCU[0]->initCU( rpcCU->getPic(), rpcCU->getAddr() );
    257271
    258 #if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT
     272#if RATE_CONTROL_LAMBDA_DOMAIN
     273#if !M0036_RC_IMPROVEMENT
    259274  m_addSADDepth      = 0;
    260275  m_LCUPredictionSAD = 0;
    261276  m_temporalSAD      = 0;
     277#endif
     278#if M0036_RC_IMPROVEMENT && KWU_RC_MADPRED_E0227
     279  m_LCUPredictionSAD = 0;
     280  m_addSADDepth      = 0;
     281  m_temporalSAD      = 0;
     282  m_spatialSAD       = 0;
     283#endif
     284#endif
     285#if KWU_RC_MADPRED_E0227
     286  m_LCUPredictionSAD = 0;
     287  m_addSADDepth      = 0;
     288  m_temporalSAD      = 0;
     289  m_spatialSAD       = 0;
    262290#endif
    263291
     
    404432
    405433  // variables for fast encoder decision
    406   Bool    bEarlySkip  = false;
    407   Bool    bTrySplit    = true;
    408   Double  fRD_Skip    = MAX_DOUBLE;
     434#if H_3D_QTLPC 
     435  Bool    bTrySplit     = true;
     436  Bool    bTrySplitDQP  = true;
     437#endif
    409438
    410439  // variable for Early CU determination
     
    415444  Bool earlyDetectionSkipMode = false;
    416445
    417   Bool    bTrySplitDQP  = true;
    418446#if H_3D_VSP
    419447  DisInfo DvInfo;
     
    425453#endif
    426454#endif
    427   static  Double  afCost[ MAX_CU_DEPTH ];
    428   static  Int      aiNum [ MAX_CU_DEPTH ];
    429 
    430   if ( rpcBestCU->getAddr() == 0 )
    431   {
    432     ::memset( afCost, 0, sizeof( afCost ) );
    433     ::memset( aiNum,  0, sizeof( aiNum  ) );
    434   }
    435 
    436455  Bool bBoundary = false;
    437456  UInt uiLPelX   = rpcBestCU->getCUPelX();
     
    489508  if(!bSliceEnd && !bSliceStart && bInsidePicture )
    490509  {
    491 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     510#if  H_3D_FAST_TEXTURE_ENCODING
    492511    Bool bIVFMerge = false;
    493512    Int  iIVFMaxD = 0;
     
    501520      }
    502521      // variables for fast encoder decision
    503       bEarlySkip  = false;
     522#if H_3D_QTLPC
    504523      bTrySplit    = true;
    505       fRD_Skip    = MAX_DOUBLE;
     524#endif
    506525
    507526      rpcTempCU->initEstData( uiDepth, iQP );
     
    560579        }
    561580      }
    562 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     581#if  H_3D_FAST_TEXTURE_ENCODING
    563582      if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth())
    564583      {
     
    584603          rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    585604#endif
    586 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     605#if  H_3D_FAST_TEXTURE_ENCODING
    587606          xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFMD );  rpcTempCU->initEstData( uiDepth, iQP );//by Competition for inter_2Nx2N
    588607#else
     
    598617#endif
    599618        xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, &earlyDetectionSkipMode );//by Merge for inter_2Nx2N
    600 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     619#if  H_3D_FAST_TEXTURE_ENCODING
    601620        bFMD = bIVFMerge && rpcBestCU->isSkipped(0);
    602621#endif
     
    605624        rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    606625#endif
    607         // fast encoder decision for early skip
    608         if ( m_pcEncCfg->getUseFastEnc() )
    609         {
    610           Int iIdx = g_aucConvertToBit[ rpcBestCU->getWidth(0) ];
    611           if ( aiNum [ iIdx ] > 5 && fRD_Skip < EARLY_SKIP_THRES*afCost[ iIdx ]/aiNum[ iIdx ] )
    612           {
    613             bEarlySkip = true;
    614             bTrySplit  = false;
    615           }
    616         }
    617626
    618627        if(!m_pcEncCfg->getUseEarlySkipDetection())
    619628        {
    620629          // 2Nx2N, NxN
    621           if ( !bEarlySkip )
    622           {
    623630#if H_3D_IC
    624631            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    625632#endif
    626 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     633#if  H_3D_FAST_TEXTURE_ENCODING
    627634            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFMD );  rpcTempCU->initEstData( uiDepth, iQP );
    628635#else
     
    636643              doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    637644            }
    638           }
    639645        }
    640646#if H_3D_IC
     
    643649      }
    644650
    645 #if H_3D_QTLPC
     651#if H_3D_QTLPC     
    646652      if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())
    647653      {
    648654        bTrySplitDQP = bTrySplit;
    649655      }
    650       else
    651       {
    652 #endif
    653         if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() )
    654         {
    655           if(iQP == iBaseQP)
    656           {
    657             bTrySplitDQP = bTrySplit;
    658           }
    659         }
    660         else
    661         {
    662           bTrySplitDQP = bTrySplit;
    663         }
    664 #if H_3D_QTLPC
    665       }
    666656#endif
    667657      if (isAddLowestQP && (iQP == lowestQP))
     
    678668    }
    679669#endif
     670#if RATE_CONTROL_LAMBDA_DOMAIN && M0036_RC_IMPROVEMENT && KWU_RC_MADPRED_E0227
     671    if ( uiDepth <= m_addSADDepth )
     672    {
     673      m_LCUPredictionSAD += m_temporalSAD;
     674      m_addSADDepth = uiDepth;
     675    }
     676#endif
     677#if !RATE_CONTROL_LAMBDA_DOMAIN && KWU_RC_MADPRED_E0227
     678if ( uiDepth <= m_addSADDepth )
     679{
     680  m_LCUPredictionSAD += m_temporalSAD;
     681  m_addSADDepth = uiDepth;
     682}
     683#endif
     684#if !RATE_CONTROL_LAMBDA_DOMAIN && KWU_FIX_URQ
     685    if(m_pcEncCfg->getUseRateCtrl())
     686    {
     687      Int qp = m_pcRateCtrl->getUnitQP();
     688      iMinQP  = Clip3( MIN_QP, MAX_QP, qp);
     689      iMaxQP  = Clip3( MIN_QP, MAX_QP, qp);
     690    }
     691#endif
    680692
    681693#if H_3D_DIM_ENC
     
    700712        {
    701713          // 2Nx2N, NxN
    702           if ( !bEarlySkip )
    703           {
    704714            if(!( (rpcBestCU->getWidth(0)==8) && (rpcBestCU->getHeight(0)==8) ))
    705715            {
     
    710720                )
    711721              {
    712 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     722#if  H_3D_FAST_TEXTURE_ENCODING
    713723                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFMD  );
    714724#else
     
    721731              }
    722732            }
    723           }
    724733
    725734          // 2NxN, Nx2N
     
    730739            )
    731740          {
    732 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     741#if  H_3D_FAST_TEXTURE_ENCODING
    733742            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFMD  );
    734743#else
     
    750759            )
    751760          {
    752 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     761#if  H_3D_FAST_TEXTURE_ENCODING
    753762            xCheckRDCostInter      ( rpcBestCU, rpcTempCU, SIZE_2NxN, bFMD  );
    754763#else
     
    789798                )
    790799              {
    791 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     800#if  H_3D_FAST_TEXTURE_ENCODING
    792801                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFMD );
    793802#else
     
    809818                )
    810819              {
    811 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     820#if  H_3D_FAST_TEXTURE_ENCODING
    812821                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFMD );
    813822#else
     
    833842                )
    834843              {
    835 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     844#if  H_3D_FAST_TEXTURE_ENCODING
    836845                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFMD, true );
    837846#else
     
    853862                )
    854863              {
    855 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     864#if  H_3D_FAST_TEXTURE_ENCODING
    856865                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFMD, true );
    857866#else
     
    879888                )
    880889              {
    881 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     890#if  H_3D_FAST_TEXTURE_ENCODING
    882891                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFMD );
    883892#else
     
    899908                )
    900909              {
    901 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     910#if  H_3D_FAST_TEXTURE_ENCODING
    902911                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFMD );
    903912#else
     
    919928                )
    920929              {
    921 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     930#if  H_3D_FAST_TEXTURE_ENCODING
    922931                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFMD, true );
    923932#else
     
    939948                )
    940949              {
    941 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     950#if  H_3D_FAST_TEXTURE_ENCODING
    942951                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFMD, true );
    943952#else
     
    990999#endif
    9911000        }
    992 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     1001#if  H_3D_FAST_TEXTURE_ENCODING
    9931002        if(!bFMD)
    9941003        {
    9951004#endif
    9961005        // do normal intra modes
    997 #if H_3D_DIM_ENC
    998         if ( !bEarlySkip || ( rpcBestCU->getSlice()->getIsDepth() && rpcBestCU->getSlice()->isIRAP() ) )
    999 #else
    1000         if ( !bEarlySkip )
    1001 #endif
    1002         {
     1006       
    10031007          // speedup for inter frames
    10041008          if( rpcBestCU->getSlice()->getSliceType() == I_SLICE ||
     
    10121016          {
    10131017            xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
     1018
     1019#if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT && KWU_RC_MADPRED_E0227
     1020            if ( uiDepth <= m_addSADDepth )
     1021            {
     1022              m_LCUPredictionSAD += m_spatialSAD;
     1023              m_addSADDepth = uiDepth;
     1024            }
     1025#endif
     1026#if RATE_CONTROL_LAMBDA_DOMAIN && M0036_RC_IMPROVEMENT && KWU_RC_MADPRED_E0227
     1027            if ( uiDepth <= m_addSADDepth )
     1028            {
     1029              m_LCUPredictionSAD += m_spatialSAD;
     1030              m_addSADDepth = uiDepth;
     1031            }
     1032#endif
     1033
     1034#if !RATE_CONTROL_LAMBDA_DOMAIN && KWU_RC_MADPRED_E0227
     1035            if ( uiDepth <= m_addSADDepth )
     1036            {
     1037              m_LCUPredictionSAD += m_spatialSAD;
     1038              m_addSADDepth = uiDepth;
     1039            }
     1040#endif
    10141041            rpcTempCU->initEstData( uiDepth, iQP );
    10151042            if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth )
     
    10291056            }
    10301057          }
    1031         }
    1032 
    10331058        // test PCM
    10341059        if(pcPic->getSlice(0)->getSPS()->getUsePCM()
     
    10491074          }
    10501075        }
    1051 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     1076#if  H_3D_FAST_TEXTURE_ENCODING
    10521077        }
    10531078#endif
     
    10741099    rpcBestCU->getTotalCost()  = m_pcRdCost->calcRdCost( rpcBestCU->getTotalBits(), rpcBestCU->getTotalDistortion() );
    10751100
    1076     // accumulate statistics for early skip
    1077     if ( m_pcEncCfg->getUseFastEnc() )
    1078     {
    1079       if ( rpcBestCU->isSkipped(0) )
    1080       {
    1081         Int iIdx = g_aucConvertToBit[ rpcBestCU->getWidth(0) ];
    1082         afCost[ iIdx ] += rpcBestCU->getTotalCost();
    1083         aiNum [ iIdx ] ++;
    1084       }
    1085     }
    1086 
    10871101    // Early CU determination
    10881102    if( m_pcEncCfg->getUseEarlyCU() && rpcBestCU->isSkipped(0) )
     
    10941108      bSubBranch = true;
    10951109    }
    1096 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     1110#if  H_3D_FAST_TEXTURE_ENCODING
    10971111    if(rpcBestCU->getSlice()->getViewIndex() && !rpcBestCU->getSlice()->getIsDepth() && (uiDepth >=iIVFMaxD) && rpcBestCU->isSkipped(0))
    10981112    {
     
    11681182
    11691183    // further split
     1184#if H_3D_QTLPC
    11701185    if( bSubBranch && bTrySplitDQP && uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth )
     1186#else
     1187    if( bSubBranch && uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth )
     1188#endif
    11711189    {
    11721190#if H_3D_VSO // M9
     
    15801598  m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
    15811599#endif
    1582 #if LGE_INTER_SDC_E0156
     1600#if H_3D_INTER_SDC
    15831601  m_pcEntropyCoder->encodeInterSDCFlag( pcCU, uiAbsPartIdx, false );
    15841602#endif
     
    18751893
    18761894          rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth );
    1877 #if LGE_INTER_SDC_E0156
     1895#if H_3D_INTER_SDC
    18781896          TComDataCU *rpcTempCUPre = rpcTempCU;
    18791897#endif
     
    18811899          xCheckDQP( rpcTempCU );
    18821900          xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
    1883 #if LGE_INTER_SDC_E0156
     1901#if H_3D_INTER_SDC
    18841902          if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual )
    18851903          {
     
    19171935      if( m_pcEncCfg->getUseFastDecisionForMerge() && !bestIsSkip )
    19181936      {
    1919 #if LGE_INTER_SDC_E0156
     1937#if H_3D_INTER_SDC
    19201938        if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) )
    19211939        {
     
    19261944#endif
    19271945        bestIsSkip = rpcBestCU->getQtRootCbf(0) == 0;
    1928 #if LGE_INTER_SDC_E0156
     1946#if H_3D_INTER_SDC
    19291947        }
    19301948#endif
     
    19711989
    19721990#if AMP_MRG
    1973 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     1991#if  H_3D_FAST_TEXTURE_ENCODING
    19741992Void TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bFMD, Bool bUseMRG)
    19751993#else
     
    19801998#endif
    19811999{
    1982 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     2000#if  H_3D_FAST_TEXTURE_ENCODING
    19832001  if(!(bFMD && (ePartSize == SIZE_2Nx2N)))  //have  motion estimation or merge check
    19842002  {
     
    20572075#if AMP_MRG
    20582076  rpcTempCU->setMergeAMP (true);
    2059 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     2077#if  H_3D_FAST_TEXTURE_ENCODING
    20602078  m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bFMD, false, bUseMRG );
    20612079#else
     
    21022120#endif
    21032121
    2104 #if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT
     2122#if RATE_CONTROL_LAMBDA_DOMAIN  && (!M0036_RC_IMPROVEMENT || KWU_RC_MADPRED_E0227)
    21052123  if ( m_pcEncCfg->getUseRateCtrl() && m_pcEncCfg->getLCULevelRC() && ePartSize == SIZE_2Nx2N && uhDepth <= m_addSADDepth )
    21062124  {
     
    21112129  }
    21122130#endif
     2131#if !RATE_CONTROL_LAMBDA_DOMAIN  && KWU_RC_MADPRED_E0227
     2132  if ( m_pcEncCfg->getUseRateCtrl() && ePartSize == SIZE_2Nx2N && uhDepth <= m_addSADDepth )
     2133  {
     2134    UInt SAD = m_pcRdCost->getSADPart( g_bitDepthY, m_ppcPredYuvTemp[uhDepth]->getLumaAddr(), m_ppcPredYuvTemp[uhDepth]->getStride(),
     2135      m_ppcOrigYuv[uhDepth]->getLumaAddr(), m_ppcOrigYuv[uhDepth]->getStride(),
     2136      rpcTempCU->getWidth(0), rpcTempCU->getHeight(0) );
     2137    m_temporalSAD = (Int)SAD;
     2138  }
     2139#endif
    21132140
    21142141  m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false );
     
    21212148#endif
    21222149  rpcTempCU->getTotalCost()  = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
    2123 #if LGE_INTER_SDC_E0156
     2150#if H_3D_INTER_SDC
    21242151  TComDataCU *rpcTempCUPre = rpcTempCU;
    21252152#endif
    21262153  xCheckDQP( rpcTempCU );
    21272154  xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
    2128 #if LGE_INTER_SDC_E0156
     2155#if H_3D_INTER_SDC
    21292156  if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() )
    21302157  {
     
    21632190  }
    21642191#endif
    2165 #if  MTK_FAST_TEXTURE_ENCODING_E0173
     2192#if  H_3D_FAST_TEXTURE_ENCODING
    21662193  }
    21672194#endif
     
    22352262  rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
    22362263 
     2264#if RATE_CONTROL_LAMBDA_DOMAIN && !M0036_RC_IMPROVEMENT && KWU_RC_MADPRED_E0227
     2265  UChar uhDepth = rpcTempCU->getDepth( 0 );
     2266  if ( m_pcEncCfg->getUseRateCtrl() && m_pcEncCfg->getLCULevelRC() && eSize == SIZE_2Nx2N && uhDepth <= m_addSADDepth )
     2267  {
     2268    UInt SAD = m_pcRdCost->getSADPart( g_bitDepthY, m_ppcPredYuvTemp[uhDepth]->getLumaAddr(), m_ppcPredYuvTemp[uhDepth]->getStride(),
     2269      m_ppcOrigYuv[uhDepth]->getLumaAddr(), m_ppcOrigYuv[uhDepth]->getStride(),
     2270      rpcTempCU->getWidth(0), rpcTempCU->getHeight(0) );
     2271    m_spatialSAD = (Int)SAD;
     2272  }
     2273#endif
     2274#if RATE_CONTROL_LAMBDA_DOMAIN && M0036_RC_IMPROVEMENT && KWU_RC_MADPRED_E0227
     2275  UChar uhDepth = rpcTempCU->getDepth( 0 );
     2276  if ( m_pcEncCfg->getUseRateCtrl() && m_pcEncCfg->getLCULevelRC() && eSize == SIZE_2Nx2N && uhDepth <= m_addSADDepth )
     2277  {
     2278    UInt SAD = m_pcRdCost->getSADPart( g_bitDepthY, m_ppcPredYuvTemp[uhDepth]->getLumaAddr(), m_ppcPredYuvTemp[uhDepth]->getStride(),
     2279      m_ppcOrigYuv[uhDepth]->getLumaAddr(), m_ppcOrigYuv[uhDepth]->getStride(),
     2280      rpcTempCU->getWidth(0), rpcTempCU->getHeight(0) );
     2281    m_spatialSAD = (Int)SAD;
     2282  }
     2283#endif
     2284#if !RATE_CONTROL_LAMBDA_DOMAIN && KWU_RC_MADPRED_E0227
     2285  UChar uhDepth = rpcTempCU->getDepth( 0 );
     2286  if ( m_pcEncCfg->getUseRateCtrl() && eSize == SIZE_2Nx2N && uhDepth <= m_addSADDepth )
     2287  {
     2288    UInt SAD = m_pcRdCost->getSADPart( g_bitDepthY, m_ppcPredYuvTemp[uhDepth]->getLumaAddr(), m_ppcPredYuvTemp[uhDepth]->getStride(),
     2289      m_ppcOrigYuv[uhDepth]->getLumaAddr(), m_ppcOrigYuv[uhDepth]->getStride(),
     2290      rpcTempCU->getWidth(0), rpcTempCU->getHeight(0) );
     2291    m_spatialSAD = (Int)SAD;
     2292  }
     2293#endif
    22372294  xCheckDQP( rpcTempCU );
    22382295  xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth);
Note: See TracChangeset for help on using the changeset viewer.