Changeset 237 in 3DVCSoftware for branches/HTM-5.1-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp
- Timestamp:
- 28 Jan 2013, 22:13:59 (12 years ago)
- File:
-
- 1 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
Note: See TracChangeset for help on using the changeset viewer.