Changeset 325 in 3DVCSoftware for branches/HTM-6.1-Cleanup/source/Lib/TLibCommon
- Timestamp:
- 16 Apr 2013, 14:11:23 (12 years ago)
- Location:
- branches/HTM-6.1-Cleanup/source/Lib/TLibCommon
- Files:
-
- 17 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
Note: See TracChangeset for help on using the changeset viewer.