| 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

## 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.

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

- av1/encoder/encoder.h