Changeset 253 in 3DVCSoftware
- Timestamp:
- 4 Feb 2013, 02:57:15 (12 years ago)
- 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 157 157 SignHideFlag : 1 # sign hiding 158 158 SignHideThreshold : 4 # sign hiding threshold 159 IlluCompEnable : 1 159 IlluCompEnable : 1 1 # illumination compensation (0: OFF, 1: ON) 160 160 161 161 #============ PCM ================ -
branches/HTM-5.1-dev1-LG/CommonTestConditionsCfgs/baseCfg_3view+depth.cfg
r210 r253 161 161 SignHideFlag : 1 # sign hiding 162 162 SignHideThreshold : 4 # sign hiding threshold 163 IlluCompEnable : 1 163 IlluCompEnable : 1 1 # illumination compensation (0: OFF, 1: ON) 164 164 165 165 #============ PCM ================ -
branches/HTM-5.1-dev1-LG/source/App/TAppEncoder/TAppEncCfg.cpp
r210 r253 340 340 ("LoopFilterTcOffset_div2", m_loopFilterTcOffsetDiv2, 0 ) 341 341 #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 342 345 ("IlluCompEnable", m_bUseIC , true , "Use illumination compensation for inter-view prediction" ) 346 #endif 343 347 #endif 344 348 #if DBL_CONTROL … … 1804 1808 #endif 1805 1809 #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 1806 1813 printf("IlluCompEnable: %d ", m_bUseIC); 1814 #endif 1807 1815 #endif 1808 1816 -
branches/HTM-5.1-dev1-LG/source/App/TAppEncoder/TAppEncCfg.h
r210 r253 170 170 vector<Bool> m_abUseSAO; 171 171 #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 172 175 Bool m_bUseIC; ///< flag for using illumination compensation for inter-view prediction 176 #endif 173 177 #endif 174 178 #if SAO_UNIT_INTERLEAVING -
branches/HTM-5.1-dev1-LG/source/App/TAppEncoder/TAppEncTop.cpp
r210 r253 315 315 m_acTEncTopList[iViewIdx]->setUseSAO ( m_abUseSAO[0] ); 316 316 #if LGE_ILLUCOMP_B0045 317 #if LGE_ILLUCOMP_DEPTH_C0046 318 m_acTEncTopList[iViewIdx]->setUseIC ( m_abUseIC[0] ); 319 #else 317 320 m_acTEncTopList[iViewIdx]->setUseIC ( m_bUseIC ); 321 #endif 318 322 #endif 319 323 #if SAO_UNIT_INTERLEAVING … … 637 641 m_acTEncDepthTopList[iViewIdx]->setUseSAO ( m_abUseSAO[1] ); 638 642 #if LGE_ILLUCOMP_B0045 643 #if LGE_ILLUCOMP_DEPTH_C0046 644 m_acTEncDepthTopList[iViewIdx]->setUseIC ( m_abUseIC[1] ); 645 #else 639 646 m_acTEncDepthTopList[iViewIdx]->setUseIC ( false ); 647 #endif 640 648 #endif 641 649 #if SAO_UNIT_INTERLEAVING -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComDataCU.cpp
r251 r253 3096 3096 } 3097 3097 3098 #if LGE_ILLUCOMP_DEPTH_C0046 3099 //This modification is not needed after integrating JCT3V-C0137 3100 Bool 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 3098 3152 Bool TComDataCU::isICFlagRequired(UInt uiAbsPartIdx) 3099 3153 { … … 3124 3178 return false; 3125 3179 } 3180 #endif 3126 3181 #endif 3127 3182 -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComDataCU.h
r251 r253 482 482 Void setICFlag ( UInt uiIdx, Bool uh ) { m_pbICFlag[uiIdx] = uh; } 483 483 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 484 487 Bool isICFlagRequired (UInt uiAbsPartIdx); 488 #endif 485 489 #endif 486 490 -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComPrediction.cpp
r251 r253 786 786 UInt uiRShift = ( bi ? 14-g_uiBitDepth-g_uiBitIncrement : 0 ); 787 787 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 788 791 #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 ); 790 797 #else 791 798 xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, uiRShift, uiOffset ); … … 889 896 Void 890 897 #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 ) 898 TComPrediction::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 ) 892 903 #else 893 904 TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset ) … … 941 952 } 942 953 } 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 943 981 } 944 982 … … 1704 1742 iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]]; 1705 1743 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 1706 1748 iRefX = iCUPelX + (pMv->getHor() >> 3); 1707 1749 iRefY = iCUPelY + (pMv->getVer() >> 3); 1750 #endif 1708 1751 uiWidth = pcCU->getWidth(0) >> 1; 1709 1752 uiHeight = pcCU->getHeight(0) >> 1; -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TComPrediction.h
r251 r253 90 90 #if DEPTH_MAP_GENERATION 91 91 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 ); 93 97 #else 94 98 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 1382 1382 Int iRefStride = pcRefPicYuvOrg->getStride(); 1383 1383 Int iSumOrgSAD = 0; 1384 #if LGE_ILLUCOMP_DEPTH_C0046 1385 Double dThresholdOrgSAD = getIsDepth() ? 0.1 : 0.05; 1386 #else 1384 1387 double dThresholdOrgSAD = 0.05; 1388 #endif 1385 1389 // Histogram building - luminance 1386 1390 for ( Int y = 0; y < iHeight; y++) -
branches/HTM-5.1-dev1-LG/source/Lib/TLibCommon/TypeDef.h
r251 r253 140 140 #if LGE_ILLUCOMP_B0045 141 141 #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 142 144 #endif 143 145 -
branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecCAVLC.cpp
r210 r253 1927 1927 { 1928 1928 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 ) 1930 1934 { 1931 1935 READ_FLAG (uiCodeTmp, "applying IC flag"); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecCu.cpp
r242 r253 370 370 pcCU->setHeight( uiAbsPartIdx + ui, g_uiMaxCUHeight>>uhNewDepth ); 371 371 } 372 #if LGE_ILLUCOMP_DEPTH_C0046 373 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 374 #endif 372 375 } 373 376 else … … 449 452 450 453 #if LGE_ILLUCOMP_B0045 454 #if LGE_ILLUCOMP_DEPTH_C0046 455 if( pcCU->getTextureModeDepth( uiAbsPartIdx ) != uiDepth ) 456 { 457 #endif 451 458 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 452 459 #endif … … 456 463 { 457 464 m_pcEntropyDecoder->decodeResPredFlag ( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth], 0 ); 465 } 466 #endif 467 #if LGE_ILLUCOMP_DEPTH_C0046 458 468 } 459 469 #endif … … 476 486 pcCU->setHeight( uiAbsPartIdx + ui, g_uiMaxCUHeight>>uhNewDepth ); 477 487 } 478 488 #if LGE_ILLUCOMP_DEPTH_C0046 489 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 490 #endif 479 491 if( ( ( uiDepth < pcCU->getDepth( uiAbsPartIdx ) ) && ( uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth ) ) || bBoundary ) 480 492 { -
branches/HTM-5.1-dev1-LG/source/Lib/TLibDecoder/TDecEntropy.cpp
r189 r253 72 72 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 73 73 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 ) 75 79 { 76 80 return; … … 80 84 return; 81 85 86 #if LGE_ILLUCOMP_DEPTH_C0046 87 if(pcCU->isICFlagRequired(uiAbsPartIdx, uiDepth)) //This modification is not needed after integrating JCT3V-C0137 88 #else 82 89 if(pcCU->isICFlagRequired(uiAbsPartIdx)) 90 #endif 83 91 m_pcEntropyDecoderIf->parseICFlag( pcCU, uiAbsPartIdx, uiDepth ); 84 92 } -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncCavlc.cpp
r210 r253 866 866 if (address==0) 867 867 { 868 if( pcSlice->getSPS()->getViewId() && !pcSlice->getIsDepth() ) 868 if( pcSlice->getSPS()->getViewId() 869 #if !LGE_ILLUCOMP_DEPTH_C0046 870 && !pcSlice->getIsDepth() 871 #endif 872 ) 869 873 { 870 874 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "applying IC flag" ); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncCu.cpp
r229 r253 498 498 499 499 #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()); 501 505 502 506 bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC(); … … 703 707 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 704 708 #endif 709 #if FIX_LGE_ILLUCOMP_B0045 710 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 711 #endif 705 712 #if HHI_INTERVIEW_SKIP 706 713 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFullyRenderedSec ); … … 840 847 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 841 848 #endif 849 #if FIX_LGE_ILLUCOMP_B0045 850 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 851 #endif 842 852 #if HHI_INTERVIEW_SKIP 843 853 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFullyRenderedSec ); … … 864 874 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 865 875 #endif 876 #if FIX_LGE_ILLUCOMP_B0045 877 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 878 #endif 866 879 #if HHI_INTERVIEW_SKIP 867 880 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxN, bFullyRenderedSec ); … … 907 920 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 908 921 #endif 922 #if FIX_LGE_ILLUCOMP_B0045 923 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 924 #endif 909 925 #if HHI_INTERVIEW_SKIP 910 926 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec ); … … 923 939 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 924 940 #endif 941 #if FIX_LGE_ILLUCOMP_B0045 942 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 943 #endif 925 944 #if HHI_INTERVIEW_SKIP 926 945 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec ); … … 950 969 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 951 970 #endif 971 #if FIX_LGE_ILLUCOMP_B0045 972 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 973 #endif 952 974 #if HHI_INTERVIEW_SKIP 953 975 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true ); … … 966 988 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 967 989 #endif 990 #if FIX_LGE_ILLUCOMP_B0045 991 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 992 #endif 968 993 #if HHI_INTERVIEW_SKIP 969 994 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true ); … … 995 1020 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 996 1021 #endif 1022 #if FIX_LGE_ILLUCOMP_B0045 1023 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 1024 #endif 997 1025 #if HHI_INTERVIEW_SKIP 998 1026 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec ); … … 1011 1039 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1012 1040 #endif 1041 #if FIX_LGE_ILLUCOMP_B0045 1042 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 1043 #endif 1013 1044 #if HHI_INTERVIEW_SKIP 1014 1045 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec ); … … 1033 1064 #if HHI_INTER_VIEW_RESIDUAL_PRED 1034 1065 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1066 #endif 1067 #if FIX_LGE_ILLUCOMP_B0045 1068 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 1035 1069 #endif 1036 1070 #if HHI_INTERVIEW_SKIP … … 1049 1083 #if HHI_INTER_VIEW_RESIDUAL_PRED 1050 1084 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1085 #endif 1086 #if FIX_LGE_ILLUCOMP_B0045 1087 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 1051 1088 #endif 1052 1089 #if HHI_INTERVIEW_SKIP … … 1194 1231 if( rpcBestCU->getSlice()->getSPS()->getUseMVI() && rpcBestCU->getSlice()->getSliceType() != I_SLICE ) 1195 1232 { 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 1196 1239 xCheckRDCostMvInheritance( rpcBestCU, rpcTempCU, uiDepth, false, false ); 1197 1240 rpcTempCU->initEstData( uiDepth, iQP ); 1198 1241 xCheckRDCostMvInheritance( rpcBestCU, rpcTempCU, uiDepth, true, false ); 1199 1242 rpcTempCU->initEstData( uiDepth, iQP ); 1243 #if LGE_ILLUCOMP_DEPTH_C0046 1244 } 1245 #endif 1200 1246 } 1201 1247 #endif … … 1754 1800 { 1755 1801 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 ); 1802 #if LGE_ILLUCOMP_DEPTH_C0046 1803 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx, false, uiDepth ); 1804 #endif 1756 1805 finishCU(pcCU,uiAbsPartIdx,uiDepth); 1757 1806 xRestoreDepthWidthHeight( pcCU ); … … 1765 1814 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1766 1815 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1816 #if LGE_ILLUCOMP_DEPTH_C0046 1817 m_pcEntropyCoder->encodeICFlag ( pcCU, uiAbsPartIdx, false, uiDepth ); 1818 #endif 1767 1819 xRestoreDepthWidthHeight( pcCU ); 1768 1820 } … … 1813 1865 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 ); 1814 1866 #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 ); 1816 1872 #endif 1817 1873 #if HHI_INTER_VIEW_RESIDUAL_PRED … … 1844 1900 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1845 1901 #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 ); 1847 1907 #endif 1848 1908 #if HHI_INTER_VIEW_RESIDUAL_PRED … … 2902 2962 m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, 0, true ); 2903 2963 #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 ); 2905 2969 #endif 2906 2970 } … … 2912 2976 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 2913 2977 #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 ); 2915 2983 #endif 2916 2984 } -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncEntropy.cpp
r210 r253 170 170 171 171 #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()) 172 Void 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 ) 175 183 { 176 184 return; … … 185 193 } 186 194 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 )) 188 200 m_pcEntropyCoderIf->codeICFlag( pcCU, uiAbsPartIdx ); 189 201 } -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncEntropy.h
r210 r253 260 260 Void encodeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, Bool bRD = false ); 261 261 #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 ); 263 267 #endif 264 268 Void encodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); -
branches/HTM-5.1-dev1-LG/source/Lib/TLibEncoder/TEncSlice.cpp
r210 r253 770 770 771 771 #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 773 777 { 774 778 pcSlice ->xSetApplyIC();
Note: See TracChangeset for help on using the changeset viewer.