/*! 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) */ unsignedlong 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 { unsignedint 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.*/ unsignedint 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. */ typedefenum { /**< 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 Encoded Frame Flags * *Thistypeindicatesabitfieldtobepassedtoaom_codec_encode(),defining *per-framebooleanvalues.Byconvention,bitscommontoallcodecswillbe *namedAOM_EFLAG_*,andbitsspecifictoanalgorithmwillbenamed */algo/_eflag_*.Thelowerorder16bitsarereservedforcommonuse.
*/ typedeflong 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.
*/ unsignedint g_usage;
/*!\brief Maximum number of threads to use * *Formulti-threadedimplementations,usenomorethanthisnumberof *threads.Thecodecmayusefewerthreadsthanallowed.Thevalue *0isequivalenttothevalue1.
*/ unsignedint g_threads;
/*!\brief Bitstream profile to use * *Somecodecssupportanotionofmultiplebitstreamprofiles.Typically *thismapstoasetoffeaturesthatareturnedonoroff.Oftenthe *profiletouseisdeterminedbythefeaturesoftheintendeddecoder. *Consultthedocumentationforthecodectodeterminethevalidvalues *forthisparameter,orsettozeroforasanedefault.
*/ unsignedint g_profile; /**< profile of bitstream to use */
/*!\brief Width of the frame * *Thisvalueidentifiesthepresentationresolutionoftheframe, *inpixels.Notethattheframespassedasinputtotheencodermust *havethisresolution.Frameswillbepresentedbythedecoderinthis *resolution,independentofanyspatialresamplingtheencodermaydo.
*/ unsignedint g_w;
/*!\brief Height of the frame * *Thisvalueidentifiesthepresentationresolutionoftheframe, *inpixels.Notethattheframespassedasinputtotheencodermust *havethisresolution.Frameswillbepresentedbythedecoderinthis *resolution,independentofanyspatialresamplingtheencodermaydo.
*/ unsignedint 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.
*/ unsignedint g_limit;
/*!\brief Forced maximum width of the frame * *Ifthisvalueisnon-zerothenitisusedtoforcethemaximumframe *widthwritteninwrite_sequence_header().
*/ unsignedint g_forced_max_frame_width;
/*!\brief Forced maximum height of the frame * *Ifthisvalueisnon-zerothenitisusedtoforcethemaximumframe *heightwritteninwrite_sequence_header().
*/ unsignedint 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.
*/ unsignedint 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.
*/ unsignedint rc_dropframe_thresh;
/*!\brief Mode for spatial resampling, if supported by the codec. * *Spatialresamplingallowsthecodectocompressalowerresolution *versionoftheframe,whichisthenupscaledbythedecodertothe *correctpresentationresolution.Thisincreasesvisualqualityat *lowdatarates,attheexpenseofCPUtimeontheencoder/decoder.
*/ unsignedint rc_resize_mode;
/*!\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.
*/ unsignedint 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 */
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.41Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-27)
¤
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.