Changeset 237 in 3DVCSoftware
- Timestamp:
- 28 Jan 2013, 22:13:59 (12 years ago)
- Location:
- branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp
r210 r237 3706 3706 Int iPdmDir[2] = {0, 0}; 3707 3707 #endif 3708 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 3709 getUnifiedMvPredCan(uiPUIdx, REF_PIC_LIST_0, 0, aiPdmRefIdx, acPdmMv, &cDisInfo, iPdmDir, true); 3710 Int iPdmInterDir; 3711 #else 3708 3712 Int iPdmInterDir = cDisInfo.iN==0? 0:getPdmMergeCandidateDisCan ( uiPUIdx, aiPdmRefIdx, acPdmMv, &cDisInfo 3709 3713 #if QC_MRG_CANS_B0048 … … 3711 3715 #endif 3712 3716 ); 3717 #endif 3713 3718 #else 3714 3719 Int iPdmInterDir = getPdmMergeCandidate( uiPUIdx, aiPdmRefIdx, acPdmMv ); … … 4409 4414 UInt uiCurLCUIdx = getAddr(); 4410 4415 xDeriveCenterIdx( eCUMode, uiPUIdx, uiPartIdxCenter ); 4411 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_0, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx ); 4416 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_0, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx 4417 #if QC_TMVP_MRG_REFIDX_C0047 4418 , 1 4419 #endif 4420 ); 4412 4421 if( bExistMV == false ) 4413 4422 { 4414 bExistMV = xGetColMVP( REF_PIC_LIST_0, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx ); 4423 bExistMV = xGetColMVP( REF_PIC_LIST_0, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx 4424 #if QC_TMVP_MRG_REFIDX_C0047 4425 , 1 4426 #endif 4427 ); 4415 4428 } 4416 4429 if( bExistMV ) … … 4427 4440 iRefIdx = 0; 4428 4441 #endif 4429 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_1, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx); 4442 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_1, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx 4443 #if QC_TMVP_MRG_REFIDX_C0047 4444 , 1 4445 #endif 4446 ); 4430 4447 if( bExistMV == false ) 4431 4448 { 4432 bExistMV = xGetColMVP( REF_PIC_LIST_1, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx ); 4449 bExistMV = xGetColMVP( REF_PIC_LIST_1, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx 4450 #if QC_TMVP_MRG_REFIDX_C0047 4451 , 1 4452 #endif 4453 ); 4433 4454 } 4434 4455 if( bExistMV ) … … 5921 5942 cDisInfo.m_aVIdxCan[0] = 0; 5922 5943 } 5944 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 5945 Int paiPdmRefIdx[4] = {-1, -1, -1, -1}; 5946 Int iPdmDir[4] = {-1, -1, -1, -1}; 5947 TComMv cPdmMvPred[2]; 5948 cPdmMvPred[0].m_bDvMcp = cPdmMvPred[1].m_bDvMcp = false; 5949 if(getUnifiedMvPredCan(uiPartIdx, eRefPicList, iRefIdx, paiPdmRefIdx, cPdmMvPred, &cDisInfo, iPdmDir, false)) 5950 #else 5923 5951 TComMv cPdmMvPred; 5924 5952 #if QC_MULTI_DIS_CAN_A0097 … … 5927 5955 if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) ) 5928 5956 #endif 5957 #endif 5958 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 5959 { 5960 clipMv( cPdmMvPred[0] ); 5961 pInfo->m_acMvCand[0] = cPdmMvPred[0]; 5962 } 5963 else 5964 { 5965 pInfo->m_acMvCand[0].set(0,0); 5966 } 5967 #else 5929 5968 { 5930 5969 clipMv( cPdmMvPred ); … … 5935 5974 pInfo->m_acMvCand[0].set(0,0); 5936 5975 } 5976 #endif 5937 5977 } 5938 5978 } … … 6784 6824 * \returns Bool 6785 6825 */ 6786 Bool TComDataCU::xGetColMVP( RefPicList eRefPicList, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int& riRefIdx ) 6826 Bool TComDataCU::xGetColMVP( RefPicList eRefPicList, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int& riRefIdx 6827 #if QC_TMVP_MRG_REFIDX_C0047 6828 , 6829 Bool bMRG 6830 #endif 6831 ) 6787 6832 { 6788 6833 UInt uiAbsPartAddr = uiPartUnitIdx; … … 6868 6913 if(bIsCurrRefLongTerm != bIsColRefLongTerm) 6869 6914 { 6915 #if QC_TMVP_MRG_REFIDX_C0047 6916 cColMv = pColCU->getCUMvField(eColRefPicList)->getMv(uiAbsPartAddr); 6917 iCurrRefPOC = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getPOC(); 6918 if(bMRG ) 6919 { 6920 Int iUpdRefIdx = m_pcSlice->getNewRefIdx(eRefPicList); 6921 if(iUpdRefIdx > 0 ) 6922 { 6923 riRefIdx = iUpdRefIdx; 6924 bIsCurrRefLongTerm = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getIsLongTerm(); 6925 iCurrRefPOC = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getPOC(); 6926 #if SONY_COLPIC_AVAILABILITY 6927 iCurrRefViewOrderIdx = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewOrderIdx(); 6928 #endif 6929 } 6930 else 6931 return false; 6932 }else 6933 { 6934 #endif 6870 6935 assert( ((iColPOC == iColRefPOC)&&(iCurrPOC != iCurrRefPOC))||((iColPOC != iColRefPOC)&&(iCurrPOC == iCurrRefPOC))); 6871 6936 return false; 6937 #if QC_TMVP_MRG_REFIDX_C0047 6938 } 6939 #endif 6872 6940 } 6873 6941 #endif … … 7899 7967 } 7900 7968 #else 7969 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 7970 Bool 7971 TComDataCU::getUnifiedMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ) 7972 { 7973 TComDepthMapGenerator* pcDepthMapGenerator = m_pcSlice->getSPS()->getDepthMapGenerator(); 7974 ROFRS( pcDepthMapGenerator, false ); 7975 if (pDInfo->iN > 0 && pcDepthMapGenerator->getPdmCandidate(this, uiPartIdx, eRefPicList, iRefIdx, paiPdmRefIdx, pacPdmMv, pDInfo, iPdm, bMerge)) 7976 return true; 7977 return false; 7978 } 7979 #else 7901 7980 Int 7902 7981 TComDataCU::getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo … … 7924 8003 } 7925 8004 #endif 7926 8005 #endif 7927 8006 7928 8007 Bool -
branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.h
r189 r237 281 281 282 282 Void deriveRightBottomIdx ( PartSize eCUMode, UInt uiPartIdx, UInt& ruiPartIdxRB ); 283 Bool xGetColMVP( RefPicList eRefPicList, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int& riRefIdx ); 283 Bool xGetColMVP( RefPicList eRefPicList, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int& riRefIdx 284 #if QC_TMVP_MRG_REFIDX_C0047 285 , 286 Bool bMRG = 0 287 #endif 288 ); 284 289 #if QC_MULTI_DIS_CAN_A0097 285 290 Bool xGetColDisMV( RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx ); … … 544 549 Bool getPdmMvPred( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, Bool bMerge = false ); 545 550 #else 551 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 552 Bool getUnifiedMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ); 553 #else 546 554 Bool getPdmMvPredDisCan( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge = false ); 547 555 Int getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo … … 550 558 #endif 551 559 ); 560 #endif 552 561 Void getDisMvpCand ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo ); 553 562 #if LGE_DVMCP_A0126 -
branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TComDepthMapGenerator.cpp
r189 r237 605 605 606 606 #if HHI_INTER_VIEW_MOTION_PRED 607 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 608 Bool 609 TComDepthMapGenerator::getPdmCandidate(TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ) 610 { 611 AOF ( m_bCreated && m_bInit ); 612 TComSlice* pcSlice = pcCU->getSlice (); 613 TComSPS* pcSPS = pcSlice->getSPS(); 614 AOF ( pcSPS->getViewId() == m_uiCurrViewId ); 615 616 TComPic* pcRefPic = pcSlice->getRefPic( eRefPicList, iRefIdx ); 617 UInt uiRefViewId = pcRefPic->getSPS()->getViewId(); 618 Bool bInterview = ( uiRefViewId < m_uiCurrViewId ); 619 Bool bPdmIView = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_IVIEW ) == PDM_USE_FOR_IVIEW ); 620 Bool bPdmInter = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_INTER ) == PDM_USE_FOR_INTER ); 621 Bool bPdmMerge = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE ); 622 if(!bMerge) 623 { 624 ROTRS( ( bInterview && !bMerge ) && !bPdmIView, false ); 625 ROTRS( (!bInterview && !bMerge ) && !bPdmInter, false ); 626 ROTRS( bMerge && !bPdmMerge, false ); 627 } 628 else 629 ROTRS( !bPdmMerge, 0 ); 630 631 #if QC_MRG_CANS_B0048 632 Bool abPdmAvailable[4] = {false, false, false, false}; 633 #else 634 Bool abPdmAvailable[2] = {false,false}; 635 #endif 636 637 Int iValid = 0; 638 Int iViewId = 0; 639 for( UInt uiBId = 0; uiBId < m_uiCurrViewId && iValid==0; uiBId++ ) 640 { 641 UInt uiBaseId = m_auiBaseIdList[ uiBId ]; 642 TComPic* pcBasePic = m_pcAUPicAccess->getPic( uiBaseId ); 643 for( Int iRefListId = 0; iRefListId < 2 && iValid==0; iRefListId++ ) 644 { 645 RefPicList eRefPicListTest = RefPicList( iRefListId ); 646 Int iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ; 647 for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ ) 648 { 649 if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC() 650 && pcBasePic->getViewId() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewId()) 651 { 652 iValid=1; 653 iViewId = uiBaseId; 654 break; 655 } 656 } 657 } 658 } 659 if (iValid == 0) 660 return false; 661 662 //--- get base CU/PU and check prediction mode --- 663 TComPic* pcBasePic = m_pcAUPicAccess->getPic( iViewId ); 664 TComPicYuv* pcBaseRec = pcBasePic->getPicYuvRec (); 665 if(bMerge || !bInterview) 666 { 667 #if QC_MULTI_DIS_CAN_A0097 668 Int iCurrPosX, iCurrPosY; 669 UInt uiPartAddr; 670 Int iWidth; 671 Int iHeight; 672 673 pcCU->getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight ); 674 pcBaseRec->getTopLeftSamplePos( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY ); 675 iCurrPosX += ( ( iWidth - 1 ) >> 1 ); 676 iCurrPosY += ( ( iHeight - 1 ) >> 1 ); 677 678 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (pDInfo->m_acMvCand[0].getHor() + 2 ) >> 2 ) ); 679 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (pDInfo->m_acMvCand[0].getVer() + 2 ) >> 2 )); 680 Int iBaseCUAddr; 681 Int iBaseAbsPartIdx; 682 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx ); 683 #else 684 Int iPrdDepth, iCurrPosX, iCurrPosY; 685 Bool bAvailable = xGetPredDepth( pcCU, uiPartIdx, iPrdDepth, &iCurrPosX, &iCurrPosY ); 686 AOF( bAvailable ); 687 TComPicYuv* pcBasePdm = pcBasePic->getPredDepthMap(); 688 Int iDisparity = xGetDisparityFromVirtDepth( iViewId, iPrdDepth ); 689 Int iShiftX = m_uiSubSampExpX + 2; 690 Int iAddX = ( 1 << iShiftX ) >> 1; 691 Int iBasePosX = Clip3( 0, pcBasePdm->getWidth () - 1, iCurrPosX + ( ( iDisparity + iAddX ) >> iShiftX ) ); 692 Int iBasePosY = Clip3( 0, pcBasePdm->getHeight() - 1, iCurrPosY ); 693 Int iBaseCUAddr; 694 Int iBaseAbsPartIdx; 695 pcBaseRec->getCUAddrAndPartIdx( iBasePosX<< m_uiSubSampExpX , iBasePosY<< m_uiSubSampExpY , iBaseCUAddr, iBaseAbsPartIdx ); 696 #endif 697 TComDataCU* pcBaseCU = pcBasePic->getCU( iBaseCUAddr ); 698 if( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTER || pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_SKIP ) 699 { 700 for( UInt uiCurrRefListId = 0; uiCurrRefListId < 2; uiCurrRefListId++ ) 701 { 702 RefPicList eCurrRefPicList = RefPicList( uiCurrRefListId ); 703 if(!bMerge && eCurrRefPicList != eRefPicList) 704 continue; 705 Bool bLoop_stop = false; 706 for(Int iLoop = 0; iLoop < 2 && !bLoop_stop; ++iLoop) 707 { 708 RefPicList eBaseRefPicList = (iLoop ==1)? RefPicList( 1 - uiCurrRefListId ) : RefPicList( uiCurrRefListId ); 709 TComMvField cBaseMvField; 710 pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField ); 711 Int iBaseRefIdx = cBaseMvField.getRefIdx(); 712 if (iBaseRefIdx >= 0) 713 { 714 Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx); 715 if (iBaseRefPOC != pcSlice->getPOC()) 716 { 717 for (Int iPdmRefIdx = (bMerge?0: iRefIdx); iPdmRefIdx < (bMerge? pcSlice->getNumRefIdx( eCurrRefPicList ): (iRefIdx+1)); iPdmRefIdx++) 718 { 719 if (iBaseRefPOC == pcSlice->getRefPOC(eCurrRefPicList, iPdmRefIdx)) 720 { 721 abPdmAvailable[ uiCurrRefListId ] = true; 722 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer()); 723 #if LGE_DVMCP_A0126 724 if( bMerge ) 725 { 726 cMv.m_bDvMcp = true; 727 cMv.m_iDvMcpDispX = pDInfo->m_acMvCand[0].getHor(); 728 } 729 #endif 730 pcCU->clipMv( cMv ); 731 if(bMerge) 732 { 733 paiPdmRefIdx [ uiCurrRefListId ] = iPdmRefIdx; 734 pacPdmMv [ uiCurrRefListId ] = cMv; 735 bLoop_stop = true; 736 break; 737 }else 738 { 739 pacPdmMv [0] = cMv; 740 return true; 741 } 742 } 743 } 744 } 745 } 746 } 747 } 748 } 749 if( bMerge ) 750 iPdm[0] = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 ); 751 } 752 if(bMerge || bInterview) 753 { 754 for( Int iRefListId = 0; iRefListId < 2 ; iRefListId++ ) 755 { 756 RefPicList eRefPicListDMV = RefPicList( iRefListId ); 757 Int iNumRefPics = pcSlice->getNumRefIdx( eRefPicListDMV ); 758 for( Int iPdmRefIdx = (bMerge ? 0: iRefIdx); iPdmRefIdx < (bMerge ? iNumRefPics: (iRefIdx+1) ); iPdmRefIdx++ ) 759 { 760 if( pcSlice->getRefPOC( eRefPicListDMV, iPdmRefIdx ) == pcSlice->getPOC()) 761 { 762 #if QC_MRG_CANS_B0048 763 abPdmAvailable[ iRefListId+2 ] = true; 764 paiPdmRefIdx [ iRefListId+2 ] = iPdmRefIdx; 765 #else 766 abPdmAvailable[ iRefListId ] = true; 767 paiPdmRefIdx [ iRefListId ] = iPdmRefIdx; 768 #endif 769 #if QC_MULTI_DIS_CAN_A0097 770 TComMv cMv = pDInfo->m_acMvCand[0]; 771 cMv.setVer(0); 772 #else 773 TComMv cMv(iDisparity, 0); 774 #endif 775 pcCU->clipMv( cMv ); 776 #if QC_MRG_CANS_B0048 777 pacPdmMv [ iRefListId + 2] = cMv; 778 #else 779 pacPdmMv [ iRefListId ] = cMv; 780 #endif 781 if(bMerge) 782 break; 783 else 784 { 785 pacPdmMv [0] = cMv; 786 return true; 787 } 788 } 789 } 790 } 791 #if QC_MRG_CANS_B0048 792 iPdm[1] = ( abPdmAvailable[2] ? 1 : 0 ) + ( abPdmAvailable[3] ? 2 : 0 ); 793 #else 794 iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 ) ; 795 } 796 #endif 797 } 798 return false; 799 } 800 #else 607 801 #if QC_MULTI_DIS_CAN_A0097 608 802 Int … … 1014 1208 return false; 1015 1209 } 1210 #endif 1016 1211 #endif 1017 1212 -
branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TComDepthMapGenerator.h
r210 r237 152 152 #if HHI_INTER_VIEW_MOTION_PRED 153 153 #if QC_MULTI_DIS_CAN_A0097 154 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051 155 Bool getPdmCandidate ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ); 156 #else 154 157 Int getPdmMergeCandidate ( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo 155 158 #if QC_MRG_CANS_B0048 … … 160 163 Bool getPdmMvPredDisCan ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge ); 161 164 Bool getDisCanPdmMvPred ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge ); 165 #endif 162 166 #else 163 167 Int getPdmMergeCandidate ( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv ); -
branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TComSlice.cpp
r210 r237 199 199 m_numEntryPointOffsets = 0; 200 200 #endif 201 #if QC_TMVP_MRG_REFIDX_C0047 202 m_aiNewRefIdx[0] = -1; 203 m_aiNewRefIdx[1] = -1; 204 #endif 201 205 } 202 206 … … 419 423 } 420 424 } 425 #if QC_TMVP_MRG_REFIDX_C0047 426 Int iCurrPOC = this->getPOC(); 427 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )//just to get one updated ref idx for merge in each L0/L1 direction, if it is not avaialbe, it is still -1 428 { 429 if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0) 430 continue; 431 432 Bool bZeroIdxInterViewFlag = ( this->getRefPic(RefPicList(uiRefListIdx), 0)->getPOC() == iCurrPOC ) ? true : false; 433 for(Int i = 1; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ ) 434 { 435 if ( (bZeroIdxInterViewFlag && this->getRefPic(RefPicList(uiRefListIdx), i)->getPOC() != iCurrPOC ) || 436 (!bZeroIdxInterViewFlag && this->getRefPic(RefPicList(uiRefListIdx), i)->getPOC() == iCurrPOC ) ) 437 { 438 this->setNewRefIdx(RefPicList(uiRefListIdx),i); 439 break; 440 } 441 } 442 } 443 444 #endif 421 445 } 422 446 -
branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TComSlice.h
r210 r237 1248 1248 1249 1249 Bool m_bCheckLDC; 1250 #if QC_TMVP_MRG_REFIDX_C0047 1251 Int m_aiNewRefIdx [2]; 1252 #endif 1250 1253 1251 1254 // Data … … 1654 1657 Void xSetApplyIC (); 1655 1658 #endif 1659 #if QC_TMVP_MRG_REFIDX_C0047 1660 Int getNewRefIdx ( RefPicList e ) { return m_aiNewRefIdx[e]; } 1661 Void setNewRefIdx ( RefPicList e, Int i ) { m_aiNewRefIdx[e] = i; } 1662 #endif 1656 1663 1657 1664 protected: -
branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TypeDef.h
r211 r237 67 67 #if FLEX_CODING_ORDER_M23723 68 68 #define DISABLE_FCO_FOR_VSO 0 // Optional compile settings to disable VSO with FCO. 69 #endif 69 #endif 70 #define QC_TMVP_MRG_REFIDX_C0047 1 //only enabled when QC_TMVP_IDX_MOD_B0046 is enabled. 70 71 71 72 ///// ***** PATCHES ********* … … 81 82 ///// ***** INTERVIEW MOTION VECTOR PREDICTION ********* 82 83 #define HHI_INTER_VIEW_MOTION_PRED 1 // inter-view motion parameter prediction 84 #define QC_AMVP_MRG_UNIFY_IVCAN_C0051 0 83 85 #define SHARP_INTERVIEW_DECOUPLE_B0111 1 // JCT3V-B0111 decoupling inter-view candidate 84 86 #define QC_MRG_CANS_B0048 1 // JCT3V-B0048, B0086, B0069
Note: See TracChangeset for help on using the changeset viewer.