Changeset 1330 in SHVCSoftware
- Timestamp:
- 22 Jul 2015, 01:27:17 (9 years ago)
- Location:
- branches/SHM-dev/source
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r1329 r1330 1380 1380 ("FastUDIUseMPMEnabled", m_bFastUDIUseMPMEnabled, true, "If enabled, adapt intra direction search, accounting for MPM") 1381 1381 ("FastMEForGenBLowDelayEnabled", m_bFastMEForGenBLowDelayEnabled, true, "If enabled use a fast ME for generalised B Low Delay slices") 1382 ("UseBLambdaForNonKeyLowDelayPictures", m_bUseBLambdaForNonKeyLowDelayPictures, true, "Enables use of B-Lambda for non-key low-delay pictures") 1382 1383 ("PCMEnabledFlag", m_usePCM, false) 1383 1384 ("PCMLog2MaxSize", m_pcmLog2MaxSize, 5u) -
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h
r1329 r1330 307 307 Bool m_bFastUDIUseMPMEnabled; 308 308 Bool m_bFastMEForGenBLowDelayEnabled; 309 Bool m_bUseBLambdaForNonKeyLowDelayPictures; 309 310 310 311 Int m_decodedPictureHashSEIEnabled; ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message -
branches/SHM-dev/source/App/TAppEncoder/TAppEncTop.cpp
r1329 r1330 474 474 m_acTEncTop[layer].setFastUDIUseMPMEnabled ( m_bFastUDIUseMPMEnabled ); 475 475 m_acTEncTop[layer].setFastMEForGenBLowDelayEnabled ( m_bFastMEForGenBLowDelayEnabled ); 476 m_acTEncTop[layer]..setUseBLambdaForNonKeyLowDelayPictures ( m_bUseBLambdaForNonKeyLowDelayPictures ); 476 477 m_acTEncTop[layer].setPCMLog2MinSize ( m_uiPCMLog2MinSize); 477 478 m_acTEncTop[layer].setUsePCM ( m_usePCM ); … … 916 917 m_cTEncTop.setFastUDIUseMPMEnabled ( m_bFastUDIUseMPMEnabled ); 917 918 m_cTEncTop.setFastMEForGenBLowDelayEnabled ( m_bFastMEForGenBLowDelayEnabled ); 919 m_cTEncTop.setUseBLambdaForNonKeyLowDelayPictures ( m_bUseBLambdaForNonKeyLowDelayPictures ); 918 920 m_cTEncTop.setPCMLog2MinSize ( m_uiPCMLog2MinSize); 919 921 m_cTEncTop.setUsePCM ( m_usePCM ); -
branches/SHM-dev/source/Lib/TLibCommon/CommonDef.h
r1328 r1330 199 199 // Explicit temporal layer QP offset 200 200 #define MAX_TLAYER 7 ///< max number of temporal layer 201 #define HB_LAMBDA_FOR_LDC 1 ///< use of B-style lambda for non-key pictures in low-delay mode202 201 203 202 // Fast estimation of generalized B in low-delay mode -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h
r1329 r1330 224 224 Bool m_bFastUDIUseMPMEnabled; 225 225 Bool m_bFastMEForGenBLowDelayEnabled; 226 Bool m_bUseBLambdaForNonKeyLowDelayPictures; 226 227 Bool m_usePCM; 227 228 Int m_PCMBitDepth[MAX_NUM_CHANNEL_TYPE]; … … 644 645 Void setFastUDIUseMPMEnabled ( Bool b ) { m_bFastUDIUseMPMEnabled = b; } 645 646 Void setFastMEForGenBLowDelayEnabled ( Bool b ) { m_bFastMEForGenBLowDelayEnabled = b; } 647 Void setUseBLambdaForNonKeyLowDelayPictures ( Bool b ) { m_bUseBLambdaForNonKeyLowDelayPictures = b; } 648 646 649 Void setPCMInputBitDepthFlag ( Bool b ) { m_bPCMInputBitDepthFlag = b; } 647 650 Void setPCMFilterDisableFlag ( Bool b ) { m_bPCMFilterDisableFlag = b; } … … 668 671 Bool getFastUDIUseMPMEnabled () { return m_bFastUDIUseMPMEnabled; } 669 672 Bool getFastMEForGenBLowDelayEnabled () { return m_bFastMEForGenBLowDelayEnabled; } 673 Bool getUseBLambdaForNonKeyLowDelayPictures () { return m_bUseBLambdaForNonKeyLowDelayPictures; } 670 674 Bool getPCMInputBitDepthFlag () { return m_bPCMInputBitDepthFlag; } 671 675 Bool getPCMFilterDisableFlag () { return m_bPCMFilterDisableFlag; } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncSlice.cpp
r1329 r1330 445 445 setUpLambda(rpcSlice, dLambda, iQP); 446 446 #endif 447 #if HB_LAMBDA_FOR_LDC 448 // restore original slice type 449 450 if(!(isField && pocLast == 1) || !m_pcCfg->getEfficientFieldIRAPEnabled()) 451 { 447 448 if (m_pcCfg->getFastMEForGenBLowDelayEnabled()) 449 { 450 // restore original slice type 451 452 if(!(isField && pocLast == 1) || !m_pcCfg->getEfficientFieldIRAPEnabled()) 453 { 452 454 #if ALLOW_RECOVERY_POINT_AS_RAP 453 if(m_pcCfg->getDecodingRefreshType() == 3)454 {455 eSliceType = (pocLast == 0 || (pocCurr) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;456 }457 else458 {459 #endif 460 eSliceType = (pocLast == 0 || (pocCurr - (isField ? 1 : 0)) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;455 if(m_pcCfg->getDecodingRefreshType() == 3) 456 { 457 eSliceType = (pocLast == 0 || (pocCurr) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType; 458 } 459 else 460 { 461 #endif 462 eSliceType = (pocLast == 0 || (pocCurr - (isField ? 1 : 0)) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType; 461 463 #if ALLOW_RECOVERY_POINT_AS_RAP 462 } 463 #endif 464 } 465 466 #if SVC_EXTENSION 467 if( m_pcCfg->getLayerId() > 0 && m_pcCfg->getNumActiveRefLayers() > 0 ) 468 { 469 eSliceType=B_SLICE; 470 } 471 #endif 472 rpcSlice->setSliceType ( eSliceType ); 473 #endif 464 } 465 #endif 466 } 467 468 #if SVC_EXTENSION 469 if( m_pcCfg->getLayerId() > 0 && m_pcCfg->getNumActiveRefLayers() > 0 ) 470 { 471 eSliceType=B_SLICE; 472 } 473 #endif 474 475 rpcSlice->setSliceType ( eSliceType ); 476 } 474 477 475 478 if (m_pcCfg->getUseRecalculateQPAccordingToLambda())
Note: See TracChangeset for help on using the changeset viewer.