Skip to content
huashi edited this page Nov 17, 2014 · 13 revisions

SVC Encoding Parameters extention

Name Type Descritpion
iUsageType EUsageType application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
iPicWidth int width of picture in luminance samples (the maximum of all layers if multiple spatial layers presents)
iPicHeight int height of picture in luminance samples((the maximum of all layers if multiple spatial layers presents)
iTargetBitrate int target bitrate desired
iRCMode RC_MODES rate control mode
fMaxFrameRate float maximal input frame rate
iTemporalLayerNum int temporal layer number, max temporal layer = 4
iSpatialLayerNum int spatial layer number, 1<= iSpatialLayerNum <= MAX_SPATIAL_LAYER_NUM, MAX_SPATIAL_LAYER_NUM = 4
sSpatialLayers SSpatialLayerConfig  
iComplexityMode ECOMPLEXITY_MODE  
uiIntraPeriod unsigned int period of Intra frame
iNumRefFrame int number of reference frame used
bEnableSpsPpsIdAddition bool false:not adjust ID in SPS/PPS; true: adjust ID in SPS/PPS
bPrefixNalAddingCtrl bool false:not use Prefix NAL; true: use Prefix NAL
bEnableSSEI bool false:not use SSEI; true: use SSEI
iPaddingFlag int 0:disable padding;1:padding
iEntropyCodingModeFlag int 0:CAVLC 1:CABAC.
bEnableFrameSkip bool False: don't skip frame even if VBV buffer overflow.True: allow skipping frames to keep the bitrate within limits.
iMaxBitrate int the maximum bitrate
iMaxQp int the maximum QP encoder supports
iMinQp int The minmum QP encoder supports.
uiMaxNalSize unsigned int The maximum NAL size. This value should be not 0 for dynamic slice mode.
bEnableLongTermReference bool 1: on, 0: off
iLTRRefNum int The number of LTR(long term reference),TODO: not supported to set it arbitrary yet.
iLtrMarkPeriod unsigned int The LTR marked period that is used in feedback.
iMultipleThreadIdc unsigned short 1 # 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; lager than 1: count number of threads;
iLoopFilterDisableIdc int 0: on, 1: off, 2: on except for slice boundaries
iLoopFilterAlphaC0Offset int AlphaOffset: valid range [-6, 6], default 0.
iLoopFilterBetaOffset int BetaOffset: valid range [-6, 6], default 0.
bEnableDenoise bool denoise control
bEnableBackgroundDetection bool background detection control //VAA_BACKGROUND_DETECTION //BGD cmd
bEnableAdaptiveQuant bool adaptive quantization control
bEnableFrameCroppingFlag bool enable frame cropping flag: TRUE always in application
bEnableSceneChangeDetect bool  
bIsLosslessLink bool LTR advanced setting.

Option types introduced in decoder application

Name Initializer Descritpion
DECODER_OPTION_DATAFORMAT = 0 color format, now supports 23 only (I420)
DECODER_OPTION_END_OF_STREAM   end of stream flag
DECODER_OPTION_VCL_NAL   feedback whether or not have VCL NAL in current AU for application layer
DECODER_OPTION_TEMPORAL_ID   feedback temporal id for application layer
DECODER_OPTION_FRAME_NUM   feedback current decoded frame number
DECODER_OPTION_IDR_PIC_ID   feedback current frame belong to which IDR period
DECODER_OPTION_LTR_MARKING_FLAG   feedback wether current frame mark a LTR
DECODER_OPTION_LTR_MARKED_FRAME_NUM   feedback frame num marked by current Frame
DECODER_OPTION_ERROR_CON_IDC   not finished yet, indicate decoder error concealment status, in progress
DECODER_OPTION_TRACE_LEVEL    
DECODER_OPTION_TRACE_CALLBACK   a void (*)(void* context, int level, const char* message) function which receives log messages
DECODER_OPTION_TRACE_CALLBACK_CONTEXT   Context info of trace callbac.
DECODER_OPTION_GET_STATISTICS    

SVC Decoding Parameters, reserved here and potential applicable in the future

Name Type Descritpion
pFileNameRestructed char * File name of restructed frame used for PSNR calculation based debug.
eOutputColorFormat EVideoFormatType color space format to be outputed, EVideoFormatType specified in codec_def.h
uiCpuLoad unsigned int CPU load.
uiTargetDqLayer unsigned char Setting target dq layer id.
eEcActiveIdc ERROR_CON_IDC Whether active error concealment feature in decoder.
sVideoProperty SVideoProperty Video stream property.

structure for source picture

Name Type Descritpion
iColorFormat int color space type
iStride int stride for each plane pData
pData unsigned char * plane pData
iPicWidth int luma picture width in x coordinate
iPicHeight int luma picture height in y coordinate
uiTimeStamp long long  

Option types introduced in SVC encoder application

Name Initializer Descritpion
ENCODER_OPTION_DATAFORMAT = 0  
ENCODER_OPTION_IDR_INTERVAL   IDR period,0/-1 means no Intra period (only the first frame); lager than 0 means the desired IDR period, must be multiple of (2^temporal_layer)
ENCODER_OPTION_SVC_ENCODE_PARAM_BASE   Structure of Base Param.
ENCODER_OPTION_SVC_ENCODE_PARAM_EXT   Structure of Extension Param.
ENCODER_OPTION_FRAME_RATE   Maximal input frame rate, current supported range: MAX_FRAME_RATE = 30,MIN_FRAME_RATE = 1.
ENCODER_OPTION_BITRATE    
ENCODER_OPTION_MAX_BITRATE    
ENCODER_OPTION_INTER_SPATIAL_PRED    
ENCODER_OPTION_RC_MODE    
ENCODER_PADDING_PADDING   0:disable padding;1:padding
ENCODER_OPTION_PROFILE   Assgin the profile for each layer.
ENCODER_OPTION_LEVEL   Assgin the level for each layer.
ENCODER_OPTION_NUMBER_REF   The number of refererence frame.
ENCODER_OPTION_DELIVERY_STATUS   The delivery info which is a feedback from app level.
ENCODER_LTR_RECOVERY_REQUEST    
ENCODER_LTR_MARKING_FEEDBACK    
ENCODER_LTR_MARKING_PERIOD    
ENCODER_OPTION_LTR   0:not enable LTR;larger than 0 enable LTR; LTR number is fixed to be 2 in current encoder
ENCODER_OPTION_COMPLEXITY    
ENCODER_OPTION_ENABLE_SSEI  

enable SSEI: true

enable ssei; false

disable ssei

ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING  

enable prefix: true

enable prefix; false

disable prefix

ENCODER_OPTION_ENABLE_SPS_PPS_ID_ADDITION  

enable pSps/pPps id addition: true

enable pSps/pPps id; false

disable pSps/pPps id addistion

ENCODER_OPTION_CURRENT_PATH    
ENCODER_OPTION_DUMP_FILE   Dump layer reconstruct frame to a specified file.
ENCODER_OPTION_TRACE_LEVEL   trace info based on the trace level
ENCODER_OPTION_TRACE_CALLBACK   a void (*)(void* context, int level, const char* message) function which receives log messages
ENCODER_OPTION_TRACE_CALLBACK_CONTEXT   Context info of trace callback.
ENCODER_OPTION_GET_STATISTICS   read only
ENCODER_OPTION_STATISTICS_LOG_INTERVAL   log interval in milliseconds
ENCODER_OPTION_IS_LOSSLESS_LINK   advanced algorithmetic settings
Name Type Descritpion
iBufferStatus int 0: one frame data is not ready; 1: one frame data is ready
sSystemBuffer SSysMEMBuffer memory info for one picture
UsrData union SBufferInfo::@2 Output buffer info.

SVC Encoding Parameters

Name Type Descritpion
iUsageType EUsageType application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
iPicWidth int width of picture in luminance samples (the maximum of all layers if multiple spatial layers presents)
iPicHeight int height of picture in luminance samples((the maximum of all layers if multiple spatial layers presents)
iTargetBitrate int target bitrate desired
iRCMode RC_MODES rate control mode
fMaxFrameRate float maximal input frame rate

frame bit stream info

Name Type Descritpion
iTemporalId int Temporal ID.
iSubSeqId int

refer to D.2.11 Sub-sequence information SEI message semantics

The sub sequence layers are ordered hierarchically based on their dependency on each other so that any picture in a layer shall not be predicted from any picture on any higher layer.

iLayerNum int  
sLayerInfo SLayerBSInfo  
eFrameType EVideoFrameType  
uiTimeStamp long long  
Clone this wiki locally