Changeset 1285 in 3DVCSoftware for branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComDataCU.cpp
- Timestamp:
- 20 Jul 2015, 11:23:15 (9 years ago)
- Location:
- branches/HTM-14.1-update-dev1
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev1
- Property svn:mergeinfo changed
/branches/HTM-14.1-update-dev2 merged: 1284
- Property svn:mergeinfo changed
-
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComDataCU.cpp
r1282 r1285 2936 2936 } 2937 2937 2938 #if NH_3D_FIX_PRUNING 2939 Bool TComDataCU::hasEqualMotion( Int dirA, const TComMvField* mvFieldA, Int dirB, const TComMvField* mvFieldB ) 2940 { 2941 return ( dirA == dirB && 2942 ( ( dirA & 1 ) == 0 || mvFieldA[0] == mvFieldB[0] ) && 2943 ( ( dirA & 2 ) == 0 || mvFieldA[1] == mvFieldB[1] ) 2944 ); 2945 } 2946 #endif 2947 2938 2948 #if NH_3D_VSP 2939 2949 /** Add a VSP merging candidate … … 3038 3048 if( !iLoop && ivCandDir[0] > 0) 3039 3049 { 3050 #if NH_3D_FIX_PRUNING 3051 if( hasEqualMotion(tmpDir, tmpMV, m_mergCands[MRG_IVMC].m_uDir, m_mergCands[MRG_IVMC].m_cMvField )) 3052 #else 3040 3053 if(tmpDir == m_mergCands[MRG_IVMC].m_uDir && m_mergCands[MRG_IVMC].m_cMvField[0]==tmpMV[0] && m_mergCands[MRG_IVMC].m_cMvField[1]==tmpMV[1]) 3054 #endif 3041 3055 { 3042 3056 bRemove = true; … … 3487 3501 for(iCnloop = 0; iCnloop < 2; iCnloop ++) 3488 3502 { 3489 if ( !m_mergCands[MRG_A1+iCnloop].m_bAvailable ) // prun ning to A1, B13503 if ( !m_mergCands[MRG_A1+iCnloop].m_bAvailable ) // pruning to A1, B1 3490 3504 { 3491 3505 continue; 3492 3506 } 3507 #if NH_3D_FIX_PRUNING 3508 if (hasEqualMotion( tmpDir, tmpMV, m_mergCands[MRG_A1+iCnloop].m_uDir, m_mergCands[MRG_A1+iCnloop].m_cMvField ) ) 3509 #else 3493 3510 if (tmpDir == m_mergCands[MRG_A1+iCnloop].m_uDir && tmpMV[0]==m_mergCands[MRG_A1+iCnloop].m_cMvField[0] && tmpMV[1]==m_mergCands[MRG_A1+iCnloop].m_cMvField[1]) 3511 #endif 3494 3512 { 3495 3513 m_mergCands[MRG_A1+iCnloop].m_bAvailable = false; … … 3561 3579 for(Int i = 0; i < 2; i ++) 3562 3580 { 3563 if ( !m_mergCands[MRG_A1 + i].m_bAvailable ) // prun ning to A1, B13581 if ( !m_mergCands[MRG_A1 + i].m_bAvailable ) // pruning to A1, B1 3564 3582 { 3565 3583 continue; 3566 3584 } 3567 3585 #if NH_3D_FIX_PRUNING 3568 if ( ivCandDir[0] == m_mergCands[MRG_A1+i].m_uDir && 3569 ( ( ivCandDir[0] & 1 ) == 0 || tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0] ) && 3570 ( ( ivCandDir[0] & 2 ) == 0 || tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1] ) 3571 ) 3586 if (hasEqualMotion(ivCandDir[0], tmpMV, m_mergCands[MRG_A1+i].m_uDir, m_mergCands[MRG_A1+i].m_cMvField) ) 3572 3587 #else 3573 3588 if (ivCandDir[0] == m_mergCands[MRG_A1+i].m_uDir && tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0] && tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1]) … … 3579 3594 } 3580 3595 } 3581 if (bIsDepth)3596 else 3582 3597 { 3583 3598 #if NH_3D_FIX_PRUNING 3584 if ( m_mergCands[MRG_T].m_bAvailable && ivCandDir[0] == m_mergCands[MRG_T].m_uDir && 3585 ( ( ivCandDir[0] & 1 ) == 0 || tmpMV[0]==m_mergCands[MRG_T].m_cMvField[0] ) && 3586 ( ( ivCandDir[0] & 2 ) == 0 || tmpMV[1]==m_mergCands[MRG_T].m_cMvField[1] ) 3587 ) 3599 if( hasEqualMotion( ivCandDir[0], tmpMV, m_mergCands[MRG_T].m_uDir, m_mergCands[MRG_T].m_cMvField ) ) 3588 3600 #else 3589 3601 if (m_mergCands[MRG_T].m_bAvailable && ivCandDir[0] == m_mergCands[MRG_T].m_uDir && tmpMV[0]==m_mergCands[MRG_T].m_cMvField[0] && tmpMV[1]==m_mergCands[MRG_T].m_cMvField[1]) … … 3685 3697 } 3686 3698 #if NH_3D_FIX_PRUNING 3687 if ( ivCandDir[1] == m_mergCands[MRG_A1+i].m_uDir && 3688 ( ( ivCandDir[1] & 1 ) == 0 || tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0] ) && 3689 ( ( ivCandDir[1] & 2 ) == 0 || tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1] ) 3690 ) 3699 if ( hasEqualMotion(ivCandDir[1], tmpMV, m_mergCands[MRG_A1+i].m_uDir, m_mergCands[MRG_A1+i].m_cMvField) ) 3691 3700 #else 3692 3701 if (ivCandDir[1] == m_mergCands[MRG_A1+i].m_uDir && tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0] && tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1])
Note: See TracChangeset for help on using the changeset viewer.