// AV1 Level Specifications typedefstruct {
AV1_LEVEL level;
int max_picture_size;
int max_h_size;
int max_v_size;
int max_header_rate;
int max_tile_rate;
int max_tiles;
int max_tile_cols;
int64_t max_display_rate;
int64_t max_decode_rate; double main_mbps; double high_mbps; double main_cr; double high_cr;
} AV1LevelSpec;
typedefstruct {
int64_t ts_start;
int64_t ts_end;
size_t encoded_size_in_bytes;
int pic_size;
int frame_header_count;
int tiles;
int show_frame;
int show_existing_frame;
} FrameRecord;
// Record frame info. in a rolling window. #define FRAME_WINDOW_SIZE 256 typedefstruct {
FrameRecord buf[FRAME_WINDOW_SIZE];
int num; // Number of FrameRecord stored in the buffer.
int start; // Buffer index of the first FrameRecord.
} FrameWindowBuffer;
typedefstruct {
int max_bitrate; // Max bitrate in any 1-second window, in bps.
int max_tile_size;
int max_superres_tile_width;
int min_cropped_tile_width;
int min_cropped_tile_height;
int tile_width_is_valid;
int min_frame_width;
int min_frame_height; double total_compressed_size; // In bytes. double total_time_encoded; // In seconds. double min_cr;
} AV1LevelStats;
// The following data structures are for the decoder model. typedefstruct {
int decoder_ref_count;
int player_ref_count;
int display_index;
FRAME_TYPE frame_type; double presentation_time;
} FRAME_BUFFER;
// Interval of bits transmission for a DFG(Decodable Frame Group). typedefstruct { double first_bit_arrival_time; // Time when the first bit arrives. double last_bit_arrival_time; // Time when the last bit arrives. // Removal time means the time when the bits to be decoded are removed from // the smoothing buffer. Removal time is essentially the time when the // decoding of the frame starts. double removal_time;
} DFG_INTERVAL;
#define DFG_INTERVAL_QUEUE_SIZE 64 typedefstruct {
int head;
int size; double total_interval;
DFG_INTERVAL buf[DFG_INTERVAL_QUEUE_SIZE];
} DFG_INTERVAL_QUEUE;
#define BUFFER_POOL_MAX_SIZE 10 typedefstruct {
DECODER_MODEL_STATUS status;
DECODER_MODEL_MODE mode; bool is_low_delay_mode;
AV1_LEVEL level;
int encoder_buffer_delay; // In units of 1/90000 seconds.
int decoder_buffer_delay; // In units of 1/90000 seconds.
int num_ticks_per_picture;
int initial_display_delay; // In units of frames.
int64_t decode_rate; double display_clock_tick; // In units of seconds. double current_time; // In units of seconds. double initial_presentation_delay; // In units of seconds. double bit_rate; // Bits per second.
int num_frame;
int num_decoded_frame;
int num_shown_frame;
int vbi[REF_FRAMES]; // Virtual buffer index.
FRAME_BUFFER frame_buffer_pool[BUFFER_POOL_MAX_SIZE];
DFG_INTERVAL_QUEUE dfg_interval_queue;
// Information for the DFG(Decodable Frame Group) being processed. double first_bit_arrival_time; double last_bit_arrival_time;
size_t coded_bits;
// Information for the frame being processed. double removal_time; double presentation_time;
int decode_samples;
int display_samples;
typedefstruct AV1LevelParams { // Specifies the level that the coded video sequence conforms to for each // operating point.
AV1_LEVEL target_seq_level_idx[MAX_NUM_OPERATING_POINTS]; // Bit mask to indicate whether to keep level stats for corresponding // operating points.
uint32_t keep_level_stats; // Level information for each operating point.
AV1LevelInfo *level_info[MAX_NUM_OPERATING_POINTS];
} AV1LevelParams;
static inline int is_in_operating_point(int operating_point,
int temporal_layer_id,
int spatial_layer_id) {
if (!operating_point) return1;
// Return sequence level indices in seq_level_idx[MAX_NUM_OPERATING_POINTS].
aom_codec_err_t av1_get_seq_level_idx(const SequenceHeader *seq_params, const AV1LevelParams *level_params,
int *seq_level_idx);
aom_codec_err_t av1_get_target_seq_level_idx(const SequenceHeader *seq_params, const AV1LevelParams *level_params,
int *target_seq_level_idx);
// This function uses the decoder model to check whether there could be // SMOOTHING_BUFFER_UNDERFLOW or SMOOTHING_BUFFER_OVERFLOW. It does not // update the content of decoder_model, and can be used to target certain // encoding level in the recode loop.
DECODER_MODEL_STATUS av1_decoder_model_try_smooth_buf( conststruct AV1_COMP *const cpi, size_t coded_bits, const DECODER_MODEL *const decoder_model);
// Return max bitrate(bps) for given level. double av1_get_max_bitrate_for_level(AV1_LEVEL level_index, int tier,
BITSTREAM_PROFILE profile);
// Get max number of tiles and tile columns for given level. void av1_get_max_tiles_for_level(AV1_LEVEL level_index, int *const max_tiles,
int *const max_tile_cols);
// Return minimum compression ratio for given level. double av1_get_min_cr_for_level(AV1_LEVEL level_index, int tier,
int is_still_picture); #endif// AOM_AV1_ENCODER_LEVEL_H_
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.16 Sekunden
(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.