Changeset 317 in SHVCSoftware for branches/SHM-3.0-dev/source/Lib


Ignore:
Timestamp:
2 Aug 2013, 22:09:00 (11 years ago)
Author:
seregin
Message:

remove SVC_MVP and IL_MRG_SIMPLIFIED_PRUNING

Location:
branches/SHM-3.0-dev/source/Lib/TLibCommon
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComDataCU.cpp

    r316 r317  
    25562556  deriveLeftRightTopIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT );
    25572557  deriveLeftBottomIdxGeneral  ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB );
    2558 #if SVC_MVP
    2559   // BL collocated
    2560   TComDataCU *pcColCU = NULL;
    2561   UInt uiCUAddrBase = 0, uiAbsPartAddrBase = 0;
    2562 #if AVC_BASE
    2563   if( !this->getSlice()->getVPS()->getAvcBaseLayerFlag() || AVC_SYNTAX )
    2564 #endif
    2565   {
    2566     TComMvField cMvFieldBaseColCU[2];
    2567     if(m_layerId) 
    2568     {
    2569       pcColCU = getBaseColCU( m_layerId - 1, xP + nPSW/2, yP + nPSH/2, uiCUAddrBase, uiAbsPartAddrBase );
    2570 
    2571 #if INTRA_BL
    2572       if( pcColCU && pcColCU->isIntraBL( uiAbsPartAddrBase ) )
    2573       {
    2574         pcColCU = NULL;
    2575       }
    2576 #endif
    2577 
    2578       if(pcColCU && !pcColCU->isIntra( uiAbsPartAddrBase ) )
    2579       {
    2580         abCandIsInter[iCount] = true;
    2581 
    2582         // get interDir
    2583         puhInterDirNeighbours[iCount] = pcColCU->getInterDir( uiAbsPartAddrBase );
    2584 
    2585         pcMvFieldNeighbours[(iCount << 1)].setMvField( TComMv(0,0), -1);
    2586         pcMvFieldNeighbours[(iCount << 1) + 1].setMvField( TComMv(0,0), -1);
    2587 
    2588         if( puhInterDirNeighbours[iCount] & 1 )
    2589         {
    2590           pcColCU->getMvField( pcColCU, uiAbsPartAddrBase, REF_PIC_LIST_0, cMvFieldBaseColCU[0]);
    2591           scaleBaseMV( m_layerId - 1, pcMvFieldNeighbours[iCount<<1], cMvFieldBaseColCU[0] );
    2592         }
    2593 
    2594         if ( getSlice()->isInterB() && puhInterDirNeighbours[iCount] & 2 )
    2595         {
    2596           pcColCU->getMvField( pcColCU, uiAbsPartAddrBase, REF_PIC_LIST_1, cMvFieldBaseColCU[1] );
    2597           scaleBaseMV( m_layerId - 1, pcMvFieldNeighbours[(iCount<<1)+1], cMvFieldBaseColCU[1] );
    2598         }
    2599 
    2600         if( puhInterDirNeighbours[iCount] > 0 )
    2601         {
    2602           if ( mrgCandIdx == iCount )
    2603           {
    2604             return;
    2605           }
    2606           iCount ++;
    2607         }
    2608       }
    2609     }
    2610   }
    2611 #endif
    26122558
    26132559  //left
     
    26232569  Bool isAvailableA1 = pcCULeft &&
    26242570  pcCULeft->isDiffMER(xP -1, yP+nPSH-1, xP, yP) &&
    2625 #if SVC_MVP
    2626   ( !pcColCU || pcColCU->isIntra( uiAbsPartAddrBase ) || !pcCULeft->hasEqualMotion( uiLeftPartIdx, puhInterDirNeighbours[0], &pcMvFieldNeighbours[0])) &&
    2627 #endif
    26282571  !( uiPUIdx == 1 && (cCurPS == SIZE_Nx2N || cCurPS == SIZE_nLx2N || cCurPS == SIZE_nRx2N) ) &&
    26292572  !pcCULeft->isIntra( uiLeftPartIdx ) ;
     
    26622605#endif
    26632606  Bool isAvailableB1 = pcCUAbove &&
    2664 #if SVC_MVP
    2665   ( !pcColCU || pcColCU->isIntra( uiAbsPartAddrBase ) || !pcCUAbove->hasEqualMotion( uiAbovePartIdx, puhInterDirNeighbours[0], &pcMvFieldNeighbours[0] )) &&
    2666 #endif
    26672607  pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP) &&
    26682608  !( uiPUIdx == 1 && (cCurPS == SIZE_2NxN || cCurPS == SIZE_2NxnU || cCurPS == SIZE_2NxnD) ) &&
     
    27022642#endif
    27032643  Bool isAvailableB0 = pcCUAboveRight &&
    2704 #if SVC_MVP && !IL_MRG_SIMPLIFIED_PRUNING
    2705   ( !pcColCU || pcColCU->isIntra( uiAbsPartAddrBase ) || !pcCUAboveRight->hasEqualMotion( uiAboveRightPartIdx, puhInterDirNeighbours[0], &pcMvFieldNeighbours[0] )) &&
    2706 #endif
    27072644  pcCUAboveRight->isDiffMER(xP+nPSW, yP-1, xP, yP) &&
    27082645  !pcCUAboveRight->isIntra( uiAboveRightPartIdx );
     
    27312668
    27322669  //left bottom
    2733 #if SVC_MVP
    2734   if( iCount < 4 )
    2735   {
    2736 #endif
    27372670  UInt uiLeftBottomPartIdx = 0;
    27382671  TComDataCU* pcCULeftBottom = 0;
     
    27462679  Bool isAvailableA0 = pcCULeftBottom &&
    27472680  pcCULeftBottom->isDiffMER(xP-1, yP+nPSH, xP, yP) &&
    2748 #if SVC_MVP && !IL_MRG_SIMPLIFIED_PRUNING
    2749   ( !pcColCU || pcColCU->isIntra( uiAbsPartAddrBase ) || !pcCULeftBottom->hasEqualMotion( uiLeftBottomPartIdx, puhInterDirNeighbours[0], &pcMvFieldNeighbours[0])) &&
    2750 #endif
    27512681  !pcCULeftBottom->isIntra( uiLeftBottomPartIdx ) ;
    27522682  if ( isAvailableA0 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCULeftBottom, uiLeftBottomPartIdx ) ) )
     
    27722702    return;
    27732703  }
    2774 #if SVC_MVP
    2775   }
    2776 #endif
    27772704
    27782705  // above left
     
    27902717    Bool isAvailableB2 = pcCUAboveLeft &&
    27912718    pcCUAboveLeft->isDiffMER(xP-1, yP-1, xP, yP) &&
    2792 #if SVC_MVP && !IL_MRG_SIMPLIFIED_PRUNING
    2793     ( !pcColCU || pcColCU->isIntra( uiAbsPartAddrBase ) || !pcCUAboveLeft->hasEqualMotion( uiAboveLeftPartIdx, puhInterDirNeighbours[0], &pcMvFieldNeighbours[0] )) &&
    2794 #endif
    27952719    !pcCUAboveLeft->isIntra( uiAboveLeftPartIdx );
    27962720    if ( isAvailableB2 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAboveLeft, uiAboveLeftPartIdx ) )
     
    36693593  if (scaleFactor > 0)
    36703594  {
    3671 #if SVC_MVP
    3672     m_acCUMvField[0].compress(m_pePredMode, m_puhInterDir, scaleFactor);
    3673     m_acCUMvField[1].compress(m_pePredMode, m_puhInterDir, scaleFactor);   
    3674 #else
    36753595    m_acCUMvField[0].compress(m_pePredMode, scaleFactor);
    36763596    m_acCUMvField[1].compress(m_pePredMode, scaleFactor);   
    3677 #endif
    36783597  }
    36793598}
     
    43044223}
    43054224#endif
    4306 
    4307 #if SVC_MVP
    4308 Bool TComDataCU::hasEqualMotion( UInt uiAbsPartIdx, UChar uchInterDir, TComMvField* pcMvField  )
    4309 {
    4310   if ( getInterDir( uiAbsPartIdx ) != uchInterDir )
    4311   {
    4312     return false;
    4313   }
    4314 
    4315   for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )
    4316   {
    4317     if ( getInterDir( uiAbsPartIdx ) & ( 1 << uiRefListIdx ) )
    4318     {
    4319       if ( getCUMvField( RefPicList( uiRefListIdx ) )->getMv( uiAbsPartIdx )  != pcMvField[uiRefListIdx].getMv() ||
    4320         getCUMvField( RefPicList( uiRefListIdx ) )->getRefIdx( uiAbsPartIdx ) != pcMvField[uiRefListIdx].getRefIdx() )
    4321       {
    4322         return false;
    4323       }
    4324     }
    4325   }
    4326 
    4327   return true;
    4328 }
    4329 #endif
    4330 
    43314225//! \}
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComDataCU.h

    r313 r317  
    485485  Void          deriveLeftBottomIdxGeneral    ( UInt uiAbsPartIdx, UInt uiPartIdx, UInt& ruiPartIdxLB );
    486486 
    487 #if SVC_MVP
    488   Bool          hasEqualMotion              ( UInt uiAbsPartIdx, UChar uchInterDir, TComMvField* pcMvField  );
    489 #endif
    490  
    491487  // -------------------------------------------------------------------------------------------------------------------
    492488  // member functions for modes
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComMotionInfo.cpp

    r313 r317  
    328328 * \param scale      Factor by which to subsample motion information
    329329 */
    330 #if SVC_MVP
    331 Void TComCUMvField::compress(Char* pePredMode, UChar* peInterDir, Int scale)
    332 #else
    333330Void TComCUMvField::compress(Char* pePredMode, Int scale)
    334 #endif
    335331{
    336332  Int N = scale * scale;
     
    351347      pePredMode[ uiPartIdx + i ] = predMode;
    352348      m_piRefIdx[ uiPartIdx + i ] = iRefIdx;
    353 #if SVC_MVP
    354       peInterDir[ uiPartIdx + i ] = peInterDir[ uiPartIdx ];
    355 #endif
    356349    }
    357350  }
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TComMotionInfo.h

    r313 r317  
    158158  }
    159159 
    160 #if SVC_MVP
    161   Void compress(Char* pePredMode, UChar* peInterDir, Int scale);
    162 #else
    163160  Void compress(Char* pePredMode, Int scale);
    164 #endif
    165161
    166162#if REF_IDX_MFM
  • branches/SHM-3.0-dev/source/Lib/TLibCommon/TypeDef.h

    r316 r317  
    120120#define INTRA_BL_DST4x4                  1      ///< L0067/L0204: DST4x4 for Intra BL
    121121#define NO_RESIDUAL_FLAG_FOR_BLPRED      1      ///< L0437: Root cbf for Intra_BL
    122 #define IL_MRG_SIMPLIFIED_PRUNING        1      ///< M0124: simplified pruning, Only the left and above candidates are checked with BL-C candidate for redundancy removal
    123122#define INTRA_BL_CTX_CHANGE              1      ///< M0075: spatial dependency removal for IntraBL flag context derivation
    124 
    125 // Hooks
    126 #define SVC_MVP                          1      ///< motion hook for merge mode as an example
    127123
    128124#endif
Note: See TracChangeset for help on using the changeset viewer.