AOMedia AV1 Codec
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

◆ 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

◆ worst_quality

◆ best_quality

◆ 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: