Changeset 212 in SHVCSoftware for branches/SHM-2.1-dev/source/Lib/TLibEncoder
- Timestamp:
- 17 May 2013, 13:38:34 (12 years ago)
- 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 204 204 Bool m_bUseCbfFastMode; 205 205 Bool m_useEarlySkipDetection; 206 #if FAST_INTRA_SHVC 207 Bool m_useFastIntraScalable; 208 #endif 206 209 Bool m_useTransformSkip; 207 210 Bool m_useTransformSkipFast; … … 507 510 Void setUseCbfFastMode ( Bool b ) { m_bUseCbfFastMode = b; } 508 511 Void setUseEarlySkipDetection ( Bool b ) { m_useEarlySkipDetection = b; } 512 #if FAST_INTRA_SHVC 513 Void setUseFastIntraScalable ( Bool b ) { m_useFastIntraScalable = b; } 514 #endif 509 515 Void setUseConstrainedIntraPred ( Bool b ) { m_bUseConstrainedIntraPred = b; } 510 516 Void setPCMInputBitDepthFlag ( Bool b ) { m_bPCMInputBitDepthFlag = b; } … … 531 537 Bool getUseCbfFastMode () { return m_bUseCbfFastMode; } 532 538 Bool getUseEarlySkipDetection () { return m_useEarlySkipDetection; } 539 #if FAST_INTRA_SHVC 540 Bool getUseFastIntraScalable () { return m_useFastIntraScalable; } 541 #endif 533 542 Bool getUseConstrainedIntraPred () { return m_bUseConstrainedIntraPred; } 534 543 Bool getPCMInputBitDepthFlag () { return m_bPCMInputBitDepthFlag; } -
branches/SHM-2.1-dev/source/Lib/TLibEncoder/TEncSearch.cpp
r191 r212 2506 2506 { 2507 2507 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 2508 2529 2509 2530 for( Int i=0; i < numModesForFullRD; i++ ) … … 2516 2537 { 2517 2538 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 2518 2547 2519 2548 predIntraLumaAng( pcCU->getPattern(), uiMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); … … 2529 2558 2530 2559 #if FAST_UDI_USE_MPM 2560 #if FAST_INTRA_SHVC == 0 2531 2561 Int uiPreds[3] = {-1, -1, -1}; 2532 2562 Int iMode = -1; 2533 2563 Int numCand = pcCU->getIntraDirLumaPredictor( uiPartOffset, uiPreds, &iMode ); 2564 #endif 2534 2565 if( iMode >= 0 ) 2535 2566 {
Note: See TracChangeset for help on using the changeset viewer.