Ignore:
Timestamp:
14 Nov 2012, 17:23:56 (13 years ago)
Author:
orange
Message:

Integrated JCT3V-B0068 (QTLPC: quadtree limitation + predictive coding of the quadtree for depth coding)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.1-dev2-Orange/source/Lib/TLibEncoder/TEncCu.cpp

    r177 r181  
    451451  TComPic* pcPic = rpcBestCU->getPic();
    452452
    453 #if OL_DEPTHLIMIT_A0044
    454   TComSPS *sps = pcPic->getSlice(0)->getSPS();
    455   TComPic *pcTexture;
    456   TComDataCU * pcTextureCU;
    457   Bool  depthMapDetect =  false;
    458 #if !LGE_CLEAN_UP
    459   UInt         uiPrevTexPartIndex = 0;
    460 #endif
    461 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    462   Bool bIntraSliceDetect = false;
    463 #endif
    464   Bool bTry2NxN = false;
    465   Bool bTryNx2N = false;
    466     pcTexture = rpcBestCU->getSlice()->getTexturePic();
    467     if(pcTexture != NULL) //depth map being encoded
    468     {
    469     depthMapDetect = true;
    470 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    471       bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE);
    472 #endif
    473     if(uiDepth == 0)
    474     {
    475       pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() );
    476       pcTexture->setPartInfo(pcTextureCU->readPartInfo());
    477       pcTexture->setTexPartIndex(0);
    478     }
    479     }
    480     else
    481     {
    482       depthMapDetect = false;
    483     }
    484 #endif
     453#if OL_QTLIMIT_PREDCODING_B0068
     454  TComSPS *sps         = pcPic->getSlice(0)->getSPS();
     455  TComPic *pcTexture   = rpcBestCU->getSlice()->getTexturePic();
     456
     457  Bool  depthMapDetect    = (pcTexture != NULL);
     458  Bool  bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType() == I_SLICE);
     459
     460  Bool bTry2NxN = true;
     461  Bool bTryNx2N = true;
     462#endif
     463
    485464  // get Original YUV data from picture
    486465  m_ppcOrigYuv[uiDepth]->copyFromPicYuv( pcPic->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() );
     
    626605      // variables for fast encoder decision
    627606      bEarlySkip  = false;
    628       bTrySplit    = true;
     607      bTrySplit   = true;
    629608      fRD_Skip    = MAX_DOUBLE;
    630609
    631610      rpcTempCU->initEstData( uiDepth, iQP );
    632611
    633 #if OL_DEPTHLIMIT_A0044
     612#if OL_QTLIMIT_PREDCODING_B0068
    634613      //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU
    635 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    636       if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL())
    637 #else
    638       if(depthMapDetect && sps->getUseDPL()) //depth map being encoded
    639 #endif
    640       {
    641         assert(uiDepth == pcTexture->accessPartInfo(1));
    642         if(pcTexture->accessPartInfo(0) == 1) //NxN modes
     614      if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC())
     615      {
     616        TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU
     617        UInt uiCUIdx            = rpcBestCU->getZorderIdxInCU();
     618        assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); //Depth cannot be more partitionned than the texture.
     619        if (pcTextureCU->getDepth(uiCUIdx) > uiDepth || pcTextureCU->getPartitionSize(uiCUIdx) == SIZE_NxN) //Texture was split.
    643620        {
    644621          bTrySplit = true;
    645           bTryNx2N = true;
    646           bTry2NxN = true;
    647 #if !LGE_CLEAN_UP
    648           uiPrevTexPartIndex = pcTexture->getTexPartIndex();
    649 #endif
    650           pcTexture->incrementTexPartIndex();
     622          bTryNx2N  = true;
     623          bTry2NxN  = true;
    651624        }
    652         else if(pcTexture->accessPartInfo(0) == 0) //2Nx2N modes
    653         {
    654           UInt uiTexdepth;
    655           UInt temp_uiTexPartIndex;
    656           bTrySplit = false;
    657 
    658           //scan ahead till next depth
    659           uiTexdepth = pcTexture->accessPartInfo(1);
    660 #if !LGE_CLEAN_UP
    661           uiPrevTexPartIndex = pcTexture->getTexPartIndex();
    662 #endif
    663           pcTexture->incrementTexPartIndex();
    664           temp_uiTexPartIndex = pcTexture->getTexPartIndex(); //store in case to rewind
    665 
    666           while(uiTexdepth != pcTexture->accessPartInfo(1) && uiTexdepth != 0)
    667           {
    668             if(pcTexture->accessPartInfo(1) < uiTexdepth)
    669             {
    670               break;
    671             }
    672             pcTexture->incrementTexPartIndex();
    673 
    674             if(pcTexture->accessPartInfo(1) == OL_END_CU)
    675             {
    676               pcTexture->setTexPartIndex(temp_uiTexPartIndex);
    677               uiTexdepth++;
    678               if(uiTexdepth >= g_uiMaxCUDepth)
    679               {     
    680                 break;
    681               }
    682             }
    683           }
    684         }
    685         else if(pcTexture->accessPartInfo(0) == OL_END_CU)
     625        else
    686626        {
    687627          bTrySplit = false;
    688           bTryNx2N = false;
    689           bTry2NxN = false;
     628          bTryNx2N  = false;
     629          bTry2NxN  = false;
    690630        }
    691         else if(pcTexture->accessPartInfo(0) == 2) //2NxN case
    692         {
    693           bTrySplit = false;
    694           bTryNx2N = false;
    695           bTry2NxN = true;
    696 #if !LGE_CLEAN_UP
    697           uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 
    698 #endif
    699           pcTexture->incrementTexPartIndex(); ;
    700         }
    701         else if(pcTexture->accessPartInfo(0) == 3) //Nx2N case
    702         {
    703           bTrySplit = false;
    704           bTryNx2N = true;
    705           bTry2NxN = false;
    706 #if !LGE_CLEAN_UP
    707           uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 
    708 #endif
    709           pcTexture->incrementTexPartIndex(); ;
    710         }
    711       }
    712 #endif
    713 
     631      }
     632#endif
    714633
    715634      // do inter modes, SKIP and 2Nx2N
     
    799718#endif
    800719
    801 #if OL_DEPTHLIMIT_A0044
    802 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    803       if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    804 #else
    805       if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    806 #endif
     720#if OL_QTLIMIT_PREDCODING_B0068
     721      if(depthMapDetect && !bIntraSliceDetect  && sps->getUseQTLPC())
    807722      {
    808723        bTrySplitDQP = bTrySplit;
     
    810725      else
    811726      {
     727#endif
    812728        if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() )
    813729        {
     
    821737          bTrySplitDQP = bTrySplit;
    822738        }
    823       }
    824 #else
    825 
    826       if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() )
    827       {
    828         if(iQP == iBaseQP)
    829         {
    830           bTrySplitDQP = bTrySplit;
    831         }
    832       }
    833       else
    834       {
    835         bTrySplitDQP = bTrySplit;
    836       }
    837 #endif
     739#if OL_QTLIMIT_PREDCODING_B0068
     740      }
     741#endif
     742
    838743#if LOSSLESS_CODING
    839744      if (isAddLowestQP && (iQP == lowestQP))
     
    891796              if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu)
    892797              {
    893 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    894 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    895                 if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    896 #else
    897                 if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    898 #endif
     798#if OL_QTLIMIT_PREDCODING_B0068 //try InterNxN
     799                if(bTrySplit)
    899800                {
    900                   if (bTrySplit)
    901                   {
    902 #endif
    903 #if HHI_INTER_VIEW_RESIDUAL_PRED
    904                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    905 #endif
    906 #if HHI_INTERVIEW_SKIP
    907                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFullyRenderedSec   );
    908 #else
    909                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN   );
    910 #endif
    911                     rpcTempCU->initEstData( uiDepth, iQP );
    912 #if OL_DEPTHLIMIT_A0044
    913                   }//bTrySplit
    914                 }//depthMapDetect
    915                 else//do things normally
    916                 {
     801#endif
    917802#if HHI_INTER_VIEW_RESIDUAL_PRED
    918803                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     
    924809#endif
    925810                  rpcTempCU->initEstData( uiDepth, iQP );
     811#if OL_QTLIMIT_PREDCODING_B0068
    926812                }
    927813#endif
     
    931817
    932818          { // 2NxN, Nx2N
    933 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    934 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    935             if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    936 #else
    937             if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    938 #endif
     819#if OL_QTLIMIT_PREDCODING_B0068 //try Nx2N
     820            if(bTryNx2N)
    939821            {
    940               if (bTryNx2N)
    941               {
    942 #endif
    943                 if(doNotBlockPu)
    944                 {
    945 #if HHI_INTER_VIEW_RESIDUAL_PRED
    946                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    947 #endif
    948 #if HHI_INTERVIEW_SKIP
    949                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFullyRenderedSec   );
    950 #else
    951                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N  );
    952 #endif
    953                   rpcTempCU->initEstData( uiDepth, iQP );
    954                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_Nx2N )
    955                   {
    956                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    957                   }
    958                 }
    959 #if OL_DEPTHLIMIT_A0044
    960               }//bTryNx2N
    961             }//depthMapDetect
    962             else//do things normally
    963             {
     822#endif
    964823              if(doNotBlockPu)
    965824              {
     
    978837                }
    979838              }
     839#if OL_QTLIMIT_PREDCODING_B0068
    980840            }
    981841#endif
    982842
    983 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    984 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    985             if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    986 #else
    987             if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    988 #endif
     843#if OL_QTLIMIT_PREDCODING_B0068 //try 2NxN
     844            if(bTry2NxN)
    989845            {
    990               if (bTry2NxN)
    991               {
    992 #endif
    993                 if(doNotBlockPu)
    994                 {
    995 #if HHI_INTER_VIEW_RESIDUAL_PRED
    996                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    997 #endif
    998 #if HHI_INTERVIEW_SKIP
    999                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxN, bFullyRenderedSec   );
    1000 #else
    1001                   xCheckRDCostInter      ( rpcBestCU, rpcTempCU, SIZE_2NxN  );
    1002 #endif
    1003                   rpcTempCU->initEstData( uiDepth, iQP );
    1004                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxN)
    1005                   {
    1006                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1007                   }
    1008                 }
    1009 #if OL_DEPTHLIMIT_A0044
    1010               }//bTryNx2N
    1011             }//depthMapDetect
    1012             else//do things normally
    1013             {
     846#endif
    1014847              if(doNotBlockPu)
    1015848              {
     
    1028861                }
    1029862              }
     863#if OL_QTLIMIT_PREDCODING_B0068
    1030864            }
    1031865#endif
     
    1050884            if ( bTestAMP_Hor )
    1051885            {
    1052 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1053 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1054               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1055 #else
    1056               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1057 #endif
     886#if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD
     887              if(bTry2NxN)
    1058888              {
    1059                 if (bTry2NxN)
    1060                 {
    1061 #endif
    1062                   if(doNotBlockPu)
    1063                   {
    1064 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1065                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1066 #endif
    1067 #if HHI_INTERVIEW_SKIP
    1068                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec );
    1069 #else
    1070                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU );
    1071 #endif
    1072                     rpcTempCU->initEstData( uiDepth, iQP );
    1073                     if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU )
    1074                     {
    1075                       doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1076                     }
    1077                   }
    1078                   if(doNotBlockPu)
    1079                   {
    1080 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1081                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1082 #endif
    1083 #if HHI_INTERVIEW_SKIP
    1084                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec );
    1085 #else
    1086                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD );
    1087 #endif
    1088                     rpcTempCU->initEstData( uiDepth, iQP );
    1089                     if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD )
    1090                     {
    1091                       doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1092                     }
    1093                   }
    1094 #if OL_DEPTHLIMIT_A0044
    1095                 }//bTry2NxN
    1096               }//depthMapDetect
    1097               else//do things normally
    1098               {
     889#endif
    1099890                if(doNotBlockPu)
    1100891                {
     
    1129920                  }
    1130921                }
     922#if OL_QTLIMIT_PREDCODING_B0068
    1131923              }
    1132924#endif
     
    1135927            else if ( bTestMergeAMP_Hor )
    1136928            {
    1137 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1138 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1139               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1140 #else
    1141               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1142 #endif
     929#if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD Merge
     930              if(bTry2NxN)
    1143931              {
    1144                 if (bTry2NxN)
    1145                 {
    1146 #endif
    1147                   if(doNotBlockPu)
    1148                   {
    1149 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1150                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1151 #endif
    1152 #if HHI_INTERVIEW_SKIP
    1153                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true );
    1154 #else
    1155                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true );
    1156 #endif
    1157                     rpcTempCU->initEstData( uiDepth, iQP );
    1158                     if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU )
    1159                     {
    1160                       doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1161                     }
    1162                   }
    1163                   if(doNotBlockPu)
    1164                   {
    1165 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1166                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1167 #endif
    1168 #if HHI_INTERVIEW_SKIP
    1169                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true );
    1170 #else
    1171                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true );
    1172 #endif
    1173                     rpcTempCU->initEstData( uiDepth, iQP );
    1174                     if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD )
    1175                     {
    1176                       doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1177                     }
    1178                   }
    1179 #if OL_DEPTHLIMIT_A0044
    1180                 }//bTry2NxN
    1181               }//depthMapDetect
    1182               else//do things normally
    1183               {
     932#endif
    1184933                if(doNotBlockPu)
    1185934                {
     
    1214963                  }
    1215964                }
    1216 
     965#if OL_QTLIMIT_PREDCODING_B0068
    1217966              }
    1218967#endif
     
    1223972            if ( bTestAMP_Ver )
    1224973            {
    1225 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1226 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1227               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1228 #else
    1229               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1230 #endif
     974#if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N
     975              if(bTryNx2N)
    1231976              {
    1232                 if (bTryNx2N)
    1233                 {
    1234 #endif
    1235                   if(doNotBlockPu)
    1236                   {
    1237 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1238                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1239 #endif
    1240 #if HHI_INTERVIEW_SKIP
    1241                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec );
    1242 #else
    1243                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N );
    1244 #endif
    1245                     rpcTempCU->initEstData( uiDepth, iQP );
    1246                     if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N )
    1247                     {
    1248                       doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1249                     }
    1250                   }
    1251                   if(doNotBlockPu)
    1252                   {
    1253 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1254                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1255 #endif
    1256 #if HHI_INTERVIEW_SKIP
    1257                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec );
    1258 #else
    1259                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N );
    1260 #endif
    1261                     rpcTempCU->initEstData( uiDepth, iQP );
    1262                   }
    1263 #if OL_DEPTHLIMIT_A0044
    1264                 }//bTryNx2N
    1265               }//depthMapDetect
    1266               else//do things normally
    1267               {
     977#endif
    1268978                if(doNotBlockPu)
    1269979                {
     
    12941004                  rpcTempCU->initEstData( uiDepth, iQP );
    12951005                }
     1006#if OL_QTLIMIT_PREDCODING_B0068
    12961007              }
    12971008#endif
     
    13001011            else if ( bTestMergeAMP_Ver )
    13011012            {
    1302 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1303 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1304               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1305 #else
    1306               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1307 #endif
     1013#if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N (Merge)
     1014              if(bTryNx2N)
    13081015              {
    1309                 if (bTryNx2N)
    1310                 {
    1311 #endif
    1312                   if(doNotBlockPu)
    1313                   {
    1314 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1315                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1316 #endif
    1317 #if HHI_INTERVIEW_SKIP
    1318                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec, true );
    1319 #else
    1320                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true );
    1321 #endif
    1322                     rpcTempCU->initEstData( uiDepth, iQP );
    1323                     if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N )
    1324                     {
    1325                       doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1326                     }
    1327                   }
    1328                   if(doNotBlockPu)
    1329                   {
    1330 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1331                     rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1332 #endif
    1333 #if HHI_INTERVIEW_SKIP
    1334                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec, true );
    1335 #else
    1336                     xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true );
    1337 #endif
    1338                     rpcTempCU->initEstData( uiDepth, iQP );
    1339                   }
    1340 #if OL_DEPTHLIMIT_A0044
    1341                 }//bTryNx2N
    1342               }//depthMapDetect
    1343               else//do things normally
    1344               {
     1016#endif
    13451017                if(doNotBlockPu)
    13461018                {
     
    13711043                  rpcTempCU->initEstData( uiDepth, iQP );
    13721044                }
     1045#if OL_QTLIMIT_PREDCODING_B0068
    13731046              }
    13741047#endif
     
    14521125          if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth )
    14531126          {
    1454 #if OL_DEPTHLIMIT_A0044 //add code here to select or deselect NxN mode for Intra
    1455 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1456             if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1457 #else
    1458             if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1459 #endif
     1127#if OL_QTLIMIT_PREDCODING_B0068 //Try IntraNxN
     1128            if(bTrySplit)
    14601129            {
    1461               if (bTrySplit)
    1462               {
    1463 
    1464 #endif
    1465                 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    1466                 {
    1467 #if LGE_ILLUCOMP_B0045
    1468                   rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth);
    1469 #endif
    1470                   xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN   );
    1471                   rpcTempCU->initEstData( uiDepth, iQP );
    1472                 }
    1473 #if OL_DEPTHLIMIT_A0044
    1474               }//bTrySplit
    1475             }//depthMapDetect
    1476             else
    1477             {
     1130#endif
    14781131              if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    14791132              {
     1133#if LGE_ILLUCOMP_B0045
     1134                rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth);
     1135#endif
    14801136                xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN   );
    14811137                rpcTempCU->initEstData( uiDepth, iQP );
    14821138              }
     1139#if OL_QTLIMIT_PREDCODING_B0068
    14831140            }
    14841141#endif
     
    21391796  if( pcCU->isSkipped( uiAbsPartIdx ) )
    21401797  {
    2141 #if OL_DEPTHLIMIT_A0044
    2142     if(pcCU->getPartDumpFlag())
    2143     {
    2144       pcCU->updatePartInfo(0,uiDepth);
    2145       pcCU->incrementPartInfo();
    2146     }
    2147 #endif
    21481798    m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 );
    21491799#if LGE_ILLUCOMP_B0045
Note: See TracChangeset for help on using the changeset viewer.