Changeset 253 in 3DVCSoftware for branches/HTM-5.1-dev1-LG


Ignore:
Timestamp:
4 Feb 2013, 02:57:15 (11 years ago)
Author:
lg
Message:

Integration of JCT3V-C0046

Location:
branches/HTM-5.1-dev1-LG
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev1-LG/CommonTestConditionsCfgs/baseCfg_2view+depth.cfg

    r210 r253  
    157157SignHideFlag                   : 1                                 # sign hiding
    158158SignHideThreshold              : 4                                 # sign hiding threshold
    159 IlluCompEnable                 : 1                                 # illumination compensation (0: OFF, 1: ON)
     159IlluCompEnable                 : 1 1                               # illumination compensation (0: OFF, 1: ON)
    160160
    161161#============ PCM ================
  • branches/HTM-5.1-dev1-LG/CommonTestConditionsCfgs/baseCfg_3view+depth.cfg

    r210 r253  
    161161SignHideFlag                   : 1                                 # sign hiding
    162162SignHideThreshold              : 4                                 # sign hiding threshold
    163 IlluCompEnable                 : 1                                 # illumination compensation (0: OFF, 1: ON)
     163IlluCompEnable                 : 1 1                               # illumination compensation (0: OFF, 1: ON)
    164164
    165165#============ PCM ================
  • branches/HTM-5.1-dev1-LG/source/App/TAppEncoder/TAppEncCfg.cpp

    r210 r253  
    340340  ("LoopFilterTcOffset_div2", m_loopFilterTcOffsetDiv2, 0 )
    341341#if LGE_ILLUCOMP_B0045
     342#if LGE_ILLUCOMP_DEPTH_C0046
     343  ("IlluCompEnable", m_abUseIC, std::vector<Bool>(2, true), "Enable illumination compensation for inter-view prediction")
     344#else
    342345  ("IlluCompEnable",                  m_bUseIC                  , true         , "Use illumination compensation for inter-view prediction" )
     346#endif
    343347#endif
    344348#if DBL_CONTROL
     
    18041808#endif
    18051809#if LGE_ILLUCOMP_B0045
     1810#if LGE_ILLUCOMP_DEPTH_C0046
     1811  printf("IlluCompEnable: %d %d", m_abUseIC[0] ? 1 : 0, m_abUseIC[1] ? 1 : 0);
     1812#else
    18061813  printf("IlluCompEnable: %d ", m_bUseIC);
     1814#endif
    18071815#endif
    18081816
  • branches/HTM-5.1-dev1-LG/source/App/TAppEncoder/TAppEncCfg.h

    r210 r253  
    170170  vector<Bool> m_abUseSAO;
    171171#if LGE_ILLUCOMP_B0045
     172#if LGE_ILLUCOMP_DEPTH_C0046
     173  vector<Bool> m_abUseIC;                                    ///< flag for using illumination compensation for inter-view prediction
     174#else
    172175  Bool      m_bUseIC;                                     ///< flag for using illumination compensation for inter-view prediction
     176#endif
    173177#endif
    174178#if SAO_UNIT_INTERLEAVING
  • branches/HTM-5.1-dev1-LG/source/App/TAppEncoder/TAppEncTop.cpp

    r210 r253  
    315315    m_acTEncTopList[iViewIdx]->setUseSAO               ( m_abUseSAO[0]     );
    316316#if LGE_ILLUCOMP_B0045
     317#if LGE_ILLUCOMP_DEPTH_C0046
     318    m_acTEncTopList[iViewIdx]->setUseIC                ( m_abUseIC[0]      );
     319#else
    317320    m_acTEncTopList[iViewIdx]->setUseIC                ( m_bUseIC          );
     321#endif
    318322#endif
    319323#if SAO_UNIT_INTERLEAVING
     
    637641      m_acTEncDepthTopList[iViewIdx]->setUseSAO               ( m_abUseSAO[1]     );
    638642#if LGE_ILLUCOMP_B0045
     643#if LGE_ILLUCOMP_DEPTH_C0046
     644      m_acTEncDepthTopList[iViewIdx]->setUseIC                ( m_abUseIC[1] );
     645#else
    639646      m_acTEncDepthTopList[iViewIdx]->setUseIC                ( false     );
     647#endif
    640648#endif
    641649#if SAO_UNIT_INTERLEAVING
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComDataCU.cpp

    r251 r253  
    30963096}
    30973097
     3098#if LGE_ILLUCOMP_DEPTH_C0046
     3099//This modification is not needed after integrating JCT3V-C0137
     3100Bool TComDataCU::isICFlagRequired(UInt uiAbsPartIdx, UInt uiDepth)
     3101{
     3102  UInt uiPartAddr;
     3103  UInt iNumbPart;
     3104
     3105  if(!getSlice()->getIsDepth())
     3106  {
     3107    Int iWidth, iHeight;
     3108
     3109    iNumbPart = ( getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N ? 1 : (getPartitionSize(uiAbsPartIdx) == SIZE_NxN ? 4 : 2) );
     3110
     3111    for(UInt i = 0; i < iNumbPart; i++)
     3112    {
     3113      getPartIndexAndSize(i, uiPartAddr, iWidth, iHeight, uiAbsPartIdx, true);
     3114      uiPartAddr += uiAbsPartIdx;
     3115
     3116      for(UInt uiRefIdx = 0; uiRefIdx < 2; uiRefIdx++)
     3117      {
     3118        RefPicList eRefList = uiRefIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;
     3119        Int iBestRefIdx = getCUMvField(eRefList)->getRefIdx(uiPartAddr);
     3120
     3121        if((getInterDir(uiPartAddr) & (uiRefIdx+1)) && iBestRefIdx >= 0 && getSlice()->getViewId() != getSlice()->getRefViewId(eRefList, iBestRefIdx))
     3122        {
     3123          return true;
     3124        }
     3125      }
     3126    }
     3127  }
     3128  else
     3129  {
     3130    iNumbPart = getPic()->getNumPartInCU() >> (uiDepth << 1);
     3131
     3132    for(UInt i = 0; i < iNumbPart; i++)
     3133    {
     3134      uiPartAddr = uiAbsPartIdx + i;
     3135
     3136      for(UInt uiRefIdx = 0; uiRefIdx < 2; uiRefIdx++)
     3137      {
     3138        RefPicList eRefList = uiRefIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;
     3139        Int iBestRefIdx = getCUMvField(eRefList)->getRefIdx(uiPartAddr);
     3140
     3141        if((getInterDir(uiPartAddr) & (uiRefIdx+1)) && iBestRefIdx >= 0 && getSlice()->getViewId() != getSlice()->getRefViewId(eRefList, iBestRefIdx))
     3142        {
     3143          return true;
     3144        }
     3145      }
     3146    }
     3147  }
     3148
     3149  return false;
     3150}
     3151#else
    30983152Bool TComDataCU::isICFlagRequired(UInt uiAbsPartIdx)
    30993153{
     
    31243178  return false;
    31253179}
     3180#endif
    31263181#endif
    31273182
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComDataCU.h

    r251 r253  
    482482  Void          setICFlag             ( UInt uiIdx, Bool  uh )  { m_pbICFlag[uiIdx] = uh;          }
    483483  Void          setICFlagSubParts     ( Bool bICFlag,  UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth );
     484#if LGE_ILLUCOMP_DEPTH_C0046
     485  Bool          isICFlagRequired      (UInt uiAbsPartIdx, UInt uiDepth); //This modification is not needed after integrating JCT3V-C0137
     486#else
    484487  Bool          isICFlagRequired      (UInt uiAbsPartIdx);
     488#endif
    485489#endif
    486490
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComPrediction.cpp

    r251 r253  
    786786    UInt uiRShift = ( bi ? 14-g_uiBitDepth-g_uiBitIncrement : 0 );
    787787    UInt uiOffset = bi ? IF_INTERNAL_OFFS : 0;
     788#if LGE_ILLUCOMP_DEPTH_C0046
     789    Bool bICFlag = pcCU->getICFlag(uiPartAddr) && (pcCU->getSlice()->getRefViewId( eRefPicList, iRefIdx ) != pcCU->getSlice()->getViewId());
     790#endif
    788791#if DEPTH_MAP_GENERATION
    789     xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, 0, 0, rpcYuvPred, uiRShift, uiOffset );
     792    xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, 0, 0, rpcYuvPred, uiRShift, uiOffset
     793#if LGE_ILLUCOMP_DEPTH_C0046
     794        , bICFlag
     795#endif
     796        );
    790797#else
    791798    xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, uiRShift, uiOffset );
     
    889896Void
    890897#if DEPTH_MAP_GENERATION
    891 TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset )
     898TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset
     899#if LGE_ILLUCOMP_DEPTH_C0046
     900, Bool bICFlag
     901#endif
     902)
    892903#else
    893904TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset )
     
    941952    }
    942953  }
     954
     955#if LGE_ILLUCOMP_DEPTH_C0046
     956  if(bICFlag)
     957  {
     958    Int a, b, iShift;
     959    TComMv tTmpMV(pcMv->getHor()<<2, pcMv->getVer()<<2);
     960
     961    piRefY      = pcPicYuvRef->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr ) + iRefOffset;
     962    piDstY      = rpcYuv->getLumaAddr( uiPartAddr );
     963
     964    xGetLLSICPrediction(pcCU, &tTmpMV, pcPicYuvRef, a, b, iShift);
     965
     966    for( Int y = 0; y < iHeight; y++, piDstY += iDstStride, piRefY += iRefStride )
     967    {
     968      for( Int x = 0; x < iWidth; x++ )
     969      {
     970        if(uiOffset)
     971        {
     972          Int iIFshift = IF_INTERNAL_PREC - ( g_uiBitDepth + g_uiBitIncrement );
     973          piDstY[ x ] = ( (a*piDstY[ x ]+a*IF_INTERNAL_OFFS) >> iShift ) + b*(1<<iIFshift) - IF_INTERNAL_OFFS;
     974        }
     975        else
     976          piDstY[ x ] = Clip( ( (a*piDstY[ x ]) >> iShift ) + b );
     977      }
     978    }
     979  }
     980#endif
    943981}
    944982
     
    17041742  iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
    17051743  iCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
     1744#if FIX_LGE_ILLUCOMP_B0045
     1745  iRefX   = iCUPelX + (pMv->getHor() >> 2);
     1746  iRefY   = iCUPelY + (pMv->getVer() >> 2);
     1747#else
    17061748  iRefX   = iCUPelX + (pMv->getHor() >> 3);
    17071749  iRefY   = iCUPelY + (pMv->getVer() >> 3);
     1750#endif
    17081751  uiWidth = pcCU->getWidth(0) >> 1;
    17091752  uiHeight = pcCU->getHeight(0) >> 1;
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComPrediction.h

    r251 r253  
    9090#if DEPTH_MAP_GENERATION
    9191  Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap );
    92   Void xPredInterPrdDepthMap    ( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset );
     92  Void xPredInterPrdDepthMap    ( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset
     93#if LGE_ILLUCOMP_DEPTH_C0046
     94      , Bool bICFlag = false
     95#endif
     96      );
    9397#else
    9498  Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight,                         TComYuv*& rpcYuvPred, Int iPartIdx          );
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComSlice.cpp

    r210 r253  
    13821382    Int iRefStride = pcRefPicYuvOrg->getStride();
    13831383    Int iSumOrgSAD = 0;
     1384#if LGE_ILLUCOMP_DEPTH_C0046
     1385    Double dThresholdOrgSAD = getIsDepth() ? 0.1 : 0.05;
     1386#else
    13841387    double dThresholdOrgSAD = 0.05;
     1388#endif
    13851389    // Histogram building - luminance
    13861390    for ( Int y = 0; y < iHeight; y++)
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TypeDef.h

    r251 r253  
    140140#if LGE_ILLUCOMP_B0045
    141141#define LGE_ILLUCOMP_B0045_ENCSIMP        1
     142#define FIX_LGE_ILLUCOMP_B0045            1
     143#define LGE_ILLUCOMP_DEPTH_C0046          1   // JCT2-C0046 Apply illumination compensation to depth
    142144#endif
    143145
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r210 r253  
    19271927  {
    19281928    UInt uiCodeTmp = 0;
    1929     if ( rpcSlice->getSPS()->getViewId() && !rpcSlice->getSPS()->isDepth() )
     1929    if ( rpcSlice->getSPS()->getViewId()
     1930#if !LGE_ILLUCOMP_DEPTH_C0046
     1931        && !rpcSlice->getSPS()->isDepth()
     1932#endif
     1933        )
    19301934    {
    19311935      READ_FLAG (uiCodeTmp, "applying IC flag");
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecCu.cpp

    r242 r253  
    370370        pcCU->setHeight( uiAbsPartIdx + ui, g_uiMaxCUHeight>>uhNewDepth );
    371371      }
     372#if LGE_ILLUCOMP_DEPTH_C0046
     373      m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     374#endif
    372375    }
    373376    else
     
    449452 
    450453#if LGE_ILLUCOMP_B0045
     454#if LGE_ILLUCOMP_DEPTH_C0046
     455  if( pcCU->getTextureModeDepth( uiAbsPartIdx ) != uiDepth )
     456  {
     457#endif
    451458  m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
    452459#endif
     
    456463  {
    457464    m_pcEntropyDecoder->decodeResPredFlag    ( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth], 0 );
     465  }
     466#endif
     467#if LGE_ILLUCOMP_DEPTH_C0046
    458468  }
    459469#endif
     
    476486        pcCU->setHeight( uiAbsPartIdx + ui, g_uiMaxCUHeight>>uhNewDepth );
    477487      }
    478 
     488#if LGE_ILLUCOMP_DEPTH_C0046
     489      m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     490#endif
    479491      if( ( ( uiDepth < pcCU->getDepth( uiAbsPartIdx ) ) && ( uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth ) ) || bBoundary )
    480492      {
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecEntropy.cpp

    r189 r253  
    7272  pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth );
    7373
    74   if (pcCU->isIntra(uiAbsPartIdx) || (pcCU->getSlice()->getViewId() == 0) || pcCU->getSlice()->getSPS()->isDepth())
     74  if (pcCU->isIntra(uiAbsPartIdx) || (pcCU->getSlice()->getViewId() == 0)
     75#if !LGE_ILLUCOMP_DEPTH_C0046
     76      || pcCU->getSlice()->getSPS()->isDepth()
     77#endif
     78      )
    7579  {
    7680    return;
     
    8084    return;
    8185
     86#if LGE_ILLUCOMP_DEPTH_C0046
     87  if(pcCU->isICFlagRequired(uiAbsPartIdx, uiDepth)) //This modification is not needed after integrating JCT3V-C0137
     88#else
    8289  if(pcCU->isICFlagRequired(uiAbsPartIdx))
     90#endif
    8391    m_pcEntropyDecoderIf->parseICFlag( pcCU, uiAbsPartIdx, uiDepth );
    8492}
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncCavlc.cpp

    r210 r253  
    866866  if (address==0)
    867867  {
    868     if( pcSlice->getSPS()->getViewId() && !pcSlice->getIsDepth() )
     868    if( pcSlice->getSPS()->getViewId()
     869#if !LGE_ILLUCOMP_DEPTH_C0046
     870        && !pcSlice->getIsDepth()
     871#endif
     872        )
    869873    {
    870874      WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "applying IC flag" );
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncCu.cpp

    r229 r253  
    498498
    499499#if LGE_ILLUCOMP_B0045
    500   Bool bICEnabled = (!rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewId());
     500  Bool bICEnabled = (
     501#if !LGE_ILLUCOMP_DEPTH_C0046
     502      !rpcTempCU->getSlice()->getIsDepth() &&
     503#endif
     504      rpcTempCU->getSlice()->getViewId());
    501505
    502506  bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC();
     
    703707            rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    704708#endif
     709#if FIX_LGE_ILLUCOMP_B0045
     710            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     711#endif
    705712#if HHI_INTERVIEW_SKIP
    706713            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec );
     
    840847                rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    841848#endif
     849#if FIX_LGE_ILLUCOMP_B0045
     850                rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     851#endif
    842852#if HHI_INTERVIEW_SKIP
    843853                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFullyRenderedSec   );
     
    864874                rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    865875#endif
     876#if FIX_LGE_ILLUCOMP_B0045
     877                rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     878#endif
    866879#if HHI_INTERVIEW_SKIP
    867880                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxN, bFullyRenderedSec   );
     
    907920                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    908921#endif
     922#if FIX_LGE_ILLUCOMP_B0045
     923                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     924#endif
    909925#if HHI_INTERVIEW_SKIP
    910926                  xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec );
     
    923939                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    924940#endif
     941#if FIX_LGE_ILLUCOMP_B0045
     942                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     943#endif
    925944#if HHI_INTERVIEW_SKIP
    926945                  xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec );
     
    950969                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    951970#endif
     971#if FIX_LGE_ILLUCOMP_B0045
     972                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     973#endif
    952974#if HHI_INTERVIEW_SKIP
    953975                  xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true );
     
    966988                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    967989#endif
     990#if FIX_LGE_ILLUCOMP_B0045
     991                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     992#endif
    968993#if HHI_INTERVIEW_SKIP
    969994                  xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true );
     
    9951020                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    9961021#endif
     1022#if FIX_LGE_ILLUCOMP_B0045
     1023                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     1024#endif
    9971025#if HHI_INTERVIEW_SKIP
    9981026                  xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec );
     
    10111039                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
    10121040#endif
     1041#if FIX_LGE_ILLUCOMP_B0045
     1042                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     1043#endif
    10131044#if HHI_INTERVIEW_SKIP
    10141045                  xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec );
     
    10331064#if HHI_INTER_VIEW_RESIDUAL_PRED
    10341065                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     1066#endif
     1067#if FIX_LGE_ILLUCOMP_B0045
     1068                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    10351069#endif
    10361070#if HHI_INTERVIEW_SKIP
     
    10491083#if HHI_INTER_VIEW_RESIDUAL_PRED
    10501084                  rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
     1085#endif
     1086#if FIX_LGE_ILLUCOMP_B0045
     1087                  rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    10511088#endif
    10521089#if HHI_INTERVIEW_SKIP
     
    11941231      if( rpcBestCU->getSlice()->getSPS()->getUseMVI() && rpcBestCU->getSlice()->getSliceType() != I_SLICE )
    11951232      {
     1233#if LGE_ILLUCOMP_DEPTH_C0046
     1234        for(UInt uiICId = 0; uiICId < (bICEnabled ? 2 : 1); uiICId++)
     1235        {
     1236          Bool bICFlag = (uiICId ? true : false);
     1237          rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
     1238#endif
    11961239        xCheckRDCostMvInheritance( rpcBestCU, rpcTempCU, uiDepth, false, false );
    11971240        rpcTempCU->initEstData( uiDepth, iQP );
    11981241        xCheckRDCostMvInheritance( rpcBestCU, rpcTempCU, uiDepth, true, false );
    11991242        rpcTempCU->initEstData( uiDepth, iQP );
     1243#if LGE_ILLUCOMP_DEPTH_C0046
     1244        }
     1245#endif
    12001246      }
    12011247#endif
     
    17541800    {
    17551801      m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 );
     1802#if LGE_ILLUCOMP_DEPTH_C0046
     1803      m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx, false, uiDepth );
     1804#endif
    17561805      finishCU(pcCU,uiAbsPartIdx,uiDepth);
    17571806      xRestoreDepthWidthHeight( pcCU );
     
    17651814    // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    17661815    m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
     1816#if LGE_ILLUCOMP_DEPTH_C0046
     1817    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx, false, uiDepth );
     1818#endif
    17671819    xRestoreDepthWidthHeight( pcCU );
    17681820  }
     
    18131865    m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 );
    18141866#if LGE_ILLUCOMP_B0045
    1815     m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1867    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx
     1868#if LGE_ILLUCOMP_DEPTH_C0046
     1869        , false, uiDepth
     1870#endif
     1871        );
    18161872#endif
    18171873#if HHI_INTER_VIEW_RESIDUAL_PRED
     
    18441900  m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
    18451901#if LGE_ILLUCOMP_B0045
    1846     m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1902    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx
     1903#if LGE_ILLUCOMP_DEPTH_C0046
     1904        ,false, uiDepth
     1905#endif
     1906        );
    18471907#endif
    18481908#if HHI_INTER_VIEW_RESIDUAL_PRED
     
    29022962    m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, 0, true );
    29032963#if LGE_ILLUCOMP_B0045
    2904     m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     2964    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true
     2965#if LGE_ILLUCOMP_DEPTH_C0046
     2966        , uhDepth
     2967#endif
     2968        );
    29052969#endif
    29062970  }
     
    29122976    m_pcEntropyCoder->encodePredInfo( pcCU, 0, true );
    29132977#if LGE_ILLUCOMP_B0045
    2914     m_pcEntropyCoder->encodeICFlag( pcCU, 0,          true );
     2978    m_pcEntropyCoder->encodeICFlag( pcCU, 0,          true
     2979#if LGE_ILLUCOMP_DEPTH_C0046
     2980        , uhDepth
     2981#endif
     2982        );
    29152983#endif
    29162984  }
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncEntropy.cpp

    r210 r253  
    170170
    171171#if LGE_ILLUCOMP_B0045
    172 Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    173 {
    174   if (pcCU->isIntra(uiAbsPartIdx) || (pcCU->getSlice()->getViewId() == 0) || pcCU->getSlice()->getSPS()->isDepth())
     172Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD
     173#if LGE_ILLUCOMP_DEPTH_C0046
     174    , UInt uiDepth
     175#endif
     176    )
     177{
     178  if (pcCU->isIntra(uiAbsPartIdx) || (pcCU->getSlice()->getViewId() == 0)
     179#if !LGE_ILLUCOMP_DEPTH_C0046
     180      || pcCU->getSlice()->getSPS()->isDepth()
     181#endif
     182      )
    175183  {
    176184    return;
     
    185193  }
    186194
    187   if(pcCU->isICFlagRequired(uiAbsPartIdx))
     195  if(pcCU->isICFlagRequired(uiAbsPartIdx
     196#if LGE_ILLUCOMP_DEPTH_C0046
     197      , uiDepth //This modification is not needed after integrating JCT3V-C0137
     198#endif
     199      ))
    188200    m_pcEntropyCoderIf->codeICFlag( pcCU, uiAbsPartIdx );
    189201}
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncEntropy.h

    r210 r253  
    260260  Void encodeSplitFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, Bool bRD = false );
    261261#if LGE_ILLUCOMP_B0045
    262   Void encodeICFlag            ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
     262  Void encodeICFlag            ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false
     263#if LGE_ILLUCOMP_DEPTH_C0046
     264      , UInt uiDepth = 0
     265#endif
     266      );
    263267#endif
    264268  Void encodeSkipFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
  • branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncSlice.cpp

    r210 r253  
    770770
    771771#if LGE_ILLUCOMP_B0045
    772   if (pcEncTop->getViewId() != 0 && !pcEncTop->isDepthCoder() && pcEncTop->getUseIC())   // DCP of ViewID 0 is not available
     772  if (pcEncTop->getViewId() != 0
     773#if !LGE_ILLUCOMP_DEPTH_C0046
     774      && !pcEncTop->isDepthCoder()
     775#endif
     776      && pcEncTop->getUseIC())   // DCP of ViewID 0 is not available
    773777  {
    774778    pcSlice ->xSetApplyIC();
Note: See TracChangeset for help on using the changeset viewer.