AOMedia AV1 Codec: RATE_CONTROL Struct Reference

| AOMedia AV1 Codec

Data Fields
RATE_CONTROL Struct Reference

Rate Control parameters and status. More...

`#include <ratectrl.h>`

## Data Fields
int | base_frame_target
int | this_frame_target
int64_t | gf_group_bits
int | projected_frame_size
int | coefficient_size
int | sb64_target_rate
int | last_q [FRAME_TYPES]
int | last_boosted_qindex
int | last_kf_qindex
int | gfu_boost
int | kf_boost
double | rate_correction_factors [RATE_FACTOR_LEVELS]
int | frames_since_golden
int | frames_till_gf_update_due
int | intervals_till_gf_calculate_due
int | gf_intervals [MAX_NUM_GF_INTERVALS]
int | cur_gf_index
int | frames_to_key
int | worst_quality
int | best_quality
int64_t | starting_buffer_level
int64_t | optimal_buffer_level
int64_t | maximum_buffer_size
int | arf_q
int | active_worst_quality
int | active_best_quality [MAX_ARF_LAYERS+1]

## Detailed Description

Rate Control parameters and status.

## Field Documentation

## ◆ base_frame_target

int RATE_CONTROL::base_frame_target

Baseline target rate for frame before adjustment for previous under or over shoot.

Referenced by av1_get_one_pass_rt_params(), and av1_twopass_postencode_update().

## ◆ this_frame_target

int RATE_CONTROL::this_frame_target

Target rate for frame after adjustment for previous under or over shoot.

Referenced by get_q(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), recode_loop_test(), and recode_loop_update_q().

## ◆ gf_group_bits

int64_t RATE_CONTROL::gf_group_bits

Target bit budget for the current GF / ARF group of frame.

Referenced by define_gf_group().

## ◆ projected_frame_size

int RATE_CONTROL::projected_frame_size

Projected size for current frame

Referenced by av1_rc_update_rate_correction_factors(), av1_twopass_postencode_update(), recode_loop_test(), and recode_loop_update_q().

## ◆ coefficient_size

int RATE_CONTROL::coefficient_size

Bit size of transform coefficient for current frame.

Referenced by encode_frame_to_data_rate().

## ◆ sb64_target_rate

int RATE_CONTROL::sb64_target_rate

Super block rate target used with some adaptive quantization strategies.

## ◆ last_q

int RATE_CONTROL::last_q[FRAME_TYPES]

Q used on last encoded frame of the given type.

Referenced by av1_init_layer_context(), and dynamic_resize_one_pass_cbr().

## ◆ last_boosted_qindex

int RATE_CONTROL::last_boosted_qindex

Q used for last boosted (non leaf) frame (GF/KF/ARF)

Referenced by get_q(), rc_pick_q_and_bounds_no_stats(), and rc_pick_q_and_bounds_no_stats_cbr().

## ◆ last_kf_qindex

int RATE_CONTROL::last_kf_qindex

Q used for last boosted (non leaf) frame

Referenced by get_q().

## ◆ gfu_boost

int RATE_CONTROL::gfu_boost

Boost factor used to calculate the extra bits allocated to ARFs and GFs

Referenced by av1_get_second_pass_params(), av1_gop_bit_allocation(), define_gf_group(), define_gf_group_pass0(), set_gf_interval_update_onepass_rt(), and tf_setup_filtering_buffer().

## ◆ kf_boost

int RATE_CONTROL::kf_boost

Boost factor used to calculate the extra bits allocated to the key frame

Referenced by av1_get_one_pass_rt_params(), av1_get_second_pass_params(), and find_next_key_frame().

## ◆ rate_correction_factors

double RATE_CONTROL::rate_correction_factors[RATE_FACTOR_LEVELS]

Correction factors used to adjust the q estimate for a given target rate in the encode loop.

Referenced by av1_init_layer_context(), get_rate_correction_factor(), and set_rate_correction_factor().

## ◆ frames_since_golden

int RATE_CONTROL::frames_since_golden

Number of frames since the last ARF / GF.

Referenced by av1_nonrd_pick_inter_mode_sb().

## ◆ frames_till_gf_update_due

int RATE_CONTROL::frames_till_gf_update_due

Number of frames till the next ARF / GF is due.

Referenced by av1_get_second_pass_params(), define_gf_group(), find_next_key_frame(), and set_gf_interval_update_onepass_rt().

## ◆ intervals_till_gf_calculate_due

int RATE_CONTROL::intervals_till_gf_calculate_due

Number of determined gf groups left

Referenced by av1_get_second_pass_params(), calculate_gf_length(), define_gf_group(), and define_gf_group_pass0().

## ◆ gf_intervals

int RATE_CONTROL::gf_intervals[MAX_NUM_GF_INTERVALS]

Stores the determined gf group lengths for a set of gf groups

Referenced by av1_get_second_pass_params(), calculate_gf_length(), define_gf_group(), and define_gf_group_pass0().

## ◆ cur_gf_index

int RATE_CONTROL::cur_gf_index

The current group's index into gf_intervals[]

Referenced by av1_get_second_pass_params(), calculate_gf_length(), define_gf_group(), and define_gf_group_pass0().

## ◆ frames_to_key

int RATE_CONTROL::frames_to_key

Frames before the next key frame

Referenced by av1_encode_strategy(), av1_get_one_pass_rt_params(), av1_get_second_pass_params(), av1_restore_layer_context(), calculate_gf_length(), define_gf_group(), define_gf_group_pass0(), define_kf_interval(), encode_with_recode_loop_and_filter(), find_next_key_frame(), get_q(), get_q_using_fixed_offsets(), set_gf_interval_update_onepass_rt(), and tf_setup_filtering_buffer().

## ◆ worst_quality

int RATE_CONTROL::worst_quality

User specified maximum Q allowed for current frame

Referenced by av1_encodedframe_overshoot_cbr(), av1_init_layer_context(), av1_update_layer_context_change_config(), dynamic_resize_one_pass_cbr(), get_twopass_worst_quality(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), and recode_loop_update_q().

## ◆ best_quality

int RATE_CONTROL::best_quality

User specified minimum Q allowed for current frame

Referenced by av1_init_layer_context(), av1_update_layer_context_change_config(), get_twopass_worst_quality(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), and recode_loop_update_q().

## ◆ starting_buffer_level

int64_t RATE_CONTROL::starting_buffer_level

Initial buffuer level in ms for CBR / low delay encoding

Referenced by av1_update_layer_context_change_config().

## ◆ optimal_buffer_level

int64_t RATE_CONTROL::optimal_buffer_level

Optimum / target buffuer level in ms for CBR / low delay encoding

Referenced by av1_update_layer_context_change_config(), and dynamic_resize_one_pass_cbr().

## ◆ maximum_buffer_size

int64_t RATE_CONTROL::maximum_buffer_size

Maximum target buffuer level in ms for CBR / low delay encoding

Referenced by av1_update_layer_context_change_config().

## ◆ arf_q

int RATE_CONTROL::arf_q

Q index used for ALT frame

## ◆ active_worst_quality

int RATE_CONTROL::active_worst_quality

Proposed maximum alloed Q for current frame

Referenced by av1_get_one_pass_rt_params(), av1_get_second_pass_params(), define_gf_group(), and rc_pick_q_and_bounds().

## ◆ active_best_quality

int RATE_CONTROL::active_best_quality[MAX_ARF_LAYERS+1]

Proposed minimum allowed Q different layers in a coding pyramid

Referenced by av1_twopass_postencode_update(), and rc_pick_q_and_bounds().

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

- av1/encoder/ratectrl.h