![]() |
AOMedia AV1 Codec
|
Data Structures | |
struct | LAYER_CONTEXT |
The stucture of quantities related to each spatial and temporal layer. More... | |
struct | SVC |
The stucture of SVC. More... | |
Typedefs | |
typedef struct SVC | SVC |
The stucture of SVC. | |
Functions | |
void | av1_init_layer_context (struct AV1_COMP *const cpi) |
Initialize layer context data from init_config(). More... | |
void | av1_update_layer_context_change_config (struct AV1_COMP *const cpi, const int64_t target_bandwidth) |
Update the layer context from a change_config() call. More... | |
void | av1_update_temporal_layer_framerate (struct AV1_COMP *const cpi) |
Prior to encoding the frame, update framerate-related quantities for the current temporal layer. More... | |
void | av1_restore_layer_context (struct AV1_COMP *const cpi) |
Prior to encoding the frame, set the layer context, for the current layer to be encoded, to the cpi struct. More... | |
void | av1_save_layer_context (struct AV1_COMP *const cpi) |
Save the layer context after encoding the frame. More... | |
void | av1_free_svc_cyclic_refresh (struct AV1_COMP *const cpi) |
Free the memory used for cyclic refresh in layer context. More... | |
void | av1_svc_reset_temporal_layers (struct AV1_COMP *const cpi, int is_key) |
Reset on key frame: reset counters, references and buffer updates. More... | |
void | av1_one_pass_cbr_svc_start_layer (struct AV1_COMP *const cpi) |
Before encoding, set resolutions and allocate compressor data. More... | |
int | av1_svc_primary_ref_frame (const struct AV1_COMP *const cpi) |
Get primary reference frame for current layer. More... | |
void | av1_get_layer_resolution (const int width_org, const int height_org, const int num, const int den, int *width_out, int *height_out) |
Get resolution for current layer. More... | |
This module describes scalable video coding algorithm in AV1. More details will be added.
void av1_init_layer_context | ( | struct AV1_COMP *const | cpi | ) |
Initialize layer context data from init_config().
[in] | cpi | Top level encoder structure |
References LAYER_CONTEXT::actual_num_seg1_blocks, LAYER_CONTEXT::actual_num_seg2_blocks, PRIMARY_RATE_CONTROL::avg_frame_qindex, PRIMARY_RATE_CONTROL::avg_q, RATE_CONTROL::best_quality, PRIMARY_RATE_CONTROL::bits_off_target, PRIMARY_RATE_CONTROL::buffer_level, LAYER_CONTEXT::counter_encode_maxq_scene_change, downsample_filter_phase, downsample_filter_type, force_zero_mode_spatial_ref, PRIMARY_RATE_CONTROL::last_q, layer_context, LAYER_CONTEXT::map, PRIMARY_RATE_CONTROL::rate_correction_factors, LAYER_CONTEXT::sb_index, PRIMARY_RATE_CONTROL::total_actual_bits, and RATE_CONTROL::worst_quality.
void av1_update_layer_context_change_config | ( | struct AV1_COMP *const | cpi, |
const int64_t | target_bandwidth | ||
) |
Update the layer context from a change_config() call.
[in] | cpi | Top level encoder structure |
[in] | target_bandwidth | Total target bandwidth |
References RATE_CONTROL::best_quality, PRIMARY_RATE_CONTROL::bits_off_target, PRIMARY_RATE_CONTROL::buffer_level, layer_context, PRIMARY_RATE_CONTROL::maximum_buffer_size, PRIMARY_RATE_CONTROL::optimal_buffer_level, PRIMARY_RATE_CONTROL::starting_buffer_level, and RATE_CONTROL::worst_quality.
void av1_update_temporal_layer_framerate | ( | struct AV1_COMP *const | cpi | ) |
Prior to encoding the frame, update framerate-related quantities for the current temporal layer.
[in] | cpi | Top level encoder structure |
References get_layer_context(), and layer_context.
Referenced by av1_get_one_pass_rt_params(), and av1_svc_reset_temporal_layers().
void av1_restore_layer_context | ( | struct AV1_COMP *const | cpi | ) |
Prior to encoding the frame, set the layer context, for the current layer to be encoded, to the cpi struct.
[in] | cpi | Top level encoder structure |
References CYCLIC_REFRESH::actual_num_seg1_blocks, LAYER_CONTEXT::actual_num_seg1_blocks, CYCLIC_REFRESH::actual_num_seg2_blocks, LAYER_CONTEXT::actual_num_seg2_blocks, force_zero_mode_spatial_ref, get_layer_context(), AV1Common::height, CYCLIC_REFRESH::map, LAYER_CONTEXT::map, LAYER_CONTEXT::max_mv_magnitude, CYCLIC_REFRESH::sb_index, LAYER_CONTEXT::sb_index, and AV1Common::width.
Referenced by av1_get_one_pass_rt_params(), and av1_svc_reset_temporal_layers().
void av1_save_layer_context | ( | struct AV1_COMP *const | cpi | ) |
Save the layer context after encoding the frame.
[in] | cpi | Top level encoder structure |
References CYCLIC_REFRESH::actual_num_seg1_blocks, LAYER_CONTEXT::actual_num_seg1_blocks, CYCLIC_REFRESH::actual_num_seg2_blocks, LAYER_CONTEXT::actual_num_seg2_blocks, AV1Common::current_frame, get_layer_context(), LAYER_CONTEXT::group_index, CYCLIC_REFRESH::map, LAYER_CONTEXT::map, LAYER_CONTEXT::max_mv_magnitude, CYCLIC_REFRESH::sb_index, and LAYER_CONTEXT::sb_index.
void av1_free_svc_cyclic_refresh | ( | struct AV1_COMP *const | cpi | ) |
Free the memory used for cyclic refresh in layer context.
[in] | cpi | Top level encoder structure |
References layer_context, and LAYER_CONTEXT::map.
void av1_svc_reset_temporal_layers | ( | struct AV1_COMP *const | cpi, |
int | is_key | ||
) |
Reset on key frame: reset counters, references and buffer updates.
[in] | cpi | Top level encoder structure |
[in] | is_key | Whether current layer is key frame |
References av1_restore_layer_context(), and av1_update_temporal_layer_framerate().
Referenced by av1_get_one_pass_rt_params().
void av1_one_pass_cbr_svc_start_layer | ( | struct AV1_COMP *const | cpi | ) |
Before encoding, set resolutions and allocate compressor data.
[in] | cpi | Top level encoder structure |
References av1_get_layer_resolution(), downsample_filter_type, and layer_context.
int av1_svc_primary_ref_frame | ( | const struct AV1_COMP *const | cpi | ) |
Get primary reference frame for current layer.
[in] | cpi | Top level encoder structure |
void av1_get_layer_resolution | ( | const int | width_org, |
const int | height_org, | ||
const int | num, | ||
const int | den, | ||
int * | width_out, | ||
int * | height_out | ||
) |
Get resolution for current layer.
[in] | width_org | Original width, unscaled |
[in] | height_org | Original height, unscaled |
[in] | num | Numerator for the scale ratio |
[in] | den | Denominator for the scale ratio |
[in] | width_out | Output width, scaled for current layer |
[in] | height_out | Output height, scaled for current layer |
Referenced by av1_one_pass_cbr_svc_start_layer().