Changeset 325 in 3DVCSoftware for branches/HTM-6.1-Cleanup/source/Lib
- Timestamp:
- 16 Apr 2013, 14:11:23 (12 years ago)
- Location:
- branches/HTM-6.1-Cleanup/source/Lib
- Files:
-
- 39 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/ContextTables.h
r296 r325 434 434 435 435 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 436 #if FIX_DMM_CTX_INIT_C0034437 436 static const UChar 438 #else439 static const Short440 #endif441 437 INIT_DMM_FLAG[3][NUM_DMM_FLAG_CTX] = 442 438 { … … 452 448 }; 453 449 454 #if FIX_DMM_CTX_INIT_C0034455 450 static const UChar 456 #else457 static const Short458 #endif459 451 INIT_DMM_MODE[3][NUM_DMM_MODE_CTX] = 460 452 { … … 470 462 }; 471 463 472 #if FIX_DMM_CTX_INIT_C0034473 464 static const UChar 474 #else475 static const Short476 #endif477 465 INIT_DMM_DATA[3][NUM_DMM_DATA_CTX] = 478 466 { -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDataCU.cpp
r322 r325 3165 3165 } 3166 3166 3167 #if LG_RESTRICTEDRESPRED_M247663167 #if H3D_IVRP 3168 3168 Void TComDataCU::getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx, Bool bLCU) 3169 3169 { … … 3250 3250 #endif 3251 3251 3252 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383253 Int TComDataCU::getResiPredMode(UInt uiPartAddr)3254 {3255 Int iAddResiShift = -1;3256 3257 for(UInt uiRefIdx = 0; uiRefIdx < 2; uiRefIdx++)3258 {3259 RefPicList eRefList = uiRefIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;3260 Int iBestRefIdx = getCUMvField(eRefList)->getRefIdx(uiPartAddr);3261 if(iBestRefIdx >= 0 && getSlice()->getViewId() == getSlice()->getRefViewId(eRefList, iBestRefIdx))3262 iAddResiShift++;3263 }3264 3265 return iAddResiShift;3266 }3267 3268 Void TComDataCU::getPUResiPredShift(Int *iPUResiPredShift, UInt uiAbsPartIndex)3269 {3270 UInt uiPartSize = getPartitionSize(uiAbsPartIndex);3271 UInt uiPartAddr;3272 Int iWidth, iHeight;3273 Int iAddResiShift;3274 3275 if(uiPartSize == SIZE_2Nx2N)3276 {3277 iAddResiShift = getResiPredMode(uiAbsPartIndex);3278 for(UInt i = 0; i < 4; i++)3279 iPUResiPredShift[i] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiAbsPartIndex) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);3280 return;3281 }3282 3283 if(uiPartSize == SIZE_2NxN || uiPartSize == SIZE_2NxnU || uiPartSize == SIZE_2NxnD)3284 {3285 for(UInt i = 0; i < 2; i++)3286 {3287 getPartIndexAndSize(i, uiPartAddr, iWidth, iHeight, uiAbsPartIndex, true);3288 uiPartAddr += uiAbsPartIndex;3289 iAddResiShift = getResiPredMode(uiPartAddr);3290 iPUResiPredShift[2*i] = iPUResiPredShift[2*i+1] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiPartAddr) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);3291 }3292 return;3293 }3294 3295 if(uiPartSize == SIZE_Nx2N || uiPartSize == SIZE_nLx2N || uiPartSize == SIZE_nRx2N)3296 {3297 for(UInt i = 0; i < 2; i++)3298 {3299 getPartIndexAndSize(i, uiPartAddr, iWidth, iHeight, uiAbsPartIndex, true);3300 uiPartAddr += uiAbsPartIndex;3301 iAddResiShift = getResiPredMode(uiPartAddr);3302 iPUResiPredShift[i] = iPUResiPredShift[2+i] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiPartAddr) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);3303 }3304 return;3305 }3306 3307 if(uiPartSize == SIZE_NxN)3308 {3309 for(UInt i = 0; i < 4; i++)3310 {3311 getPartIndexAndSize(i, uiPartAddr, iWidth, iHeight, uiAbsPartIndex, true);3312 uiPartAddr += uiAbsPartIndex;3313 iAddResiShift = getResiPredMode(uiPartAddr);3314 iPUResiPredShift[i] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiPartAddr) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);3315 }3316 }3317 3318 }3319 #endif3320 3321 3252 Void TComDataCU::getMvField ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList, TComMvField& rcMvField ) 3322 3253 { … … 3653 3584 #endif //H3D_NBDV 3654 3585 3655 #if MTK_MDIVRP_C01383586 #if H3D_IVRP 3656 3587 Bool bDVAvail = true; 3657 3588 #endif … … 3693 3624 cDisInfo.m_acMvCand[0].setVer(0); 3694 3625 cDisInfo.m_aVIdxCan[0] = 0; 3695 #if MTK_MDIVRP_C01383626 #if H3D_IVRP 3696 3627 bDVAvail = false; 3697 3628 #endif … … 3748 3679 3749 3680 Int iPdmDir[2] = {0, 0}; 3750 #if QC_AMVP_MRG_UNIFY_IVCAN_C00513751 3681 getUnifiedMvPredCan(uiPUIdx, REF_PIC_LIST_0, 0, aiPdmRefIdx, acPdmMv, &cDisInfo, iPdmDir, true); 3752 3682 Int iPdmInterDir; 3753 #else3754 Int iPdmInterDir = cDisInfo.iN==0? 0:getPdmMergeCandidateDisCan ( uiPUIdx, aiPdmRefIdx, acPdmMv, &cDisInfo, iPdmDir );3755 #endif3756 3683 #else // H3D_NBDV 3757 3684 Int iPdmDir[2] = {0, 0}; … … 3760 3687 iPdmDir[1] = iPdmInterDir; 3761 3688 #endif // H3D_NBDV 3762 #if MTK_MDIVRP_C01383689 #if H3D_IVRP 3763 3690 if (m_pcSlice->getSPS()->getMultiviewResPredMode()==1 && iPdmDir[0] && !bNoPdmMerge && cCurPS == SIZE_2Nx2N && bDVAvail) 3764 3691 { … … 5650 5577 cDisInfo.m_aVIdxCan[0] = 0; 5651 5578 } 5652 #if QC_AMVP_MRG_UNIFY_IVCAN_C00515653 5579 Int paiPdmRefIdx[4] = {-1, -1, -1, -1}; 5654 5580 Int iPdmDir[4] = {-1, -1, -1, -1}; 5655 #if QC_C0051_FIXED_BY_MTK5656 5581 TComMv cPdmMvPred[4]; 5657 #else5658 TComMv cPdmMvPred[2];5659 #endif5660 5582 cPdmMvPred[0].m_bDvMcp = cPdmMvPred[1].m_bDvMcp = false; 5661 5583 if(getUnifiedMvPredCan(uiPartIdx, eRefPicList, iRefIdx, paiPdmRefIdx, cPdmMvPred, &cDisInfo, iPdmDir, false)) 5662 #else // QC_AMVP_MRG_UNIFY_IVCAN_C00515663 TComMv cPdmMvPred;5664 if( getPdmMvPredDisCan( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred, &cDisInfo ) )5665 #endif // QC_AMVP_MRG_UNIFY_IVCAN_C00515666 5584 #else // H3D_NBDV 5667 5585 if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) ) 5668 5586 #endif 5669 5587 5670 #if QC_AMVP_MRG_UNIFY_IVCAN_C00515671 5588 { 5672 5589 clipMv( cPdmMvPred[0] ); … … 5677 5594 pInfo->m_acMvCand[0].set(0,0); 5678 5595 } 5679 #else5680 {5681 clipMv( cPdmMvPred );5682 pInfo->m_acMvCand[0] = cPdmMvPred;5683 }5684 else5685 {5686 pInfo->m_acMvCand[0].set(0,0);5687 }5688 #endif5689 5596 } 5690 5597 } … … 7422 7329 } 7423 7330 #else //H3D_NBDV 7424 #if QC_AMVP_MRG_UNIFY_IVCAN_C00517425 7331 Bool 7426 7332 TComDataCU::getUnifiedMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ) … … 7432 7338 return false; 7433 7339 } 7434 #else7435 Int7436 TComDataCU::getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm )7437 {7438 TComDepthMapGenerator* pcDepthMapGenerator = m_pcSlice->getSPS()->getDepthMapGenerator();7439 ROFRS( pcDepthMapGenerator, 0 );7440 return pcDepthMapGenerator->getPdmMergeCandidate( this, uiPartIdx, paiPdmRefIdx, pacPdmMv, pDInfo, iPdm );7441 }7442 Bool7443 TComDataCU::getPdmMvPredDisCan( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge )7444 {7445 TComDepthMapGenerator* pcDepthMapGenerator = m_pcSlice->getSPS()->getDepthMapGenerator();7446 ROFRS( pcDepthMapGenerator, false );7447 if (pDInfo->iN > 0 && pcDepthMapGenerator->getDisCanPdmMvPred(this, uiPartIdx, eRefPicList, iRefIdx, rcMv, pDInfo, bMerge )) //bug fix li7448 return true;7449 return false;7450 }7451 #endif7452 7340 #endif //H3D_NBDV 7453 7341 -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDataCU.h
r322 r325 535 535 Bool getPdmMvPred ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, Bool bMerge = false ); 536 536 #else //!H3D_NBDV 537 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051538 537 Bool getUnifiedMvPredCan ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ); 539 #else //QC_AMVP_MRG_UNIFY_IVCAN_C0051540 Bool getPdmMvPredDisCan ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge = false );541 Int getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm );542 #endif //QC_AMVP_MRG_UNIFY_IVCAN_C0051543 538 Void getDisMvpCand ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo ); 544 539 Void getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false … … 576 571 // member functions for accessing partition information 577 572 // ------------------------------------------------------------------------------------------------------------------- 578 #if LG_RESTRICTEDRESPRED_M24766573 #if H3D_IVRP 579 574 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 580 #else581 Void getPartIndexAndSize ( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight );582 #endif583 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138584 Int getResiPredMode(UInt uiPartAddr);585 Void getPUResiPredShift (Int *iPUPredResiShift, UInt uiAbsPartIndex);586 575 #endif 587 576 UChar getNumPartInter (); -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDepthMapGenerator.cpp
r322 r325 605 605 606 606 #if H3D_IVMP 607 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051608 607 Bool 609 608 TComDepthMapGenerator::getPdmCandidate(TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ) … … 636 635 for( UInt uiBId = 0; uiBId < m_uiCurrViewId && iValid==0; uiBId++ ) 637 636 { 638 #if MTK_C0138_FIXED 637 639 638 UInt uiBaseId = uiBId; 640 #else641 UInt uiBaseId = m_auiBaseIdList[ uiBId ];642 #endif643 639 TComPic* pcBasePic = m_pcAUPicAccess->getPic( uiBaseId ); 644 640 for( Int iRefListId = 0; iRefListId < 2 && iValid==0; iRefListId++ ) … … 785 781 return false; 786 782 } 787 #else // QC_AMVP_MRG_UNIFY_IVCAN_C0051788 #if H3D_NBDV789 Int790 TComDepthMapGenerator::getPdmMergeCandidate( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm )791 #else792 Int793 TComDepthMapGenerator::getPdmMergeCandidate( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv )794 #endif795 {796 AOF ( m_bCreated && m_bInit );797 798 #if !H3D_NBDV799 ROFRS( m_bPDMAvailable, 0 );800 #endif801 802 TComSlice* pcSlice = pcCU->getSlice ();803 TComSPS* pcSPS = pcSlice->getSPS();804 AOF ( pcSPS->getViewId() == m_uiCurrViewId );805 Bool bPdmMerge = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE );806 ROTRS( !bPdmMerge, 0 );807 808 Bool abPdmAvailable[4] = {false, false, false, false};809 810 Int iValid = 0;811 Int iViewId = 0;812 for( UInt uiBId = 0; uiBId < m_uiCurrViewId && iValid==0; uiBId++ )813 {814 UInt uiBaseId = m_auiBaseIdList[ uiBId ];815 TComPic* pcBasePic = m_pcAUPicAccess->getPic( uiBaseId );816 for( Int iRefListId = 0; iRefListId < 2 && iValid==0; iRefListId++ )817 {818 RefPicList eRefPicListTest = RefPicList( iRefListId );819 Int iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ;820 for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ )821 {822 if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC()823 && pcBasePic->getViewId() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewId())824 {825 iValid=1;826 iViewId = uiBaseId;827 break;828 }829 }830 }831 }832 if (iValid == 0)833 return 0;834 835 //--- get base CU/PU and check prediction mode ---836 TComPic* pcBasePic = m_pcAUPicAccess->getPic( iViewId );837 TComPicYuv* pcBaseRec = pcBasePic->getPicYuvRec ();838 839 #if H3D_NBDV840 Int iCurrPosX, iCurrPosY;841 UInt uiPartAddr;842 Int iWidth;843 Int iHeight;844 845 pcCU->getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight );846 pcBaseRec->getTopLeftSamplePos( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );847 iCurrPosX += ( ( iWidth - 1 ) >> 1 );848 iCurrPosY += ( ( iHeight - 1 ) >> 1 );849 850 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (pDInfo->m_acMvCand[0].getHor() + 2 ) >> 2 ) );851 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (pDInfo->m_acMvCand[0].getVer() + 2 ) >> 2 ));852 Int iBaseCUAddr;853 Int iBaseAbsPartIdx;854 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx );855 #else856 Int iPrdDepth, iCurrPosX, iCurrPosY;857 Bool bAvailable = xGetPredDepth( pcCU, uiPartIdx, iPrdDepth, &iCurrPosX, &iCurrPosY );858 AOF( bAvailable );859 TComPicYuv* pcBasePdm = pcBasePic->getPredDepthMap();860 Int iDisparity = xGetDisparityFromVirtDepth( iViewId, iPrdDepth );861 Int iShiftX = m_uiSubSampExpX + 2;862 Int iAddX = ( 1 << iShiftX ) >> 1;863 Int iBasePosX = Clip3( 0, pcBasePdm->getWidth () - 1, iCurrPosX + ( ( iDisparity + iAddX ) >> iShiftX ) );864 Int iBasePosY = Clip3( 0, pcBasePdm->getHeight() - 1, iCurrPosY );865 Int iBaseCUAddr;866 Int iBaseAbsPartIdx;867 pcBaseRec->getCUAddrAndPartIdx( iBasePosX<< m_uiSubSampExpX , iBasePosY<< m_uiSubSampExpY , iBaseCUAddr, iBaseAbsPartIdx );868 #endif869 870 TComDataCU* pcBaseCU = pcBasePic->getCU( iBaseCUAddr );871 872 if( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTER || pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_SKIP )873 {874 for( UInt uiBaseRefListId = 0; uiBaseRefListId < 2; uiBaseRefListId++ )875 {876 RefPicList eBaseRefPicList = RefPicList( uiBaseRefListId );877 TComMvField cBaseMvField;878 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );879 Int iBaseRefIdx = cBaseMvField.getRefIdx();880 881 if (iBaseRefIdx >= 0)882 {883 Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx);884 if (iBaseRefPOC != pcSlice->getPOC())885 {886 for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eBaseRefPicList ); iPdmRefIdx++)887 {888 if (iBaseRefPOC == pcSlice->getRefPOC(eBaseRefPicList, iPdmRefIdx))889 {890 abPdmAvailable[ uiBaseRefListId ] = true;891 paiPdmRefIdx [ uiBaseRefListId ] = iPdmRefIdx;892 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());893 #if H3D_NBDV894 cMv.m_bDvMcp = true;895 cMv.m_iDvMcpDispX = pDInfo->m_acMvCand[0].getHor();896 cMv.m_iDvMcpDispY = pDInfo->m_acMvCand[0].getVer();897 #endif //H3D_NBDV898 pcCU->clipMv( cMv );899 pacPdmMv [ uiBaseRefListId ] = cMv;900 break;901 }902 }903 }904 }905 }906 }907 Int iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 );908 909 iPdm[0] = iPdmInterDir;910 for( Int iRefListId = 0; iRefListId < 2 ; iRefListId++ )911 {912 RefPicList eRefPicList = RefPicList( iRefListId );913 Int iNumRefPics = pcSlice->getNumRefIdx( eRefPicList );914 for( Int iPdmRefIdx = 0; iPdmRefIdx < iNumRefPics; iPdmRefIdx++ )915 {916 if( pcSlice->getRefPOC( eRefPicList, iPdmRefIdx ) == pcSlice->getPOC())917 {918 abPdmAvailable[ iRefListId+2 ] = true;919 paiPdmRefIdx [ iRefListId+2 ] = iPdmRefIdx;920 #if H3D_NBDV921 TComMv cMv = pDInfo->m_acMvCand[0];922 cMv.setVer(0);923 #else924 TComMv cMv(iDisparity, 0);925 #endif926 pcCU->clipMv( cMv );927 pacPdmMv [ iRefListId + 2] = cMv;928 break;929 }930 }931 }932 iPdmInterDir = ( abPdmAvailable[2] ? 1 : 0 ) + ( abPdmAvailable[3] ? 2 : 0 ) ;933 iPdm[1] = iPdmInterDir;934 935 return iPdmInterDir;936 }937 938 #if H3D_NBDV939 Bool940 TComDepthMapGenerator::getDisCanPdmMvPred ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge )941 {942 rcMv.m_bDvMcp = false;943 AOF ( m_bCreated && m_bInit );944 AOF ( iRefIdx >= 0 );945 AOF ( pcCU );946 TComSlice* pcSlice = pcCU->getSlice ();947 TComSPS* pcSPS = pcSlice->getSPS();948 AOF ( pcSPS->getViewId() == m_uiCurrViewId );949 TComPic* pcRefPic = pcSlice->getRefPic( eRefPicList, iRefIdx );950 UInt uiRefViewId = pcRefPic->getSPS()->getViewId();951 Int iRefPoc = pcRefPic->getPOC();952 Bool bInterview = ( uiRefViewId < m_uiCurrViewId );953 AOT( bInterview && iRefPoc != pcSlice->getPOC() );954 AOT( !bInterview && iRefPoc == pcSlice->getPOC() );955 Bool bPdmIView = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_IVIEW ) == PDM_USE_FOR_IVIEW );956 Bool bPdmInter = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_INTER ) == PDM_USE_FOR_INTER );957 Bool bPdmMerge = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE );958 ROTRS( ( bInterview && !bMerge ) && !bPdmIView, false );959 ROTRS( (!bInterview && !bMerge ) && !bPdmInter, false );960 ROTRS( bMerge && !bPdmMerge, false );961 Int iCurrPosX, iCurrPosY;962 TComMv cDisMv;963 964 if( bInterview )965 {966 rcMv = pDInfo->m_acMvCand[0];967 rcMv.setVer(0);968 return true;969 }970 for( UInt uiBId = 0; uiBId < m_uiCurrViewId; uiBId++ )971 {972 UInt uiBaseId = uiBId;973 974 if (m_uiCurrViewId >1 && uiBaseId ==1 )975 continue;976 977 TComPic* pcBasePic = m_pcAUPicAccess->getPic( uiBaseId );978 TComPicYuv* pcBaseRec = pcBasePic->getPicYuvRec ();979 UInt uiPartAddr;980 Int iWidth;981 Int iHeight;982 983 pcCU->getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight );984 pcBaseRec->getTopLeftSamplePos( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );985 iCurrPosX += ( ( iWidth - 1 ) >> 1 );986 iCurrPosY += ( ( iHeight - 1 ) >> 1 );987 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (pDInfo->m_acMvCand[0].getHor() + 2 ) >> 2 ) );988 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (pDInfo->m_acMvCand[0].getVer() + 2 ) >> 2 ));989 Int iBaseCUAddr;990 Int iBaseAbsPartIdx;991 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx );992 TComDataCU* pcBaseCU = pcBasePic->getCU( iBaseCUAddr );993 if( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_INTER && pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_SKIP )994 {995 continue;996 }997 for( UInt uiBaseRefListId = 0; uiBaseRefListId < 2; uiBaseRefListId++ )998 {999 RefPicList eBaseRefPicList = RefPicList( uiBaseRefListId );1000 TComMvField cBaseMvField;1001 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );1002 Int iBaseRefIdx = cBaseMvField.getRefIdx();1003 Int iBaseRefPoc = ( iBaseRefIdx >= 0 ? pcBaseCU->getSlice()->getRefPic( eBaseRefPicList, iBaseRefIdx )->getPOC() : -(1<<30) );1004 if( iBaseRefIdx >= 0 && iBaseRefPoc == iRefPoc )1005 {1006 rcMv.set( cBaseMvField.getHor(), cBaseMvField.getVer() );1007 // save disparity vector when a merge candidate for IVMP is set as DV-MCP1008 if( bMerge )1009 {1010 rcMv.m_bDvMcp = true;1011 rcMv.m_iDvMcpDispX = pDInfo->m_acMvCand[0].getHor();1012 rcMv.m_iDvMcpDispY = pDInfo->m_acMvCand[0].getVer();1013 }1014 else { // AMVP ?1015 rcMv.m_bDvMcp = false;1016 }1017 return true;1018 }1019 }1020 }1021 return false;1022 }1023 #else // H3D_NBDV1024 Bool1025 TComDepthMapGenerator::getPdmMvPred( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, Bool bMerge )1026 {1027 AOF ( m_bCreated && m_bInit );1028 AOF ( iRefIdx >= 0 );1029 AOF ( pcCU );1030 ROFRS( m_bPDMAvailable, false );1031 1032 TComSlice* pcSlice = pcCU->getSlice ();1033 TComPic* pcPic = pcCU->getPic ();1034 TComSPS* pcSPS = pcSlice->getSPS();1035 AOF ( pcPic->getPredDepthMap() );1036 AOF ( pcSPS->getViewId() == m_uiCurrViewId );1037 1038 TComPic* pcRefPic = pcSlice->getRefPic( eRefPicList, iRefIdx );1039 UInt uiRefViewId = pcRefPic->getSPS()->getViewId();1040 Int iRefPoc = pcRefPic->getPOC();1041 Bool bInterview = ( uiRefViewId < m_uiCurrViewId );1042 AOT( bInterview && iRefPoc != pcSlice->getPOC() );1043 AOT( !bInterview && iRefPoc == pcSlice->getPOC() );1044 1045 Bool bPdmIView = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_IVIEW ) == PDM_USE_FOR_IVIEW );1046 Bool bPdmInter = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_INTER ) == PDM_USE_FOR_INTER );1047 Bool bPdmMerge = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE );1048 ROTRS( ( bInterview && !bMerge ) && !bPdmIView, false );1049 ROTRS( (!bInterview && !bMerge ) && !bPdmInter, false );1050 ROTRS( bMerge && !bPdmMerge, false );1051 1052 //===== get predicted depth for middle position of current PU =====1053 Int iPrdDepth, iCurrPosX, iCurrPosY;1054 Bool bAvailable = xGetPredDepth( pcCU, uiPartIdx, iPrdDepth, &iCurrPosX, &iCurrPosY );1055 AOF( bAvailable );1056 1057 //===== inter-view motion vector prediction =====1058 if( bInterview )1059 {1060 Int iDisparity = xGetDisparityFromVirtDepth( uiRefViewId, iPrdDepth );1061 rcMv.set ( iDisparity, 0 );1062 return true;1063 }1064 1065 //===== inter motion vector prediction =====1066 for( UInt uiBId = 0; uiBId < m_uiCurrViewId; uiBId++ )1067 {1068 //--- get base CU/PU and check prediction mode ---1069 UInt uiBaseId = m_auiBaseIdList[ uiBId ];1070 #if PDM_REMOVE_DEPENDENCE1071 if( uiBaseId != 0)1072 continue;1073 #endif1074 TComPic* pcBasePic = m_pcAUPicAccess->getPic( uiBaseId );1075 TComPicYuv* pcBasePdm = pcBasePic->getPredDepthMap();1076 TComPicYuv* pcBaseRec = pcBasePic->getPicYuvRec ();1077 Int iDisparity = xGetDisparityFromVirtDepth( uiBaseId, iPrdDepth );1078 Int iShiftX = m_uiSubSampExpX + 2;1079 Int iAddX = ( 1 << iShiftX ) >> 1;1080 Int iBasePosX = Clip3( 0, pcBasePdm->getWidth () - 1, iCurrPosX + ( ( iDisparity + iAddX ) >> iShiftX ) );1081 Int iBasePosY = Clip3( 0, pcBasePdm->getHeight() - 1, iCurrPosY );1082 Int iBaseCUAddr;1083 Int iBaseAbsPartIdx;1084 pcBaseRec->getCUAddrAndPartIdx( iBasePosX << m_uiSubSampExpX, iBasePosY << m_uiSubSampExpY, iBaseCUAddr, iBaseAbsPartIdx );1085 TComDataCU* pcBaseCU = pcBasePic->getCU( iBaseCUAddr );1086 if( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_INTER && pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_SKIP )1087 {1088 continue;1089 }1090 1091 for( UInt uiBaseRefListId = 0; uiBaseRefListId < 2; uiBaseRefListId++ )1092 {1093 RefPicList eBaseRefPicList = RefPicList( uiBaseRefListId );1094 TComMvField cBaseMvField;1095 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );1096 Int iBaseRefIdx = cBaseMvField.getRefIdx();1097 Int iBaseRefPoc = ( iBaseRefIdx >= 0 ? pcBaseCU->getSlice()->getRefPic( eBaseRefPicList, iBaseRefIdx )->getPOC() : -(1<<30) );1098 if( iBaseRefIdx >= 0 && iBaseRefPoc == iRefPoc )1099 {1100 rcMv.set( cBaseMvField.getHor(), cBaseMvField.getVer() );1101 return true;1102 }1103 }1104 }1105 return false;1106 }1107 #endif // H3D_NBDV1108 #endif // QC_AMVP_MRG_UNIFY_IVCAN_C00511109 783 1110 784 -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDepthMapGenerator.h
r296 r325 152 152 #if H3D_IVMP 153 153 #if H3D_NBDV 154 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051155 154 Bool getPdmCandidate ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ); 156 #else157 Int getPdmMergeCandidate ( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm );158 Bool getPdmMvPredDisCan ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge );159 Bool getDisCanPdmMvPred ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge );160 #endif161 155 #else 162 156 Int getPdmMergeCandidate ( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv ); -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPic.cpp
r313 r325 85 85 m_aaiCodedScale = 0; 86 86 m_aaiCodedOffset = 0; 87 #if OL_QTLIMIT_PREDCODING_B006887 #if H3D_QTL 88 88 m_bReduceBitsQTL = 0; 89 89 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPic.h
r313 r325 121 121 Int** m_aaiCodedOffset; 122 122 123 #if OL_QTLIMIT_PREDCODING_B0068123 #if H3D_QTL 124 124 Bool m_bReduceBitsQTL; 125 125 #endif … … 203 203 #endif 204 204 205 #if OL_QTLIMIT_PREDCODING_B0068205 #if H3D_QTL 206 206 Bool getReduceBitsFlag () { return m_bReduceBitsQTL; } 207 207 Void setReduceBitsFlag ( Bool bFlag ) { m_bReduceBitsQTL = bFlag; } -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPrediction.cpp
r313 r325 636 636 #endif 637 637 { 638 #if DEPTH_MAP_GENERATION639 638 #if MERL_VSP_C0152 640 639 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); … … 642 641 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); 643 642 #endif 644 #else645 #if MERL_VSP_C0152646 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );647 #else648 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );649 #endif650 #endif651 643 } 652 644 else 653 645 { 654 #if DEPTH_MAP_GENERATION655 646 #if MERL_VSP_C0152 656 647 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); … … 658 649 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); 659 650 #endif 660 #else661 #if MERL_VSP_C0152662 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );663 #else664 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );665 #endif666 #endif667 651 } 668 652 #if LGE_ILLUCOMP_B0045 … … 677 661 else 678 662 { 679 #if DEPTH_MAP_GENERATION680 663 if( xCheckIdenticalMotion( pcCU, uiPartAddr ) && !bPrdDepthMap ) 681 #else 682 if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) ) 683 #endif 684 { 685 #if DEPTH_MAP_GENERATION 664 { 686 665 #if MERL_VSP_C0152 687 666 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); … … 689 668 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); 690 669 #endif 691 #else692 #if MERL_VSP_C0152693 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );694 #else695 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );696 #endif697 #endif698 670 } 699 671 else 700 672 { 701 #if DEPTH_MAP_GENERATION702 673 #if MERL_VSP_C0152 703 674 xPredInterBi (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap ); … … 705 676 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap ); 706 677 #endif 707 #else708 #if MERL_VSP_C0152709 xPredInterBi (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );710 #else711 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );712 #endif713 #endif714 678 } 715 679 } … … 721 685 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight ); 722 686 723 #if DEPTH_MAP_GENERATION724 687 if( bPrdDepthMap ) 725 688 { … … 727 690 iHeight >>= uiSubSampExpY; 728 691 } 729 #endif730 692 731 693 if ( eRefPicList != REF_PIC_LIST_X ) … … 737 699 #endif 738 700 { 739 #if DEPTH_MAP_GENERATION740 701 #if MERL_VSP_C0152 741 702 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); … … 743 704 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); 744 705 #endif 745 #else746 #if MERL_VSP_C0152747 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );748 #else749 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );750 #endif751 #endif752 706 } 753 707 else 754 708 { 755 #if DEPTH_MAP_GENERATION756 709 #if MERL_VSP_C0152 757 710 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); … … 759 712 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); 760 713 #endif 761 #else 762 #if MERL_VSP_C0152 763 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false ); 764 #else 765 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false ); 766 #endif 767 #endif 768 } 769 #if DEPTH_MAP_GENERATION 714 } 770 715 #if MERL_VSP_C0152 771 716 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); … … 773 718 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); 774 719 #endif 775 #else 776 #if MERL_VSP_C0152 777 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false ); 778 #else 779 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false ); 780 #endif 781 #endif 720 782 721 #if LGE_ILLUCOMP_B0045 783 722 if( pcCU->getSlice()->getPPS()->getUseWP() && !pcCU->getICFlag(uiPartAddr)) … … 793 732 if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) ) 794 733 { 795 #if DEPTH_MAP_GENERATION796 734 #if MERL_VSP_C0152 797 735 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); … … 799 737 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); 800 738 #endif 801 #else802 #if MERL_VSP_C0152803 xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );804 #else805 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );806 #endif807 #endif808 739 } 809 740 else 810 741 { 811 #if DEPTH_MAP_GENERATION812 742 #if MERL_VSP_C0152 813 743 xPredInterBi (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap ); … … 815 745 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap ); 816 746 #endif 817 #else818 #if MERL_VSP_C0152819 xPredInterBi (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );820 #else821 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );822 #endif823 #endif824 747 } 825 748 } … … 828 751 } 829 752 830 #if MTK_MDIVRP_C0138753 #if H3D_IVRP 831 754 Void TComPrediction::residualPrediction(TComDataCU* pcCU, TComYuv* pcYuvPred, TComYuv* pcYuvResPred) 832 755 { … … 847 770 #endif 848 771 849 #if DEPTH_MAP_GENERATION850 772 #if MERL_VSP_C0152 851 773 Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY, Bool bi ) 852 774 #else 853 775 Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY, Bool bi ) 854 #endif855 #else856 #if MERL_VSP_C0152857 Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi )858 #else859 Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi )860 #endif861 776 #endif 862 777 { … … 887 802 { 888 803 UInt uiRShift = 0; 889 #if PDM_REMOVE_DEPENDENCE890 804 if( pcCU->getPic()->getStoredPDMforV2() == 1 ) 891 805 xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPredDepthMapTemp(), uiPartAddr, &cMv, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, rpcYuvPred, uiRShift, 0 ); 892 806 else 893 #endif894 807 xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPredDepthMap(), uiPartAddr, &cMv, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, rpcYuvPred, uiRShift, 0 ); 895 808 … … 1001 914 1002 915 1003 #if DEPTH_MAP_GENERATION1004 916 #if MERL_VSP_C0152 1005 917 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap ) … … 1007 919 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap ) 1008 920 #endif 1009 #else1010 #if MERL_VSP_C01521011 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )1012 #else1013 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )1014 #endif1015 #endif1016 921 { 1017 922 TComYuv* pcMbYuv; … … 1050 955 if( pcCU->getCUMvField( REF_PIC_LIST_0 )->getRefIdx( uiPartAddr ) >= 0 && pcCU->getCUMvField( REF_PIC_LIST_1 )->getRefIdx( uiPartAddr ) >= 0 ) 1051 956 { 1052 #if DEPTH_MAP_GENERATION1053 957 #if MERL_VSP_C0152 1054 958 xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); 1055 959 #else 1056 960 xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); 1057 #endif1058 #else1059 #if MERL_VSP_C01521060 xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );1061 #else1062 xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );1063 #endif1064 961 #endif 1065 962 } … … 1073 970 #endif 1074 971 { 1075 #if DEPTH_MAP_GENERATION1076 972 #if MERL_VSP_C0152 1077 973 xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); … … 1079 975 xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true ); 1080 976 #endif 1081 #else1082 #if MERL_VSP_C01521083 xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );1084 #else1085 xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );1086 #endif1087 #endif1088 977 } 1089 978 else 1090 979 { 1091 #if DEPTH_MAP_GENERATION1092 980 #if MERL_VSP_C0152 1093 981 xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); 1094 982 #else 1095 983 xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false ); 1096 #endif1097 #else1098 #if MERL_VSP_C01521099 xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );1100 #else1101 xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );1102 #endif1103 984 #endif 1104 985 } … … 1132 1013 else 1133 1014 { 1134 #if DEPTH_MAP_GENERATION1135 1015 if ( bPrdDepthMap ) 1136 1016 { … … 1146 1026 xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred ); 1147 1027 } 1148 #else1149 xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );1150 #endif1151 1028 } 1152 1029 } … … 1155 1032 1156 1033 Void 1157 #if DEPTH_MAP_GENERATION1158 1034 TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset 1159 1035 #if LGE_ILLUCOMP_DEPTH_C0046 … … 1161 1037 #endif 1162 1038 ) 1163 #else 1164 TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset ) 1165 #endif 1166 { 1167 #if DEPTH_MAP_GENERATION 1039 { 1168 1040 Int iShiftX = 2 + uiSubSampExpX; 1169 1041 Int iShiftY = 2 + uiSubSampExpY; … … 1182 1054 Int iDstStride = rpcYuv->getStride(); 1183 1055 Int iRefOffset = iHor + iVer * iRefStride; 1184 #else1185 Int iFPelMask = ~3;1186 Int iRefStride = pcPicYuvRef->getStride();1187 Int iDstStride = rpcYuv->getStride();1188 Int iHor = ( pcMv->getHor() + 2 ) & iFPelMask;1189 Int iVer = ( pcMv->getVer() + 2 ) & iFPelMask;1190 #if HHI_FULL_PEL_DEPTH_MAP_MV_ACC1191 if( pcCU->getSlice()->getSPS()->isDepth() )1192 {1193 iHor = pcMv->getHor() * 4;1194 iVer = pcMv->getVer() * 4;1195 }1196 #endif1197 #if !QC_MVHEVC_B00461198 Int ixFrac = iHor & 0x3;1199 Int iyFrac = iVer & 0x3;1200 #endif1201 Int iRefOffset = ( iHor >> 2 ) + ( iVer >> 2 ) * iRefStride;1202 #endif1203 1056 1204 1057 Pel* piRefY = pcPicYuvRef->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr ) + iRefOffset; … … 1454 1307 Int dstStride = dstPic->getStride(); 1455 1308 Int depStride = pPicBaseDepth->getStride(); 1456 #if MTK_DVPREFINE_BVSP_BUG_FIX1457 1309 Int depthPosX = Clip3(0, widthLuma - size_x, (posX/nTxtPerDepthX) + (mv->getHor()>>2)); 1458 1310 Int depthPosY = Clip3(0, heightLuma- size_y, (posY/nTxtPerDepthY) + (mv->getVer()>>2)); 1459 #else1460 Int depthPosX = Clip3(0, widthLuma - size_x - 1, (posX/nTxtPerDepthX) + (mv->getHor()>>2));1461 Int depthPosY = Clip3(0, heightLuma- size_y - 1, (posY/nTxtPerDepthY) + (mv->getVer()>>2));1462 #endif1463 1311 Pel *ref = refPic->getLumaAddr() + posX + posY * refStride; 1464 1312 Pel *dst = dstPic->getLumaAddr(partAddr); … … 1618 1466 depthPosX = posX * nDepthPerTxtX + (mv->getHor()>>2); //mv denotes the disparity for VSP 1619 1467 } 1620 #if MTK_DVPREFINE_BVSP_BUG_FIX1621 1468 depthPosX = Clip3(0, widthDepth - (size_x<<1), depthPosX); 1622 #else1623 depthPosX = Clip3(0, widthDepth - (size_x<<1) - 1, depthPosX);1624 #endif1625 1469 if ( heightChroma > heightDepth ) 1626 1470 { … … 1635 1479 depthPosY = posY * nDepthPerTxtY + (mv->getVer()>>2); //mv denotes the disparity for VSP 1636 1480 } 1637 #if MTK_DVPREFINE_BVSP_BUG_FIX1638 1481 depthPosY = Clip3(0, heightDepth - (size_y<<1), depthPosY); 1639 #else1640 depthPosY = Clip3(0, heightDepth - (size_y<<1) - 1, depthPosY);1641 #endif1642 1482 1643 1483 Pel *refCb = refPic->getCbAddr() + posX + posY * refStride; … … 2384 2224 iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]]; 2385 2225 iCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]]; 2386 #if FIX_LGE_ILLUCOMP_B00452387 2226 iRefX = iCUPelX + (pMv->getHor() >> 2); 2388 2227 iRefY = iCUPelY + (pMv->getVer() >> 2); 2389 #else2390 iRefX = iCUPelX + (pMv->getHor() >> 3);2391 iRefY = iCUPelY + (pMv->getVer() >> 3);2392 #endif2393 2228 uiWidth = pcCU->getWidth(0) >> 1; 2394 2229 uiHeight = pcCU->getHeight(0) >> 1; … … 3037 2872 getWedgePredDCs( pcWedgelet, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft ); 3038 2873 3039 #if HHI_DMM_DELTADC_Q1_C00343040 #else3041 if( bDelta )3042 {3043 xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );3044 xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );3045 }3046 #endif3047 3048 2874 // assign wedge pred DCs to prediction 3049 2875 if( bDelta ) { assignWedgeDCs2Pred( pcWedgelet, piPred, uiStride, Clip ( iPredDC1+iDeltaDC1 ), Clip( iPredDC2+iDeltaDC2 ) ); } … … 3064 2890 piMask += iMaskStride+1; 3065 2891 getWedgePredDCs( pcContourWedge, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft ); 3066 3067 #if HHI_DMM_DELTADC_Q1_C00343068 #else3069 if( bDelta )3070 {3071 xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );3072 xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );3073 }3074 #endif3075 2892 3076 2893 // assign wedge pred DCs to prediction … … 3249 3066 getWedgePredDCs( pcWedgelet, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft ); 3250 3067 3251 #if HHI_DMM_DELTADC_Q1_C00343252 #else3253 if( bDelta )3254 {3255 xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );3256 xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );3257 }3258 #endif3259 3260 3068 // assign wedge pred DCs to prediction 3261 3069 if( bDelta ) { assignWedgeDCs2Pred( pcWedgelet, piPred, uiStride, Clip( iPredDC1+iDeltaDC1 ), Clip( iPredDC2+iDeltaDC2 ) ); } … … 3292 3100 piMask += iMaskStride+1; 3293 3101 getWedgePredDCs( pcWedgelet, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft ); 3294 3295 #if HHI_DMM_DELTADC_Q1_C00343296 #else3297 if( bDelta )3298 {3299 xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );3300 xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );3301 }3302 #endif3303 3102 3304 3103 // assign wedge pred DCs to prediction -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPrediction.h
r296 r325 86 86 87 87 // motion compensation functions 88 #if DEPTH_MAP_GENERATION89 88 #if MERL_VSP_C0152 90 89 Void xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0, Bool bi=false ); … … 92 91 Void xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0, Bool bi=false ); 93 92 #endif 94 #else 95 #if MERL_VSP_C0152 96 Void xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi=false ); 97 #else 98 Void xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi=false ); 99 #endif 100 #endif 101 102 #if DEPTH_MAP_GENERATION 93 103 94 #if MERL_VSP_C0152 104 95 Void xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap ); … … 111 102 #endif 112 103 ); 113 #else 114 #if MERL_VSP_C0152 115 Void xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx ); 116 #else 117 Void xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx ); 118 #endif 119 Void xPredInterPrdDepthMap ( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset ); 120 #endif 104 121 105 #if MERL_VSP_C0152 122 106 Void xPredInterUniBWVSP ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY, Bool bi=false ); … … 179 163 180 164 // inter 181 #if DEPTH_MAP_GENERATION182 165 #if MERL_VSP_C0152 183 166 Void motionCompensation ( TComDataCU* pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1, Bool bPrdDepthMap = false, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0 ); … … 185 168 Void motionCompensation ( TComDataCU* pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1, Bool bPrdDepthMap = false, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0 ); 186 169 #endif 187 #else 188 #if MERL_VSP_C0152 189 Void motionCompensation ( TComDataCU* pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx,, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1 ); 190 #else 191 Void motionCompensation ( TComDataCU* pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1 ); 192 #endif 193 #endif 194 195 #if MTK_MDIVRP_C0138 170 171 #if H3D_IVRP 196 172 Void residualPrediction (TComDataCU* pcCU, TComYuv* pcYuvPred, TComYuv* pcYuvResPred); 197 173 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComResidualGenerator.cpp
r322 r325 184 184 AOF ( pcPic ); 185 185 186 #if MTK_MDIVRP_C0138186 #if H3D_IVRP 187 187 if (pcPic->getSPS()->getViewId() != 0) 188 188 { … … 257 257 #endif 258 258 { 259 #if MTK_C0138_FIXED260 259 UInt uiBaseViewId = 0; 261 #else262 UInt uiBaseViewId = m_pcDepthMapGenerator->getBaseViewId( 0 );263 #endif264 260 if( !pcYuv ) 265 261 { … … 272 268 xSetPredResidualBlock( pcPic, uiBaseViewId, uiXPos, uiYPos, uiBlkWidth, uiBlkHeight, pcYuv, &uiXPosInRefView , &uiYPosInRefView , bRecon ); 273 269 #endif 274 #if MTK_MDIVRP_C0138275 270 return true; 276 #else277 return xIsNonZeroByCBF( uiBaseViewId , uiXPosInRefView , uiYPosInRefView , uiBlkWidth , uiBlkHeight );278 #endif279 271 } 280 272 … … 393 385 Pel* pRes = pcCUResidual->getLumaAddr(); 394 386 UInt uiLumaTrMode, uiChromaTrMode; 395 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138396 Int iPUPredResiShift[4];397 #endif398 387 pcCU->convertTransIdx ( 0, pcCU->getTransformIdx( 0 ), uiLumaTrMode, uiChromaTrMode ); 399 388 m_pcTrQuant->setQPforQuant ( pcCU->getQP( 0 ), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 ); … … 410 399 pRes = pcCUResidual->getCrAddr(); 411 400 m_pcTrQuant->invRecurTransformNxN ( pcCU, 0, TEXT_CHROMA_V, pRes, 0, pcCUResidual->getCStride(), uiWidth, uiHeight, uiChromaTrMode, 0, piCoeff ); 412 413 #if !MTK_MDIVRP_C0138414 if( pcCU->getResPredFlag( 0 ) )415 {416 AOF( pcCU->getResPredAvail( 0 ) );417 Bool bOK = pcCU->getResidualSamples( 0, true, m_ppcYuvTmp[0] );418 AOF( bOK );419 #if LG_RESTRICTEDRESPRED_M24766420 pcCU->getPUResiPredShift(iPUPredResiShift, 0);421 pcCUResidual->add(iPUPredResiShift, pcCU->getPartitionSize(0), m_ppcYuvTmp[0], pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) );422 #else423 pcCUResidual->add( m_ppcYuvTmp[0], pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) );424 #endif425 }426 #endif427 401 428 402 //===== clear inter-view predicted parts ===== … … 570 544 Int iDesStrideC = pcYuv ->getCStride(); 571 545 572 #if FIX_CHROMA_RESIDUAL_C0129573 546 Pel* pSrcSamplesU0= pcBaseRes->getCbAddr ( 0 ) + iCRefPosY0 * iSrcStrideC; 574 547 Pel* pSrcSamplesU1= pcBaseRes->getCbAddr ( 0 ) + iCRefPosY1 * iSrcStrideC; 575 548 Pel* pSrcSamplesV0= pcBaseRes->getCrAddr ( 0 ) + iCRefPosY0 * iSrcStrideC; 576 549 Pel* pSrcSamplesV1= pcBaseRes->getCrAddr ( 0 ) + iCRefPosY1 * iSrcStrideC; 577 #else578 Pel* pSrcSamplesU0= pcBaseRes->getCbAddr ( 0 ) + ( iCRefPosY0 >> 1 ) * iSrcStrideC;579 Pel* pSrcSamplesU1= pcBaseRes->getCbAddr ( 0 ) + ( iCRefPosY1 >> 1 ) * iSrcStrideC;580 Pel* pSrcSamplesV0= pcBaseRes->getCrAddr ( 0 ) + ( iCRefPosY0 >> 1 ) * iSrcStrideC;581 Pel* pSrcSamplesV1= pcBaseRes->getCrAddr ( 0 ) + ( iCRefPosY1 >> 1 ) * iSrcStrideC;582 #endif583 550 Pel* pDesSamplesU= pcYuv ->getCbAddr (); 584 551 Pel* pDesSamplesV= pcYuv ->getCrAddr (); -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComRom.cpp
r296 r325 306 306 307 307 #if RWTH_SDC_DLT_B0036 308 #if SAIT_SDC_C0096309 308 UInt g_auiSDCPredModes[RWTH_SDC_NUM_PRED_MODES] = { DC_IDX, DMM_WEDGE_FULL_IDX, PLANAR_IDX }; 310 #else311 UInt g_auiSDCPredModes[RWTH_SDC_NUM_PRED_MODES] = { DC_IDX, DMM_WEDGE_FULL_IDX, DMM_WEDGE_PREDDIR_IDX, PLANAR_IDX };312 #endif313 309 #endif 314 310 -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComRom.h
r296 r325 194 194 195 195 #if RWTH_SDC_DLT_B0036 196 #if SAIT_SDC_C0096197 196 #define RWTH_SDC_NUM_PRED_MODES 3 198 #else199 #define RWTH_SDC_NUM_PRED_MODES 4200 #endif201 197 extern UInt g_auiSDCPredModes[RWTH_SDC_NUM_PRED_MODES]; 202 198 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComSlice.cpp
r313 r325 1546 1546 , m_bUseDMM34 (false) 1547 1547 #endif 1548 #if OL_QTLIMIT_PREDCODING_B00681548 #if H3D_QTL 1549 1549 , m_bUseQTLPC (false) 1550 1550 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComSlice.h
r313 r325 375 375 #endif 376 376 377 #if OL_QTLIMIT_PREDCODING_B0068377 #if H3D_QTL 378 378 Bool m_bUseQTLPC; 379 379 #endif … … 617 617 #endif 618 618 619 #if OL_QTLIMIT_PREDCODING_B0068619 #if H3D_QTL 620 620 Void setUseQTLPC( Bool b ) { m_bUseQTLPC = b; } 621 621 Bool getUseQTLPC() { return m_bUseQTLPC; } -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComYuv.cpp
r296 r325 392 392 } 393 393 394 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138395 Void396 TComYuv::add(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract )397 {398 addLuma (iPUResiPredShift, uhPartitionSize, pcYuvAdd, iWidth, iHeight, bSubtract );399 addChroma (iPUResiPredShift, uhPartitionSize, pcYuvAdd, iWidth>>1, iHeight>>1, bSubtract );400 }401 #else402 394 Void 403 395 TComYuv::add( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract ) … … 406 398 addChroma ( pcYuvAdd, iWidth>>1, iHeight>>1, bSubtract ); 407 399 } 408 #endif 409 410 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 411 Void 412 TComYuv::getPUXYOffset(PartSize uhPartitionSize, Int iWidth, Int iHeight, Int &iXOffset, Int &iYOffset) 413 { 414 switch(uhPartitionSize) 415 { 416 case SIZE_2NxN: 417 iXOffset = iWidth; iYOffset = iHeight >> 1; break; 418 case SIZE_2NxnU: 419 iXOffset = iWidth; iYOffset = iHeight >> 2; break; 420 case SIZE_2NxnD: 421 iXOffset = iWidth; iYOffset = (iHeight >> 1) + (iHeight >> 2); break; 422 case SIZE_Nx2N: 423 iXOffset = iWidth >> 1; iYOffset = iHeight; break; 424 case SIZE_nLx2N: 425 iXOffset = iWidth >> 2; iYOffset = iHeight; break; 426 case SIZE_nRx2N: 427 iXOffset = (iWidth >> 1) + (iWidth >> 2); iYOffset = iHeight; break; 428 case SIZE_NxN: 429 iXOffset = iWidth >> 1; iYOffset = iHeight >> 1; break; 430 default: 431 assert(uhPartitionSize == SIZE_2Nx2N); 432 iXOffset = iWidth; iYOffset = iHeight; break; 433 } 434 } 435 #endif 436 437 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 438 Void 439 TComYuv::addLuma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract ) 440 #else 400 401 441 402 Void 442 403 TComYuv::addLuma( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract ) 443 #endif444 404 { 445 405 Int iScale = ( bSubtract ? -1 : 1 ); … … 449 409 Pel* pDstSamples = getLumaAddr(); 450 410 451 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138452 Int iXOffset, iYOffset;453 454 getPUXYOffset(uhPartitionSize, iWidth, iHeight, iXOffset, iYOffset);455 456 for( Int iY = 0; iY < iYOffset; iY++, pDstSamples += iDstStride, pAddSamples += iAddStride )457 {458 if(iPUResiPredShift[0] >= 0)459 {460 for( Int iX = 0; iX < iXOffset; iX++ )461 {462 pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[0]);463 }464 }465 466 if(iPUResiPredShift[1] >= 0)467 {468 for( Int iX = iXOffset; iX < iWidth; iX++ )469 {470 pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[1]);471 }472 }473 }474 475 for( Int iY = iYOffset; iY < iHeight; iY++, pDstSamples += iDstStride, pAddSamples += iAddStride )476 {477 if(iPUResiPredShift[2] >= 0)478 {479 for( Int iX = 0; iX < iXOffset; iX++ )480 {481 pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[2]);482 }483 }484 485 if(iPUResiPredShift[3] >= 0)486 {487 for( Int iX = iXOffset; iX < iWidth; iX++ )488 {489 pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[3]);490 }491 }492 }493 #else494 411 for( Int iY = 0; iY < iHeight; iY++, pDstSamples += iDstStride, pAddSamples += iAddStride ) 495 412 { … … 499 416 } 500 417 } 501 #endif 502 } 503 504 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 505 Void 506 TComYuv::addChroma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract ) 507 #else 418 } 419 508 420 Void 509 421 TComYuv::addChroma( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract ) 510 #endif511 422 { 512 423 Int iScale = ( bSubtract ? -1 : 1 ); … … 518 429 Pel* pDstSamplesCr = getCrAddr(); 519 430 520 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138521 Int iXOffset, iYOffset;522 523 getPUXYOffset(uhPartitionSize, iWidth, iHeight, iXOffset, iYOffset);524 525 for( Int iY = 0; iY < iYOffset; iY++, pDstSamplesCb += iDstStride, pAddSamplesCb += iAddStride,526 pDstSamplesCr += iDstStride, pAddSamplesCr += iAddStride )527 {528 if(iPUResiPredShift[0] >= 0)529 {530 for( Int iX = 0; iX < iXOffset; iX++ )531 {532 pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[0]);533 pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[0]);534 }535 }536 537 if(iPUResiPredShift[1] >= 0)538 {539 for( Int iX = iXOffset; iX < iWidth; iX++ )540 {541 pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[1]);542 pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[1]);543 }544 }545 }546 547 for( Int iY = iYOffset; iY < iHeight; iY++, pDstSamplesCb += iDstStride, pAddSamplesCb += iAddStride,548 pDstSamplesCr += iDstStride, pAddSamplesCr += iAddStride )549 {550 if(iPUResiPredShift[2] >= 0)551 {552 for( Int iX = 0; iX < iXOffset; iX++ )553 {554 pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[2]);555 pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[2]);556 }557 }558 559 if(iPUResiPredShift[3] >= 0)560 {561 for( Int iX = iXOffset; iX < iWidth; iX++ )562 {563 pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[3]);564 pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[3]);565 }566 }567 }568 #else569 431 for( Int iY = 0; iY < iHeight; iY++, pDstSamplesCb += iDstStride, pAddSamplesCb += iAddStride, 570 432 pDstSamplesCr += iDstStride, pAddSamplesCr += iAddStride ) … … 576 438 } 577 439 } 578 #endif579 440 } 580 441 … … 676 537 } 677 538 678 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138679 Void TComYuv::subtract(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize )680 {681 subtractLuma (iPUResiPredShift, uhPartitionSize, pcYuvSrc0, pcYuvSrc1, uiTrUnitIdx, uiPartSize );682 subtractChroma(iPUResiPredShift, uhPartitionSize, pcYuvSrc0, pcYuvSrc1, uiTrUnitIdx, uiPartSize>>1 );683 }684 #else685 539 Void TComYuv::subtract( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ) 686 540 { … … 688 542 subtractChroma( pcYuvSrc0, pcYuvSrc1, uiTrUnitIdx, uiPartSize>>1 ); 689 543 } 690 #endif 691 692 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 693 Void TComYuv::subtractLuma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ) 694 #else 544 695 545 Void TComYuv::subtractLuma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ) 696 #endif697 546 { 698 547 Int x, y; … … 706 555 Int iDstStride = getStride(); 707 556 708 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 709 Int iXOffset, iYOffset; 710 711 getPUXYOffset(uhPartitionSize, uiPartSize, uiPartSize, iXOffset, iYOffset); 712 713 #if FIX_LG_RESTRICTEDRESPRED_M24766 714 for ( y = 0; y < iYOffset; y++ ) 715 { 716 if(iPUResiPredShift[0] >= 0) 717 { 718 for ( x = 0; x < iXOffset; x++ ) 719 { 720 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[0]); 721 } 722 } 723 724 if(iPUResiPredShift[1] >= 0) 725 { 726 for ( x = iXOffset; x < uiPartSize; x++ ) 727 { 728 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[1]); 729 } 557 for ( y = uiPartSize-1; y >= 0; y-- ) 558 { 559 for ( x = uiPartSize-1; x >= 0; x-- ) 560 { 561 pDst[x] = pSrc0[x] - pSrc1[x]; 730 562 } 731 563 pSrc0 += iSrc0Stride; … … 733 565 pDst += iDstStride; 734 566 } 735 736 for ( y = iYOffset; y < uiPartSize; y++ ) 737 { 738 if(iPUResiPredShift[2] >= 0) 739 { 740 for ( x = 0; x < iXOffset; x++ ) 741 { 742 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[2]); 743 } 744 } 745 746 if(iPUResiPredShift[3] >= 0) 747 { 748 for ( x = iXOffset; x < uiPartSize; x++ ) 749 { 750 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[3]); 751 } 752 } 753 pSrc0 += iSrc0Stride; 754 pSrc1 += iSrc1Stride; 755 pDst += iDstStride; 756 } 757 #else 758 for ( y = uiPartSize-1; y >= iYOffset; y-- ) 759 { 760 if(iPUResiPredShift[3] >= 0) 761 { 762 for ( x = uiPartSize-1; x >= iXOffset; x-- ) 763 { 764 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[3]); 765 } 766 } 767 768 if(iPUResiPredShift[2] >= 0) 769 { 770 for ( x = iXOffset-1; x >= 0; x-- ) 771 { 772 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[2]); 773 } 774 } 775 pSrc0 += iSrc0Stride; 776 pSrc1 += iSrc1Stride; 777 pDst += iDstStride; 778 } 779 780 for ( y = iYOffset-1; y >= 0; y-- ) 781 { 782 if(iPUResiPredShift[1] >= 0) 783 { 784 for ( x = uiPartSize-1; x >= iXOffset; x-- ) 785 { 786 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[3]); 787 } 788 } 789 790 if(iPUResiPredShift[0] >= 0) 791 { 792 for ( x = iXOffset-1; x >= 0; x-- ) 793 { 794 pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[2]); 795 } 796 } 797 pSrc0 += iSrc0Stride; 798 pSrc1 += iSrc1Stride; 799 pDst += iDstStride; 800 } 801 #endif 802 #else 803 for ( y = uiPartSize-1; y >= 0; y-- ) 804 { 805 for ( x = uiPartSize-1; x >= 0; x-- ) 806 { 807 pDst[x] = pSrc0[x] - pSrc1[x]; 808 } 809 pSrc0 += iSrc0Stride; 810 pSrc1 += iSrc1Stride; 811 pDst += iDstStride; 812 } 813 #endif 814 } 815 816 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 817 Void TComYuv::subtractChroma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ) 818 #else 567 } 568 819 569 Void TComYuv::subtractChroma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ) 820 #endif821 570 { 822 571 Int x, y; … … 832 581 Int iSrc1Stride = pcYuvSrc1->getCStride(); 833 582 Int iDstStride = getCStride(); 834 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138 835 Int iXOffset, iYOffset; 836 837 getPUXYOffset(uhPartitionSize, uiPartSize, uiPartSize, iXOffset, iYOffset); 838 839 #if FIX_LG_RESTRICTEDRESPRED_M24766 840 for ( y = 0; y < iYOffset; y++ ) 841 { 842 if(iPUResiPredShift[0] >= 0) 843 { 844 for ( x = 0; x < iXOffset; x++ ) 845 { 846 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[0]); 847 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[0]); 848 } 849 } 850 851 if(iPUResiPredShift[1] >= 0) 852 { 853 for ( x = iXOffset; x < uiPartSize; x++ ) 854 { 855 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[1]); 856 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[1]); 857 } 583 for ( y = uiPartSize-1; y >= 0; y-- ) 584 { 585 for ( x = uiPartSize-1; x >= 0; x-- ) 586 { 587 pDstU[x] = pSrcU0[x] - pSrcU1[x]; 588 pDstV[x] = pSrcV0[x] - pSrcV1[x]; 858 589 } 859 590 pSrcU0 += iSrc0Stride; … … 864 595 pDstV += iDstStride; 865 596 } 866 867 for ( y = iYOffset; y < uiPartSize; y++ )868 {869 if(iPUResiPredShift[2] >= 0)870 {871 for ( x = 0; x < iXOffset; x++ )872 {873 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[2]);874 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[2]);875 }876 }877 878 if(iPUResiPredShift[3] >= 0)879 {880 for ( x = iXOffset; x < uiPartSize; x++ )881 {882 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[3]);883 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[3]);884 }885 }886 pSrcU0 += iSrc0Stride;887 pSrcU1 += iSrc1Stride;888 pSrcV0 += iSrc0Stride;889 pSrcV1 += iSrc1Stride;890 pDstU += iDstStride;891 pDstV += iDstStride;892 }893 #else894 for ( y = uiPartSize-1; y >= iYOffset; y-- )895 {896 if(iPUResiPredShift[3] >= 0)897 {898 for ( x = uiPartSize-1; x >= iXOffset; x-- )899 {900 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[3]);901 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[3]);902 }903 }904 905 if(iPUResiPredShift[2] >= 0)906 {907 for ( x = iXOffset-1; x >= 0; x-- )908 {909 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[2]);910 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[2]);911 }912 }913 pSrcU0 += iSrc0Stride;914 pSrcU1 += iSrc1Stride;915 pSrcV0 += iSrc0Stride;916 pSrcV1 += iSrc1Stride;917 pDstU += iDstStride;918 pDstV += iDstStride;919 }920 921 for ( y = iYOffset-1; y >= 0; y-- )922 {923 if(iPUResiPredShift[1] >= 0)924 {925 for ( x = uiPartSize-1; x >= iXOffset; x-- )926 {927 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[1]);928 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[1]);929 }930 }931 932 if(iPUResiPredShift[0] >= 0)933 {934 for ( x = iXOffset-1; x >= 0; x-- )935 {936 pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[0]);937 pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[0]);938 }939 }940 pSrcU0 += iSrc0Stride;941 pSrcU1 += iSrc1Stride;942 pSrcV0 += iSrc0Stride;943 pSrcV1 += iSrc1Stride;944 pDstU += iDstStride;945 pDstV += iDstStride;946 }947 #endif948 #else949 for ( y = uiPartSize-1; y >= 0; y-- )950 {951 for ( x = uiPartSize-1; x >= 0; x-- )952 {953 pDstU[x] = pSrcU0[x] - pSrcU1[x];954 pDstV[x] = pSrcV0[x] - pSrcV1[x];955 }956 pSrcU0 += iSrc0Stride;957 pSrcU1 += iSrc1Stride;958 pSrcV0 += iSrc0Stride;959 pSrcV1 += iSrc1Stride;960 pDstU += iDstStride;961 pDstV += iDstStride;962 }963 #endif964 597 } 965 598 -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComYuv.h
r296 r325 146 146 Void addClipPartLuma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ); //GT 147 147 148 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138149 // pcYuvSrc0 - pcYuvSrc1 -> m_apiBuf150 Void subtract (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );151 Void subtractLuma (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );152 Void subtractChroma (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );153 #else154 148 Void subtract ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ); 155 149 Void subtractLuma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ); 156 150 Void subtractChroma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ); 157 #endif158 151 159 152 // (pcYuvSrc0 + pcYuvSrc1)/2 for YUV partition … … 166 159 // Remove High frequency 167 160 Void removeHighFreq ( TComYuv* pcYuvSrc, UInt uiPartIdx, UInt uiWidht, UInt uiHeight ); 168 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138169 Void getPUXYOffset (PartSize uhPartitionSize, Int iWidth, Int iHeight, Int &iXOffset, Int &iYOffset);170 Void add (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract = false );171 Void addLuma (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract );172 Void addChroma (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract );173 #else174 161 Void add ( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract = false ); 175 162 Void addLuma ( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract ); 176 163 Void addChroma ( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract ); 177 #endif178 164 179 165 Void clip ( Int iWidth, Int iHeight ); -
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TypeDef.h
r322 r325 57 57 #define HHI_DMM_PRED_TEX 1 // depth model modes dependent on texture (inter-component Wedgelet and Contour prediction ) 58 58 // HHIQC_DMMFASTSEARCH_B0039, fast Wedgelet search for DMM modes 1 and 3 59 // HHI_DMM_DELTADC_Q1_C0034 JCT3V-C0034: no quantization and fast encoder search for DMM delta DC values 60 // FIX_DMM_CTX_INIT_C0034 JCT3V-C0034 fix for wrong init type of DMM contexts (UChar instead of Short) 59 61 60 62 #define LGE_EDGE_INTRA_A0070 1 // JCT3V-A0070 61 62 #define HHI_DMM_DELTADC_Q1_C0034 1 // JCT3V-C0034: no quantization and fast encoder search for DMM delta DC values63 #if ( HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA ) && HHI_DMM_PRED_TEX64 63 #define LGE_DMM3_SIMP_C0044 1 65 #endif66 #define FIX_DMM_CTX_INIT_C0034 1 // JCT3V-C0034 fix for wrong init type of DMM contexts (UChar instead of Short)67 64 68 65 ///// ***** SDC ********* 69 66 #define RWTH_SDC_DLT_B0036 1 // JCT3V-B0036: Simplified Depth Coding + Depth Lookup Table 70 #if RWTH_SDC_DLT_B0036 71 #define SAIT_SDC_C0096 1 // JCT3V-C0096: Improved Simple Depth Coding(removal of DMM2 among four SDC modes(DC, Planar, DMM1 and DMM2)) 72 #endif 73 #define FIX_SDC_ENC_C0143 1 // JCT3V-C0143 fix for unnecessary encoder checks in case of SDC 67 // SAIT_SDC_C0096 JCT3V-C0096: Improved Simple Depth Coding(removal of DMM2 among four SDC modes(DC, Planar, DMM1 and DMM2)) 68 // FIX_SDC_ENC_C0143, JCT3V-C0143 fix for unnecessary encoder checks in case of SDC 74 69 75 70 ///// ***** TMVP/AMVP ********* … … 87 82 // OL_DISMV_POS_B0069 , different pos for disparity MV candidate, B0069 88 83 // MTK_INTERVIEW_MERGE_A0049 , second part 89 #define QC_AMVP_MRG_UNIFY_IVCAN_C0051 1 90 #define QC_C0051_FIXED_BY_MTK 1 // Bug fix for C0051 implementation 84 // QC_C0051_FIXED_BY_MTK 1 // Bug fix for C0051 implementation 85 // QC_AMVP_MRG_UNIFY_IVCAN_C0051 1 91 86 92 87 … … 95 90 // HHI_INTER_VIEW_RESIDUAL_PRED 96 91 // QC_SIMPLIFIEDIVRP_M24938 97 #if H3D_IVRP 98 #define LG_RESTRICTEDRESPRED_M24766 1 // Restricted inter-view residual prediction 99 #define FIX_LG_RESTRICTEDRESPRED_M24766 1 100 #else 101 #define LG_RESTRICTEDRESPRED_M24766 0 102 #endif 103 104 #define MTK_MDIVRP_C0138 1 // Mode-dependent inter-view residual prediction 105 #define MTK_C0138_FIXED 1 // Fix for IBP coding structure in view direction (not CTC) 106 92 // MTK_C0138_FIXED // Fix for IBP coding structure in view direction (not CTC) 93 // MTK_MDIVRP_C0138 94 // LG_RESTRICTEDRESPRED_M24766 1 // Restricted inter-view residual prediction 95 // FIX_LG_RESTRICTEDRESPRED_M24766 1 107 96 108 97 ///// ***** DISPARITY VECTOR DERIVATION ********* … … 121 110 // MTK_RELEASE_DV_CONSTRAINT_C0129 122 111 // MTK_SIMPLIFY_DVTC_C0135 123 #define FIX_CHROMA_RESIDUAL_C0129 1112 // FIX_CHROMA_RESIDUAL_C0129 124 113 125 114 ///// ***** MOTION PARAMETER INHERITANCE ********* … … 145 134 ///// ***** ILLUMINATION COMPENSATON ********* 146 135 #define LGE_ILLUCOMP_B0045 1 // JCT2-B0045 Illumination compensation for Luma and Chroma 136 // LGE_ILLUCOMP_B0045_ENCSIMP 137 // FIX_LGE_ILLUCOMP_B0045 147 138 #if LGE_ILLUCOMP_B0045 148 #define LGE_ILLUCOMP_B0045_ENCSIMP 1149 #define FIX_LGE_ILLUCOMP_B0045 1150 139 #define LGE_ILLUCOMP_DEPTH_C0046 1 // JCT2-C0046 Apply illumination compensation to depth 151 140 #if LGE_ILLUCOMP_DEPTH_C0046 … … 158 147 159 148 ///// ***** QUADTREE LIMITATION ********* 160 #define OL_QTLIMIT_PREDCODING_B0068 1//JCT3V-B0068161 #define HHI_QTLPC_RAU_OFF_C0160 1// JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units149 #define H3D_QTL 1 // OL_QTLIMIT_dPREDCODING_B0068 //JCT3V-B0068 150 // HHI_QTLPC_RAU_OFF_C0160 // JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units 162 151 163 152 ///// ***** OTHERS ********* … … 211 200 #define MERL_VSP_BLOCKSIZE_C0152 4 // JCT3V-C0152: VSP block size, supported values: 1, 2 and 4. 212 201 #define VSP_MERGE_POS 5 // JCT3V-C0152: fixed position of VSP candidate in merge list, supported values: 5. 213 #defineMTK_DVPREFINE_BVSP_BUG_FIX 1202 //MTK_DVPREFINE_BVSP_BUG_FIX 1 214 203 215 204 #else // !MERL_VSP_C0152 -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecCAVLC.cpp
r313 r325 1206 1206 #endif 1207 1207 #endif 1208 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B00681208 #if HHI_MPI || H3D_QTL 1209 1209 Void TDecCavlc::parseSPS(TComSPS* pcSPS, Bool bIsDepth) 1210 1210 #else … … 1447 1447 } 1448 1448 #endif 1449 #if OL_QTLIMIT_PREDCODING_B00681449 #if H3D_QTL 1450 1450 if( bIsDepth ) 1451 1451 { -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecCAVLC.h
r296 r325 114 114 Void parseVPS ( TComVPS* pcVPS ); 115 115 #endif 116 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068116 #if HHI_MPI || H3D_QTL 117 117 Void parseSPS ( TComSPS* pcSPS, Bool bIsDepth ); 118 118 #else -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecCu.cpp
r296 r325 409 409 } 410 410 #endif 411 #if H3D_IVRP && !MTK_MDIVRP_C0138412 m_pcEntropyDecoder->decodeResPredFlag( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth], 0 );413 #endif414 411 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 415 412 return; … … 460 457 #endif 461 458 462 #if H3D_IVRP && !MTK_MDIVRP_C0138463 if( !pcCU->isIntra( uiAbsPartIdx ) )464 {465 m_pcEntropyDecoder->decodeResPredFlag ( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth], 0 );466 }467 #endif468 459 #if LGE_ILLUCOMP_DEPTH_C0046 && HHI_MPI 469 460 } … … 679 670 m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth] ); 680 671 #endif 681 #if MTK_MDIVRP_C0138672 #if H3D_IVRP 682 673 if (pcCU->getMergeFlag(0) && pcCU->getMergeIndex(0)==0 && pcCU->getResPredAvail(0)) 683 674 { … … 691 682 #endif 692 683 693 #if H3D_IVRP && !MTK_MDIVRP_C0138694 if( pcCU->getResPredFlag( 0 ) )695 {696 AOF( pcCU->getResPredAvail( 0 ) );697 Bool bOK = pcCU->getResidualSamples( 0,698 #if QC_SIMPLIFIEDIVRP_M24938699 true,700 #endif701 m_ppcYuvResPred[uiDepth] );702 AOF( bOK );703 #if LG_RESTRICTEDRESPRED_M24766704 Int iPUResiPredShift[4];705 pcCU->getPUResiPredShift(iPUResiPredShift, 0);706 m_ppcYuvReco[uiDepth]->add(iPUResiPredShift, pcCU->getPartitionSize(0), m_ppcYuvResPred[uiDepth], pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) );707 #else708 m_ppcYuvReco[uiDepth]->add( m_ppcYuvResPred[uiDepth], pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) );709 #endif710 }711 #endif712 713 684 // inter recon 714 685 xDecodeInterTexture( pcCU, 0, uiDepth ); … … 722 693 { 723 694 #if H3D_IVRP 724 #if MTK_MDIVRP_C0138725 695 if (pcCU->getMergeFlag(0) && pcCU->getMergeIndex(0)==0 && pcCU->getResPredAvail(0)) 726 #else727 if( pcCU->getResPredFlag( 0 ) )728 #endif729 696 { 730 697 m_ppcYuvReco[uiDepth]->clip( pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) ); -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecEntropy.cpp
r296 r325 108 108 } 109 109 110 #if H3D_IVRP && !MTK_MDIVRP_C0138111 Void112 TDecEntropy::decodeResPredFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU, UInt uiPUIdx )113 {114 Bool bResPredAvailable = false;115 Bool bResPredFlag = false;116 117 Bool bResPredAllowed = (!pcCU->getSlice()->getSPS()->isDepth () );118 bResPredAllowed = bResPredAllowed && ( pcCU->getSlice()->getSPS()->getViewId () );119 bResPredAllowed = bResPredAllowed && ( pcCU->getSlice()->getSPS()->getMultiviewResPredMode() );120 bResPredAllowed = bResPredAllowed && (!pcCU->isIntra ( uiAbsPartIdx ) );121 122 // check if supported123 if( bResPredAllowed )124 {125 bResPredAvailable = pcSubCU->getResidualSamples( uiPUIdx , false );126 }127 128 // read from bitstream129 if( bResPredAvailable )130 {131 #if LG_RESTRICTEDRESPRED_M24766132 Int iPUResiPredShift[4];133 pcCU->getPUResiPredShift(iPUResiPredShift, uiAbsPartIdx);134 if(iPUResiPredShift[0] >= 0 || iPUResiPredShift[1] >= 0 || iPUResiPredShift[2] >= 0 || iPUResiPredShift[3] >= 0 )135 #endif136 m_pcEntropyDecoderIf->parseResPredFlag( pcCU, bResPredFlag, uiAbsPartIdx, uiDepth );137 }138 139 // set data140 pcCU->setResPredAvailSubParts ( bResPredAvailable, uiAbsPartIdx, uiPUIdx, uiDepth );141 pcCU->setResPredFlagSubParts ( bResPredFlag, uiAbsPartIdx, uiPUIdx, uiDepth );142 }143 #endif144 145 110 Void TDecEntropy::decodeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 146 111 { -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecEntropy.h
r296 r325 72 72 virtual Void parseVPS ( TComVPS* pcVPS ) = 0; 73 73 #endif 74 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B006874 #if HHI_MPI || H3D_QTL 75 75 virtual Void parseSPS ( TComSPS* pcSPS, Bool bIsDepth ) = 0; 76 76 #else … … 171 171 #endif 172 172 173 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068173 #if HHI_MPI || H3D_QTL 174 174 Void decodeSPS ( TComSPS* pcSPS, Bool bIsDepth ) { m_pcEntropyDecoderIf->parseSPS(pcSPS, bIsDepth); } 175 175 #else … … 198 198 Void decodeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 199 199 Void decodeMergeIndex ( TComDataCU* pcSubCU, UInt uiPartIdx, UInt uiPartAddr, PartSize eCUMode, UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, UInt uiDepth ); 200 #if H3D_IVRP && !MTK_MDIVRP_C0138201 Void decodeResPredFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU, UInt uiPUIdx );202 #endif203 200 Void decodePredMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 204 201 Void decodePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecSbac.cpp
r296 r325 707 707 UInt uiSymbol; 708 708 709 #if OL_QTLIMIT_PREDCODING_B0068709 #if H3D_QTL 710 710 Bool bParseSplitFlag = true; 711 711 … … 715 715 Bool bIntraSliceDetect = (pcCU->getSlice()->getSliceType() == I_SLICE); 716 716 717 #if HHI_QTLPC_RAU_OFF_C0160718 717 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 719 718 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTLPC()) 720 #else721 if(bDepthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC())722 #endif723 719 { 724 720 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); … … 733 729 DTRACE_CABAC_VL( g_nSymbolCounter++ ) 734 730 DTRACE_CABAC_T( "\tSplitFlag\n" ) 735 #if OL_QTLIMIT_PREDCODING_B0068731 #if H3D_QTL 736 732 } 737 733 else … … 755 751 PartSize eMode; 756 752 757 #if OL_QTLIMIT_PREDCODING_B0068753 #if H3D_QTL 758 754 Bool bParsePartSize = true; 759 755 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); … … 762 758 Bool bIntraSliceDetect = (pcCU->getSlice()->getSliceType() == I_SLICE); 763 759 764 #if HHI_QTLPC_RAU_OFF_C0160765 760 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 766 761 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTLPC()) 767 #else768 if(bDepthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC())769 #endif770 762 { 771 763 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); … … 781 773 if ( pcCU->isIntra( uiAbsPartIdx ) ) 782 774 { 783 #if OL_QTLIMIT_PREDCODING_B0068775 #if H3D_QTL 784 776 if(bParsePartSize) 785 777 { … … 791 783 } 792 784 eMode = uiSymbol ? SIZE_2Nx2N : SIZE_NxN; 793 #if OL_QTLIMIT_PREDCODING_B0068785 #if H3D_QTL 794 786 } 795 787 #endif … … 809 801 else 810 802 { 811 #if OL_QTLIMIT_PREDCODING_B0068803 #if H3D_QTL 812 804 if(bParsePartSize) 813 805 { … … 849 841 } 850 842 } 851 #if OL_QTLIMIT_PREDCODING_B0068843 #if H3D_QTL 852 844 } 853 845 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecSbac.h
r296 r325 88 88 Void parseVPS ( TComVPS* pcVPS ) {} 89 89 #endif 90 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B006890 #if HHI_MPI || H3D_QTL 91 91 Void parseSPS ( TComSPS* pcSPS, Bool bIsDepth ) {} 92 92 #else -
branches/HTM-6.1-Cleanup/source/Lib/TLibDecoder/TDecTop.cpp
r313 r325 1257 1257 TComRPSList* rps = new TComRPSList(); 1258 1258 sps->setRPSList(rps); 1259 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B00681259 #if HHI_MPI || H3D_QTL 1260 1260 m_cEntropyDecoder.decodeSPS( sps, m_isDepth ); 1261 1261 #else -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncCavlc.cpp
r313 r325 442 442 #endif 443 443 #endif 444 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068444 #if HHI_MPI || H3D_QTL 445 445 Void TEncCavlc::codeSPS( TComSPS* pcSPS, Bool bIsDepth ) 446 446 #else … … 632 632 #endif 633 633 634 #if OL_QTLIMIT_PREDCODING_B0068634 #if H3D_QTL 635 635 if( bIsDepth ) 636 636 { -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncCavlc.h
r296 r325 114 114 #endif 115 115 116 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068116 #if HHI_MPI || H3D_QTL 117 117 Void codeSPS ( TComSPS* pcSPS, Bool bIsDepth ); 118 118 #else -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncCfg.h
r296 r325 309 309 #endif 310 310 311 #if OL_QTLIMIT_PREDCODING_B0068311 #if H3D_QTL 312 312 Bool m_bUseQTLPC; 313 313 #endif … … 790 790 #endif 791 791 792 #if OL_QTLIMIT_PREDCODING_B0068792 #if H3D_QTL 793 793 Void setUseQTLPC( Bool b ) { m_bUseQTLPC = b; } 794 794 Bool getUseQTLPC() { return m_bUseQTLPC; } -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncCu.cpp
r296 r325 420 420 TComPic* pcPic = rpcBestCU->getPic(); 421 421 422 #if OL_QTLIMIT_PREDCODING_B0068422 #if H3D_QTL 423 423 TComSPS *sps = pcPic->getSlice(0)->getSPS(); 424 424 TComPic *pcTexture = rpcBestCU->getSlice()->getTexturePic(); … … 427 427 Bool bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType() == I_SLICE); 428 428 429 #if HHI_QTLPC_RAU_OFF_C0160430 429 Bool rapPic = (rpcBestCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || rpcBestCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 431 #endif432 430 433 431 Bool bTry2NxN = true; … … 571 569 rpcTempCU->initEstData( uiDepth, iQP ); 572 570 573 #if OL_QTLIMIT_PREDCODING_B0068571 #if H3D_QTL 574 572 //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU 575 573 576 #if HHI_QTLPC_RAU_OFF_C0160577 574 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTLPC()) 578 #else579 if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC())580 #endif581 575 { 582 576 TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU … … 602 596 { 603 597 #if H3D_IVRP 604 #if MTK_MDIVRP_C0138605 598 Bool bResPredAvailable = false; 606 599 UInt uiResPrdId = 0; 607 #else608 // check availability of residual prediction609 Bool bResPredAvailable = false;610 Bool bResPredAllowed = (!rpcBestCU->getSlice()->getSPS()->isDepth () );611 bResPredAllowed = bResPredAllowed && ( rpcBestCU->getSlice()->getSPS()->getViewId () );612 bResPredAllowed = bResPredAllowed && ( rpcBestCU->getSlice()->getSPS()->getMultiviewResPredMode() );613 if( bResPredAllowed )614 {615 bResPredAvailable = rpcBestCU->getResidualSamples( 0, true , m_ppcResPredTmp[uiDepth] );616 }617 618 for( UInt uiResPrdId = 0; uiResPrdId < ( bResPredAvailable ? 2 : 1 ); uiResPrdId++ )619 #endif620 600 { 621 601 Bool bResPredFlag = ( uiResPrdId > 0 ); … … 648 628 } 649 629 } 650 #if LGE_ILLUCOMP_B0045 _ENCSIMP630 #if LGE_ILLUCOMP_B0045 651 631 if(bICFlag && rpcBestCU->getMergeFlag(0) && !rpcBestCU->getICFlag(0)) 652 632 { … … 661 641 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 662 642 #endif 663 #if FIX_LGE_ILLUCOMP_B0045643 #if LGE_ILLUCOMP_B0045 664 644 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 665 645 #endif … … 684 664 } // != I_SLICE 685 665 686 #if LGE_ILLUCOMP_B0045 _ENCSIMP666 #if LGE_ILLUCOMP_B0045 687 667 bICEnabled = rpcBestCU->getICFlag(0); 688 668 #endif 689 669 690 #if OL_QTLIMIT_PREDCODING_B0068 691 692 #if HHI_QTLPC_RAU_OFF_C0160 670 #if H3D_QTL 671 693 672 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTLPC()) 694 #else695 if(depthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC())696 #endif697 673 { 698 674 bTrySplitDQP = bTrySplit; … … 712 688 bTrySplitDQP = bTrySplit; 713 689 } 714 #if OL_QTLIMIT_PREDCODING_B0068690 #if H3D_QTL 715 691 } 716 692 #endif … … 739 715 { 740 716 #if H3D_IVRP 741 #if MTK_MDIVRP_C0138742 717 Bool bResPredAvailable = false; 743 718 UInt uiResPrdId = 0; 744 #else745 // check availability of residual prediction746 Bool bResPredAvailable = false;747 Bool bResPredAllowed = (!rpcBestCU->getSlice()->getSPS()->isDepth () );748 bResPredAllowed = bResPredAllowed && ( rpcBestCU->getSlice()->getSPS()->getViewId () );749 bResPredAllowed = bResPredAllowed && ( rpcBestCU->getSlice()->getSPS()->getMultiviewResPredMode() );750 if( bResPredAllowed )751 {752 bResPredAvailable = rpcBestCU->getResidualSamples( 0, true, m_ppcResPredTmp[uiDepth] );753 }754 755 for( UInt uiResPrdId = 0; uiResPrdId < ( bResPredAvailable ? 2 : 1 ); uiResPrdId++ )756 #endif757 719 { 758 720 Bool bResPredFlag = ( uiResPrdId > 0 ); … … 772 734 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu) 773 735 { 774 #if OL_QTLIMIT_PREDCODING_B0068//try InterNxN736 #if H3D_QTL //try InterNxN 775 737 if(bTrySplit) 776 738 { … … 785 747 #endif 786 748 rpcTempCU->initEstData( uiDepth, iQP ); 787 #if OL_QTLIMIT_PREDCODING_B0068749 #if H3D_QTL 788 750 } 789 751 #endif … … 793 755 794 756 { // 2NxN, Nx2N 795 #if OL_QTLIMIT_PREDCODING_B0068//try Nx2N757 #if H3D_QTL //try Nx2N 796 758 if(bTryNx2N) 797 759 { … … 802 764 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 803 765 #endif 804 #if FIX_LGE_ILLUCOMP_B0045766 #if LGE_ILLUCOMP_B0045 805 767 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 806 768 #endif … … 816 778 } 817 779 } 818 #if OL_QTLIMIT_PREDCODING_B0068780 #if H3D_QTL 819 781 } 820 782 #endif 821 783 822 #if OL_QTLIMIT_PREDCODING_B0068//try 2NxN784 #if H3D_QTL //try 2NxN 823 785 if(bTry2NxN) 824 786 { … … 829 791 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 830 792 #endif 831 #if FIX_LGE_ILLUCOMP_B0045793 #if LGE_ILLUCOMP_B0045 832 794 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 833 795 #endif … … 843 805 } 844 806 } 845 #if OL_QTLIMIT_PREDCODING_B0068807 #if H3D_QTL 846 808 } 847 809 #endif … … 866 828 if ( bTestAMP_Hor ) 867 829 { 868 #if OL_QTLIMIT_PREDCODING_B0068//try 2NxnU & 2NxnD830 #if H3D_QTL //try 2NxnU & 2NxnD 869 831 if(bTry2NxN) 870 832 { … … 875 837 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 876 838 #endif 877 #if FIX_LGE_ILLUCOMP_B0045839 #if LGE_ILLUCOMP_B0045 878 840 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 879 841 #endif … … 894 856 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 895 857 #endif 896 #if FIX_LGE_ILLUCOMP_B0045858 #if LGE_ILLUCOMP_B0045 897 859 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 898 860 #endif … … 908 870 } 909 871 } 910 #if OL_QTLIMIT_PREDCODING_B0068872 #if H3D_QTL 911 873 } 912 874 #endif … … 915 877 else if ( bTestMergeAMP_Hor ) 916 878 { 917 #if OL_QTLIMIT_PREDCODING_B0068//try 2NxnU & 2NxnD Merge879 #if H3D_QTL //try 2NxnU & 2NxnD Merge 918 880 if(bTry2NxN) 919 881 { … … 924 886 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 925 887 #endif 926 #if FIX_LGE_ILLUCOMP_B0045888 #if LGE_ILLUCOMP_B0045 927 889 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 928 890 #endif … … 943 905 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 944 906 #endif 945 #if FIX_LGE_ILLUCOMP_B0045907 #if LGE_ILLUCOMP_B0045 946 908 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 947 909 #endif … … 957 919 } 958 920 } 959 #if OL_QTLIMIT_PREDCODING_B0068921 #if H3D_QTL 960 922 } 961 923 #endif … … 966 928 if ( bTestAMP_Ver ) 967 929 { 968 #if OL_QTLIMIT_PREDCODING_B0068//try nLx2N & nRx2N930 #if H3D_QTL //try nLx2N & nRx2N 969 931 if(bTryNx2N) 970 932 { … … 975 937 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 976 938 #endif 977 #if FIX_LGE_ILLUCOMP_B0045939 #if LGE_ILLUCOMP_B0045 978 940 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 979 941 #endif … … 994 956 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 995 957 #endif 996 #if FIX_LGE_ILLUCOMP_B0045958 #if LGE_ILLUCOMP_B0045 997 959 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 998 960 #endif … … 1004 966 rpcTempCU->initEstData( uiDepth, iQP ); 1005 967 } 1006 #if OL_QTLIMIT_PREDCODING_B0068968 #if H3D_QTL 1007 969 } 1008 970 #endif … … 1011 973 else if ( bTestMergeAMP_Ver ) 1012 974 { 1013 #if OL_QTLIMIT_PREDCODING_B0068//try nLx2N & nRx2N (Merge)975 #if H3D_QTL //try nLx2N & nRx2N (Merge) 1014 976 if(bTryNx2N) 1015 977 { … … 1020 982 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1021 983 #endif 1022 #if FIX_LGE_ILLUCOMP_B0045984 #if LGE_ILLUCOMP_B0045 1023 985 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 1024 986 #endif … … 1039 1001 rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag ); 1040 1002 #endif 1041 #if FIX_LGE_ILLUCOMP_B00451003 #if LGE_ILLUCOMP_B0045 1042 1004 rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth); 1043 1005 #endif … … 1049 1011 rpcTempCU->initEstData( uiDepth, iQP ); 1050 1012 } 1051 #if OL_QTLIMIT_PREDCODING_B00681013 #if H3D_QTL 1052 1014 } 1053 1015 #endif … … 1143 1105 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth ) 1144 1106 { 1145 #if OL_QTLIMIT_PREDCODING_B0068//Try IntraNxN1107 #if H3D_QTL //Try IntraNxN 1146 1108 if(bTrySplit) 1147 1109 { … … 1155 1117 rpcTempCU->initEstData( uiDepth, iQP ); 1156 1118 } 1157 #if OL_QTLIMIT_PREDCODING_B00681119 #if H3D_QTL 1158 1120 } 1159 1121 #endif … … 1805 1767 ); 1806 1768 #endif 1807 #if H3D_IVRP && !MTK_MDIVRP_C01381808 m_pcEntropyCoder->encodeResPredFlag( pcCU, uiAbsPartIdx, 0 );1809 #endif1810 1769 finishCU(pcCU,uiAbsPartIdx,uiDepth); 1811 1770 return; … … 1839 1798 #endif 1840 1799 ); 1841 #endif1842 #if H3D_IVRP && !MTK_MDIVRP_C01381843 if( !pcCU->isIntra( uiAbsPartIdx ) )1844 {1845 m_pcEntropyCoder->encodeResPredFlag( pcCU, uiAbsPartIdx, 0 );1846 }1847 1800 #endif 1848 1801 #if HHI_MPI … … 1880 1833 Int numValidMergeCand = 0; 1881 1834 1882 #if H3D_IVRP && !MTK_MDIVRP_C01381883 Bool bResPrdAvail = rpcTempCU->getResPredAvail( 0 );1884 Bool bResPrdFlag = rpcTempCU->getResPredFlag ( 0 );1885 #endif1886 1835 #if LGE_ILLUCOMP_B0045 1887 1836 Bool bICFlag = rpcTempCU->getICFlag(0); … … 1916 1865 rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1917 1866 #endif 1918 #if MTK_MDIVRP_C01381867 #if H3D_IVRP 1919 1868 Bool bResPredAvail = rpcTempCU->getResPredAvail(0); 1920 1869 #endif … … 1978 1927 1979 1928 #if H3D_IVRP 1980 #if MTK_MDIVRP_C01381981 1929 rpcTempCU->setResPredAvailSubParts(bResPredAvail, 0, 0, uhDepth); 1982 #else1983 rpcTempCU->setResPredAvailSubParts( bResPrdAvail, 0, 0, uhDepth );1984 rpcTempCU->setResPredFlagSubParts ( bResPrdFlag, 0, 0, uhDepth );1985 #endif1986 1930 #endif 1987 1931 #if LGE_ILLUCOMP_B0045 … … 2001 1945 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 2002 1946 #endif 2003 #if MTK_MDIVRP_C01381947 #if H3D_IVRP 2004 1948 if (uiMergeCand == 0 && rpcTempCU->getResPredAvail(0)) 2005 1949 { … … 2020 1964 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); 2021 1965 #endif 2022 #if MTK_MDIVRP_C01381966 #if H3D_IVRP 2023 1967 if (uiMergeCand == 0 && rpcTempCU->getResPredAvail(0)) 2024 1968 { … … 2120 2064 #endif 2121 2065 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2122 2123 #if H3D_IVRP2124 #if !LG_RESTRICTEDRESPRED_M247662125 if( rpcTempCU->getResPredFlag( 0 ) )2126 { // subtract residual prediction from original in motion search2127 m_ppcOrigYuv[uhDepth]->add( m_ppcResPredTmp [uhDepth], rpcTempCU->getWidth( 0 ), rpcTempCU->getHeight( 0 ), true );2128 }2129 #endif2130 #endif2131 2066 2132 2067 #if AMP_MRG 2133 2068 rpcTempCU->setMergeAMP (true); 2134 2069 #if HHI_INTERVIEW_SKIP 2135 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01382136 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG);2137 #else2138 2070 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG ); 2139 #endif2140 2071 #else 2141 2072 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], false, bUseMRG ); … … 2146 2077 #else 2147 2078 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] ); 2148 #endif2149 #endif2150 2151 #if H3D_IVRP2152 #if !LG_RESTRICTEDRESPRED_M247662153 if( rpcTempCU->getResPredFlag( 0 ) )2154 { // add residual prediction to original again2155 m_ppcOrigYuv[uhDepth]->add( m_ppcResPredTmp [uhDepth], rpcTempCU->getWidth( 0 ), rpcTempCU->getHeight( 0 ) );2156 }2157 2079 #endif 2158 2080 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncEntropy.cpp
r296 r325 122 122 #endif 123 123 124 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068124 #if HHI_MPI || H3D_QTL 125 125 Void TEncEntropy::encodeSPS( TComSPS* pcSPS, Bool bIsDepth ) 126 126 { … … 455 455 } 456 456 457 #if H3D_IVRP && !MTK_MDIVRP_C0138458 Void459 TEncEntropy::encodeResPredFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx, Bool bRD )460 {461 if( bRD )462 {463 uiAbsPartIdx = 0;464 }465 466 // check whether flag is coded467 ROTVS( pcCU->getSlice()->getSPS()->isDepth () );468 ROFVS( pcCU->getSlice()->getSPS()->getViewId () );469 ROFVS( pcCU->getSlice()->getSPS()->getMultiviewResPredMode() );470 ROTVS( pcCU->isIntra ( uiAbsPartIdx ) );471 ROFVS( pcCU->getResPredAvail ( uiAbsPartIdx ) );472 #if LG_RESTRICTEDRESPRED_M24766473 Int iPUResiPredShift[4];474 pcCU->getPUResiPredShift(iPUResiPredShift, uiAbsPartIdx);475 if(iPUResiPredShift[0] >= 0 || iPUResiPredShift[1] >= 0 || iPUResiPredShift[2] >= 0 || iPUResiPredShift[3] >= 0 )476 #endif477 // encode flag478 m_pcEntropyCoderIf->codeResPredFlag( pcCU, uiAbsPartIdx );479 }480 #endif481 457 482 458 /** parse the fixed length code (smaller than one max value) in ALF -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncEntropy.h
r296 r325 80 80 #endif 81 81 82 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B006882 #if HHI_MPI || H3D_QTL 83 83 virtual Void codeSPS ( TComSPS* pcSPS, Bool bIsDepth ) = 0; 84 84 #else … … 222 222 #endif 223 223 // SPS 224 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068224 #if HHI_MPI || H3D_QTL 225 225 Void encodeSPS ( TComSPS* pcSPS, Bool bIsDepth ); 226 226 #else … … 250 250 Void encodeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx ); 251 251 Void encodeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx, Bool bRD = false ); 252 #if H3D_IVRP && !MTK_MDIVRP_C0138253 Void encodeResPredFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiPUIdx, Bool bRD = false );254 #endif255 252 Void encodeAlfCtrlFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 256 253 -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncGOP.cpp
r313 r325 887 887 m_pcEntropyCoder->setBitstream(&nalu.m_Bitstream); 888 888 pcSlice->getSPS()->setNumSubstreams( pcSlice->getPPS()->getNumSubstreams() ); 889 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068889 #if HHI_MPI || H3D_QTL 890 890 m_pcEntropyCoder->encodeSPS(pcSlice->getSPS(), m_pcEncTop->getIsDepth()); 891 891 #else -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncSbac.cpp
r296 r325 376 376 #endif 377 377 378 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068378 #if HHI_MPI || H3D_QTL 379 379 Void TEncSbac::codeSPS( TComSPS* pcSPS, Bool bIsDepth ) 380 380 #else … … 578 578 PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx ); 579 579 580 #if OL_QTLIMIT_PREDCODING_B0068580 #if H3D_QTL 581 581 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS(); 582 582 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); … … 584 584 Bool bIntraSliceDetect = (pcCU->getSlice()->getSliceType() == I_SLICE); 585 585 586 #if HHI_QTLPC_RAU_OFF_C0160587 586 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 588 587 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTLPC() && pcCU->getPic()->getReduceBitsFlag()) 589 #else590 if(bDepthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC() && pcCU->getPic()->getReduceBitsFlag())591 #endif592 588 { 593 589 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); … … 855 851 assert( uiCtx < 3 ); 856 852 857 #if OL_QTLIMIT_PREDCODING_B0068853 #if H3D_QTL 858 854 Bool bCodeSplitFlag = true; 859 855 … … 863 859 Bool bIntraSliceDetect = (pcCU->getSlice()->getSliceType() == I_SLICE); 864 860 865 #if HHI_QTLPC_RAU_OFF_C0160866 861 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 867 862 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTLPC() && pcCU->getPic()->getReduceBitsFlag()) 868 #else869 if(bDepthMapDetect && !bIntraSliceDetect && sps->getUseQTLPC() && pcCU->getPic()->getReduceBitsFlag())870 #endif871 863 { 872 864 TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr()); -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncSbac.h
r296 r325 102 102 #endif 103 103 104 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B0068104 #if HHI_MPI || H3D_QTL 105 105 Void codeSPS ( TComSPS* pcSPS, Bool bIsDepth ); 106 106 #else -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncSearch.cpp
r296 r325 2311 2311 for( UInt uiSDC=0; uiSDC<=uiUseSDC; uiSDC++ ) 2312 2312 { 2313 #if FIX_SDC_ENC_C01432314 2313 for( UInt uiRes = 0; uiRes<=uiSDC; uiRes++ ) 2315 #else2316 for( UInt uiRes = 0; uiRes<=uiUseSDC; uiRes++ )2317 #endif2318 2314 { 2319 2315 #endif … … 2909 2905 * \returns Void 2910 2906 */ 2907 2908 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, 2909 TComYuv* pcYuvOrg, 2910 Int iPUIdx, 2911 UInt& uiInterDir, 2912 TComMvField* pacMvField, 2913 UInt& uiMergeIndex, 2914 UInt& ruiCost 2911 2915 #if CU_BASED_MRG_CAND_LIST 2912 #if LG_RESTRICTEDRESPRED_M24766 2913 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, TComMvField* cMvFieldNeighbours, UChar* uhInterDirNeighbours, Int& numValidMergeCand ) 2914 #else 2915 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, TComMvField* cMvFieldNeighbours, UChar* uhInterDirNeighbours, Int& numValidMergeCand ) 2916 #endif 2917 #else 2918 #if LG_RESTRICTEDRESPRED_M24766 2919 #if MERL_VSP_C0152 || MTK_MDIVRP_C0138 2920 #if !MTK_MDIVRP_C0138 2921 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, Int* iVSPIndexTrue ) 2922 #endif 2923 #if !MERL_VSP_C0152 2924 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost ) 2925 #endif 2926 #if MERL_VSP_C0152 && MTK_MDIVRP_C0138 2927 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost, Int* iVSPIndexTrue ) 2928 #endif 2929 #else 2930 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* rpcResiPredYuv, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost ) 2931 #endif 2932 #else 2933 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, UInt& ruiCost ) 2934 #endif 2935 #endif 2916 , TComMvField* cMvFieldNeighbours, 2917 UChar* uhInterDirNeighbours, 2918 Int& numValidMergeCand 2919 #endif 2920 #if MERL_VSP_C0152 2921 , Int* iVSPIndexTrue 2922 #endif 2923 ) 2936 2924 { 2937 2925 #if !CU_BASED_MRG_CAND_LIST … … 2985 2973 const int maxNumMergeCand = MRG_MAX_NUM_CANDS_SIGNALED + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 ); 2986 2974 #endif 2987 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01382988 Int iPUResiPredShift[4];2989 Int iLastAddResiShift = -1000;2990 #endif2991 2975 ruiCost = MAX_UINT; 2992 2976 for( UInt uiMergeCand = 0; uiMergeCand < numValidMergeCand; ++uiMergeCand ) … … 3014 2998 } 3015 2999 pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 3016 }3017 #endif3018 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383019 Int iAddResiShift;3020 UInt uiPartAddr;3021 Int iRoiWidth, iRoiHeight;3022 3023 pcCU->getPartIndexAndSize( iPUIdx, uiPartAddr, iRoiWidth, iRoiHeight );3024 iAddResiShift = pcCU->getResiPredMode(uiPartAddr);3025 iAddResiShift = (pcCU->getSlice()->getPPS()->getUseWP() || pcCU->getInterDir(uiPartAddr) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1 - iAddResiShift : -1);3026 3027 if( pcCU->getResPredFlag( 0 ))3028 { // subtract residual prediction from original in motion search3029 if(iLastAddResiShift != iAddResiShift)3030 {3031 //add subtracted residual last time3032 if(iLastAddResiShift >= 0)3033 {3034 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = iLastAddResiShift;3035 pcYuvOrg->add(iPUResiPredShift, ePartSize, rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ));3036 }3037 //subtract residual3038 if(iAddResiShift >= 0)3039 {3040 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = iAddResiShift;3041 pcYuvOrg->add(iPUResiPredShift, ePartSize, rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ), true );3042 }3043 iLastAddResiShift = iAddResiShift;3044 }3045 3000 } 3046 3001 #endif … … 3066 3021 } 3067 3022 } 3068 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383069 if( pcCU->getResPredFlag( 0 ) && iLastAddResiShift >= 0)3070 {3071 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = iLastAddResiShift;3072 pcYuvOrg->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ));3073 }3074 #endif3075 3023 } 3076 3024 … … 3085 3033 */ 3086 3034 #if AMP_MRG 3087 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383088 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* rpcResiPredYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG )3089 #else3090 3035 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG) 3091 #endif3092 3036 #else 3093 3037 Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes ) … … 3188 3132 for (Int iNumRef=0; iNumRef < MAX_NUM_REF; iNumRef++) uiCostTempL0[iNumRef] = MAX_UINT; 3189 3133 UInt uiBitsTempL0[MAX_NUM_REF]; 3190 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383191 Int iPUResiPredShift[4] = {0, 0, 0, 0};3192 #endif3193 3134 xGetBlkBits( ePartSize, pcCU->getSlice()->isInterP(), iPartIdx, uiLastMode, uiMbBits); 3194 3135 … … 3209 3150 { 3210 3151 #endif 3211 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383212 Bool bLastResiFlag = false;3213 #endif3214 3152 3215 3153 // Uni-directional prediction … … 3220 3158 for ( Int iRefIdxTemp = 0; iRefIdxTemp < pcCU->getSlice()->getNumRefIdx(eRefPicList); iRefIdxTemp++ ) 3221 3159 { 3222 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383223 if( pcCU->getResPredFlag( 0 ))3224 {3225 if(pcCU->getSlice()->getViewId() == pcCU->getSlice()->getRefViewId(eRefPicList, iRefIdxTemp))3226 { // subtract residual prediction from original in motion search3227 if(!bLastResiFlag)3228 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ), true );3229 bLastResiFlag = true;3230 }3231 else3232 {3233 if(bLastResiFlag)3234 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ));3235 bLastResiFlag = false;3236 }3237 }3238 #endif3239 3160 uiBitsTemp = uiMbBits[iRefList]; 3240 3161 if ( pcCU->getSlice()->getNumRefIdx(eRefPicList) > 1 ) … … 3394 3315 } 3395 3316 } 3396 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383397 if( pcCU->getResPredFlag( 0 ) && bLastResiFlag)3398 { // subtract residual prediction from original in motion search3399 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ));3400 }3401 #endif3402 3317 // Bi-directional prediction 3403 3318 if ( pcCU->getSlice()->isInterB() ) 3404 3319 { 3405 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383406 Int iLastAddResiShift = -1000;3407 #endif3408 3320 cMvBi[0] = cMv[0]; cMvBi[1] = cMv[1]; 3409 3321 iRefIdxBi[0] = iRefIdx[0]; iRefIdxBi[1] = iRefIdx[1]; … … 3499 3411 #else 3500 3412 uiBitsTemp += m_auiMVPIdxCost[aaiMvpIdxBi[iRefList][iRefIdxTemp]][AMVP_MAX_NUM_CANDS]; 3501 #endif3502 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383503 Int iAddResiShift = -1, iPredFrom = 0;3504 Int iBestRefIdx = pcCU->getCUMvField(eRefPicList == REF_PIC_LIST_0 ? REF_PIC_LIST_1 : REF_PIC_LIST_0)->getRefIdx(uiPartAddr);3505 3506 iPredFrom = iBestRefIdx >= 0 ? 3 : 1;3507 if(iBestRefIdx >= 0 && pcCU->getSlice()->getViewId() == pcCU->getSlice()->getRefViewId(eRefPicList == REF_PIC_LIST_0 ? REF_PIC_LIST_1 : REF_PIC_LIST_0, iBestRefIdx))3508 iAddResiShift++;3509 if(pcCU->getSlice()->getViewId() == pcCU->getSlice()->getRefViewId(eRefPicList, iRefIdxTemp))3510 iAddResiShift++;3511 iAddResiShift = (pcCU->getSlice()->getPPS()->getUseWP() || iPredFrom != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);3512 3513 if( pcCU->getResPredFlag( 0 ) )3514 {3515 if(iLastAddResiShift != iAddResiShift)3516 {3517 //add substracted residual last time3518 if(iLastAddResiShift >= 0 )3519 {3520 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = iLastAddResiShift;3521 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ));3522 }3523 //substract residual3524 if(iAddResiShift >= 0)3525 {3526 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = iAddResiShift;3527 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ), true );3528 }3529 iLastAddResiShift = iAddResiShift;3530 }3531 }3532 3413 #endif 3533 3414 // call ME … … 3581 3462 } 3582 3463 } // for loop-iter 3583 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383584 if( pcCU->getResPredFlag( 0 ) && iLastAddResiShift >= 0)3585 {3586 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = iLastAddResiShift;3587 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ));3588 }3589 #endif3590 3464 } // if (B_SLICE) 3591 3465 #if ZERO_MVD_EST … … 3796 3670 if (bTestNormalMC) 3797 3671 { 3798 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383799 Int iAddResiShift = pcCU->getResiPredMode(uiPartAddr);3800 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = \3801 (pcCU->getSlice()->getPPS()->getUseWP() || pcCU->getInterDir(uiPartAddr) != 3)? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);3802 if(pcCU->getResPredFlag(0) && iAddResiShift >= 0)3803 {3804 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ), true);3805 }3806 #endif3807 3672 xGetInterPredictionError( pcCU, pcOrgYuv, iPartIdx, uiMEError, m_pcEncCfg->getUseHADME() ); 3808 3673 uiMECost = uiMEError + m_pcRdCost->getCost( uiMEBits ); 3809 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01383810 if(pcCU->getResPredFlag(0) && iAddResiShift >= 0)3811 {3812 pcOrgYuv->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcResiPredYuv, pcCU->getWidth( 0 ), pcCU->getHeight( 0 ));3813 }3814 #endif3815 3674 } 3816 3675 #else … … 3827 3686 // find Merge result 3828 3687 UInt uiMRGCost = MAX_UINT; 3688 3689 3690 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost 3829 3691 #if CU_BASED_MRG_CAND_LIST 3830 #if LG_RESTRICTEDRESPRED_M24766 3831 xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 3832 #else 3833 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 3834 #endif 3835 #else 3836 #if LG_RESTRICTEDRESPRED_M24766 3837 #if MERL_VSP_C0152 || MTK_MDIVRP_C0138 3838 3839 #if !MTK_MDIVRP_C0138 3840 xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, iVSPIndexTrue ); 3841 #endif 3842 3843 #if !MERL_VSP_C0152 3844 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost ); 3845 #endif 3846 3847 #if MERL_VSP_C0152 && MTK_MDIVRP_C0138 3848 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, iVSPIndexTrue ); 3849 #endif 3850 3851 #else 3852 xMergeEstimation( pcCU, pcOrgYuv, rpcResiPredYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost ); 3853 #endif 3854 3855 3856 #else 3857 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost ); 3858 #endif 3859 #endif 3692 , cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, 3693 #endif 3694 #if MERL_VSP_C0152 3695 , iVSPIndexTrue 3696 #endif 3697 ); 3698 3860 3699 if ( uiMRGCost < uiMECost ) 3861 3700 { … … 4775 4614 UInt uiWidth = pcCU->getWidth ( 0 ); 4776 4615 UInt uiHeight = pcCU->getHeight( 0 ); 4777 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01384778 Int iPUResiPredShift[4];4779 #endif4780 4616 // No residual coding : SKIP mode 4781 4617 if ( ePredMode == MODE_SKIP && bSkipRes ) … … 4785 4621 pcYuvPred->copyToPartYuv( rpcYuvRec, 0 ); 4786 4622 4787 #if MTK_MDIVRP_C01384623 #if H3D_IVRP 4788 4624 if (pcCU->getMergeFlag(0) && pcCU->getMergeIndex(0)==0 && pcCU->getResPredAvail(0)) 4789 4625 { 4790 4626 rpcYuvRec->clip( uiWidth, uiHeight ); 4791 4627 } 4792 #else4793 #if H3D_IVRP4794 // add residual prediction4795 if( pcCU->getResPredFlag( 0 ) )4796 {4797 #if LG_RESTRICTEDRESPRED_M247664798 pcCU->getPUResiPredShift(iPUResiPredShift, 0);4799 rpcYuvRec->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcYuvResPrd, uiWidth, uiHeight );4800 #else4801 rpcYuvRec->add( rpcYuvResPrd, uiWidth, uiHeight );4802 #endif4803 rpcYuvRec->clip( uiWidth, uiHeight );4804 }4805 #endif4806 4628 #endif 4807 4629 … … 4853 4675 ); 4854 4676 #endif 4855 #if H3D_IVRP && !MTK_MDIVRP_C01384856 m_pcEntropyCoder->encodeResPredFlag( pcCU, 0, 0, true );4857 #endif4858 4677 #if HHI_MPI 4859 4678 } … … 4922 4741 else 4923 4742 { 4924 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C01384925 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = 0;4926 rpcYuvResi->subtract(iPUResiPredShift, pcCU->getPartitionSize(0), pcYuvOrg, pcYuvPred, 0, uiWidth );4927 #else4928 4743 rpcYuvResi->subtract( pcYuvOrg, pcYuvPred, 0, uiWidth ); 4929 #endif4930 #if H3D_IVRP && !MTK_MDIVRP_C01384931 // subtract residual prediction4932 if( pcCU->getResPredFlag( 0 ) )4933 {4934 #if LG_RESTRICTEDRESPRED_M247664935 pcCU->getPUResiPredShift(iPUResiPredShift, 0);4936 rpcYuvResi->subtract(iPUResiPredShift, pcCU->getPartitionSize(0), rpcYuvResi, rpcYuvResPrd, 0, uiWidth );4937 #else4938 rpcYuvResi->subtract( rpcYuvResi, rpcYuvResPrd, 0, uiWidth );4939 #endif4940 }4941 #endif4942 4744 } 4943 4745 #else … … 5134 4936 #endif 5135 4937 } 5136 #if H3D_IVRP && !MTK_MDIVRP_C01385137 // add residual prediction5138 if( pcCU->getResPredFlag( 0 ) )5139 {5140 pcYuvPred->copyToPartYuv( rpcYuvRec, 0 );5141 #if LG_RESTRICTEDRESPRED_M247665142 pcCU->getPUResiPredShift(iPUResiPredShift, 0);5143 rpcYuvRec->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcYuvResPrd, uiWidth, uiHeight );5144 iPUResiPredShift[0] = iPUResiPredShift[1] = iPUResiPredShift[2] = iPUResiPredShift[3] = 0;5145 rpcYuvRec->add(iPUResiPredShift, pcCU->getPartitionSize(0), rpcYuvResiBest, uiWidth, uiHeight );5146 #else5147 rpcYuvRec->add( rpcYuvResPrd, uiWidth, uiHeight );5148 rpcYuvRec->add( rpcYuvResiBest, uiWidth, uiHeight );5149 #endif5150 rpcYuvRec->clip( uiWidth, uiHeight );5151 }5152 else5153 #endif5154 4938 rpcYuvRec->addClip ( pcYuvPred, rpcYuvResiBest, 0, uiWidth ); 5155 4939 … … 6170 5954 ); 6171 5955 #endif 6172 #if H3D_IVRP && !MTK_MDIVRP_C01386173 m_pcEntropyCoder->encodeResPredFlag( pcCU, 0, 0, true );6174 #endif6175 5956 ruiBits += m_pcEntropyCoder->getNumberOfWrittenBits(); 6176 5957 } … … 6196 5977 #endif 6197 5978 ); 6198 #endif6199 #if H3D_IVRP && !MTK_MDIVRP_C01386200 m_pcEntropyCoder->encodeResPredFlag( pcCU, 0, 0, true );6201 5979 #endif 6202 5980 #if HHI_MPI … … 6534 6312 Int iFullDeltaDC2 = riDeltaDC2; 6535 6313 6536 #if HHI_DMM_DELTADC_Q1_C00346537 #else6538 xDeltaDCQuantScaleDown( pcCU, iFullDeltaDC1 );6539 xDeltaDCQuantScaleDown( pcCU, iFullDeltaDC2 );6540 #endif6541 6542 6314 Dist uiBestDist = RDO_DIST_MAX; 6543 6315 UInt uiBestQStepDC1 = 0; … … 6551 6323 uiDeltaDC2Max += (uiDeltaDC2Max>>1); 6552 6324 6553 #if HHI_DMM_DELTADC_Q1_C00346554 6325 // limit search range to [0, IBDI_MAX] 6555 6326 if( iFullDeltaDC1 < 0 && uiDeltaDC1Max > abs(iPredDC1) ) { uiDeltaDC1Max = abs(iPredDC1); } … … 6698 6469 } 6699 6470 } 6700 #else 6701 for( UInt uiQStepDC1 = 1; uiQStepDC1 <= uiDeltaDC1Max; uiQStepDC1++ ) 6702 { 6703 Int iLevelDeltaDC1 = (Int)(uiQStepDC1) * (Int)(( iFullDeltaDC1 < 0 ) ? -1 : 1); 6704 xDeltaDCQuantScaleUp( pcCU, iLevelDeltaDC1 ); 6705 6706 Int iTestDC1 = Clip( iPredDC1 + iLevelDeltaDC1 ); 6707 for( UInt uiQStepDC2 = 1; uiQStepDC2 <= uiDeltaDC2Max; uiQStepDC2++ ) 6708 { 6709 Int iLevelDeltaDC2 = (Int)(uiQStepDC2) * (Int)(( iFullDeltaDC2 < 0 ) ? -1 : 1); 6710 xDeltaDCQuantScaleUp( pcCU, iLevelDeltaDC2 ); 6711 6712 Int iTestDC2 = Clip( iPredDC2 + iLevelDeltaDC2 ); 6713 6714 assignWedgeDCs2Pred( pcWedgelet, piPredic, uiStride, iTestDC1, iTestDC2 ); 6715 6716 Dist uiActDist = RDO_DIST_MAX; 6717 #if SAIT_VSO_EST_A0033 6718 if ( m_pcRdCost->getUseEstimatedVSD() ) 6719 { 6720 TComPicYuv* pcVirRec = m_pcRdCost->getVideoRecPicYuv(); 6721 TComPicYuv* pcVirOrg = m_pcRdCost->getDepthPicYuv(); 6722 uiActDist = m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirRec->getStride(), uiWidth, uiHeight ); 6723 #if LGE_WVSO_A0119 6724 if ( m_pcRdCost->getUseWVSO() ) 6725 { 6726 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6727 Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight(); 6728 Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD ); 6729 uiActDist = (iDWeight * iD + iVSDWeight * (Dist) uiActDist) / ( iDWeight + iVSDWeight); 6730 } 6731 #endif // LGE_WVSO_A0119 6732 } 6733 else 6734 #endif // SAIT_VSO_EST_A0033 6735 { 6736 uiActDist = m_pcRdCost->getDistVS( pcCU, 0, piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, 0 ); 6737 #if LGE_WVSO_A0119 6738 if ( m_pcRdCost->getUseWVSO() ) 6739 { 6740 Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight(); 6741 Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight(); 6742 Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD ); 6743 uiActDist = (iDWeight * iD + iVSOWeight * (Dist) uiActDist) / ( iDWeight + iVSOWeight); 6744 } 6745 #endif // LGE_WVSO_A0119 6746 } 6747 6748 if( uiActDist < uiBestDist || uiBestDist == RDO_DIST_MAX ) 6749 { 6750 uiBestDist = uiActDist; 6751 uiBestQStepDC1 = uiQStepDC1; 6752 uiBestQStepDC2 = uiQStepDC2; 6753 } 6754 } 6755 } 6756 #endif 6471 6757 6472 iFullDeltaDC1 = (Int)(uiBestQStepDC1) * (Int)(( iFullDeltaDC1 < 0 ) ? -1 : 1); 6758 6473 iFullDeltaDC2 = (Int)(uiBestQStepDC2) * (Int)(( iFullDeltaDC2 < 0 ) ? -1 : 1); 6759 #if HHI_DMM_DELTADC_Q1_C0034 6760 #else 6761 xDeltaDCQuantScaleUp( pcCU, iFullDeltaDC1 ); 6762 xDeltaDCQuantScaleUp( pcCU, iFullDeltaDC2 ); 6763 #endif 6474 6764 6475 riDeltaDC1 = iFullDeltaDC1; 6765 6476 riDeltaDC2 = iFullDeltaDC2; … … 6767 6478 #endif 6768 6479 6769 #if HHI_DMM_DELTADC_Q1_C00346770 #else6771 xDeltaDCQuantScaleDown( pcCU, riDeltaDC1 );6772 xDeltaDCQuantScaleDown( pcCU, riDeltaDC2 );6773 #endif6774 6480 } 6775 6481 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncSearch.h
r296 r325 196 196 Void predInterSearch ( TComDataCU* pcCU, 197 197 TComYuv* pcOrgYuv, 198 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138199 TComYuv* rpcResiPredYuv,200 #endif201 198 TComYuv*& rpcPredYuv, 202 199 TComYuv*& rpcResiYuv, … … 501 498 Void xMergeEstimation ( TComDataCU* pcCU, 502 499 TComYuv* pcYuvOrg, 503 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138504 TComYuv* rpcResiPredYuv,505 #endif506 500 Int iPartIdx, 507 501 UInt& uiInterDir, -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncSlice.cpp
r313 r325 1193 1193 } 1194 1194 1195 #if OL_QTLIMIT_PREDCODING_B00681195 #if H3D_QTL 1196 1196 rpcPic->setReduceBitsFlag(true); 1197 1197 #endif … … 1235 1235 } 1236 1236 1237 #if OL_QTLIMIT_PREDCODING_B00681237 #if H3D_QTL 1238 1238 rpcPic->setReduceBitsFlag(false); 1239 1239 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibEncoder/TEncTop.cpp
r313 r325 703 703 #endif 704 704 705 #if OL_QTLIMIT_PREDCODING_B0068705 #if H3D_QTL 706 706 m_cSPS.setUseQTLPC( m_bUseQTLPC ); 707 707 #endif -
branches/HTM-6.1-Cleanup/source/Lib/TLibExtractor/TExtrTop.cpp
r296 r325 79 79 TComRPSList cRPS; 80 80 cSPS.setRPSList( &cRPS ); 81 #if HHI_MPI || OL_QTLIMIT_PREDCODING_B006881 #if HHI_MPI || H3D_QTL 82 82 #if VIDYO_VPS_INTEGRATION 83 83 m_cEntropyDecoder.decodeSPS( &cSPS, m_cVPS.getDepthFlag(uiLayerId) );
Note: See TracChangeset for help on using the changeset viewer.