Ignore:
Timestamp:
31 Dec 2012, 18:33:14 (12 years ago)
Author:
mitsubishi-htm
Message:

A final release, as planned

  • Migrate to HTM 5.1
  • For VC project files, only VC9 file is updated
  • To be used as an additional anchor for CE1.h for 3rd JCTVC meeting at Geneva
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.0.1-VSP-dev0/source/Lib/TLibEncoder/TEncCu.cpp

    r193 r213  
    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   //UInt         uiPrevTexPartIndex = 0;
    459 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    460   Bool bIntraSliceDetect = false;
    461 #endif
    462   Bool bTry2NxN = false;
    463   Bool bTryNx2N = false;
    464     pcTexture = rpcBestCU->getSlice()->getTexturePic();
    465     if(pcTexture != NULL) //depth map being encoded
    466     {
    467     depthMapDetect = true;
    468 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    469       bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE);
    470 #endif
    471     if(uiDepth == 0)
    472     {
    473       pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() );
    474       pcTexture->setPartInfo(pcTextureCU->readPartInfo());
    475       pcTexture->setTexPartIndex(0);
    476     }
    477     }
    478     else
    479     {
    480       depthMapDetect = false;
    481     }
    482 #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
    483464  // get Original YUV data from picture
    484465  m_ppcOrigYuv[uiDepth]->copyFromPicYuv( pcPic->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() );
    485466#if FORCE_REF_VSP
    486   Bool bWholeCUCanBeSynthesized = false;
     467  //Bool bWholeCUCanBeSynthesized = false;
    487468  //Bool bOneSubCUCanNotBeSynthesied = false;
    488469  Bool bSubCUCanBeSynthesized[4];
     
    506487    if(iSubCUCanBeSynthesizedCnt == 4)
    507488    {
    508       bWholeCUCanBeSynthesized = true;
     489      //bWholeCUCanBeSynthesized = true;
    509490    }
    510491    //else if(iSubCUCanBeSynthesizedCnt == 3)
     
    543524  UInt uiTPelY   = rpcBestCU->getCUPelY();
    544525  UInt uiBPelY   = uiTPelY + rpcBestCU->getHeight(0) - 1;
     526
     527#if LGE_ILLUCOMP_B0045
     528  Bool bICEnabled = (!rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewId());
     529
     530  bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC();
     531#endif
    545532
    546533#if HHI_INTERVIEW_SKIP
     
    650637      // variables for fast encoder decision
    651638      bEarlySkip  = false;
    652       bTrySplit    = true;
     639      bTrySplit   = true;
    653640      fRD_Skip    = MAX_DOUBLE;
    654641
    655642      rpcTempCU->initEstData( uiDepth, iQP );
    656643
    657 #if OL_DEPTHLIMIT_A0044
     644#if OL_QTLIMIT_PREDCODING_B0068
    658645      //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU
    659 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    660       if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL())
    661 #else
    662       if(depthMapDetect && sps->getUseDPL()) //depth map being encoded
    663 #endif
    664       {
    665         assert(uiDepth == pcTexture->accessPartInfo(1));
    666         if(pcTexture->accessPartInfo(0) == 1) //NxN modes
     646      if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC())
     647      {
     648        TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU
     649        UInt uiCUIdx            = rpcBestCU->getZorderIdxInCU();
     650        assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); //Depth cannot be more partitionned than the texture.
     651        if (pcTextureCU->getDepth(uiCUIdx) > uiDepth || pcTextureCU->getPartitionSize(uiCUIdx) == SIZE_NxN) //Texture was split.
    667652        {
    668653          bTrySplit = true;
    669           bTryNx2N = true;
    670           bTry2NxN = true;
    671           //uiPrevTexPartIndex = pcTexture->getTexPartIndex();
    672           pcTexture->incrementTexPartIndex();
     654          bTryNx2N  = true;
     655          bTry2NxN  = true;
    673656        }
    674         else if(pcTexture->accessPartInfo(0) == 0) //2Nx2N modes
    675         {
    676           UInt uiTexdepth;
    677           UInt temp_uiTexPartIndex;
    678           bTrySplit = false;
    679 
    680           //scan ahead till next depth
    681           uiTexdepth = pcTexture->accessPartInfo(1);
    682           //uiPrevTexPartIndex = pcTexture->getTexPartIndex();
    683           pcTexture->incrementTexPartIndex();
    684           temp_uiTexPartIndex = pcTexture->getTexPartIndex(); //store in case to rewind
    685 
    686           while(uiTexdepth != pcTexture->accessPartInfo(1) && uiTexdepth != 0)
    687           {
    688             if(pcTexture->accessPartInfo(1) < uiTexdepth)
    689             {
    690               break;
    691             }
    692             pcTexture->incrementTexPartIndex();
    693 
    694             if(pcTexture->accessPartInfo(1) == OL_END_CU)
    695             {
    696               pcTexture->setTexPartIndex(temp_uiTexPartIndex);
    697               uiTexdepth++;
    698               if(uiTexdepth >= g_uiMaxCUDepth)
    699               {     
    700                 break;
    701               }
    702             }
    703           }
    704         }
    705         else if(pcTexture->accessPartInfo(0) == OL_END_CU)
     657        else
    706658        {
    707659          bTrySplit = false;
    708           bTryNx2N = false;
    709           bTry2NxN = false;
     660          bTryNx2N  = false;
     661          bTry2NxN  = false;
    710662        }
    711         else if(pcTexture->accessPartInfo(0) == 2) //2NxN case
    712         {
    713           bTrySplit = false;
    714           bTryNx2N = false;
    715           bTry2NxN = true;
    716           //uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 
    717           pcTexture->incrementTexPartIndex(); ;
    718         }
    719         else if(pcTexture->accessPartInfo(0) == 3) //Nx2N case
    720         {
    721           bTrySplit = false;
    722           bTryNx2N = true;
    723           bTry2NxN = false;
    724           //uiPrevTexPartIndex = pcTexture->getTexPartIndex(); 
    725           pcTexture->incrementTexPartIndex(); ;
    726         }
    727       }
    728 #endif
    729 
     663      }
     664#endif
    730665
    731666      // do inter modes, SKIP and 2Nx2N
     
    750685        {
    751686          Bool bResPredFlag  = ( uiResPrdId > 0 );
    752 #endif
    753 #if HHI_INTER_VIEW_RESIDUAL_PRED
    754           rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    755 #endif
    756           // SKIP
     687#if LGE_ILLUCOMP_B0045
     688          for(UInt uiICId = 0; uiICId < (bICEnabled ? 2 : 1); uiICId++)
     689          {
     690            Bool bICFlag = (uiICId ? true : false);
     691            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     692#endif
     693#endif
     694#if HHI_INTER_VIEW_RESIDUAL_PRED
     695            rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     696#endif
     697            // SKIP
    757698#if HHI_INTERVIEW_SKIP
    758           xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, bFullyRenderedSec );
    759 #else
    760           xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU );
    761 #endif
    762           rpcTempCU->initEstData( uiDepth, iQP );
    763 
    764           // fast encoder decision for early skip
    765           if ( m_pcEncCfg->getUseFastEnc() )
    766           {
    767             Int iIdx = g_aucConvertToBit[ rpcBestCU->getWidth(0) ];
    768             if ( aiNum [ iIdx ] > 5 && fRD_Skip < EARLY_SKIP_THRES*afCost[ iIdx ]/aiNum[ iIdx ] )
     699            xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU, bFullyRenderedSec );
     700#else
     701            xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU );
     702#endif
     703            rpcTempCU->initEstData( uiDepth, iQP );
     704
     705            // fast encoder decision for early skip
     706            if ( m_pcEncCfg->getUseFastEnc() )
    769707            {
    770               bEarlySkip = true;
    771               bTrySplit  = false;
     708              Int iIdx = g_aucConvertToBit[ rpcBestCU->getWidth(0) ];
     709              if ( aiNum [ iIdx ] > 5 && fRD_Skip < EARLY_SKIP_THRES*afCost[ iIdx ]/aiNum[ iIdx ] )
     710              {
     711                bEarlySkip = true;
     712                bTrySplit  = false;
     713              }
    772714            }
    773           }
    774 
    775           // 2Nx2N, NxN
    776           if ( !bEarlySkip )
    777           {
    778 #if HHI_INTER_VIEW_RESIDUAL_PRED
    779             rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     715#if LGE_ILLUCOMP_B0045_ENCSIMP
     716            if(bICFlag && rpcBestCU->getMergeFlag(0) && !rpcBestCU->getICFlag(0))
     717            {
     718              bICEnabled = false;
     719              break;
     720            }
     721#endif
     722
     723            // 2Nx2N, NxN
     724            if ( !bEarlySkip )
     725            {
     726#if HHI_INTER_VIEW_RESIDUAL_PRED
     727              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    780728#endif
    781729#if HHI_INTERVIEW_SKIP
    782             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec );
    783 
    784 #else
    785             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
    786 #endif
    787             rpcTempCU->initEstData( uiDepth, iQP );
    788             if(m_pcEncCfg->getUseCbfFastMode())
    789             {
    790               doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    791             }
     730              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec );
     731
     732#else
     733              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
     734#endif
     735              rpcTempCU->initEstData( uiDepth, iQP );
     736              if(m_pcEncCfg->getUseCbfFastMode())
     737              {
     738                doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
     739              }
    792740
    793741#if FORCE_REF_VSP==1
    794742#if VSP_CFG
    795             if( rpcBestCU->getSlice()->getSPS()->getVspDepthPresentFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() )
    796 #else
    797             if( !rpcBestCU->getSlice()->getVspDepthDisableFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() )
    798 #endif
    799             if( bWholeCUCanBeSynthesized )
    800             {
    801 #if HHI_INTER_VIEW_RESIDUAL_PRED
    802               rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     743              if( rpcBestCU->getSlice()->getSPS()->getVspDepthPresentFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() )
     744#else
     745              if( !rpcBestCU->getSlice()->getVspDepthDisableFlag() || !rpcBestCU->getSlice()->getSPS()->isDepth() )
     746#endif
     747              if( bWholeCUCanBeSynthesized )
     748              {
     749#if HHI_INTER_VIEW_RESIDUAL_PRED
     750                rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    803751#endif
    804752#if HHI_INTERVIEW_SKIP
    805               xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec, false, true ); // VSP
    806 #else
    807               xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
    808 #endif
    809               rpcTempCU->initEstData( uiDepth, iQP );
     753                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec, false, true ); // VSP
     754#else
     755                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
     756#endif
     757                rpcTempCU->initEstData( uiDepth, iQP );
     758              }
     759//#else
     760//              if( bWholeCUCanBeSynthesized ) // To avoid compiling warning
     761//              {
     762//              }
     763#endif
    810764            }
    811 #else
    812             if( bWholeCUCanBeSynthesized ) // To avoid compiling warning
    813             {
    814             }
    815 #endif
     765#if LGE_ILLUCOMP_B0045
    816766          }
     767#endif
    817768#if HHI_INTER_VIEW_RESIDUAL_PRED
    818769        } // uiResPrdId
     
    820771      } // != I_SLICE
    821772
    822 #if OL_DEPTHLIMIT_A0044
    823 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    824       if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    825 #else
    826       if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    827 #endif
     773#if LGE_ILLUCOMP_B0045_ENCSIMP
     774      bICEnabled = rpcBestCU->getICFlag(0);
     775#endif
     776
     777#if OL_QTLIMIT_PREDCODING_B0068
     778      if(depthMapDetect && !bIntraSliceDetect  && sps->getUseQTLPC())
    828779      {
    829780        bTrySplitDQP = bTrySplit;
     
    831782      else
    832783      {
     784#endif
    833785        if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() )
    834786        {
     
    842794          bTrySplitDQP = bTrySplit;
    843795        }
    844       }
    845 #else
    846 
    847       if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() )
    848       {
    849         if(iQP == iBaseQP)
    850         {
    851           bTrySplitDQP = bTrySplit;
    852         }
    853       }
    854       else
    855       {
    856         bTrySplitDQP = bTrySplit;
    857       }
    858 #endif
     796#if OL_QTLIMIT_PREDCODING_B0068
     797      }
     798#endif
     799
    859800#if LOSSLESS_CODING
    860801      if (isAddLowestQP && (iQP == lowestQP))
     
    897838        {
    898839          Bool bResPredFlag  = ( uiResPrdId > 0 );
    899 #endif
    900           // 2Nx2N, NxN
    901           if ( !bEarlySkip )
     840#if LGE_ILLUCOMP_B0045
     841          for(UInt uiICId = 0; uiICId < (bICEnabled ? 2 : 1); uiICId++)
    902842          {
    903 
    904             if(!( rpcBestCU->getSlice()->getSPS()->getDisInter4x4()  && (rpcBestCU->getWidth(0)==8) && (rpcBestCU->getHeight(0)==8) ))
     843            Bool bICFlag = (uiICId ? true : false);
     844            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     845#endif
     846#endif
     847            // 2Nx2N, NxN
     848            if ( !bEarlySkip )
    905849            {
    906               if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu)
     850
     851              if(!( rpcBestCU->getSlice()->getSPS()->getDisInter4x4()  && (rpcBestCU->getWidth(0)==8) && (rpcBestCU->getHeight(0)==8) ))
    907852              {
    908 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    909 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    910                 if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    911 #else
    912                 if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    913 #endif
     853                if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu)
    914854                {
    915                   if (bTrySplit)
     855#if OL_QTLIMIT_PREDCODING_B0068 //try InterNxN
     856                  if(bTrySplit)
    916857                  {
    917858#endif
     
    925866#endif
    926867                    rpcTempCU->initEstData( uiDepth, iQP );
    927 #if OL_DEPTHLIMIT_A0044
    928                   }//bTrySplit
    929                 }//depthMapDetect
    930                 else//do things normally
    931                 {
    932 #if HHI_INTER_VIEW_RESIDUAL_PRED
    933                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    934 #endif
    935 #if HHI_INTERVIEW_SKIP
    936                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFullyRenderedSec   );
    937 #else
    938                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN   );
    939 #endif
    940                   rpcTempCU->initEstData( uiDepth, iQP );
    941                 }
    942 #endif
     868#if OL_QTLIMIT_PREDCODING_B0068
     869                  }
     870#endif
     871                }
    943872              }
    944873            }
    945           }
    946 
    947           { // 2NxN, Nx2N
    948 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    949 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    950             if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    951 #else
    952             if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    953 #endif
    954             {
    955               if (bTryNx2N)
     874
     875            { // 2NxN, Nx2N
     876#if OL_QTLIMIT_PREDCODING_B0068 //try Nx2N
     877              if(bTryNx2N)
    956878              {
    957879#endif
     
    972894                  }
    973895                }
    974 #if OL_DEPTHLIMIT_A0044
    975               }//bTryNx2N
    976             }//depthMapDetect
    977             else//do things normally
    978             {
    979               if(doNotBlockPu)
    980               {
    981 #if HHI_INTER_VIEW_RESIDUAL_PRED
    982                 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    983 #endif
    984 #if HHI_INTERVIEW_SKIP
    985                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFullyRenderedSec   );
    986 #else
    987                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N  );
    988 #endif
    989                 rpcTempCU->initEstData( uiDepth, iQP );
    990                 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_Nx2N )
    991                 {
    992                   doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    993                 }
     896#if OL_QTLIMIT_PREDCODING_B0068
    994897              }
    995             }
    996 #endif
    997 
    998 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    999 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1000             if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1001 #else
    1002             if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1003 #endif
    1004             {
    1005               if (bTry2NxN)
     898#endif
     899
     900#if OL_QTLIMIT_PREDCODING_B0068 //try 2NxN
     901              if(bTry2NxN)
    1006902              {
    1007903#endif
     
    1022918                  }
    1023919                }
    1024 #if OL_DEPTHLIMIT_A0044
    1025               }//bTryNx2N
    1026             }//depthMapDetect
    1027             else//do things normally
     920#if OL_QTLIMIT_PREDCODING_B0068
     921              }
     922#endif
     923            }
     924
     925#if 1
     926            //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N)
     927            if( pcPic->getSlice(0)->getSPS()->getAMPAcc(uiDepth) )
    1028928            {
    1029               if(doNotBlockPu)
     929#if AMP_ENC_SPEEDUP       
     930              Bool bTestAMP_Hor = false, bTestAMP_Ver = false;
     931
     932#if AMP_MRG
     933              Bool bTestMergeAMP_Hor = false, bTestMergeAMP_Ver = false;
     934
     935              deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver, bTestMergeAMP_Hor, bTestMergeAMP_Ver);
     936#else
     937              deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver);
     938#endif
     939
     940              //! Do horizontal AMP
     941              if ( bTestAMP_Hor )
    1030942              {
    1031 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1032                 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1033 #endif
    1034 #if HHI_INTERVIEW_SKIP
    1035                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxN, bFullyRenderedSec   );
    1036 #else
    1037                 xCheckRDCostInter      ( rpcBestCU, rpcTempCU, SIZE_2NxN  );
    1038 #endif
    1039                 rpcTempCU->initEstData( uiDepth, iQP );
    1040                 if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxN)
    1041                 {
    1042                   doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1043                 }
    1044               }
    1045             }
    1046 #endif
    1047           }
    1048 
    1049 #if 1
    1050           //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N)
    1051           if( pcPic->getSlice(0)->getSPS()->getAMPAcc(uiDepth) )
    1052           {
    1053 #if AMP_ENC_SPEEDUP       
    1054             Bool bTestAMP_Hor = false, bTestAMP_Ver = false;
    1055 
    1056 #if AMP_MRG
    1057             Bool bTestMergeAMP_Hor = false, bTestMergeAMP_Ver = false;
    1058 
    1059             deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver, bTestMergeAMP_Hor, bTestMergeAMP_Ver);
    1060 #else
    1061             deriveTestModeAMP (rpcBestCU, eParentPartSize, bTestAMP_Hor, bTestAMP_Ver);
    1062 #endif
    1063 
    1064             //! Do horizontal AMP
    1065             if ( bTestAMP_Hor )
    1066             {
    1067 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1068 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1069               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1070 #else
    1071               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1072 #endif
    1073               {
    1074                 if (bTry2NxN)
     943#if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD
     944                if(bTry2NxN)
    1075945                {
    1076946#endif
     
    1107977                    }
    1108978                  }
    1109 #if OL_DEPTHLIMIT_A0044
    1110                 }//bTry2NxN
    1111               }//depthMapDetect
    1112               else//do things normally
     979#if OL_QTLIMIT_PREDCODING_B0068
     980                }
     981#endif
     982              }
     983#if AMP_MRG
     984              else if ( bTestMergeAMP_Hor )
    1113985              {
    1114                 if(doNotBlockPu)
    1115                 {
    1116 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1117                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1118 #endif
    1119 #if HHI_INTERVIEW_SKIP
    1120                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec );
    1121 #else
    1122                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU );
    1123 #endif
    1124                   rpcTempCU->initEstData( uiDepth, iQP );
    1125                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU )
    1126                   {
    1127                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1128                   }
    1129                 }
    1130                 if(doNotBlockPu)
    1131                 {
    1132 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1133                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1134 #endif
    1135 #if HHI_INTERVIEW_SKIP
    1136                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec );
    1137 #else
    1138                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD );
    1139 #endif
    1140                   rpcTempCU->initEstData( uiDepth, iQP );
    1141                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD )
    1142                   {
    1143                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1144                   }
    1145                 }
    1146               }
    1147 #endif
    1148             }
    1149 #if AMP_MRG
    1150             else if ( bTestMergeAMP_Hor )
    1151             {
    1152 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1153 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1154               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1155 #else
    1156               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1157 #endif
    1158               {
    1159                 if (bTry2NxN)
     986#if OL_QTLIMIT_PREDCODING_B0068 //try 2NxnU & 2NxnD Merge
     987                if(bTry2NxN)
    1160988                {
    1161989#endif
     
    11921020                    }
    11931021                  }
    1194 #if OL_DEPTHLIMIT_A0044
    1195                 }//bTry2NxN
    1196               }//depthMapDetect
    1197               else//do things normally
     1022#if OL_QTLIMIT_PREDCODING_B0068
     1023                }
     1024#endif
     1025              }
     1026#endif
     1027
     1028              //! Do horizontal AMP
     1029              if ( bTestAMP_Ver )
    11981030              {
    1199                 if(doNotBlockPu)
    1200                 {
    1201 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1202                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1203 #endif
    1204 #if HHI_INTERVIEW_SKIP
    1205                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true );
    1206 #else
    1207                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true );
    1208 #endif
    1209                   rpcTempCU->initEstData( uiDepth, iQP );
    1210                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU )
    1211                   {
    1212                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1213                   }
    1214                 }
    1215                 if(doNotBlockPu)
    1216                 {
    1217 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1218                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1219 #endif
    1220 #if HHI_INTERVIEW_SKIP
    1221                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true );
    1222 #else
    1223                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true );
    1224 #endif
    1225                   rpcTempCU->initEstData( uiDepth, iQP );
    1226                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD )
    1227                   {
    1228                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1229                   }
    1230                 }
    1231 
    1232               }
    1233 #endif
    1234             }
    1235 #endif
    1236 
    1237             //! Do horizontal AMP
    1238             if ( bTestAMP_Ver )
    1239             {
    1240 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1241 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1242               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1243 #else
    1244               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1245 #endif
    1246               {
    1247                 if (bTryNx2N)
     1031#if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N
     1032                if(bTryNx2N)
    12481033                {
    12491034#endif
     
    12761061                    rpcTempCU->initEstData( uiDepth, iQP );
    12771062                  }
    1278 #if OL_DEPTHLIMIT_A0044
    1279                 }//bTryNx2N
    1280               }//depthMapDetect
    1281               else//do things normally
     1063#if OL_QTLIMIT_PREDCODING_B0068
     1064                }
     1065#endif
     1066              }
     1067#if AMP_MRG
     1068              else if ( bTestMergeAMP_Ver )
    12821069              {
    1283                 if(doNotBlockPu)
    1284                 {
    1285 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1286                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1287 #endif
    1288 #if HHI_INTERVIEW_SKIP
    1289                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec );
    1290 #else
    1291                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N );
    1292 #endif
    1293                   rpcTempCU->initEstData( uiDepth, iQP );
    1294                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N )
    1295                   {
    1296                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1297                   }
    1298                 }
    1299                 if(doNotBlockPu)
    1300                 {
    1301 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1302                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1303 #endif
    1304 #if HHI_INTERVIEW_SKIP
    1305                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec );
    1306 #else
    1307                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N );
    1308 #endif
    1309                   rpcTempCU->initEstData( uiDepth, iQP );
    1310                 }
    1311               }
    1312 #endif
    1313             }
    1314 #if AMP_MRG
    1315             else if ( bTestMergeAMP_Ver )
    1316             {
    1317 #if OL_DEPTHLIMIT_A0044 //add code here to select 2NxN or Nx2N or none
    1318 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1319               if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1320 #else
    1321               if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1322 #endif
    1323               {
    1324                 if (bTryNx2N)
     1070#if OL_QTLIMIT_PREDCODING_B0068 //try nLx2N & nRx2N (Merge)
     1071                if(bTryNx2N)
    13251072                {
    13261073#endif
     
    13531100                    rpcTempCU->initEstData( uiDepth, iQP );
    13541101                  }
    1355 #if OL_DEPTHLIMIT_A0044
    1356                 }//bTryNx2N
    1357               }//depthMapDetect
    1358               else//do things normally
    1359               {
    1360                 if(doNotBlockPu)
    1361                 {
    1362 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1363                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     1102#if OL_QTLIMIT_PREDCODING_B0068
     1103                }
     1104#endif
     1105              }
     1106#endif
     1107
     1108#else
     1109#if HHI_INTER_VIEW_RESIDUAL_PRED
     1110              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    13641111#endif
    13651112#if HHI_INTERVIEW_SKIP
    1366                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec, true );
    1367 #else
    1368                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true );
    1369 #endif
    1370                   rpcTempCU->initEstData( uiDepth, iQP );
    1371                   if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N )
    1372                   {
    1373                     doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
    1374                   }
    1375                 }
    1376                 if(doNotBlockPu)
    1377                 {
    1378 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1379                   rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     1113              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec );
     1114#else
     1115              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU );
     1116#endif
     1117              rpcTempCU->initEstData( uiDepth, iQP );
     1118#if HHI_INTER_VIEW_RESIDUAL_PRED
     1119              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    13801120#endif
    13811121#if HHI_INTERVIEW_SKIP
    1382                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec, true );
    1383 #else
    1384                   xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true );
    1385 #endif
    1386                   rpcTempCU->initEstData( uiDepth, iQP );
    1387                 }
    1388               }
    1389 #endif
    1390             }
    1391 #endif
    1392 
    1393 #else
    1394 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1395             rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     1122              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec );
     1123#else
     1124              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD );
     1125#endif
     1126              rpcTempCU->initEstData( uiDepth, iQP );
     1127#if HHI_INTER_VIEW_RESIDUAL_PRED
     1128              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    13961129#endif
    13971130#if HHI_INTERVIEW_SKIP
    1398             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec );
    1399 #else
    1400             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU );
    1401 #endif
    1402             rpcTempCU->initEstData( uiDepth, iQP );
    1403 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1404             rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     1131              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec );
     1132#else
     1133              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N );
     1134#endif
     1135              rpcTempCU->initEstData( uiDepth, iQP );
     1136#if HHI_INTER_VIEW_RESIDUAL_PRED
     1137              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    14051138#endif
    14061139#if HHI_INTERVIEW_SKIP
    1407             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec );
    1408 #else
    1409             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD );
    1410 #endif
    1411             rpcTempCU->initEstData( uiDepth, iQP );
    1412 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1413             rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1414 #endif
    1415 #if HHI_INTERVIEW_SKIP
    1416             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec );
    1417 #else
    1418             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N );
    1419 #endif
    1420             rpcTempCU->initEstData( uiDepth, iQP );
    1421 #if HHI_INTER_VIEW_RESIDUAL_PRED
    1422             rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    1423 #endif
    1424 #if HHI_INTERVIEW_SKIP
    1425             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec );
    1426 #else
    1427             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N );
    1428 #endif
    1429             rpcTempCU->initEstData( uiDepth, iQP );
    1430 
    1431 #endif
    1432           } //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N)
     1140              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec );
     1141#else
     1142              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N );
     1143#endif
     1144              rpcTempCU->initEstData( uiDepth, iQP );
     1145
     1146#endif
     1147            } //! Try AMP (SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N)
     1148#endif
     1149#if LGE_ILLUCOMP_B0045
     1150         }
    14331151#endif
    14341152#if HHI_INTER_VIEW_RESIDUAL_PRED
     
    14571175#endif
    14581176        {
     1177#if LGE_ILLUCOMP_B0045
     1178          rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth);
     1179#endif
    14591180          xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
    14601181          rpcTempCU->initEstData( uiDepth, iQP );
    14611182          if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth )
    14621183          {
    1463 #if OL_DEPTHLIMIT_A0044 //add code here to select or deselect NxN mode for Intra
    1464 #if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
    1465             if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
    1466 #else
    1467             if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
    1468 #endif
     1184#if OL_QTLIMIT_PREDCODING_B0068 //Try IntraNxN
     1185            if(bTrySplit)
    14691186            {
    1470               if (bTrySplit)
    1471               {
    1472 
    1473 #endif
    1474                 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    1475                 {
    1476                   xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN   );
    1477                   rpcTempCU->initEstData( uiDepth, iQP );
    1478                 }
    1479 #if OL_DEPTHLIMIT_A0044
    1480               }//bTrySplit
    1481             }//depthMapDetect
    1482             else
    1483             {
     1187#endif
    14841188              if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    14851189              {
     1190#if LGE_ILLUCOMP_B0045
     1191                rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth);
     1192#endif
    14861193                xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN   );
    14871194                rpcTempCU->initEstData( uiDepth, iQP );
    14881195              }
     1196#if OL_QTLIMIT_PREDCODING_B0068
    14891197            }
    14901198#endif
     
    15071215#endif
    15081216        {
     1217#if LGE_ILLUCOMP_B0045
     1218          rpcTempCU->setICFlagSubParts(false, 0, 0, uiDepth);
     1219#endif
    15091220          xCheckIntraPCM (rpcBestCU, rpcTempCU);
    15101221          rpcTempCU->initEstData( uiDepth, iQP );
     
    16941405
    16951406#if HHI_VSO
    1696 #if HHI_VSO_SET_OPTIM
    1697 #else
    1698           if( m_pcRdCost->getUseRenModel() ) // necessary ??
    1699           {
    1700             UInt  uiWidth     = m_ppcRecoYuvBest[uhNextDepth]->getWidth   (  );
    1701             UInt  uiHeight    = m_ppcRecoYuvBest[uhNextDepth]->getHeight  (   );
    1702             Pel*  piSrc       = m_ppcRecoYuvBest[uhNextDepth]->getLumaAddr( 0 );
    1703             UInt  uiSrcStride = m_ppcRecoYuvBest[uhNextDepth]->getStride  (   );
    1704             m_pcRdCost->setRenModelData( pcSubBestPartCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
    1705           }
    1706 #endif
    17071407#endif
    17081408        }
     
    21451845#if HHI_MPI
    21461846  if( pcCU->getTextureModeDepth( uiAbsPartIdx ) == -1 )
    2147 {
     1847  {
    21481848#endif
    21491849  if( !pcCU->getSlice()->isIntra() )
     
    21641864  }
    21651865#if HHI_MPI
    2166 }
     1866  }
    21671867#endif
    21681868 
     
    21721872#endif
    21731873  {
    2174 #if OL_DEPTHLIMIT_A0044
    2175     if(pcCU->getPartDumpFlag())
    2176     {
    2177       pcCU->updatePartInfo(0,uiDepth);
    2178       pcCU->incrementPartInfo();
    2179     }
    2180 #endif
    21811874    m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 );
     1875#if LGE_ILLUCOMP_B0045
     1876    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1877#endif
    21821878#if HHI_INTER_VIEW_RESIDUAL_PRED
    21831879    m_pcEntropyCoder->encodeResPredFlag( pcCU, uiAbsPartIdx, 0 );
     
    22171913  // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    22181914  m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
     1915#if LGE_ILLUCOMP_B0045
     1916    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1917#endif
    22191918#if HHI_INTER_VIEW_RESIDUAL_PRED
    22201919    if( !pcCU->isIntra( uiAbsPartIdx ) )
     
    22601959  Bool  bResPrdAvail  = rpcTempCU->getResPredAvail( 0 );
    22611960  Bool  bResPrdFlag   = rpcTempCU->getResPredFlag ( 0 );
     1961#endif
     1962#if LGE_ILLUCOMP_B0045
     1963  Bool  bICFlag = rpcTempCU->getICFlag(0);
    22621964#endif
    22631965
     
    23352037          rpcTempCU->setResPredFlagSubParts ( bResPrdFlag,  0, 0, uhDepth );
    23362038#endif
     2039#if LGE_ILLUCOMP_B0045
     2040          rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uhDepth);
     2041#endif
    23372042
    23382043          // do MC
    23392044#if HHI_INTERVIEW_SKIP
    2340       if ( (uiNoResidual == 0) || bSkipRes ){
    2341 #else
    2342       if ( uiNoResidual == 0 ){
    2343 #endif
     2045      if ( (uiNoResidual == 0) || bSkipRes )
     2046#else
     2047      if ( uiNoResidual == 0 )
     2048#endif
     2049        {
    23442050            m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
    23452051            // save pred adress
     
    25842290  m_ppcRecoYuvTemp[uiDepth]->copyToPicLuma(rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getAddr(), rpcTempCU->getZorderIdxInCU() );
    25852291 
     2292#if RWTH_SDC_DLT_B0036
     2293  if( !rpcTempCU->getSDCFlag( 0 ) )
     2294#endif
    25862295  m_pcPredSearch  ->estIntraPredChromaQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC );
    25872296 
     
    30522761  assert( bRecursiveCall == ( uhDepth != uhTextureModeDepth ) );
    30532762
     2763#if !MTK_UNCONSTRAINED_MVI_B0083
    30542764  if( uhDepth == uhTextureModeDepth )
    30552765  {
     
    30922802    }
    30932803  }
     2804#endif
    30942805
    30952806#if HHI_VSO
     
    31972908    rpcTempCU->setTextureModeDepthSubParts( uhTextureModeDepth, 0, uhDepth );
    31982909    rpcTempCU->copyTextureMotionDataFrom( pcTextureCU, uhDepth, rpcTempCU->getZorderIdxInCU() );
     2910#if FIX_MPI_B0065
     2911    UInt uiAbsPartIdx = rpcTempCU->getZorderIdxInCU();
     2912    if( rpcTempCU->getDepth(0) > pcTextureCU->getDepth(uiAbsPartIdx))
     2913    {
     2914      rpcTempCU->setPartSizeSubParts( SIZE_NxN, 0, uhDepth );
     2915    }
     2916    else
     2917    {
     2918      PartSize partSize = pcTextureCU->getPartitionSize(uiAbsPartIdx);
     2919      rpcTempCU->setPartSizeSubParts( partSize, 0, uhDepth );
     2920    }
     2921#else
    31992922    rpcTempCU->setPartSizeSubParts( SIZE_NxN, 0, uhDepth );
     2923#endif
    32002924    for( UInt ui = 0; ui < rpcTempCU->getTotalNumPart(); ui++ )
    32012925    {
     
    33023026  {
    33033027    m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, 0, true );
     3028#if LGE_ILLUCOMP_B0045
     3029    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     3030#endif
    33043031  }
    33053032  else
     
    33093036    // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    33103037    m_pcEntropyCoder->encodePredInfo( pcCU, 0, true );
     3038#if LGE_ILLUCOMP_B0045
     3039    m_pcEntropyCoder->encodeICFlag( pcCU, 0,          true );
     3040#endif
    33113041  }
    33123042  xRestoreDepthWidthHeight( pcCU );
Note: See TracChangeset for help on using the changeset viewer.