Changeset 1284 in 3DVCSoftware


Ignore:
Timestamp:
20 Jul 2015, 11:03:38 (9 years ago)
Author:
tech
Message:

Further fixes to pruning.

Location:
branches/HTM-14.1-update-dev2/source/Lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComDataCU.cpp

    r1281 r1284  
    30413041}
    30423042
     3043#if NH_3D_FIX_PRUNING
     3044Bool TComDataCU::hasEqualMotion( Int dirA, const TComMvField* mvFieldA, Int dirB, const TComMvField* mvFieldB )
     3045{
     3046  return  ( dirA == dirB  &&
     3047    ( ( dirA & 1 ) == 0 || mvFieldA[0] == mvFieldB[0]  ) &&
     3048    ( ( dirA & 2 ) == 0 || mvFieldA[1] == mvFieldB[1]  )
     3049    );
     3050}
     3051#endif
     3052
    30433053#if NH_3D_VSP
    30443054/** Add a VSP merging candidate
     
    31433153      if( !iLoop && ivCandDir[0] > 0)
    31443154      {
     3155#if NH_3D_FIX_PRUNING
     3156        if( hasEqualMotion(tmpDir, tmpMV, m_mergCands[MRG_IVMC].m_uDir, m_mergCands[MRG_IVMC].m_cMvField ))
     3157#else
    31453158        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])
     3159#endif
    31463160        {
    31473161            bRemove                         = true;
     
    35923606      for(iCnloop = 0; iCnloop < 2; iCnloop ++)
    35933607      {
    3594         if ( !m_mergCands[MRG_A1+iCnloop].m_bAvailable )  // prunning to A1, B1
     3608        if ( !m_mergCands[MRG_A1+iCnloop].m_bAvailable )  // pruning to A1, B1
    35953609        {
    35963610          continue;
    35973611        }
     3612#if NH_3D_FIX_PRUNING
     3613        if (hasEqualMotion( tmpDir, tmpMV, m_mergCands[MRG_A1+iCnloop].m_uDir, m_mergCands[MRG_A1+iCnloop].m_cMvField ) )
     3614#else
    35983615        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])
     3616#endif
    35993617        {
    36003618          m_mergCands[MRG_A1+iCnloop].m_bAvailable = false;
     
    36663684      for(Int i = 0; i < 2; i ++)
    36673685      {
    3668         if ( !m_mergCands[MRG_A1 + i].m_bAvailable ) // prunning to A1, B1
     3686        if ( !m_mergCands[MRG_A1 + i].m_bAvailable ) // pruning to A1, B1
    36693687        {
    36703688          continue;
    36713689        }
    36723690#if NH_3D_FIX_PRUNING
    3673         if  (   ivCandDir[0] == m_mergCands[MRG_A1+i].m_uDir                                &&
    3674             ( ( ivCandDir[0] & 1 ) == 0 || tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0]  ) &&
    3675             ( ( ivCandDir[0] & 2 ) == 0 || tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1]  )
    3676            )
     3691        if (hasEqualMotion(ivCandDir[0], tmpMV, m_mergCands[MRG_A1+i].m_uDir,  m_mergCands[MRG_A1+i].m_cMvField) )
    36773692#else
    36783693        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])
     
    36843699      }
    36853700    }
    3686     if (bIsDepth)
     3701    else
    36873702    {
    36883703#if NH_3D_FIX_PRUNING
    3689       if  ( m_mergCands[MRG_T].m_bAvailable &&   ivCandDir[0] == m_mergCands[MRG_T].m_uDir  &&
    3690         ( ( ivCandDir[0] & 1 ) == 0 || tmpMV[0]==m_mergCands[MRG_T].m_cMvField[0]  ) &&
    3691         ( ( ivCandDir[0] & 2 ) == 0 || tmpMV[1]==m_mergCands[MRG_T].m_cMvField[1]  )
    3692         )
     3704      if( hasEqualMotion( ivCandDir[0], tmpMV, m_mergCands[MRG_T].m_uDir, m_mergCands[MRG_T].m_cMvField ) )
    36933705#else
    36943706      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])
     
    37903802      }
    37913803#if NH_3D_FIX_PRUNING
    3792       if  ( ivCandDir[1] == m_mergCands[MRG_A1+i].m_uDir  &&
    3793         ( ( ivCandDir[1] & 1 ) == 0 || tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0]  ) &&
    3794         ( ( ivCandDir[1] & 2 ) == 0 || tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1]  )
    3795         )
     3804      if ( hasEqualMotion(ivCandDir[1], tmpMV, m_mergCands[MRG_A1+i].m_uDir, m_mergCands[MRG_A1+i].m_cMvField) )
    37963805#else
    37973806      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])
  • branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComDataCU.h

    r1274 r1284  
    660660
    661661  Bool          hasEqualMotion              ( UInt uiAbsPartIdx, TComDataCU* pcCandCU, UInt uiCandAbsPartIdx );
    662 
     662#if NH_3D_FIX_PRUNING
     663  Bool          hasEqualMotion              ( Int dirA, const TComMvField* mvFieldA,  Int dirB, const TComMvField* mvFieldB  );
     664#endif
    663665#if NH_3D_MLC
    664666  Bool          getAvailableFlagA1() { return m_bAvailableFlagA1;   }
  • branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComRom.cpp

    r1281 r1284  
    704704  }
    705705  Bool stopFlag = false;
    706   if ( g_stopAtPos && poc == 6 && layerId == 2 )
     706  if ( g_stopAtPos && poc == 16 && layerId == 5 )
    707707  {
    708708    Bool stopAtCU = true;
    709709    if ( stopAtCU )        // Stop at CU with specific size
    710710    {   
    711       stopFlag = ( cuPelX  == 128 ) && ( cuPelY  == 160 ) && ( cuWidth == 32 ) && ( cuHeight == 32 );
     711      stopFlag = ( cuPelX  == 224 ) && ( cuPelY  == 128 ) && ( cuWidth == 16 ) && ( cuHeight == 16 );
    712712    }
    713713    else
  • branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncCu.cpp

    r1280 r1284  
    22722272    for( Int nARPW = 0; nARPW <= nARPWMax; nARPW++ )
    22732273    {
     2274#if DEBUG_STRING && H_MV_ENC_DEC_TRAC
     2275      sTest.clear();
     2276#endif
     2277
    22742278      if( !bFirstTime && rpcTempCU->getSlice()->getIvResPredFlag() )
    22752279      {
Note: See TracChangeset for help on using the changeset viewer.