/*!\name Algorithm interface for AV1 * *ThisinterfaceprovidesthecapabilitytoencoderawAV1streams. *@{
*/
/*!\brief A single instance of the AV1 encoder. *\deprecatedThisaccessmechanismisprovidedforbackwardscompatibility; *preferaom_codec_av1_cx().
*/
extern aom_codec_iface_t aom_codec_av1_cx_algo;
/*!\brief The interface to the AV1 encoder.
*/
extern aom_codec_iface_t *aom_codec_av1_cx(void); /*!@} - end algorithm interface member group */
/*!\brief AVx encoder control functions * *ThissetofmacrosdefinethecontrolfunctionsavailableforAVx *encoderinterface. *TherangeofencodecontrolIDis7-229(max). * *\sa#aom_codec_control(aom_codec_ctx_t*ctx,intctrl_id,...)
*/
enum aome_enc_control_id { /*!\brief Codec control function to set which reference frame encoder can use, *intparameter.
*/
AOME_USE_REFERENCE = 7,
/*!\brief Codec control function to pass an ROI map to encoder, aom_roi_map_t* *parameter.
*/
AOME_SET_ROI_MAP = 8,
/*!\brief Codec control function to pass an Active map to encoder, *aom_active_map_t*parameter.
*/
AOME_SET_ACTIVEMAP = 9,
/* NOTE: enum 10 unused */
/*!\brief Codec control function to set encoder scaling mode for the next *frametobecoded,aom_scaling_mode_t*parameter.
*/
AOME_SET_SCALEMODE = 11,
/*!\brief Codec control function to set encoder spatial layer id, int *parameter.Spatiallayeridmustbewithinvalidrangeof0tothe *allowednumberofspatiallayers,setviathecontrol *AV1E_SET_SVC_PARAMS,orviaAOME_SET_NUMBER_SPATIAL_LAYERS.
*/
AOME_SET_SPATIAL_LAYER_ID = 12,
/*!\brief Codec control function to set encoder internal speed settings, *intparameter * *Changesinthisvalueinfluencesthecomplexityofalgorithmsusedin *encodingprocess,valuesgreaterthan0willincreaseencoderspeedat *theexpenseofquality. * *Validrange:0..12.0runstheslowest,and12runsthefastest; *qualityimprovesasspeeddecreases(sincemorecompression *possibilitiesareexplored). * *NOTE:10-12areonlyallowedinAOM_USAGE_REALTIME.In *AOM_USAGE_GOOD_QUALITYandAOM_USAGE_ALL_INTRA,9isthehighestallowed *value.However,AOM_USAGE_GOOD_QUALITYtreats7..9thesameas6.Also, *AOM_USAGE_REALTIMEtreats0..4thesameas5.
*/
AOME_SET_CPUUSED = 13,
/*!\brief Codec control function to enable automatic set and use arf frames, *unsignedintparameter * *-0=disable *-1=enable(default)
*/
AOME_SET_ENABLEAUTOALTREF = 14,
/* NOTE: enum 15 unused */
/*!\brief Codec control function to set the sharpness parameter, *unsignedintparameter. * *Thisparametercontrolsthelevelatwhichrate-distortionoptimizationof *transformcoefficientsfavorssharpnessintheblock. * *Validrange:0..7.Thedefaultis0. * *Values1-7willavoideobandskipblockoptimizationandwillchange *rdmultinfavorofblocksharpness. * *Inall-intramode:italsosetsthe`loop_filter_sharpness`syntaxelement *inthebitstream.Largervaluesincreasinglyreducehowmuchthefiltering *canchangethesamplevaluesonblockedgestofavorperceivedsharpness.
*/
AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2, // 16
/*!\brief Codec control function to set the threshold for MBs treated static, *unsignedintparameter
*/
AOME_SET_STATIC_THRESHOLD = 17,
/* NOTE: enum 18 unused */
/*!\brief Codec control function to get last quantizer chosen by the encoder, *int*parameter * *Returnvalueusesinternalquantizerscaledefinedbythecodec.
*/
AOME_GET_LAST_QUANTIZER = AOME_SET_STATIC_THRESHOLD + 2, // 19
/*!\brief Codec control function to get last quantizer chosen by the encoder, *int*parameter * *Returnvalueusesthe0..63scaleasusedbytherc_*_quantizerconfig *parameters.
*/
AOME_GET_LAST_QUANTIZER_64 = 20,
/*!\brief Codec control function to set the max no of frames to create arf, *unsignedintparameter
*/
AOME_SET_ARNR_MAXFRAMES = 21,
/*!\brief Codec control function to set the filter strength for the arf, *unsignedintparameter
*/
AOME_SET_ARNR_STRENGTH = 22,
/* NOTE: enum 23 unused */
/*!\brief Codec control function to set visual tuning, aom_tune_metric (int) *parameter * *ThedefaultisAOM_TUNE_PSNR.
*/
AOME_SET_TUNING = AOME_SET_ARNR_STRENGTH + 2, // 24
/*!\brief Codec control function to set constrained / constant quality level, *unsignedintparameter * *Validrange:0..63 * *\attentionForthisvaluetobeusedaom_codec_enc_cfg_t::rc_end_usage *mustbesetto#AOM_CQor#AOM_Q.
*/
AOME_SET_CQ_LEVEL = 25,
/*!\brief Codec control function to set max data rate for intra frames, *unsignedintparameter * *Thisvaluecontrolsadditionalclampingonthemaximumsizeofa *keyframe.Itisexpressedasapercentageoftheaverage *per-framebitrate,withthespecial(anddefault)value0meaning *unlimited,ornoadditionalclampingbeyondthecodec'sbuilt-in *algorithm. * *Forexample,toallocatenomorethan4.5framesworthofbitrate *toakeyframe,setthisto450.
*/
AOME_SET_MAX_INTRA_BITRATE_PCT = 26,
/*!\brief Codec control function to set number of spatial layers, int *parameter * *Validrange: *\liWhenusing#AV1E_SET_SVC_REF_FRAME_CONFIG:[1,#AOM_MAX_SS_LAYERS] *\liWhen\emnotusing#AV1E_SET_SVC_REF_FRAME_CONFIG:[1,3]
*/
AOME_SET_NUMBER_SPATIAL_LAYERS = 27,
/*!\brief Codec control function to set max data rate for inter frames, *unsignedintparameter * *Thisvaluecontrolsadditionalclampingonthemaximumsizeofan *interframe.Itisexpressedasapercentageoftheaverage *per-framebitrate,withthespecial(anddefault)value0meaning *unlimited,ornoadditionalclampingbeyondthecodec'sbuilt-in *algorithm. * *Forexample,toallownomorethan4.5framesworthofbitrate *toaninterframe,setthisto450.
*/
AV1E_SET_MAX_INTER_BITRATE_PCT = AOME_SET_MAX_INTRA_BITRATE_PCT + 2, // 28
/*!\brief Boost percentage for Golden Frame in CBR mode, unsigned int *parameter * *ThisvaluecontrolstheamountofboostgiventoGoldenFramein *CBRmode.Itisexpressedasapercentageoftheaverage *per-framebitrate,withthespecial(anddefault)value0meaning *thefeatureisoff,i.e.,nogoldenframeboostinCBRmodeand *averagebitratetargetisused. * *Forexample,toallow100%morebits,i.e,2X,inagoldenframe *thanaverageframe,setthisto100.
*/
AV1E_SET_GF_CBR_BOOST_PCT = 29,
/* NOTE: enum 30 unused */
/*!\brief Codec control function to set lossless encoding mode, unsigned int *parameter * *AV1canoperateinlosslessencodingmode,inwhichthebitstream *producedwillbeabletodecodeandreconstructaperfectcopyof *inputsource. * *-0=normalcodingmode,maybelossy(default) *-1=losslesscodingmode
*/
AV1E_SET_LOSSLESS = AV1E_SET_GF_CBR_BOOST_PCT + 2, // 31
/*!\brief Codec control function to enable the row based multi-threading *oftheencoder,unsignedintparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ROW_MT = 32,
/*!\brief Codec control function to set number of tile columns. unsigned int *parameter * *Inencodinganddecoding,AV1allowsaninputimageframebepartitioned *intoseparateverticaltilecolumns,whichcanbeencodedordecoded *independently.Thisenableseasyimplementationofparallelencodingand *decoding.Theparameterforthiscontroldescribesthenumberoftile *columns(inlog2units),whichhasavalidrangeof[0,6]: *\verbatim 0=1tilecolumn 1=2tilecolumns 2=4tilecolumns ..... n=2**ntilecolumns \endverbatim *Bydefault,thevalueis0,i.e.onesinglecolumntileforentireimage.
*/
AV1E_SET_TILE_COLUMNS = 33,
/*!\brief Codec control function to set number of tile rows, unsigned int *parameter * *Inencodinganddecoding,AV1allowsaninputimageframebepartitioned *intoseparatehorizontaltilerows,whichcanbeencodedordecoded *independently.Theparameterforthiscontroldescribesthenumberoftile *rows(inlog2units),whichhasavalidrangeof[0,6]: *\verbatim 0=1tilerow 1=2tilerows 2=4tilerows ..... n=2**ntilerows \endverbatim *Bydefault,thevalueis0,i.e.onesinglerowtileforentireimage.
*/
AV1E_SET_TILE_ROWS = 34,
/*!\brief Codec control function to enable RDO modulated by frame temporal *dependency,unsignedintparameter * *-0=disable *-1=enable(default) * *\noteExcludedfromCONFIG_REALTIME_ONLYbuild.
*/
AV1E_SET_ENABLE_TPL_MODEL = 35,
/*!\brief Codec control function to enable temporal filtering on key frame, *unsignedintparameter * *-0=disable *-1=enablewithoutoverlay(default) *-2=enablewithoverlay
*/
AV1E_SET_ENABLE_KEYFRAME_FILTERING = 36,
/*!\brief Codec control function to enable frame parallel decoding feature, *unsignedintparameter * *AV1hasabitstreamfeaturetoreducedecodingdependencybetweenframes *byturningoffbackwardupdateofprobabilitycontextusedinencoding *anddecoding.Thisallowsstagedparallelprocessingofmorethanone *videoframesinthedecoder.Thiscontrolfunctionprovidesameansto *turnthisfeatureonoroffforbitstreamsproducedbyencoder. * *-0=disable(default) *-1=enable
*/
AV1E_SET_FRAME_PARALLEL_DECODING = 37,
/*!\brief Codec control function to enable error_resilient_mode, int parameter * *AV1hasabitstreamfeaturetoguaranteeparsabilityofaframe *byturningontheerror_resilient_decodingmode,eventhoughthe *referencebuffersareunreliableornotreceived. * *-0=disable(default) *-1=enable
*/
AV1E_SET_ERROR_RESILIENT_MODE = 38,
/*!\brief Codec control function to enable s_frame_mode, int parameter * *AV1hasabitstreamfeaturetodesignatecertainframesasS-frames, *fromwherewecanswitchtoadifferentstream, *eventhoughthereferencebuffersmaynotbeexactlyidentical. * *-0=disable(default) *-1=enable
*/
AV1E_SET_S_FRAME_MODE = 39,
/*!\brief Codec control function to set adaptive quantization mode, unsigned *intparameter * *AV1hasasegmentbasedfeaturethatallowsencodertoadaptivelychange *quantizationparameterforeachsegmentwithinaframetoimprovethe *subjectivequality.Thiscontrolmakesencoderoperateinoneofthe *severalAQmodessupported. * *-0=disable(default) *-1=variance *-2=complexity *-3=cyclicrefresh
*/
AV1E_SET_AQ_MODE = 40,
/*!\brief Codec control function to enable/disable periodic Q boost, unsigned *intparameter * *OneAV1encoderspeedfeatureistoenablequalityboostbylowering *framelevelQperiodically.Thiscontrolfunctionprovidesameansto *turnon/offthisfeature. * *-0=disable(default) *-1=enable
*/
AV1E_SET_FRAME_PERIODIC_BOOST = 41,
/*!\brief Codec control function to set noise sensitivity, unsigned int *parameter * *-0=disable(default) *-1=enable(Yonly)
*/
AV1E_SET_NOISE_SENSITIVITY = 42,
/*!\brief Codec control function to set content type, aom_tune_content *parameter * *-AOM_CONTENT_DEFAULT=Regularvideocontent(default) *-AOM_CONTENT_SCREEN=Screencapturecontent *-AOM_CONTENT_FILM=Filmcontent
*/
AV1E_SET_TUNE_CONTENT = 43,
/*!\brief Codec control function to set CDF update mode, unsigned int *parameter * *-0:noupdate *-1:updateoneveryframe(default) *-2:selectivelyupdate
*/
AV1E_SET_CDF_UPDATE_MODE = 44,
/*!\brief Codec control function to set color space info, int parameter * *-0=Forfutureuse *-1=BT.709 *-2=Unspecified(default) *-3=Forfutureuse *-4=BT.470SystemM(historical) *-5=BT.470SystemB,G(historical) *-6=BT.601 *-7=SMPTE240 *-8=Genericfilm(colorfiltersusingilluminantC) *-9=BT.2020,BT.2100 *-10=SMPTE428(CIE1921XYZ) *-11=SMPTERP431-2 *-12=SMPTEEG432-1 *-13..21=Forfutureuse *-22=EBUTech.3213-E *-23=Forfutureuse
*/
AV1E_SET_COLOR_PRIMARIES = 45,
/*!\brief Codec control function to set transfer function info, int parameter * *-0=Forfutureuse *-1=BT.709 *-2=Unspecified(default) *-3=Forfutureuse *-4=BT.470SystemM(historical) *-5=BT.470SystemB,G(historical) *-6=BT.601 *-7=SMPTE240M *-8=Linear *-9=Logarithmic(100:1range) *-10=Logarithmic(100*Sqrt(10):1range) *-11=IEC61966-2-4 *-12=BT.1361 *-13=sRGBorsYCC *-14=BT.202010-bitsystems *-15=BT.202012-bitsystems *-16=SMPTEST2084,ITUBT.2100PQ *-17=SMPTEST428 *-18=BT.2100HLG,ARIBSTD-B67 *-19=Forfutureuse
*/
AV1E_SET_TRANSFER_CHARACTERISTICS = 46,
/*!\brief Codec control function to set transfer function info, int parameter * *-0=Identitymatrix *-1=BT.709 *-2=Unspecified(default) *-3=Forfutureuse *-4=USFCC73.628 *-5=BT.470SystemB,G(historical) *-6=BT.601 *-7=SMPTE240M *-8=YCgCo *-9=BT.2020non-constantluminance,BT.2100YCbCr *-10=BT.2020constantluminance *-11=SMPTEST2085YDzDx *-12=Chromaticity-derivednon-constantluminance *-13=Chromaticity-derivedconstantluminance *-14=BT.2100ICtCp *-15=Forfutureuse
*/
AV1E_SET_MATRIX_COEFFICIENTS = 47,
/*!\brief Codec control function to set chroma 4:2:0 sample position info, *aom_chroma_sample_position_tparameter * *AOM_CSP_UNKNOWNisdefault
*/
AV1E_SET_CHROMA_SAMPLE_POSITION = 48,
/*!\brief Codec control function to set minimum interval between GF/ARF *frames,unsignedintparameter * *Bydefaultthevalueissetas4.
*/
AV1E_SET_MIN_GF_INTERVAL = 49,
/*!\brief Codec control function to set minimum interval between GF/ARF *frames,unsignedintparameter * *Bydefaultthevalueissetas16.
*/
AV1E_SET_MAX_GF_INTERVAL = 50,
/*!\brief Codec control function to get an active map back from the encoder, aom_active_map_t*parameter
*/
AV1E_GET_ACTIVEMAP = 51,
/*!\brief Codec control function to set color range bit, int parameter * *-0=Limitedrange,16..235orHBDequivalent(default) *-1=Fullrange,0..255orHBDequivalent
*/
AV1E_SET_COLOR_RANGE = 52,
/*!\brief Codec control function to set intended rendering image size, *int32_t[2]parameter * *Bydefault,thisisidenticaltotheimagesizeinpixels.
*/
AV1E_SET_RENDER_SIZE = 53,
/*!\brief Control to set target sequence level index for a certain operating *point(OP),intparameter *Possiblevaluesareintheformof"ABxy". *-AB:OPindex. *-xy:TargetlevelindexfortheOP.Possiblevaluesare: *+0~27:correspondingtolevel2.0~8.3.Note: *>Levels2.2(2),2.3(3),3.2(6),3.3(7),4.2(10)&4.3(11)are *undefined. *>Levels7.xand8.x(20~27)areindraftstatus,availableunderthe *configflagCONFIG_CWG_C013. *+31:maximumparameterslevel,nolevel-basedconstraints. *+32:keeplevelstatsonlyforlevelmonitoring. * *E.g.: *-"0"meanstargetlevelindex0(2.0)forthe0thOP; *-"109"meanstargetlevelindex9(4.1)forthe1stOP; *-"1019"meanstargetlevelindex19(6.3)forthe10thOP. * *IfthetargetlevelisnotspecifiedforanOP,themaximumparameters *levelof31isusedasdefault.
*/
AV1E_SET_TARGET_SEQ_LEVEL_IDX = 54,
/*!\brief Codec control function to get sequence level index for each *operatingpoint.int*parameter.Therecanbeatmost32operatingpoints. *Theresultswillbewrittenintoaprovidedintegerarrayofsufficient *size.
*/
AV1E_GET_SEQ_LEVEL_IDX = 55,
/*!\brief Codec control function to set intended superblock size, unsigned int *parameter * *Bydefault,thesuperblocksizeisdeterminedseparatelyforeach *framebytheencoder.
*/
AV1E_SET_SUPERBLOCK_SIZE = 56,
/*!\brief Codec control function to enable automatic set and use of *bwd-predframes,unsignedintparameter * *-0=disable(default) *-1=enable
*/
AOME_SET_ENABLEAUTOBWDREF = 57,
/*!\brief Codec control function to encode with CDEF, unsigned int parameter * *CDEFistheconstraineddirectionalenhancementfilterwhichisan *in-loopfilteraimingtoremovecodingartifacts * *-0=disable *-1=enableforallframes(default) *-2=disablefornon-referenceframes *-3=enableadaptivelybasedonframeqindex
*/
AV1E_SET_ENABLE_CDEF = 58,
/*!\brief Codec control function to encode with Loop Restoration Filter, *unsignedintparameter * *-0=disable *-1=enable(default) * *\noteExcludedfromCONFIG_REALTIME_ONLYbuild.
*/
AV1E_SET_ENABLE_RESTORATION = 59,
/*!\brief Codec control function to force video mode, unsigned int parameter * *-0=donotforcevideomode(default) *-1=forcevideomodeevenforasingleframe
*/
AV1E_SET_FORCE_VIDEO_MODE = 60,
/*!\brief Codec control function to predict with OBMC mode, unsigned int *parameter * *-0=disable *-1=enable(default) * *\noteExcludedfromCONFIG_REALTIME_ONLYbuild.
*/
AV1E_SET_ENABLE_OBMC = 61,
/*!\brief Codec control function to encode without trellis quantization, *unsignedintparameter * *-0=applytrellisquantization(default) *-1=donotapplytrellisquantization *-2=disabletrellisquantizationinrdsearch *-3=disabletrellisquantizationinestimateyrd
*/
AV1E_SET_DISABLE_TRELLIS_QUANT = 62,
/*!\brief Codec control function to encode with quantisation matrices, *unsignedintparameter * *AOMcanoperatewithdefaultquantisationmatricesdependenton *quantisationlevelandblocktype. * *-0=disable(default) *-1=enable
*/
AV1E_SET_ENABLE_QM = 63,
/*!\brief Codec control function to set the min quant matrix flatness, *unsignedintparameter * *AOMcanoperatewithdifferentrangesofquantisationmatrices. *Asquantisationlevelsincrease,thematricesgetflatter.This *controlsetstheminimumlevelofflatnessfromwhichthematrices *aredetermined. * *Bydefault,theencodersetsthisminimumatlevel5(4inallintra *mode).
*/
AV1E_SET_QM_MIN = 64,
/*!\brief Codec control function to set the max quant matrix flatness, *unsignedintparameter * *AOMcanoperatewithdifferentrangesofquantisationmatrices. *Asquantisationlevelsincrease,thematricesgetflatter.This *controlsetsthemaximumlevelofflatnesspossible. * *Bydefault,theencodersetsthismaximumatlevel9(10inallintra *mode)
*/
AV1E_SET_QM_MAX = 65,
/*!\brief Codec control function to set the min quant matrix flatness, *unsignedintparameter * *AOMcanoperatewithdifferentrangesofquantisationmatrices. *Asquantisationlevelsincrease,thematricesgetflatter.This *controlsetstheflatnessforluma(Y). * *Bydefault,theencodersetsthisminimumathalftheavailable *range.
*/
AV1E_SET_QM_Y = 66,
/*!\brief Codec control function to set the min quant matrix flatness, *unsignedintparameter * *AOMcanoperatewithdifferentrangesofquantisationmatrices. *Asquantisationlevelsincrease,thematricesgetflatter.This *controlsetstheflatnessforchroma(U). * *Bydefault,theencodersetsthisminimumathalftheavailable *range.
*/
AV1E_SET_QM_U = 67,
/*!\brief Codec control function to set the min quant matrix flatness, *unsignedintparameter * *AOMcanoperatewithdifferentrangesofquantisationmatrices. *Asquantisationlevelsincrease,thematricesgetflatter.This *controlsetstheflatnessforchrome(V). * *Bydefault,theencodersetsthisminimumathalftheavailable *range.
*/
AV1E_SET_QM_V = 68,
/* NOTE: enum 69 unused */
/*!\brief Codec control function to set a maximum number of tile groups, *unsignedintparameter * *Thiswillsetthemaximumnumberoftilegroups.Thiswillbe *overriddenifanMTUsizeisset.Thedefaultvalueis1.
*/
AV1E_SET_NUM_TG = 70,
/*!\brief Codec control function to set an MTU size for a tile group, unsigned *intparameter * *Thiswillsetthemaximumnumberofbytesinatilegroup.Thiscanbe *exceededonlyifasingletileislargerthanthisamount. * *Bydefault,thevalueis0,inwhichcaseafixednumberoftilegroups *isused.
*/
AV1E_SET_MTU = 71,
/* NOTE: enum 72 unused */
/*!\brief Codec control function to enable/disable rectangular partitions, int *parameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_RECT_PARTITIONS = 73,
/*!\brief Codec control function to enable/disable AB partitions, int *parameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_AB_PARTITIONS = 74,
/*!\brief Codec control function to enable/disable 1:4 and 4:1 partitions, int *parameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_1TO4_PARTITIONS = 75,
/*!\brief Codec control function to set min partition size, int parameter * *min_partition_sizeisappliedtobothwidthandheightofthepartition. *i.e,bothwidthandheightofapartitioncannotbesmallerthan *themin_partition_size,exceptthepartitionatthepictureboundary. * *Validvalues:[4,8,16,32,64,128].Thedefaultvalueis4for *4x4.
*/
AV1E_SET_MIN_PARTITION_SIZE = 76,
/*!\brief Codec control function to set max partition size, int parameter * *max_partition_sizeisappliedtobothwidthandheightofthepartition. *i.e,bothwidthandheightofapartitioncannotbelargerthan *themax_partition_size. * *Validvalues:[4,8,16,32,64,128]Thedefaultvalueis128for *128x128.
*/
AV1E_SET_MAX_PARTITION_SIZE = 77,
/*!\brief Codec control function to turn on / off intra edge filter *atsequencelevel,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_INTRA_EDGE_FILTER = 78,
/*!\brief Codec control function to turn on / off frame order hint (int *parameter).Affects:jointcompoundmode,motionfieldmotionvector, *refframesignbias * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_ORDER_HINT = 79,
/*!\brief Codec control function to turn on / off 64-length transforms, int *parameter * *Thiswillenableordisableusageoflength64transformsinany *direction. * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_TX64 = 80,
/*!\brief Codec control function to turn on / off flip and identity *transforms,intparameter * *Thiswillenableordisableusageofflipandidentitytransform *typesinanydirection.Ifenabled,thisincludes: *-FLIPADST_DCT *-DCT_FLIPADST *-FLIPADST_FLIPADST *-ADST_FLIPADST *-FLIPADST_ADST *-IDTX *-V_DCT *-H_DCT *-V_ADST *-H_ADST *-V_FLIPADST *-H_FLIPADST * *Validvalues: *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_FLIP_IDTX = 81,
/*!\brief Codec control function to turn on / off rectangular transforms, int *parameter * *Thiswillenableordisableusageofrectangulartransforms.NOTE: *Rectangulartransformsonlyenabledwhencorrespondingrectangular *partitionsare. * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_RECT_TX = 82,
/*!\brief Codec control function to turn on / off dist-wtd compound mode *atsequencelevel,intparameter * *Thiswillenableordisabledistance-weightedcompoundmode. *\attentionIfAV1E_SET_ENABLE_ORDER_HINTis0,thenthisflagisforced *to0. * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_DIST_WTD_COMP = 83,
/*!\brief Codec control function to turn on / off ref frame mvs (mfmv) usage *atsequencelevel,intparameter * *\attentionIfAV1E_SET_ENABLE_ORDER_HINTis0,thenthisflagisforced *to0. * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_REF_FRAME_MVS = 84,
/*!\brief Codec control function to set temporal mv prediction *enabling/disablingatframelevel,intparameter * *\attentionIfAV1E_SET_ENABLE_REF_FRAME_MVSis0,thenthisflagis *forcedto0. * *-0=disable *-1=enable(default)
*/
AV1E_SET_ALLOW_REF_FRAME_MVS = 85,
/*!\brief Codec control function to turn on / off dual interpolation filter *forasequence,intparameter * *-0=disable *-1=enable
*/
AV1E_SET_ENABLE_DUAL_FILTER = 86,
/*!\brief Codec control function to turn on / off delta quantization in chroma *planesforasequence,intparameter * *-0=disable(default) *-1=enable
*/
AV1E_SET_ENABLE_CHROMA_DELTAQ = 87,
/*!\brief Codec control function to turn on / off masked compound usage *(wedgeanddiff-wtdcompoundmodes)forasequence,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_MASKED_COMP = 88,
/*!\brief Codec control function to turn on / off one sided compound usage *forasequence,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_ONESIDED_COMP = 89,
/*!\brief Codec control function to turn on / off interintra compound *forasequence,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_INTERINTRA_COMP = 90,
/*!\brief Codec control function to turn on / off smooth inter-intra *modeforasequence,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_SMOOTH_INTERINTRA = 91,
/*!\brief Codec control function to turn on / off difference weighted *compound,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_DIFF_WTD_COMP = 92,
/*!\brief Codec control function to turn on / off interinter wedge *compound,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_INTERINTER_WEDGE = 93,
/*!\brief Codec control function to turn on / off interintra wedge *compound,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_INTERINTRA_WEDGE = 94,
/*!\brief Codec control function to turn on / off global motion usage *forasequence,intparameter * *-0=disable *-1=enable(default) * *\noteExcludedfromCONFIG_REALTIME_ONLYbuild.
*/
AV1E_SET_ENABLE_GLOBAL_MOTION = 95,
/*!\brief Codec control function to turn on / off warped motion usage *atsequencelevel,intparameter * *-0=disable *-1=enable(default) * *\noteExcludedfromCONFIG_REALTIME_ONLYbuild.
*/
AV1E_SET_ENABLE_WARPED_MOTION = 96,
/*!\brief Codec control function to turn on / off warped motion usage *atframelevel,intparameter * *\attentionIfAV1E_SET_ENABLE_WARPED_MOTIONis0,thenthisflagis *forcedto0. * *-0=disable *-1=enable(default) * *\noteExcludedfromCONFIG_REALTIME_ONLYbuild.
*/
AV1E_SET_ALLOW_WARPED_MOTION = 97,
/*!\brief Codec control function to turn on / off filter intra usage at *sequencelevel,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_FILTER_INTRA = 98,
/*!\brief Codec control function to turn on / off smooth intra modes usage, *intparameter * *Thiswillenableordisableusageofsmooth,smooth_handsmooth_vintra *modes. * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_SMOOTH_INTRA = 99,
/*!\brief Codec control function to turn on / off Paeth intra mode usage, int *parameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_PAETH_INTRA = 100,
/*!\brief Codec control function to turn on / off CFL uv intra mode usage, int *parameter * *Thiswillenableordisableusageofchroma-from-lumaintramode. * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_CFL_INTRA = 101,
/*!\brief Codec control function to turn on / off frame superresolution, int *parameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_SUPERRES = 102,
/*!\brief Codec control function to turn on / off overlay frames for *filteredALTREFframes,intparameter * *ThiswillenableordisablecodingofoverlayframesforfilteredALTREF *frames.Whensetto0,overlayframesarenotusedbutshowexistingframe *isusedtodisplaythefilteredALTREFframeasis.Asaresultthedecoded *framerateremainsthesameasthedisplayframerate.Thedefaultis1.
*/
AV1E_SET_ENABLE_OVERLAY = 103,
/*!\brief Codec control function to turn on/off palette mode, int parameter */
AV1E_SET_ENABLE_PALETTE = 104,
/*!\brief Codec control function to turn on/off intra block copy mode, int
parameter */
AV1E_SET_ENABLE_INTRABC = 105,
/*!\brief Codec control function to turn on/off intra angle delta, int
parameter */
AV1E_SET_ENABLE_ANGLE_DELTA = 106,
/*!\brief Codec control function to set the delta q mode, unsigned int *parameter * *AV1supportsadeltaqmodefeature,thatallowsmodulatingqper *superblock. * *-0=deltaqsignalingoff *-1=usemodulationtomaximizeobjectivequality(default) *-2=usemodulationforlocaltest *-3=usemodulationforkeyframeperceptualqualityoptimization *-4=usemodulationforuserratingbasedperceptualqualityoptimization *-5=usemodulationforHDRvideo *-6=usemodulationforallintrausingVarianceBoost * *\attentionDeltaqmodes1-5areunsupportedandaresilentlyignoredin *non-RDmode.Non-RDmodeisenabledbysettingcpu-used>=8(allintra *usage)andcpu-used>=7(realtimeusage).
*/
AV1E_SET_DELTAQ_MODE = 107,
/*!\brief Codec control function to turn on/off loopfilter modulation *whendeltaqmodulationisenabled,unsignedintparameter. * *\attentionAV1onlysupportsloopfiltermodulationwhendeltaq *modulationisenabledaswell.
*/
AV1E_SET_DELTALF_MODE = 108,
/*!\brief Codec control function to set the single tile decoding mode, *unsignedintparameter * *\attentionOnlyapplicableiflargescaletilingison. * *-0=singletiledecodingisoff *-1=singletiledecodingison(default)
*/
AV1E_SET_SINGLE_TILE_DECODING = 109,
/*!\brief Codec control function to enable the extreme motion vector unit *test,unsignedintparameter * *-0=off *-1=MAX_EXTREME_MV *-2=MIN_EXTREME_MV * *\noteThisisonlyusedinmotionvectorunittest.
*/
AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST = 110,
/*!\brief Codec control function to signal picture timing info in the *bitstream,aom_timing_info_type_tparameter.Defaultis *AOM_TIMING_UNSPECIFIED.
*/
AV1E_SET_TIMING_INFO_TYPE = 111,
/*!\brief Codec control function to add film grain parameters (one of several *presettypes)infointhebitstream,intparameter * Validrange:0..16,0isunknown,1..16aretestvectors
*/
AV1E_SET_FILM_GRAIN_TEST_VECTOR = 112,
/*!\brief Codec control function to set the path to the film grain parameters, *constchar*parameter
*/
AV1E_SET_FILM_GRAIN_TABLE = 113,
/*!\brief Sets the noise level, int parameter */
AV1E_SET_DENOISE_NOISE_LEVEL = 114,
/*!\brief Sets the denoisers block size, unsigned int parameter */
AV1E_SET_DENOISE_BLOCK_SIZE = 115,
/*!\brief Sets the chroma subsampling x value, unsigned int parameter */
AV1E_SET_CHROMA_SUBSAMPLING_X = 116,
/*!\brief Sets the chroma subsampling y value, unsigned int parameter */
AV1E_SET_CHROMA_SUBSAMPLING_Y = 117,
/*!\brief Control to use a reduced tx type set, int parameter */
AV1E_SET_REDUCED_TX_TYPE_SET = 118,
/*!\brief Control to use dct only for intra modes, int parameter */
AV1E_SET_INTRA_DCT_ONLY = 119,
/*!\brief Control to use dct only for inter modes, int parameter */
AV1E_SET_INTER_DCT_ONLY = 120,
/*!\brief Control to use default tx type only for intra modes, int parameter
*/
AV1E_SET_INTRA_DEFAULT_TX_ONLY = 121,
/*!\brief Control to use adaptive quantize_b, int parameter */
AV1E_SET_QUANT_B_ADAPT = 122,
/*!\brief Control to select maximum height for the GF group pyramid structure, *unsignedintparameter * *Validrange:0..5
*/
AV1E_SET_GF_MAX_PYRAMID_HEIGHT = 123,
/*!\brief Control to select maximum reference frames allowed per frame, int *parameter * *Validrange:3..7
*/
AV1E_SET_MAX_REFERENCE_FRAMES = 124,
/*!\brief Control to use reduced set of single and compound references, int
parameter */
AV1E_SET_REDUCED_REFERENCE_SET = 125,
/*!\brief Control to set frequency of the cost updates for coefficients, *unsignedintparameter * *-0=updateatSBlevel(default) *-1=updateatSBrowlevelintile *-2=updateattilelevel *-3=turnoff
*/
AV1E_SET_COEFF_COST_UPD_FREQ = 126,
/*!\brief Control to set frequency of the cost updates for mode, unsigned int *parameter * *-0=updateatSBlevel(default) *-1=updateatSBrowlevelintile *-2=updateattilelevel *-3=turnoff
*/
AV1E_SET_MODE_COST_UPD_FREQ = 127,
/*!\brief Control to set frequency of the cost updates for motion vectors, *unsignedintparameter * *-0=updateatSBlevel(default) *-1=updateatSBrowlevelintile *-2=updateattilelevel *-3=turnoff
*/
AV1E_SET_MV_COST_UPD_FREQ = 128,
/*!\brief Control to set bit mask that specifies which tier each of the 32 *possibleoperatingpointsconformsto,unsignedintparameter * *-0=maintier(default) *-1=hightier
*/
AV1E_SET_TIER_MASK = 129,
/*!\brief Control to set minimum compression ratio, unsigned int parameter *Takeintegervalues.Ifnon-zero,encoderwilltrytokeepthecompression *ratioofeachframetobehigherthanthegivenvaluedividedby100. *E.g.850meansminimumcompressionratioof8.5.
*/
AV1E_SET_MIN_CR = 130,
/* NOTE: enums 145-149 unused */
/*!\brief Codec control function to set the layer id, aom_svc_layer_id_t* *parameter.Layeridforspatialortemporallayermustbewithinvalid *rangeof0totheallowednumberofspatialortemporallayers,setvia *thecontrolAV1E_SET_SVC_PARAMS,orviaAOME_SET_NUMBER_SPATIAL_LAYERS.
*/
AV1E_SET_SVC_LAYER_ID = 131,
/*!\brief Codec control function to set SVC parameters, aom_svc_params_t* *parameter
*/
AV1E_SET_SVC_PARAMS = 132,
/*!\brief Codec control function to set the reference frame config, *aom_svc_ref_frame_config_t*parameter
*/
AV1E_SET_SVC_REF_FRAME_CONFIG = 133,
/*!\brief Codec control function to set the path to the VMAF model used when *tuningtheencoderforVMAF,constchar*parameter
*/
AV1E_SET_VMAF_MODEL_PATH = 134,
/*!\brief Codec control function to enable EXT_TILE_DEBUG in AV1 encoder, *unsignedintparameter * *-0=disable(default) *-1=enable * *\noteThisisonlyusedinlightfieldexampletest.
*/
AV1E_ENABLE_EXT_TILE_DEBUG = 135,
/*!\brief Codec control function to enable the superblock multipass unit test *inAV1toensurethattheencoderdoesnotleakstatebetweendifferent *passes.unsignedintparameter. * *-0=disable(default) *-1=enable * *\noteThisisonlyusedinsb_multipassunittest.
*/
AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST = 136,
/*!\brief Control to select minimum height for the GF group pyramid structure, *unsignedintparameter * *Validvalues:0..5
*/
AV1E_SET_GF_MIN_PYRAMID_HEIGHT = 137,
/*!\brief Control to set average complexity of the corpus in the case of *singlepassvbrbasedonLAP,unsignedintparameter
*/
AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP = 138,
/*!\brief Control to get baseline gf interval
*/
AV1E_GET_BASELINE_GF_INTERVAL = 139,
/*\brief Control to set encoding the denoised frame from denoise-noise-level * *-0=disabled/encodetheoriginalframe *-1=enabled/encodethedenoisedframe(default)
*/
AV1E_SET_ENABLE_DNL_DENOISING = 140,
/*!\brief Codec control function to turn on / off D45 to D203 intra mode *usage,intparameter * *ThiswillenableordisableusageofD45toD203intramodes,whicharea *subsetofdirectionalmodes.Thiscontrolhasnoeffectifdirectional *modesaredisabled(AV1E_SET_ENABLE_DIRECTIONAL_INTRAsetto0). * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_DIAGONAL_INTRA = 141,
/*!\brief Control to set frequency of the cost updates for intrabc motion *vectors,unsignedintparameter * *-0=updateatSBlevel(default) *-1=updateatSBrowlevelintile *-2=updateattilelevel *-3=turnoff
*/
AV1E_SET_DV_COST_UPD_FREQ = 142,
/*!\brief Codec control to set the path for partition stats read and write. *constchar*parameter.
*/
AV1E_SET_PARTITION_INFO_PATH = 143,
/*!\brief Codec control to use an external partition model *Asetofcallbackfunctionsispassedthroughthiscontrol *tolettheencoderencodewithgivenpartitions.
*/
AV1E_SET_EXTERNAL_PARTITION = 144,
/*!\brief Codec control function to turn on / off directional intra mode *usage,intparameter * *-0=disable *-1=enable(default)
*/
AV1E_SET_ENABLE_DIRECTIONAL_INTRA = 145,
/*!\brief Control to turn on / off transform size search. *Note:itcannotworkwithnonRDpickmodeinreal-timeencoding, *wherethemaxtransformsizeisonly16x16. *ItwillbeignoredifnonRDpickmodeisset. * *-0=disable,transformsalwayshavethelargestpossiblesize *-1=enable,searchforthebesttransformsizeforeachblock(default)
*/
AV1E_SET_ENABLE_TX_SIZE_SEARCH = 146,
/*!\brief Codec control function to set reference frame compound prediction. *aom_svc_ref_frame_comp_pred_t*parameter
*/
AV1E_SET_SVC_REF_FRAME_COMP_PRED = 147,
/*!\brief Set --deltaq-mode strength, where the value is a percentage, *unsignedintparameter. * *Validrange:[0,1000]
*/
AV1E_SET_DELTAQ_STRENGTH = 148,
/*!\brief Codec control to control loop filter * *-0=Loopfilterisdisabledforallframes *-1=Loopfilterisenabledforallframes *-2=Loopfilterisdisabledfornon-referenceframes *-3=Loopfilterisdisabledfortheframeswithlowmotion
*/
AV1E_SET_LOOPFILTER_CONTROL = 149,
/*!\brief Codec control function to get the loopfilter chosen by the encoder, *int*parameter
*/
AOME_GET_LOOPFILTER_LEVEL = 150,
/*!\brief Codec control to automatically turn off several intra coding tools, *unsignedintparameter *-0=donotusethefeature *-1=enabletheautomaticdecisiontoturnoffseveralintratools
*/
AV1E_SET_AUTO_INTRA_TOOLS_OFF = 151,
/*!\brief Codec control function to set flag for rate control used by external *encoders. *-1=Enableratecontrolforexternalencoders.Thiswilldisablecontent *dependencyinratecontrolandcyclicrefresh. *-0=Default.Disableratecontrolforexternalencoders.
*/
AV1E_SET_RTC_EXTERNAL_RC = 152,
/*!\brief Codec control function to enable frame parallel multi-threading *oftheencoder,unsignedintparameter * *-0=disable(default) *-1=enable
*/
AV1E_SET_FP_MT = 153,
/*!\brief Codec control to enable actual frame parallel encode or *simulationofframeparallelencodeinFPMTunittest,unsignedint *parameter * *-0=simulateframeparallelencode *-1=actualframeparallelencode(default) * *\noteThisisonlyusedinFPMTunittest.
*/
AV1E_SET_FP_MT_UNIT_TEST = 154,
/*!\brief Codec control function to get the target sequence level index for *eachoperatingpoint.int*parameter.Therecanbeatmost32operating *points.Theresultswillbewrittenintoaprovidedintegerarrayof *sufficientsize.Ifatargetlevelisnotset,theresultwillbe31. *Pleaserefertohttps://aomediacodec.github.io/av1-spec/#levels for more *detailsonleveldefinitionsandindices.
*/
AV1E_GET_TARGET_SEQ_LEVEL_IDX = 155,
/*!\brief Codec control function to get the number of operating points. int* *parameter.
*/
AV1E_GET_NUM_OPERATING_POINTS = 156,
/*!\brief Codec control function to skip the application of post-processing *filtersonreconstructedframe,unsignedintparameter * *-0=disable(default) *-1=enable * *\attentionForthisvaluetobeusedaom_codec_enc_cfg_t::g_usage *mustbesettoAOM_USAGE_ALL_INTRA.
*/
AV1E_SET_SKIP_POSTPROC_FILTERING = 157,
/*!\brief Codec control function to enable the superblock level *qpsweepinAV1toensurethatend-to-endtestrunswell, *unsignedintparameter. * *-0=disable(default) *-1=enable * *\noteThisisonlyusedinsb_qp_sweepunittest.
*/
AV1E_ENABLE_SB_QP_SWEEP = 158,
/*!\brief Codec control to set quantizer for the next frame, int parameter. * *-Validrange[0,63] * *Thiswillturnoffcyclicrefresh.Onlyapplicableto1-pass.
*/
AV1E_SET_QUANTIZER_ONE_PASS = 159,
/*!\brief Codec control to enable the rate distribution guided delta *quantizationinallintramode,unsignedintparameter * *-0=disable(default) *-1=enable * *\attentionThisfeaturerequires--deltaq-mode=3,alsoaninputfile *whichcontainsratedistributionforeach16x16block, *passedinby--rate-distribution-info=rate_distribution.txt.
*/
AV1E_ENABLE_RATE_GUIDE_DELTAQ = 160,
/*!\brief Codec control to set the input file for rate distribution used *inallintramode,constchar*parameter *Theinputshouldbethenameofatextfile,which *contains(rowsxcols)floatvaluesseparatedbyspace. *Eachfloatvaluerepresentthenumberofbitsforeach16x16block. *rows=(frame_height+15)/16 *cols=(frame_width+15)/16 * *\attentionThisfeaturerequires--enable-rate-guide-deltaq=1.
*/
AV1E_SET_RATE_DISTRIBUTION_INFO = 161,
/*!\brief Codec control to get the CDEF strength for Y / luma plane, *int*parameter. *ReturnsanintegerarrayofCDEF_MAX_STRENGTHSelements.
*/
AV1E_GET_LUMA_CDEF_STRENGTH = 162,
/*!\brief Codec control to set the target bitrate in kilobits per second, *unsignedintparameter.For1passCBRmode,singlelayerencoding. *Thiscontrolsreplacesthecallaom_codec_enc_config_set(&codec,&cfg) *whenonlytargetbitrateischanged,andsoismuchcheaperasit *bypassesalotofunneededcodechecks.
*/
AV1E_SET_BITRATE_ONE_PASS_CBR = 163,
/*!\brief Codec control to set the maximum number of consecutive frame drops, *inunitsofframes,allowedfortheframedropperin1pass *CBRmode,intparameter.Valueofzerohasnoeffect. *\deprecatedUsethenewcontrolAV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.
*/
AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR = 164,
/*!\brief Codec control to set the frame drop mode for SVC, *unsignedintparameter.Thevalidvaluesareconstantsofthe *AOM_SVC_FRAME_DROP_MODEenum:AOM_LAYER_DROPorAOM_FULL_SUPERFRAME_DROP.
*/
AV1E_SET_SVC_FRAME_DROP_MODE = 165,
/*!\brief Codec control to set auto tiling, unsigned int parameter. *Valueof1meansencoderwillsetnumberoftile_columnsandtile_rows, *basedonthenumberofthreadsandresolution.Thiswilloverrideany *settingssetviaSET_TILE_COLUMNS/ROWS.Ifthevalueis0nochangeis *done,theprevioussetting(ifany)fortile_columns/rowsispreserved.
*/
AV1E_SET_AUTO_TILES = 166,
/*!\brief Codec control to get the high motion content flag, used for *screencontentrealtime(RTC)encoding,int*parameter. *Returnsaninteger. *1meanshighmotioncontentflagissetto1,0meanssetto0.
*/
AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC = 167,
/*!\brief Codec control to enable post encode frame drop for RTC encoding, *intparameter. * *Valueof1meansencoderwillenablepostencodedrop.Defaultis0(not *enabled).Postencodedropisonlyallowedwhenframedroppingisenabled *(aom_codec_enc_cfg::rc_dropframe_thresh>0).
*/
AV1E_SET_POSTENCODE_DROP_RTC = 168,
/*!\brief Codec control to set the maximum number of consecutive frame drops, *inunitsoftime(milliseconds),allowedfortheframedropperin1pass *CBRmode,intparameter.Valueofzerohasnoeffect.
*/
AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR = 169,
/*!\brief Codec control to enable the low complexity decode mode, unsigned *intparameter.Valueofzeromeansthismodeisdisabled.
*/
AV1E_SET_ENABLE_LOW_COMPLEXITY_DECODE = 170,
/*!\brief Codec control to set the screen content detection mode, *aom_screen_detection_modeparameter. * *-1:AOM_SCREEN_DETECTION_STANDARD=standard(defaultingoodqualityand realtimemodes) *-2:AOM_SCREEN_DETECTION_ANTIALIASING_AWARE=anti-aliasedtextand *graphicsaware(defaultinallintramode)
*/
AV1E_SET_SCREEN_CONTENT_DETECTION_MODE = 171,
/*!\brief Codec control to enable adaptive sharpness, which modulates *sharpnessbasedonframeQP,unsignedintparameter. * *Adaptivesharpnesshelpsmitigateblockingartifactsinthelowtomedium *qualityrange. * *-0=disable(default) *-1=enable * *\noteWhenadaptivesharpnessisenabled,AOME_SET_SHARPNESSactsasa *"maximumsharpness"value.Adaptivesharpnesscanstillmodulateeffective *sharpnessbetween0andthemaximumsharpness.Asaconsequence,adaptive *sharpnessonlyhaseffectswhensharpnessisgreaterthan0.
*/
AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS = 172,
/*!\brief Codec control function to enable external rate control library. * *args:apointertoaom_rc_funcs_tthatcontainsimplementationofcallbacks * *\attentionExperimental.NotpartofthestableAPI.
*/
AV1E_SET_EXTERNAL_RATE_CONTROL = 173,
/*!\brief Codec control function to get GOP structure from the encoder. * *args:apointertoaom_gop_info_t * *\attentionExperimental.NotpartofthestableAPI.
*/
AV1E_GET_GOP_INFO = 174,
/*!\brief Codec control function to validate HBD input. * *AV1allowstheencodertovalidatethehighbitdepth(HBD)inputand *ensurethateverypixeliswithinthevalidrange.Todisable/enable, *setthisparameterto0/1.Thedefaultvalueissettobe1.
*/
AOME_SET_VALIDATE_HBD_INPUT = 175,
// Any new encoder control IDs should be added above. // Maximum allowed encoder control ID is 229. // No encoder control ID should be added below.
};
/*!\brief Max number of segments * *Thisisthelimitofnumberofsegmentsallowedwithinaframe. * *Currentlysameas"MAX_SEGMENTS"inAV1,themaximumthatAV1supports. *
*/ #define AOM_MAX_SEGMENTS 8
/*!\brief aom region of interest map * *Thesedefinesthedatastructuresfortheregionofinterestmap
*/ typedefstruct aom_roi_map { /*! If ROI is enabled. */
uint8_t enabled; /*! An id between 0 and 7 for each 4x4 region within a frame. */ unsigned char *roi_map; unsigned int rows; /**< Number of rows. */ unsigned int cols; /**< Number of columns. */
int delta_q[AOM_MAX_SEGMENTS]; /**< Quantizer deltas. */
int delta_lf[AOM_MAX_SEGMENTS]; /**< Loop filter deltas. */
int skip[AOM_MAX_SEGMENTS]; /**< Skip this block. */
int ref_frame[AOM_MAX_SEGMENTS]; /**< Reference frame for this block. */
int delta_qp_enabled; /**< Delta qp feature enabled. */
int reference_enabled; /**< Reference frame feature enabled. */
int rdmult_delta_qp; /**< RD mult for delta qp feature. */
} aom_roi_map_t;
/*!\brief aom active region map * *Thesedefinesthedatastructuresforactiveregionmap *
*/
typedefstruct aom_active_map { /*!\brief specify an on (1) or off (0) each 16x16 region within a frame */ unsigned char *active_map; unsigned int rows; /**< number of rows */ unsigned int cols; /**< number of cols */
} aom_active_map_t;
/*!\brief Screen content detection mode */ typedef enum { /** Standard */
AOM_SCREEN_DETECTION_STANDARD = 1, /** Anti-aliased text and graphics aware */
AOM_SCREEN_DETECTION_ANTIALIASING_AWARE = 2
} aom_screen_detection_mode;
/*!\brief AV1 encoder timing info type signaling */ typedef enum {
AOM_TIMING_UNSPECIFIED,
AOM_TIMING_EQUAL,
AOM_TIMING_DEC_MODEL
} aom_timing_info_type_t;
/*!\brief Model tuning parameters
*
* Changes the encoder to tune for certain types of input material.
*
* \note
* AOM_TUNE_IQ and AOM_TUNE_SSIMULACRA2 are meant for image encoding. Using
* these tuning modes for videos isn't recommended.
* Setting the tuning option to either AOM_TUNE_IQ or AOM_TUNE_SSIMULACRA2
* causes the following options to be set (expressed as command-line options):
* * --enable-qm=1
* * --qm-min=2
* * --qm-max=10
* * --sharpness=7
* * --dist-metric=qm-psnr
* * --enable-cdef=3
* * --enable-chroma-deltaq=1
* * --deltaq-mode=6
* * --screen-detection-mode=2
* AOM_TUNE_IQ additionally sets the following options:
* * --enable-adaptive-sharpness=1
*/
typedef enum {
AOM_TUNE_PSNR = 0,
AOM_TUNE_SSIM = 1,
/* NOTE: enums 2 and 3 unused */
AOM_TUNE_VMAF_WITH_PREPROCESSING = 4,
AOM_TUNE_VMAF_WITHOUT_PREPROCESSING = 5,
AOM_TUNE_VMAF_MAX_GAIN = 6,
AOM_TUNE_VMAF_NEG_MAX_GAIN = 7,
AOM_TUNE_BUTTERAUGLI = 8,
AOM_TUNE_VMAF_SALIENCY_MAP = 9,
/*!\brief Allows detection of the presence of AOM_TUNE_IQ at compile time. */
#define AOM_HAVE_TUNE_IQ 1
/* "Image Quality" tuning mode. Increases image quality and consistency,
* guided by the SSIMULACRA 2 metric and subjective quality checks. Shares
* the rdmult code with AOM_TUNE_SSIM.
* Note: AOM_TUNE_IQ is only meant to be used to encode a still image or a
* layered AVIF image.
*/
AOM_TUNE_IQ = 10,
/*!\brief Allows detection of the presence of AOM_TUNE_SSIMULACRA2 at compile
* time. */
#define AOM_HAVE_TUNE_SSIMULACRA2 1
/* A tuning mode that optimizes for maximum SSIMULACRA 2 scores. Shares the
* rdmult code with AOM_TUNE_SSIM.
* Unlike metrics like AOM_TUNE_VMAF_* or AOM_TUNE_BUTTERAUGLI,
* AOM_TUNE_SSIMULACRA2 doesn't use the SSIMULACRA 2 metric for
* rate-distortion optimization decisions. Instead, the tuning mode relies
* purely on hand-crafted heuristics. This means no additional external
* dependencies are required.
* AOM_TUNE_SSIMULACRA2 shares most of the tweaks and optimizations with
* AOM_TUNE_IQ. However, AOM_TUNE_SSIMULACRA2 fine-tunes the encoder in ways
* that have been shown to not come with a corresponding positive impact on
* subjective quality in human evaluations.
* Note: AOM_TUNE_SSIMULACRA2 is only meant to be used to encode a still
* image or a layered AVIF image.
*/
AOM_TUNE_SSIMULACRA2 = 11,
} aom_tune_metric;
/*!\brief Distortion metric to use for RD optimization.
*
* Changes the encoder to use a different distortion metric for RD search. Note
* that this value operates on a "lower level" compared to aom_tune_metric - it
* affects the distortion metric inside a block, while aom_tune_metric only
* affects RD across blocks.
*
*/
typedef enum {
// Use PSNR for in-block rate-distortion optimization.
AOM_DIST_METRIC_PSNR,
// Use quantization matrix-weighted PSNR for in-block rate-distortion
// optimization. If --enable-qm=1 is not specified, this falls back to
// behaving in the same way as AOM_DIST_METRIC_PSNR.
AOM_DIST_METRIC_QM_PSNR,
} aom_dist_metric;
#define AOM_MAX_LAYERS 32 /**< Max number of layers */
#define AOM_MAX_SS_LAYERS 4 /**< Max number of spatial layers */
#define AOM_MAX_TS_LAYERS 8 /**< Max number of temporal layers */
/*!\brief Struct for spatial and temporal layer ID */
typedef struct aom_svc_layer_id {
int spatial_layer_id; /**< Spatial layer ID */
int temporal_layer_id; /**< Temporal layer ID */
} aom_svc_layer_id_t;
/*!\brief Parameter type for SVC
*
* In the arrays of size AOM_MAX_LAYERS, the index for spatial layer `sl` and
* temporal layer `tl` is sl * number_temporal_layers + tl.
*
*/
typedef struct aom_svc_params {
/*!Number of spatial layers
*
* Valid range:
* \li When using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, #AOM_MAX_SS_LAYERS]
* \li When \em not using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, 3]
*/
int number_spatial_layers;
/*!Number of temporal layers
*
* Valid range:
* \li When using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, #AOM_MAX_TS_LAYERS]
* \li When \em not using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, 3]
*/
int number_temporal_layers;
int max_quantizers[AOM_MAX_LAYERS]; /**< Max Q for each layer */
int min_quantizers[AOM_MAX_LAYERS]; /**< Min Q for each layer */
/*! Scaling factor-numerator */
int scaling_factor_num[AOM_MAX_SS_LAYERS];
/*! Scaling factor-denominator: must be greater than or equal to the
* scaling_factor_num[].
*/
int scaling_factor_den[AOM_MAX_SS_LAYERS];
/*! Target bitrate for each layer, in kilobits per second */
int layer_target_bitrate[AOM_MAX_LAYERS];
/*! Frame rate factor for each temporal layer */
int framerate_factor[AOM_MAX_TS_LAYERS];
} aom_svc_params_t;
/*!\brief Parameters for setting ref frame config */
typedef struct aom_svc_ref_frame_config {
// Three arrays need to be set: reference[], ref_id[], refresh[].
// reference[i]: is a boolean flag to indicate which of the 7 possible
// references are used for prediction. Values are 0 (not used as reference)
// or 1 (use as reference). The index 0 - 6 refers to the references:
// last(0), last2(1), last3(2), golden(3), bwdref(4), altref2(5), altref(6).
// ref_idx[i]: maps a reference to one of the 8 buffers slots, values are
// 0 - 7. The ref_idx for a unused reference (reference[i] = 1, and not used
// for refresh, see below) can be set to the ref_idx of the first reference
// used (usually LAST).
// refresh[i] is a boolean flag to indicate if a buffer is updated/refreshed
// with the current encoded frame. Values are 0 (no refresh) or 1 (refresh).
// The refresh is done internally by looking at the ref_idx[j], for j = 0 - 6,
// so to refresh a buffer slot (i) a reference must be mapped to that slot
// (i = ref_idx[j]).
// Examples for usage (for RTC encoding) are in: examples/svc_encoder_rtc.c.
int reference[7]; /**< Reference flag for each of the 7 references. */
/*! Buffer slot index (0..7) for each of 7 references indexed above. */
int ref_idx[7];
int refresh[8]; /**< Refresh flag for each of the 8 buffer slots. */
} aom_svc_ref_frame_config_t;
/*!\brief Parameters for setting ref frame compound prediction */
typedef struct aom_svc_ref_frame_comp_pred {
// Use compound prediction for the ref_frame pairs GOLDEN_LAST (0),
// LAST2_LAST (1), and ALTREF_LAST (2).
int use_comp_pred[3]; /**<Compound reference flag. */
} aom_svc_ref_frame_comp_pred_t;
/*!\brief Frame drop modes for spatial/quality layer SVC */
typedef enum {
AOM_LAYER_DROP, /**< Any spatial layer can drop. */
AOM_FULL_SUPERFRAME_DROP, /**< Only full superframe can drop. */
} AOM_SVC_FRAME_DROP_MODE;
/*!\brief The GOP structure information determined by the encoder.
* 250 is MAX_STATIC_GF_GROUP_LENGTH defined in av1/firstpass.h.
* This is a subset of GF_GROUP. More fields can be added if needed.
*
* \attention Experimental. Not part of the stable API.
*/
typedef struct aom_gop_info {
int gop_size; /**< The number of frames of this GOP */
/*! The coding index for each entry in the gop */
int coding_index[250];
/*! The display index for each entry in the gop */
int display_index[250];
/*! The layer depth for each entry in the gop */
int layer_depth[250];
} aom_gop_info_t;
/*!\cond */
/*!\brief Encoder control function parameter type
*
* Defines the data types that AOME/AV1E control functions take.
*
* \note Additional common controls are defined in aom.h.
*
* \note For each control ID "X", a macro-define of
* AOM_CTRL_X is provided. It is used at compile time to determine
* if the control ID is supported by the libaom library available,
* when the libaom version cannot be controlled.
*/
AOM_CTRL_USE_TYPE(AOME_USE_REFERENCE, int)
#define AOM_CTRL_AOME_USE_REFERENCE
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.