/*! Can support input images at greater than 8 bitdepth.
*/ #define AOM_CODEC_CAP_HIGHBITDEPTH 0x40000
/*! \brief Initialization-time Feature Enabling * *Certaincodecfeaturesmustbeknownatinitializationtime,toallow *forpropermemoryallocation. * *TheavailableflagsarespecifiedbyAOM_CODEC_USE_*defines.
*/ #define AOM_CODEC_USE_PSNR 0x10000 /**< Calculate PSNR on each frame */ #define AOM_CODEC_USE_HIGHBITDEPTH 0x40000 /**< Use high bitdepth */ // 0x80000 was used for the experimental feature AOM_CODEC_USE_PRESET during // libaom v3.11.0 development but was removed before the release.
/*!\brief Generic fixed size buffer structure * *Thisstructureisabletoholdareferencetoanyfixedsizebuffer.
*/ typedefstruct aom_fixed_buf { void *buf; /**< Pointer to the data. Does NOT own the data! */
size_t sz; /**< Length of the buffer, in chars */
} aom_fixed_buf_t; /**< alias for struct aom_fixed_buf */
/*!\brief Encoder output packet variants * *Thisenumerationliststhedifferentkindsofdatapacketsthatcanbe *returnedbycallstoaom_codec_get_cx_data().Algorithms\refMAY *extendthislisttoprovideadditionalfunctionality.
*/
enum aom_codec_cx_pkt_kind {
AOM_CODEC_CX_FRAME_PKT, /**< Compressed video frame */
AOM_CODEC_STATS_PKT, /**< Two-pass statistics for this frame */
AOM_CODEC_FPMB_STATS_PKT, /**< first pass mb statistics for this frame */
AOM_CODEC_PSNR_PKT, /**< PSNR statistics for this frame */
AOM_CODEC_CUSTOM_PKT = 256/**< Algorithm extensions */
};
/*!\brief Encoder output packet * *Thisstructurecontainsthedifferentkindsofoutputdatatheencoder *mayproducewhilecompressingaframe.
*/ typedefstruct aom_codec_cx_pkt {
enum aom_codec_cx_pkt_kind kind; /**< packet variant */ union { struct { void *buf; /**< compressed data buffer */
size_t sz; /**< length of compressed data */ /*!\brief time stamp to show frame (in timebase units) */
aom_codec_pts_t pts; /*!\brief duration to show frame (in timebase units) */ unsigned long duration;
aom_codec_frame_flags_t flags; /**< flags for this frame */ /*!\brief the partition id defines the decoding order of the partitions. *Onlyapplicablewhen"outputpartition"modeisenabled.First
* partition has id 0.*/
int partition_id; /*!\brief size of the visible frame in this packet */
size_t vis_frame_size;
} frame; /**< data for compressed frame packet */
aom_fixed_buf_t twopass_stats; /**< data for two-pass packet */
aom_fixed_buf_t firstpass_mb_stats; /**< first pass mb packet */ struct aom_psnr_pkt { unsigned int samples[4]; /**< Number of samples, total/y/u/v */
uint64_t sse[4]; /**< sum squared error, total/y/u/v */ double psnr[4]; /**< PSNR, total/y/u/v */ /*!\brief Number of samples, total/y/u/v when
* input bit-depth < stream bit-depth.*/ unsigned int samples_hbd[4]; /*!\brief sum squared error, total/y/u/v when
* input bit-depth < stream bit-depth.*/
uint64_t sse_hbd[4]; /*!\brief PSNR, total/y/u/v when
* input bit-depth < stream bit-depth.*/ double psnr_hbd[4];
} psnr; /**< data for PSNR packet */
aom_fixed_buf_t raw; /**< data for arbitrary packets */
} data; /**< packet data */
} aom_codec_cx_pkt_t; /**< alias for struct aom_codec_cx_pkt */
/*!\brief Rational Number * *Thisstructureholdsafractionalvalue.
*/ typedefstruct aom_rational {
int num; /**< fraction numerator */
int den; /**< fraction denominator */
} aom_rational_t; /**< alias for struct aom_rational */
/*!\brief Multi-pass Encoding Pass * *AOM_RC_LAST_PASSiskeptforbackwardcompatibility. *Ifpassesisnotgivenandpass==2,thecodecwillassumepasses=2. *Fornewcode,itisrecommendedtouseAOM_RC_SECOND_PASSandset *the"passes"memberto2viathekey&valAPIfortwo-passencoding.
*/
enum aom_enc_pass {
AOM_RC_ONE_PASS = 0, /**< Single pass mode */
AOM_RC_FIRST_PASS = 1, /**< First pass of multi-pass mode */
AOM_RC_SECOND_PASS = 2, /**< Second pass of multi-pass mode */
AOM_RC_THIRD_PASS = 3, /**< Third pass of multi-pass mode */
AOM_RC_LAST_PASS = 2, /**< Final pass of two-pass mode */
};
/*!\brief Frame super-resolution mode. */ typedef enum { /**< Frame super-resolution is disabled for all frames. */
AOM_SUPERRES_NONE, /**< All frames are coded at the specified scale and super-resolved. */
AOM_SUPERRES_FIXED, /**< All frames are coded at a random scale and super-resolved. */
AOM_SUPERRES_RANDOM, /**< Super-resolution scale for each frame is determined based on the q index
of that frame. */
AOM_SUPERRES_QTHRESH, /**< Full-resolution or super-resolution and the scale (in case of
super-resolution) are automatically selected for each frame. */
AOM_SUPERRES_AUTO,
} aom_superres_mode;
/*!\brief Encoder Config Options * *Thistypeallowstoenumerateandcontrolflagsdefinedforencodercontrol *viaconfigfileatruntime.
*/ typedefstruct cfg_options { /*!\brief Indicate init by cfg file *0or1
*/ unsigned int init_by_cfg_file; /*!\brief Superblock size *0,64or128
*/ unsigned int super_block_size; /*!\brief max partition size *8,16,32,64,128
*/ unsigned int max_partition_size; /*!\brief min partition size *8,16,32,64,128
*/ unsigned int min_partition_size; /*!\brief disable AB Shape partition type *
*/ unsigned int disable_ab_partition_type; /*!\brief disable rectangular partition type *
*/ unsigned int disable_rect_partition_type; /*!\brief disable 1:4/4:1 partition type *
*/ unsigned int disable_1to4_partition_type; /*!\brief disable flip and identity transform type *
*/ unsigned int disable_flip_idtx; /*!\brief disable CDEF filter *
*/ unsigned int disable_cdef; /*!\brief disable Loop Restoration Filter *
*/ unsigned int disable_lr; /*!\brief disable OBMC *
*/ unsigned int disable_obmc; /*!\brief disable Warped Motion *
*/ unsigned int disable_warp_motion; /*!\brief disable global motion *
*/ unsigned int disable_global_motion; /*!\brief disable dist weighted compound *
*/ unsigned int disable_dist_wtd_comp; /*!\brief disable diff weighted compound *
*/ unsigned int disable_diff_wtd_comp; /*!\brief disable inter/intra compound *
*/ unsigned int disable_inter_intra_comp; /*!\brief disable masked compound *
*/ unsigned int disable_masked_comp; /*!\brief disable one sided compound *
*/ unsigned int disable_one_sided_comp; /*!\brief disable Palette *
*/ unsigned int disable_palette; /*!\brief disable Intra Block Copy *
*/ unsigned int disable_intrabc; /*!\brief disable chroma from luma *
*/ unsigned int disable_cfl; /*!\brief disable intra smooth mode *
*/ unsigned int disable_smooth_intra; /*!\brief disable filter intra *
*/ unsigned int disable_filter_intra; /*!\brief disable dual filter *
*/ unsigned int disable_dual_filter; /*!\brief disable intra angle delta *
*/ unsigned int disable_intra_angle_delta; /*!\brief disable intra edge filter *
*/ unsigned int disable_intra_edge_filter; /*!\brief disable 64x64 transform *
*/ unsigned int disable_tx_64x64; /*!\brief disable smooth inter/intra *
*/ unsigned int disable_smooth_inter_intra; /*!\brief disable inter/inter wedge comp *
*/ unsigned int disable_inter_inter_wedge; /*!\brief disable inter/intra wedge comp *
*/ unsigned int disable_inter_intra_wedge; /*!\brief disable paeth intra *
*/ unsigned int disable_paeth_intra; /*!\brief disable trellis quantization *
*/ unsigned int disable_trellis_quant; /*!\brief disable ref frame MV *
*/ unsigned int disable_ref_frame_mv; /*!\brief use reduced reference frame set *
*/ unsigned int reduced_reference_set; /*!\brief use reduced transform type set *
*/ unsigned int reduced_tx_type_set;
} cfg_options_t;
/*!\brief Encoded Frame Flags * *Thistypeindicatesabitfieldtobepassedtoaom_codec_encode(),defining *per-framebooleanvalues.Byconvention,bitscommontoallcodecswillbe *namedAOM_EFLAG_*,andbitsspecifictoanalgorithmwillbenamed */algo/_eflag_*.Thelowerorder16bitsarereservedforcommonuse.
*/ typedef long aom_enc_frame_flags_t; /*!\brief Force this frame to be a keyframe */ #define AOM_EFLAG_FORCE_KF (1 << 0) /*!\brief Calculate PSNR for this frame, requires g_lag_in_frames to be 0 */ #define AOM_EFLAG_CALCULATE_PSNR (1 << 1) /*!\brief Freeze internal state, do not update reference buffers, entropy
* tables, rate control state, etc. Requires g_lag_in_frames to be 0. */ #define AOM_EFLAG_FREEZE_INTERNAL_STATE (1 << 2)
/*!\brief Algorithm specific "usage" value * *Algorithmsmaydefinemultiplevaluesforusage,whichmayconveythe *intentofhowtheapplicationintendstousethestream.Ifthisvalue *isnon-zero,consultthedocumentationforthecodectodetermineits *meaning.
*/ unsigned int g_usage;
/*!\brief Maximum number of threads to use * *Formulti-threadedimplementations,usenomorethanthisnumberof *threads.Thecodecmayusefewerthreadsthanallowed.Thevalue *0isequivalenttothevalue1.
*/ unsigned int g_threads;
/*!\brief Bitstream profile to use * *Somecodecssupportanotionofmultiplebitstreamprofiles.Typically *thismapstoasetoffeaturesthatareturnedonoroff.Oftenthe *profiletouseisdeterminedbythefeaturesoftheintendeddecoder. *Consultthedocumentationforthecodectodeterminethevalidvalues *forthisparameter,orsettozeroforasanedefault.
*/ unsigned int g_profile; /**< profile of bitstream to use */
/*!\brief Width of the frame * *Thisvalueidentifiesthepresentationresolutionoftheframe, *inpixels.Notethattheframespassedasinputtotheencodermust *havethisresolution.Frameswillbepresentedbythedecoderinthis *resolution,independentofanyspatialresamplingtheencodermaydo.
*/ unsigned int g_w;
/*!\brief Height of the frame * *Thisvalueidentifiesthepresentationresolutionoftheframe, *inpixels.Notethattheframespassedasinputtotheencodermust *havethisresolution.Frameswillbepresentedbythedecoderinthis *resolution,independentofanyspatialresamplingtheencodermaydo.
*/ unsigned int g_h;
/*!\brief Max number of frames to encode * *Ifforcevideomodeisoff(thedefault)andg_limitis1,theencoder *willencodeastillpicture(still_pictureissetto1inthesequence *headerOBU).Ifinadditionfull_still_picture_hdris0(thedefault), *theencoderwilluseareducedheader(reduced_still_picture_headeris *setto1inthesequenceheaderOBU)forthestillpicture.
*/ unsigned int g_limit;
/*!\brief Forced maximum width of the frame * *Ifthisvalueisnon-zerothenitisusedtoforcethemaximumframe *widthwritteninwrite_sequence_header().
*/ unsigned int g_forced_max_frame_width;
/*!\brief Forced maximum height of the frame * *Ifthisvalueisnon-zerothenitisusedtoforcethemaximumframe *heightwritteninwrite_sequence_header().
*/ unsigned int g_forced_max_frame_height;
/*!\brief Bit-depth of the codec * *Thisvalueidentifiesthebit_depthofthecodec, *Onlycertainbit-depthsaresupportedasidentifiedinthe *aom_bit_depth_tenum.
*/
aom_bit_depth_t g_bit_depth;
/*!\brief Bit-depth of the input source * *Thisvalueidentifiestheactualbit-depthoftheinputsourceinbits.It *mustnotexceedcodecbit-depth.Notethattheframespassedasinputto *theencodermustmatchcodecbit-depth.So,ifthereisamismatchbetween *sourcebit-depthandcodecbit-depth,theapplicationisrequiredto *upshifttheframetothecodecbit-depthbeforepassingitforencoding. *Thisisonlyusedforcomputingqualitymetricsrelativetotheactual *inputsourceandhasnoeffectontheencoder'soutput.
*/ unsigned int g_input_bit_depth;
/*!\brief Temporal resampling configuration, if supported by the codec. * *Temporalresamplingallowsthecodecto"drop"framesasastrategyto *meetitstargetdatarate.Thiscancausetemporaldiscontinuitiesin *theencodedvideo,whichmayappearasstutteringduringplayback.This *trade-offisoftenacceptable,butformanyapplicationsisnot.Itcan *bedisabledinthesecases. * *Notethatnotallcodecssupportthisfeature.AllaomAVxcodecsdo. *Forothercodecs,consultthedocumentationforthatalgorithm. * *Thisthresholdisdescribedasapercentageofthetargetdatabuffer. *Whenthedatabufferfallsbelowthispercentageoffullness,a *droppedframeisindicated.Setthethresholdtozero(0)todisable *thisfeature.
*/ unsigned int rc_dropframe_thresh;
/*!\brief Mode for spatial resampling, if supported by the codec. * *Spatialresamplingallowsthecodectocompressalowerresolution *versionoftheframe,whichisthenupscaledbythedecodertothe *correctpresentationresolution.Thisincreasesvisualqualityat *lowdatarates,attheexpenseofCPUtimeontheencoder/decoder.
*/ unsigned int rc_resize_mode;
/*!\brief Maximum (Worst Quality) Quantizer * *Thequantizeristhemostdirectcontroloverthequalityofthe *encodedimage.Therangeofvalidvaluesforthequantizeriscodec *specific.Consultthedocumentationforthecodectodeterminethe *valuestouse.Todeterminetherangeprogrammatically,call *aom_codec_enc_config_default()withausagevalueof0.
*/ unsigned int rc_max_quantizer;
/* *bitratetolerance
*/
/*!\brief Rate control adaptation undershoot control * *Thisvalue,controlsthetoleranceoftheVBRalgorithmtoundershoot *andisusedasatriggerthresholdformoreaggressiveadaptationofQ. * *Validvaluesintherange0-100.
*/ unsigned int rc_undershoot_pct;
/*!\brief Rate control adaptation overshoot control * *Thisvalue,controlsthetoleranceoftheVBRalgorithmtoovershoot *andisusedasatriggerthresholdformoreaggressiveadaptationofQ. * *Validvaluesintherange0-100.
*/ unsigned int rc_overshoot_pct;
/*!\brief Number of explicit tile widths specified * *Thisvalueindicatesthenumberoftilewidthsspecified *Avalueof0impliesnotilewidthsarespecified. *Tilewidthsaregiveninthearraytile_widths[]
*/
int tile_width_count;
/*!\brief Number of explicit tile heights specified * *Thisvalueindicatesthenumberoftileheightsspecified *Avalueof0impliesnotileheightsarespecified. *Tileheightsaregiveninthearraytile_heights[]
*/
int tile_height_count;
/*!\brief Maximum number of tile widths in tile widths array * *Thisdefinegivesthemaximumnumberofelementsinthetile_widthsarray.
*/ #define MAX_TILE_WIDTHS 64// maximum tile width array length
/*!\brief Array of specified tile widths * *Thisarrayspecifiestilewidths(andmaybeempty) *Thenumberofwidthsspecifiedisgivenbytile_width_count
*/
int tile_widths[MAX_TILE_WIDTHS];
/*!\brief Maximum number of tile heights in tile heights array. * *Thisdefinegivesthemaximumnumberofelementsinthetile_heightsarray.
*/ #define MAX_TILE_HEIGHTS 64// maximum tile height array length
/*!\brief Array of specified tile heights * *Thisarrayspecifiestileheights(andmaybeempty) *Thenumberofheightsspecifiedisgivenbytile_height_count
*/
int tile_heights[MAX_TILE_HEIGHTS];
/*!\brief Controls how the encoder applies fixed QP offsets * *Ifavalueof0isprovided,encoderwilladaptivelychooseQPoffsetsfor *framesatdifferentlevelsofthepyramid. *Ifavalueof1isprovided,encoderwillusefixedQPoffsetsforframes *atdifferentlevelsofthepyramid. *Ifavalueof2isprovided,encoderwillusethesameQPforallframes *atdifferentlevelsofthepyramid(i.e.noQPoffsetsareapplied). *Note:Thisoptionisonlyrelevantfor--end-usage=q.
*/ unsigned int use_fixed_qp_offsets;
/*!\brief Deprecated and ignored. DO NOT USE. * *TODO(aomedia:3269):Removefixed_qp_offsetsinlibaomv4.0.0.
*/
int fixed_qp_offsets[5];
/*!\brief Options defined per config file *
*/
cfg_options_t encoder_cfg;
} aom_codec_enc_cfg_t; /**< alias for struct aom_codec_enc_cfg */
¤ 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.0.51Bemerkung:
(vorverarbeitet am 2026-08-26)
¤
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.