AOMedia AV1 Codec: RateControlCfg Struct Reference

| AOMedia AV1 Codec

RateControlCfg Struct Reference

Encoder rate control configuration parameters. More...

`#include <encoder.h>`

## Data Fields
int64_t | starting_buffer_level_ms
int64_t | optimal_buffer_level_ms
int64_t | maximum_buffer_size_ms
int64_t | target_bandwidth
unsigned int | vbr_corpus_complexity_lap
unsigned int | max_intra_bitrate_pct
unsigned int | max_inter_bitrate_pct
unsigned int | gf_cbr_boost_pct
unsigned int | min_cr
int | drop_frames_water_mark
int | under_shoot_pct
int | over_shoot_pct
int | worst_allowed_q
int | best_allowed_q
int | cq_level
enum aom_rc_mode | mode
int | vbrbias
int | vbrmin_section
int | vbrmax_section
int | max_consec_drop_ms
int | force_max_q

## Detailed Description

Encoder rate control configuration parameters.

## Field Documentation

## ◆ starting_buffer_level_ms

int64_t RateControlCfg::starting_buffer_level_ms

Indicates the amount of data that will be buffered by the decoding application prior to beginning playback, and is expressed in units of time(milliseconds).

Referenced by av1_init_layer_context().

## ◆ optimal_buffer_level_ms

int64_t RateControlCfg::optimal_buffer_level_ms

Indicates the amount of data that the encoder should try to maintain in the decoder's buffer, and is expressed in units of time(milliseconds).

## ◆ maximum_buffer_size_ms

int64_t RateControlCfg::maximum_buffer_size_ms

Indicates the maximum amount of data that may be buffered by the decoding application, and is expressed in units of time(milliseconds).

## ◆ target_bandwidth

int64_t RateControlCfg::target_bandwidth

Indicates the bandwidth to be used in bits per second.

Referenced by av1_restore_layer_context(), av1_save_layer_context(), and encode_frame_to_data_rate().

## ◆ vbr_corpus_complexity_lap

unsigned int RateControlCfg::vbr_corpus_complexity_lap

Indicates average complexity of the corpus in single pass vbr based on LAP. 0 indicates that corpus complexity vbr mode is disabled.

Referenced by find_next_key_frame().

## ◆ max_intra_bitrate_pct

unsigned int RateControlCfg::max_intra_bitrate_pct

Indicates the maximum allowed bitrate for any intra frame as % of bitrate target.

## ◆ max_inter_bitrate_pct

unsigned int RateControlCfg::max_inter_bitrate_pct

Indicates the maximum allowed bitrate for any inter frame as % of bitrate target.

## ◆ gf_cbr_boost_pct

unsigned int RateControlCfg::gf_cbr_boost_pct

Indicates the percentage of rate boost for golden frame in CBR mode.

Referenced by get_rate_correction_factor(), and set_rate_correction_factor().

## ◆ min_cr

unsigned int RateControlCfg::min_cr

min_cr / 100 indicates the target minimum compression ratio for each frame.

Referenced by encode_with_recode_loop(), and recode_loop_update_q().

## ◆ drop_frames_water_mark

int RateControlCfg::drop_frames_water_mark

Indicates the frame drop threshold.

Referenced by av1_encode_strategy(), av1_set_rtc_reference_structure_one_layer(), and encode_without_recode().

## ◆ under_shoot_pct

int RateControlCfg::under_shoot_pct

under_shoot_pct indicates the tolerance of the VBR algorithm to undershoot and is used as a trigger threshold for more aggressive adaptation of Q. It's value can range from 0-100.

Referenced by av1_twopass_postencode_update(), and get_twopass_worst_quality().

## ◆ over_shoot_pct

int RateControlCfg::over_shoot_pct

over_shoot_pct indicates the tolerance of the VBR algorithm to overshoot and is used as a trigger threshold for more aggressive adaptation of Q. It's value can range from 0-1000.

Referenced by av1_twopass_postencode_update(), and get_twopass_worst_quality().

## ◆ worst_allowed_q

int RateControlCfg::worst_allowed_q

Indicates the maximum qindex that can be used by the quantizer i.e. the worst quality qindex.

Referenced by av1_init_layer_context().

## ◆ best_allowed_q

int RateControlCfg::best_allowed_q

Indicates the minimum qindex that can be used by the quantizer i.e. the best quality qindex.

## ◆ cq_level

int RateControlCfg::cq_level

Indicates the Constant/Constrained Quality level.

Referenced by av1_encode_strategy(), av1_get_second_pass_params(), define_gf_group(), get_twopass_worst_quality(), and recode_loop_test().

## ◆ mode

enum aom_rc_mode RateControlCfg::mode

Indicates if the encoding mode is vbr, cbr, constrained quality or constant quality.

Referenced by av1_encode_strategy(), av1_get_second_pass_params(), av1_rc_pick_q_and_bounds(), av1_twopass_postencode_update(), define_gf_group(), define_gf_group_pass0(), define_kf_interval(), encode_frame_to_data_rate(), encode_with_recode_loop(), encode_without_recode(), find_next_key_frame(), get_q(), get_rate_correction_factor(), get_twopass_worst_quality(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), recode_loop_test(), recode_loop_update_q(), search_new_mv(), and set_rate_correction_factor().

## ◆ vbrbias

int RateControlCfg::vbrbias

Indicates the bias (expressed on a scale of 0 to 100) for determining target size for the current frame. The value 0 indicates the optimal CBR mode value should be used, and 100 indicates the optimal VBR mode value should be used.

Referenced by find_next_key_frame().

## ◆ vbrmin_section

int RateControlCfg::vbrmin_section

Indicates the minimum bitrate to be used for a single frame as a percentage of the target bitrate.

## ◆ vbrmax_section

int RateControlCfg::vbrmax_section

Indicates the maximum bitrate to be used for a single frame as a percentage of the target bitrate.

## ◆ max_consec_drop_ms

int RateControlCfg::max_consec_drop_ms

Indicates the maximum consecutive amount of frame drops, in units of time (milliseconds). This is converted to frame units internally. Only used in CBR mode.

## ◆ force_max_q

int RateControlCfg::force_max_q

Force the use of maximum q in vbr mode.

The documentation for this struct was generated from the following file:

- av1/encoder/encoder.h