/*!\name Algorithm interface for VP8 * *ThisinterfaceprovidesthecapabilitytoencoderawVP8streams. *@{
*/
/*!\brief A single instance of the VP8 encoder. *\deprecatedThisaccessmechanismisprovidedforbackwardscompatibility; *prefervpx_codec_vp8_cx().
*/ extern vpx_codec_iface_t vpx_codec_vp8_cx_algo;
/*!\brief The interface to the VP8 encoder.
*/ extern vpx_codec_iface_t *vpx_codec_vp8_cx(void); /*!@} - end algorithm interface member group*/
/*!\name Algorithm interface for VP9 * *ThisinterfaceprovidesthecapabilitytoencoderawVP9streams. *@{
*/
/*!\brief A single instance of the VP9 encoder. *\deprecatedThisaccessmechanismisprovidedforbackwardscompatibility; *prefervpx_codec_vp9_cx().
*/ extern vpx_codec_iface_t vpx_codec_vp9_cx_algo;
/*!\brief The interface to the VP9 encoder.
*/ extern vpx_codec_iface_t *vpx_codec_vp9_cx(void); /*!@} - end algorithm interface member group*/
/* *AlgorithmFlags
*/
/*!\brief Don't reference the last frame * *Whenthisflagisset,theencoderwillnotusethelastframeasa *predictor.Whennotset,theencoderwillchoosewhethertousethe *lastframeornotautomatically.
*/ #define VP8_EFLAG_NO_REF_LAST (1 << 16)
/*!\brief Don't reference the golden frame * *Whenthisflagisset,theencoderwillnotusethegoldenframeasa *predictor.Whennotset,theencoderwillchoosewhethertousethe *goldenframeornotautomatically.
*/ #define VP8_EFLAG_NO_REF_GF (1 << 17)
/*!\brief VPx encoder control functions * *ThissetofmacrosdefinethecontrolfunctionsavailableforVPx *encoderinterface. * *\sa#vpx_codec_control
*/ enum vp8e_enc_control_id { /*!\brief Codec control function to pass an ROI map to encoder. * *Supportedincodecs:VP8
*/
VP8E_SET_ROI_MAP = 8,
/*!\brief Codec control function to pass an Active map to encoder. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_ACTIVEMAP,
/*!\brief Codec control function to set encoder scaling mode. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_SCALEMODE = 11,
/*!\brief Codec control function to set encoder internal speed settings. * *Changesinthisvalueinfluences,amongothers,theencoder'sselection *ofmotionestimationmethods.Valuesgreaterthan0willincreaseencoder *speedattheexpenseofquality. * *\noteValidrangeforVP8:-16..16 *\noteValidrangeforVP9:-9..9 *\noteAnegativevalue(-n)istreatedasitsabsolutevalue(n)inVP9. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_CPUUSED = 13,
/*!\brief Codec control function to enable automatic use of arf frames. * *\noteValidrangeforVP8:0..1 *\noteValidrangeforVP9:0..6 * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_ENABLEAUTOALTREF,
/*!\brief control function to set noise sensitivity * *0:off,1:OnYOnly,2:OnYUV, *3:OnYUVAggressive,4:Adaptive * *Supportedincodecs:VP8
*/
VP8E_SET_NOISE_SENSITIVITY,
/*!\brief Codec control function to set higher sharpness at the expense *ofalowerPSNR. * *\noteValidrange:0..7 * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_SHARPNESS,
/*!\brief Codec control function to set the threshold for MBs treated static. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_STATIC_THRESHOLD,
/*!\brief Codec control function to set the number of token partitions. * *Supportedincodecs:VP8
*/
VP8E_SET_TOKEN_PARTITIONS,
/*!\brief Codec control function to get last quantizer chosen by the encoder. * *Returnvalueusesinternalquantizerscaledefinedbythecodec. * *Supportedincodecs:VP8,VP9
*/
VP8E_GET_LAST_QUANTIZER,
/*!\brief Codec control function to get last quantizer chosen by the encoder. * *Returnvalueusesthe0..63scaleasusedbytherc_*_quantizerconfig *parameters. * *Supportedincodecs:VP8,VP9
*/
VP8E_GET_LAST_QUANTIZER_64,
/*!\brief Codec control function to set the max no of frames to create arf. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_ARNR_MAXFRAMES,
/*!\brief Codec control function to set the filter strength for the arf. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_ARNR_STRENGTH,
/*!\deprecated control function to set the filter type to use for the arf. */
VP8E_SET_ARNR_TYPE,
/*!\brief Codec control function to set visual tuning. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_TUNING,
/*!\brief Codec control function to set constrained / constant quality level. * *\attentionForthisvaluetobeusedvpx_codec_enc_cfg_t::rc_end_usagemust *besetto#VPX_CQor#VPX_Q *\noteValidrange:0..63 * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_CQ_LEVEL,
/*!\brief Codec control function to set Max data rate for Intra frames. * *Thisvaluecontrolsadditionalclampingonthemaximumsizeofa *keyframe.Itisexpressedasapercentageoftheaverage *per-framebitrate,withthespecial(anddefault)value0meaning *unlimited,ornoadditionalclampingbeyondthecodec'sbuilt-in *algorithm. * *Forexample,toallocatenomorethan4.5framesworthofbitrate *toakeyframe,setthisto450. * *Supportedincodecs:VP8,VP9
*/
VP8E_SET_MAX_INTRA_BITRATE_PCT,
/*!\brief Codec control function to set reference and update frame flags. * *Supportedincodecs:VP8
*/
VP8E_SET_FRAME_FLAGS,
/*!\brief Codec control function to set max data rate for Inter frames. * *Thisvaluecontrolsadditionalclampingonthemaximumsizeofan *interframe.Itisexpressedasapercentageoftheaverage *per-framebitrate,withthespecial(anddefault)value0meaning *unlimited,ornoadditionalclampingbeyondthecodec'sbuilt-in *algorithm. * *Forexample,toallownomorethan4.5framesworthofbitrate *toaninterframe,setthisto450. * *Supportedincodecs:VP9
*/
VP9E_SET_MAX_INTER_BITRATE_PCT,
/*!\brief Boost percentage for Golden Frame in CBR mode. * *ThisvaluecontrolstheamountofboostgiventoGoldenFramein *CBRmode.Itisexpressedasapercentageoftheaverage *per-framebitrate,withthespecial(anddefault)value0meaning *thefeatureisoff,i.e.,nogoldenframeboostinCBRmodeand *averagebitratetargetisused. * *Forexample,toallow100%morebits,i.e.,2X,inagoldenframe *thanaverageframe,setthisto100. * *Supportedincodecs:VP9
*/
VP9E_SET_GF_CBR_BOOST_PCT,
/*!\brief Codec control function to set the temporal layer id. * *Fortemporalscalability:thiscontrolallowstheapplicationtosetthe *layeridforeachframetobeencoded.Notethatthiscontrolmustbeset *foreveryframepriortoencoding.Theusageofthiscontrolfunction *supersedestheinternaltemporalpatterncounter,whichisnowdeprecated. * *Supportedincodecs:VP8
*/
VP8E_SET_TEMPORAL_LAYER_ID,
/*!\brief Codec control function to set encoder screen content mode. * *0:off,1:On,2:Onwithmoreaggressiveratecontrol. * *Supportedincodecs:VP8
*/
VP8E_SET_SCREEN_CONTENT_MODE,
/*!\brief Codec control function to set lossless encoding mode. * *VP9canoperateinlosslessencodingmode,inwhichthebitstream *producedwillbeabletodecodeandreconstructaperfectcopyof *inputsource.Thiscontrolfunctionprovidesameantoswitchencoder *intolosslesscodingmode(1)ornormalcodingmode(0)thatmaybelossy. *0=lossycodingmode *1=losslesscodingmode * *Bydefault,encoderoperatesinnormalcodingmode(maybelossy). * *Supportedincodecs:VP9
*/
VP9E_SET_LOSSLESS,
/*!\brief Codec control function to set number of tile columns. * *Inencodinganddecoding,VP9allowsaninputimageframebepartitioned *intoseparatedverticaltilecolumns,whichcanbeencodedordecoded *independently.Thisenableseasyimplementationofparallelencodingand *decoding.Thiscontrolrequeststheencodertousecolumntilesin *encodinganinputframe,withnumberoftilecolumns(inLog2unit)as *theparameter: *0=1tilecolumn *1=2tilecolumns *2=4tilecolumns *..... *n=2**ntilecolumns *Therequestedtilecolumnswillbecappedbytheencoderbasedonimage *sizelimitations(Theminimumwidthofatilecolumnis256pixels,the *maximumis4096). * *Bydefault,thevalueis6,i.e.,themaximumnumberoftilessupportedby *theresolution. * *Supportedincodecs:VP9
*/
VP9E_SET_TILE_COLUMNS,
/*!\brief Codec control function to set number of tile rows. * *Inencodinganddecoding,VP9allowsaninputimageframebepartitioned *intoseparatedhorizontaltilerows.Tilerowsareencodedordecoded *sequentially.Eventhoughencoding/decodingoflatertilerowsdependson *earlierones,thisallowstheencodertooutputdatapacketsfortilerows *priortocompletelyprocessingalltilerowsinaframe,therebyreducing *thelatencyinprocessingbetweeninputandoutput.Theparameter *forthiscontroldescribesthenumberoftilerows,whichhasavalid *range[0,2]: *0=1tilerow *1=2tilerows *2=4tilerows * *Bydefault,thevalueis0,i.e.onesinglerowtileforentireimage. * *Supportedincodecs:VP9
*/
VP9E_SET_TILE_ROWS,
/*!\brief Codec control function to enable frame parallel decoding feature. * *VP9hasabitstreamfeaturetoreducedecodingdependencybetweenframes *byturningoffbackwardupdateofprobabilitycontextusedinencoding *anddecoding.Thisallowsstagedparallelprocessingofmorethanone *videoframeinthedecoder.Thiscontrolfunctionprovidesameansto *turnthisfeatureonoroffforbitstreamsproducedbyencoder. * *Bydefault,thisfeatureison. * *Supportedincodecs:VP9
*/
VP9E_SET_FRAME_PARALLEL_DECODING,
/*!\brief Codec control function to set adaptive quantization mode. * *VP9hasasegmentbasedfeaturethatallowsencodertoadaptivelychange *quantizationparameterforeachsegmentwithinaframetoimprovethe *subjectivequality.Thiscontrolmakesencoderoperateinoneofthe *severalAQ_modessupported. * *Bydefault,encoderoperateswithAQ_Mode0(adaptivequantizationoff). * *Supportedincodecs:VP9
*/
VP9E_SET_AQ_MODE,
/*!\brief Codec control function to enable/disable periodic Q boost. * *OneVP9encoderspeedfeatureistoenablequalityboostbylowering *framelevelQperiodically.Thiscontrolfunctionprovidesameanto *turnon/offthisfeature. *0=off *1=on * *Bydefault,theencoderisallowedtousethisfeatureforappropriate *encodingmodes. * *Supportedincodecs:VP9
*/
VP9E_SET_FRAME_PERIODIC_BOOST,
/*!\brief Codec control function to set noise sensitivity. * *0:off,1:On(YOnly),2:ForSVConly,ontoptwospatiallayers(YOnly) * *Supportedincodecs:VP9
*/
VP9E_SET_NOISE_SENSITIVITY,
/*!\brief Codec control function to turn on/off SVC in encoder. *\noteReturnvalueisVPX_CODEC_INVALID_PARAMiftheencoderdoesnot *supportSVCinitscurrentencodingmode *0:off,1:on * *Supportedincodecs:VP9
*/
VP9E_SET_SVC,
/*!\brief Codec control function to pass an ROI map to encoder. * *Supportedincodecs:VP9
*/
VP9E_SET_ROI_MAP,
/*!\brief Codec control function to set parameters for SVC. *\noteParameterscontainmin_q,max_q,scalingfactorforeachofthe *SVClayers. * *Supportedincodecs:VP9
*/
VP9E_SET_SVC_PARAMETERS,
/*!\brief Codec control function to set svc layer for spatial and temporal. *\noteValidranges:0..#vpx_codec_enc_cfg::ss_number_layersforspatial *layerand0..#vpx_codec_enc_cfg::ts_number_layersfor *temporallayer. * *Supportedincodecs:VP9
*/
VP9E_SET_SVC_LAYER_ID,
/*!\brief Codec control function to set content type. *\noteValidparameterrange: *VP9E_CONTENT_DEFAULT=Regularvideocontent(Default) *VP9E_CONTENT_SCREEN=Screencapturecontent *VP9E_CONTENT_FILM=Filmcontent:improvesgrainretention * *Supportedincodecs:VP9
*/
VP9E_SET_TUNE_CONTENT,
/*!\brief Codec control function to get svc layer ID. *\noteThelayerIDreturnedisforthedatapacketfromtheregistered *callbackfunction. * *Supportedincodecs:VP9
*/
VP9E_GET_SVC_LAYER_ID,
/*!\brief Codec control function to register callback to get per layer packet. *\noteParameterforthiscontrolfunctionisastructurewithacallback *functionandapointertoprivatedatausedbythecallback. * *Supportedincodecs:VP9
*/
VP9E_REGISTER_CX_CALLBACK,
/*!\brief Codec control function to set color space info. *\noteValidranges:0..7,defaultis"UNKNOWN". *0=UNKNOWN, *1=BT_601 *2=BT_709 *3=SMPTE_170 *4=SMPTE_240 *5=BT_2020 *6=RESERVED *7=SRGB * *Supportedincodecs:VP9
*/
VP9E_SET_COLOR_SPACE,
/*!\brief Codec control function to set minimum interval between GF/ARF frames * *Bydefaultthevalueissetas4. * *Supportedincodecs:VP9
*/
VP9E_SET_MIN_GF_INTERVAL = 48,
/*!\brief Codec control function to set minimum interval between GF/ARF frames * *Bydefaultthevalueissetas16. * *Supportedincodecs:VP9
*/
VP9E_SET_MAX_GF_INTERVAL,
/*!\brief Codec control function to get an Active map back from the encoder. * *Supportedincodecs:VP9
*/
VP9E_GET_ACTIVEMAP,
/*!\brief Codec control function to set color range bit. *\noteValidranges:0..1,defaultis0 *0=Limitedrange(16..235orHBDequivalent) *1=Fullrange(0..255orHBDequivalent) * *Supportedincodecs:VP9
*/
VP9E_SET_COLOR_RANGE,
/*!\brief Codec control function to set the frame flags and buffer indices *forspatiallayers.Theframeflagsandbufferindicesaresetusingthe *struct#vpx_svc_ref_frame_configdefinedbelow. * *Supportedincodecs:VP9
*/
VP9E_SET_SVC_REF_FRAME_CONFIG,
/*!\brief Codec control function to set intended rendering image size. * *Bydefault,thisisidenticaltotheimagesizeinpixels. * *Supportedincodecs:VP9
*/
VP9E_SET_RENDER_SIZE,
/*!\brief Codec control function to set target level. * *255:off(default);0:onlykeeplevelstats;10:targetforlevel1.0; *11:targetforlevel1.1;...62:targetforlevel6.2 * *Supportedincodecs:VP9
*/
VP9E_SET_TARGET_LEVEL,
/*!\brief Codec control function to set row level multi-threading. * *0:off,1:on * *Supportedincodecs:VP9
*/
VP9E_SET_ROW_MT,
/*!\brief Codec control function to get bitstream level. * *Supportedincodecs:VP9
*/
VP9E_GET_LEVEL,
/*!\brief Codec control function to enable/disable special mode for altref *adaptivequantization.Youcanuseitwith--aq-modeconcurrently. * *Enablespecialadaptivequantizationforaltrefframesbasedontheir *expectedpredictionqualityforthefutureframes. * *Supportedincodecs:VP9
*/
VP9E_SET_ALT_REF_AQ,
/*!\brief Boost percentage for Golden Frame in CBR mode. * *ThisvaluecontrolstheamountofboostgiventoGoldenFramein *CBRmode.Itisexpressedasapercentageoftheaverage *per-framebitrate,withthespecial(anddefault)value0meaning *thefeatureisoff,i.e.,nogoldenframeboostinCBRmodeand *averagebitratetargetisused. * *Forexample,toallow100%morebits,i.e.,2X,inagoldenframe *thanaverageframe,setthisto100. * *Supportedincodecs:VP8
*/
VP8E_SET_GF_CBR_BOOST_PCT,
/*!\brief Codec control function to enable the extreme motion vector unit test *inVP9.Pleasenotethatthisisonlyusedinmotionvectorunittest. * *0:off,1:MAX_EXTREME_MV,2:MIN_EXTREME_MV * *Supportedincodecs:VP9
*/
VP9E_ENABLE_MOTION_VECTOR_UNIT_TEST,
/*!\brief Codec control function to constrain the inter-layer prediction *(predictionoflowerspatialresolution)inVP9SVC. * *0:inter-layerpredictionon,1:off,2:offonlyonnon-keyframes * *Supportedincodecs:VP9
*/
VP9E_SET_SVC_INTER_LAYER_PRED,
/*!\brief Codec control function to set mode and thresholds for frame *droppinginSVC.Dropframethresholdsaresetper-layer.Modeissetas: *0:layer-dependentdropping,1:constraineddropping,currentlayerdrop *forcesdroponallupperlayers.Defaultmodeis0. * *Supportedincodecs:VP9
*/
VP9E_SET_SVC_FRAME_DROP_LAYER,
/*!\brief Codec control function to get the refresh and reference flags and *thebufferindices,uptothelastencodedspatiallayer. * *Supportedincodecs:VP9
*/
VP9E_GET_SVC_REF_FRAME_CONFIG,
/*!\brief Codec control function to enable/disable use of golden reference as *asecondtemporalreferenceforSVC.Onlyusedwheninter-layerprediction *isdisabledonINTERframes. * *0:Off,1:Enabled(default) * *Supportedincodecs:VP9
*/
VP9E_SET_SVC_GF_TEMPORAL_REF,
/*!\brief Codec control function to enable spatial layer sync frame, for any *spatiallayer.Enablingitforlayerkmeansspatiallayerkwilldisable *alltemporalprediction,butkeeptheinter-layerprediction.Itwill *refreshanytemporalreferencebufferforthatlayer,andresetthe *temporallayerforthesuperframeto0.Settingthelayersyncforbase *spatiallayerforcesakeyframe.Defaultisoff(0)forallspatial *layers.Spatiallayersyncflagisresetto0aftereachencodedlayer, *sowhencontrolisinvokeditisonlyusedforthecurrentsuperframe. * *0:Off(default),1:Enabled * *Supportedincodecs:VP9
*/
VP9E_SET_SVC_SPATIAL_LAYER_SYNC,
/*!\brief Codec control function to enable temporal dependency model. * *Vp9allowstheencodertoruntemporaldependencymodelanduseitto *improvethecompressionperformance.Toenable,setthisparametertobe *1.Thedefaultvalueissettobe1.
*/
VP9E_SET_TPL,
/*!\brief Codec control function to enable post encode frame drop. * *Thiswillallowencodertodropframeafterit'sencoded. * *0:Off(default),1:Enabled * *Supportedincodecs:VP9
*/
VP9E_SET_POSTENCODE_DROP,
/*!\brief Codec control function to set delta q for uv. * *Capitat+/-15. * *Supportedincodecs:VP9
*/
VP9E_SET_DELTA_Q_UV,
/*!\brief Codec control function to disable increase Q on overshoot in CBR. * *0:On(default),1:Disable. * *Supportedincodecs:VP9
*/
VP9E_SET_DISABLE_OVERSHOOT_MAXQ_CBR,
/*!\brief Codec control function to disable loopfilter. * *0:Loopfilteronallframes,1:Disableonnonreferenceframes. *2:Disableonallframes. * *Supportedincodecs:VP9
*/
VP9E_SET_DISABLE_LOOPFILTER,
/*!\brief Codec control function to enable external rate control library. * *args[0]:pathoftheratecontrollibrary * *args[1]:privateconfigoftheratecontrollibrary * *Supportedincodecs:VP9
*/
VP9E_SET_EXTERNAL_RATE_CONTROL,
/*!\brief Codec control to disable internal features in rate control. * *Thiswilldo3things,onlyfor1pass: *-Turnofflowmotioncomputation *-Turnoffgfupdateconstraintonkeyframefrequency *-Turnoffcontentmodeforcyclicrefresh * *Withthose,theratecontrolisexpectedtoworkexactlythesameasthe *interfaceprovidedinratectrl_rtc.cc/h * *Supportedincodecs:VP9
*/
VP9E_SET_RTC_EXTERNAL_RATECTRL,
/*!\brief Codec control function to get loopfilter level in the encoder. * *Supportedincodecs:VP9
*/
VP9E_GET_LOOPFILTER_LEVEL,
/*!\brief Codec control to get last quantizers for all spatial layers. * *Returnvalueusesanarrayofinternalquantizersscaledefinedbythe *codec,forallspatiallayers. *Thesizeofthearraypassedinshouldbe#VPX_SS_MAX_LAYERS. * *Supportedincodecs:VP9
*/
VP9E_GET_LAST_QUANTIZER_SVC_LAYERS,
/*!\brief Codec control to disable internal features in rate control. * *Thiswillturnoffcyclicrefreshforvp8. * *Withthis,theratecontrolisexpectedtoworkexactlythesameasthe *interfaceprovidedinvp8_ratectrl_rtc.cc/h * *Supportedincodecs:VP8
*/
VP8E_SET_RTC_EXTERNAL_RATECTRL,
/*!\brief Codec control to set quantizer for the next frame. * *Thiswillturnoffcyclicrefresh.Onlyapplicableto1-passwithout *spatiallayers. * *Supportedincodecs:VP9 *
*/
VP9E_SET_QUANTIZER_ONE_PASS,
/*!\brief Codec control function to enable key frame temporal filtering. * *Vp9allowstheencodertorunkeyframetemporalfilteringanduseitto *improvethecompressionperformance.Toenable,setthisparametertobe *1.Thedefaultvalueissettobe0.
*/
VP9E_SET_KEY_FRAME_FILTERING,
/*!\brief Codec control function to validate HBD input. * *VP9allowstheencodertovalidatethehighbitdepth(HBD)inputand *ensurethateverypixeliswithinthevalidrange.Todisable/enable, *setthisparameterto0/1.Thedefaultvalueissettobe1. * *Supportedincodecs:VP9
*/
VP9E_SET_VALIDATE_HBD_INPUT,
};
/*!\brief 0-1-0-1... temporal layering scheme with two temporal layers.
*/
VP9E_TEMPORAL_LAYERING_MODE_0101 = 2,
/*!\brief 0-2-1-2... temporal layering scheme with three temporal layers.
*/
VP9E_TEMPORAL_LAYERING_MODE_0212 = 3
} VP9E_TEMPORAL_LAYERING_MODE;
/*!\brief vpx region of interest map * *Thesedefinesthedatastructuresfortheregionofinterestmap *
*/
typedefstruct vpx_roi_map { /*! If ROI is enabled. */
uint8_t enabled; /*! An id between 0-3 (0-7 for vp9) for each 16x16 (8x8 for VP9)
* region within a frame. */ unsignedchar *roi_map; unsignedint rows; /**< Number of rows. */ unsignedint cols; /**< Number of columns. */ /*! VP8 only uses the first 4 segments. VP9 uses 8 segments. */ int delta_q[8]; /**< Quantizer deltas. Valid range: [-63, 63].*/ int delta_lf[8]; /**< Loop filter deltas. Valid range: [-63, 63].*/ /*! skip and ref frame segment is only used in VP9. */ int skip[8]; /**< Skip this block. */ int ref_frame[8]; /**< Reference frame for this block. */ /*! Static breakout threshold for each segment. Only used in VP8. */ unsignedint static_threshold[4];
} vpx_roi_map_t;
/*!\brief vpx active region map * *Thesedefinesthedatastructuresforactiveregionmap *
*/
typedefstruct vpx_active_map { /*!\brief specify an on (1) or off (0) each 16x16 region within a frame */ unsignedchar *active_map; unsignedint rows; /**< number of rows */ unsignedint cols; /**< number of cols */
} vpx_active_map_t;
/*!\brief vp9 svc layer parameters * *Thisdefinesthespatialandtemporallayeridnumbersforsvcencoding. *Thisisusedwiththe#VP9E_SET_SVC_LAYER_IDcontroltosetthespatialand *temporallayeridforthecurrentframe. *
*/ typedefstruct vpx_svc_layer_id { int spatial_layer_id; /**< First spatial layer to start encoding. */ // TODO(jianj): Deprecated, to be removed. int temporal_layer_id; /**< Temporal layer id number. */ int temporal_layer_id_per_spatial[VPX_SS_MAX_LAYERS]; /**< Temp layer id. */
} vpx_svc_layer_id_t;
/*!\brief vp9 svc frame flag parameters. * *Thisdefinestheframeflagsandbufferindicesforeachspatiallayerfor *svcencoding. *Thisisusedwiththe#VP9E_SET_SVC_REF_FRAME_CONFIGcontroltosetframe *flagsandbufferindicesforeachspatiallayerforthecurrent(super)frame. *
*/ typedefstruct vpx_svc_ref_frame_config { int lst_fb_idx[VPX_SS_MAX_LAYERS]; /**< Last buffer index. */ int gld_fb_idx[VPX_SS_MAX_LAYERS]; /**< Golden buffer index. */ int alt_fb_idx[VPX_SS_MAX_LAYERS]; /**< Altref buffer index. */ int update_buffer_slot[VPX_SS_MAX_LAYERS]; /**< Update reference frames. */ // TODO(jianj): Remove update_last/golden/alt_ref, these are deprecated. int update_last[VPX_SS_MAX_LAYERS]; /**< Update last. */ int update_golden[VPX_SS_MAX_LAYERS]; /**< Update golden. */ int update_alt_ref[VPX_SS_MAX_LAYERS]; /**< Update altref. */ int reference_last[VPX_SS_MAX_LAYERS]; /**< Last as reference. */ int reference_golden[VPX_SS_MAX_LAYERS]; /**< Golden as reference. */ int reference_alt_ref[VPX_SS_MAX_LAYERS]; /**< Altref as reference. */
int64_t duration[VPX_SS_MAX_LAYERS]; /**< Duration per spatial layer. */
} vpx_svc_ref_frame_config_t;
/*!\brief VP9 svc frame dropping mode. * *ThisdefinestheframedropmodeforSVC. *
*/ typedefenum {
CONSTRAINED_LAYER_DROP, /**< Upper layers are constrained to drop if current layer drops. */
LAYER_DROP, /**< Any spatial layer can drop. */
FULL_SUPERFRAME_DROP, /**< Only full superframe can drop. */
CONSTRAINED_FROM_ABOVE_DROP, /**< Lower layers are constrained to drop if current layer drops. */
} SVC_LAYER_DROP_MODE;
/*!\brief vp9 svc frame dropping parameters. * *Thisdefinestheframedropthresholdsforeachspatiallayer,and *theframedroppingmode:0=layerbasedframedropping(default), *1=constraineddroppingwherecurrentlayerdropforcesallupper *spatiallayerstodrop.
*/ typedefstruct vpx_svc_frame_drop { int framedrop_thresh[VPX_SS_MAX_LAYERS]; /**< Frame drop thresholds */
SVC_LAYER_DROP_MODE
framedrop_mode; /**< Layer-based or constrained dropping. */ int max_consec_drop; /**< Maximum consecutive drops, for any layer. */
} vpx_svc_frame_drop_t;
/*!\brief vp9 svc spatial layer sync parameters. * *Thisdefinesthespatiallayersyncflag,definedperspatiallayer. *
*/ typedefstruct vpx_svc_spatial_layer_sync { int spatial_layer_sync[VPX_SS_MAX_LAYERS]; /**< Sync layer flags */ int base_layer_intra_only; /**< Flag for setting Intra-only frame on base */
} vpx_svc_spatial_layer_sync_t;
/*!\cond */ /*!\brief VP8 encoder control function parameter type * *DefinesthedatatypesthatVP8Econtrolfunctionstake.Notethat *additionalcommoncontrolsaredefinedinvp8.h *
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.