diff --git a/codec/api/svc/codec_app_def.h b/codec/api/svc/codec_app_def.h index 76c95050..8142b1a1 100644 --- a/codec/api/svc/codec_app_def.h +++ b/codec/api/svc/codec_app_def.h @@ -193,7 +193,7 @@ typedef struct TagEncParamBase{ typedef struct TagEncParamExt { - int iUsageType; //enable_screen_content_signal;// 0: //camera video signal; 1: screen content signal; + int iUsageType; //application type;// 0: //camera video signal; 1: screen content signal; int iInputCsp; // color space of input sequence int iPicWidth; // width of picture in samples @@ -204,47 +204,45 @@ typedef struct TagEncParamExt int iTemporalLayerNum; // layer number at temporal level int iSpatialLayerNum; // layer number at spatial level + SSpatialLayerConfig sSpatialLayers[MAX_SPATIAL_LAYER_NUM]; unsigned int uiIntraPeriod; // period of Intra frame + int iNumRefFrame; // number of reference frame used + unsigned int uiFrameToBeCoded; // frame to be encoded (at input frame rate) bool bEnableSpsPpsIdAddition; bool bPrefixNalAddingCtrl; - bool bEnableDenoise; // denoise control - bool bEnableBackgroundDetection;// background detection control //VAA_BACKGROUND_DETECTION //BGD cmd - bool bEnableAdaptiveQuant; // adaptive quantization control + bool bEnableSSEI; + + /* rc control */ + bool bEnableRc; bool bEnableFrameSkip; // allow skipping frames to keep the bitrate within limits - bool bEnableCropPic; // enable cropping source picture. 8/25/2010 - // false: Streaming Video Sharing; true: Video Conferencing Meeting; + int iMaxQp; + int iMinQp; + /*LTR settings*/ bool bEnableLongTermReference; // 0: on, 1: off + int iLTRRefNum; int iLtrMarkPeriod; - int iPaddingFlag; // 0:disable padding;1:padding - int iEtropyCodingModeFlag; + int iPaddingFlag; // 0:disable padding;1:padding + int iEtropyCodingModeFlag; - SSpatialLayerConfig sSpatialLayers[MAX_SPATIAL_LAYER_NUM]; - int iNumRefFrame; // number of reference frame used - unsigned int uiFrameToBeCoded; // frame to be encoded (at input frame rate) - bool bEnableRc; short iMultipleThreadIdc; // 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; > 1: count number of threads; short iCountThreadsNum; // # derived from disable_multiple_slice_idc (=0 or >1) means; - int iLTRRefNum; - bool bEnableSSEI; - bool bEnableFrameCroppingFlag;// enable frame cropping flag: TRUE always in application - - /* Deblocking loop filter */ + /* Deblocking loop filter */ int iLoopFilterDisableIdc; // 0: on, 1: off, 2: on except for slice boundaries int iLoopFilterAlphaC0Offset;// AlphaOffset: valid range [-6, 6], default 0 - int iLoopFilterBetaOffset; // BetaOffset: valid range [-6, 6], default 0 int iInterLayerLoopFilterDisableIdc; // Employed based upon inter-layer, same comment as above int iInterLayerLoopFilterAlphaC0Offset; // InterLayerLoopFilterAlphaC0Offset int iInterLayerLoopFilterBetaOffset; // InterLayerLoopFilterBetaOffset - bool bEnableSceneChangeDetect; - - //added - int iMaxQp; - int iMinQp; + /*pre-processing feature*/ + bool bEnableDenoise; // denoise control + bool bEnableBackgroundDetection;// background detection control //VAA_BACKGROUND_DETECTION //BGD cmd + bool bEnableAdaptiveQuant; // adaptive quantization control + bool bEnableFrameCroppingFlag;// enable frame cropping flag: TRUE always in application + bool bEnableSceneChangeDetect; }SEncParamExt; //Define a new struct to show the property of video bitstream. diff --git a/codec/encoder/core/inc/param_svc.h b/codec/encoder/core/inc/param_svc.h index fa9d0ae6..b4646bbe 100644 --- a/codec/encoder/core/inc/param_svc.h +++ b/codec/encoder/core/inc/param_svc.h @@ -172,7 +172,6 @@ void FillDefault (const bool kbEnableRc) { true; // Strategy of have MGS only at T0 frames (0: do not use this strategy; 1: use this strategy) bEnableSSEI = true; bEnableFrameCroppingFlag = true; // enable frame cropping flag: true alwayse in application - bEnableCropPic = true; // enable cropping source picture. , 8/25/2010 // false: Streaming Video Sharing; true: Video Conferencing Meeting; iDecompStages = 0; // GOP size dependency, unknown here and be revised later @@ -340,9 +339,6 @@ int32_t ParamTranscode (const SEncParamExt& pCodingParam) { /* Frame skipping */ bEnableFrameSkip = pCodingParam.bEnableFrameSkip ? true : false; - /* Enable cropping source picture */ - bEnableCropPic = pCodingParam.bEnableCropPic ? true : false; - /* Enable int32_t term reference */ bEnableLongTermReference = pCodingParam.bEnableLongTermReference ? true : false; iLtrMarkPeriod = pCodingParam.iLtrMarkPeriod; diff --git a/codec/encoder/plus/src/welsEncoderExt.cpp b/codec/encoder/plus/src/welsEncoderExt.cpp index dbdbf224..6b88306b 100644 --- a/codec/encoder/plus/src/welsEncoderExt.cpp +++ b/codec/encoder/plus/src/welsEncoderExt.cpp @@ -746,7 +746,7 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { WelsLog (m_pEncContext, WELS_LOG_INFO, "ENCODER_OPTION_SVC_ENCODE_PARAM_EXT, sEncodingParam.iInputCsp= 0x%x\n", sEncodingParam.iInputCsp); WelsLog (m_pEncContext, WELS_LOG_INFO, - "coding_param->iPicWidth= %d;coding_param->iPicHeight= %d;coding_param->iTargetBitrate= %d;coding_param->iRCMode= %d;coding_param->iPaddingFlag= %d;coding_param->iTemporalLayerNum= %d;coding_param->iSpatialLayerNum= %d;coding_param->fFrameRate= %.6ff;coding_param->iInputCsp= %d;coding_param->uiIntraPeriod= %d;coding_param->bEnableSpsPpsIdAddition = %d;coding_param->bPrefixNalAddingCtrl = %d;coding_param->bEnableDenoise= %d;coding_param->bEnableBackgroundDetection= %d;coding_param->bEnableAdaptiveQuant= %d;coding_param->bEnableAdaptiveQuant= %d;coding_param->bEnableCropPic= %d;coding_param->bEnableLongTermReference= %d;coding_param->iLtrMarkPeriod= %d;\n", + "coding_param->iPicWidth= %d;coding_param->iPicHeight= %d;coding_param->iTargetBitrate= %d;coding_param->iRCMode= %d;coding_param->iPaddingFlag= %d;coding_param->iTemporalLayerNum= %d;coding_param->iSpatialLayerNum= %d;coding_param->fFrameRate= %.6ff;coding_param->iInputCsp= %d;coding_param->uiIntraPeriod= %d;coding_param->bEnableSpsPpsIdAddition = %d;coding_param->bPrefixNalAddingCtrl = %d;coding_param->bEnableDenoise= %d;coding_param->bEnableBackgroundDetection= %d;coding_param->bEnableAdaptiveQuant= %d;coding_param->bEnableAdaptiveQuant= %d;coding_param->bEnableLongTermReference= %d;coding_param->iLtrMarkPeriod= %d;\n", sEncodingParam.iPicWidth, sEncodingParam.iPicHeight, sEncodingParam.iTargetBitrate, @@ -763,7 +763,6 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { sEncodingParam.bEnableBackgroundDetection, sEncodingParam.bEnableAdaptiveQuant, sEncodingParam.bEnableFrameSkip, - sEncodingParam.bEnableCropPic, sEncodingParam.bEnableLongTermReference, sEncodingParam.iLtrMarkPeriod); int32_t i = 0; diff --git a/testbin/layer2.cfg b/testbin/layer2.cfg index 25568c70..eaece5ca 100644 --- a/testbin/layer2.cfg +++ b/testbin/layer2.cfg @@ -4,7 +4,6 @@ #============================== INPUT / OUTPUT ============================== FrameWidth 320 # Input frame width FrameHeight 192 # Input frame height -FrameRateIn 12 # Input frame rate [Hz] FrameRateOut 12 # Output frame rate [Hz] ReconFile rec_layer2.yuv # Reconstructed file