Changeset 212 in SHVCSoftware for branches/SHM-2.1-dev/source/Lib/TLibEncoder


Ignore:
Timestamp:
17 May 2013, 13:38:34 (12 years ago)
Author:
canon
Message:

integration M0115 - Fast Intra Decision - cfg parameter: FIS (off by default)
edouard.francois@…

Location:
branches/SHM-2.1-dev/source/Lib/TLibEncoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncCfg.h

    r191 r212  
    204204  Bool      m_bUseCbfFastMode;
    205205  Bool      m_useEarlySkipDetection;
     206#if FAST_INTRA_SHVC
     207  Bool      m_useFastIntraScalable;
     208#endif
    206209  Bool      m_useTransformSkip;
    207210  Bool      m_useTransformSkipFast;
     
    507510  Void      setUseCbfFastMode            ( Bool  b )     { m_bUseCbfFastMode = b; }
    508511  Void      setUseEarlySkipDetection        ( Bool  b )     { m_useEarlySkipDetection = b; }
     512#if FAST_INTRA_SHVC
     513  Void      setUseFastIntraScalable         ( Bool  b )     { m_useFastIntraScalable = b; }
     514#endif
    509515  Void      setUseConstrainedIntraPred      ( Bool  b )     { m_bUseConstrainedIntraPred = b; }
    510516  Void      setPCMInputBitDepthFlag         ( Bool  b )     { m_bPCMInputBitDepthFlag = b; }
     
    531537  Bool      getUseCbfFastMode           ()      { return m_bUseCbfFastMode; }
    532538  Bool      getUseEarlySkipDetection        ()      { return m_useEarlySkipDetection; }
     539#if FAST_INTRA_SHVC
     540  Bool      getUseFastIntraScalable         ()      { return m_useFastIntraScalable; }
     541#endif
    533542  Bool      getUseConstrainedIntraPred      ()      { return m_bUseConstrainedIntraPred; }
    534543  Bool      getPCMInputBitDepthFlag         ()      { return m_bPCMInputBitDepthFlag;   }
  • branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncSearch.cpp

    r191 r212  
    25062506    {
    25072507      assert(numModesForFullRD < numModesAvailable);
     2508#if FAST_INTRA_SHVC
     2509      Int   uiPreds[3] = {-1, -1, -1};
     2510      Int   iMode = -1;
     2511      Bool  skipFastHAD = false;
     2512      Int numCand = pcCU->getIntraDirLumaPredictor( uiPartOffset, uiPreds, &iMode );
     2513
     2514      if ( m_pcEncCfg->getUseFastIntraScalable() )
     2515      {
     2516        if( pcCU->getLayerId() > 0 )
     2517        {
     2518          numModesAvailable = pcCU->reduceSetOfIntraModes(uiPartOffset, uiPreds, iMode );
     2519          if( numModesForFullRD > numModesAvailable ) //fast HAD can be skipped
     2520          {
     2521            skipFastHAD = true;
     2522            numModesForFullRD = numModesAvailable;
     2523            for( Int i=0; i < numModesForFullRD; i++ )
     2524              uiRdModeList[ i ] = g_reducedSetIntraModes[ i ];
     2525          }
     2526        }
     2527      }
     2528#endif
    25082529
    25092530      for( Int i=0; i < numModesForFullRD; i++ )
     
    25162537      {
    25172538        UInt uiMode = modeIdx;
     2539#if FAST_INTRA_SHVC
     2540        if ( m_pcEncCfg->getUseFastIntraScalable() )
     2541        {
     2542          if( skipFastHAD )//indicates that fast HAD can be skipped
     2543            break;
     2544          uiMode = ( iMode==0 ) ? g_reducedSetIntraModes[modeIdx] : uiMode; //(iMode=0) indicates reduced set of modes
     2545        }
     2546#endif
    25182547
    25192548        predIntraLumaAng( pcCU->getPattern(), uiMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
     
    25292558   
    25302559#if FAST_UDI_USE_MPM
     2560#if FAST_INTRA_SHVC == 0
    25312561      Int uiPreds[3] = {-1, -1, -1};
    25322562      Int iMode = -1;
    25332563      Int numCand = pcCU->getIntraDirLumaPredictor( uiPartOffset, uiPreds, &iMode );
     2564#endif
    25342565      if( iMode >= 0 )
    25352566      {
Note: See TracChangeset for help on using the changeset viewer.