![]() |
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, RATE_CONTROL::best_quality, AV1_COMP::common, LAYER_CONTEXT::counter_encode_maxq_scene_change, downsample_filter_phase, downsample_filter_type, force_zero_mode_spatial_ref, LAYER_CONTEXT::last_coded_q_map, RATE_CONTROL::last_q, layer_context, LAYER_CONTEXT::map, CommonModeInfoParams::mi_cols, AV1Common::mi_params, CommonModeInfoParams::mi_rows, AV1_COMP::oxcf, RATE_CONTROL::rate_correction_factors, AV1EncoderConfig::rc_cfg, LAYER_CONTEXT::sb_index, RateControlCfg::starting_buffer_level_ms, AV1_COMP::svc, RateControlCfg::worst_allowed_q, 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, AV1_COMP::framerate, layer_context, RATE_CONTROL::maximum_buffer_size, RATE_CONTROL::optimal_buffer_level, AV1_COMP::rc, RATE_CONTROL::starting_buffer_level, AV1_COMP::svc, 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 AV1_COMP::framerate, get_layer_context(), layer_context, AV1_COMP::rc, and AV1_COMP::svc.
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 LAYER_CONTEXT::actual_num_seg1_blocks, CYCLIC_REFRESH::actual_num_seg1_blocks, LAYER_CONTEXT::actual_num_seg2_blocks, CYCLIC_REFRESH::actual_num_seg2_blocks, AV1_COMP::common, AV1_COMP::cyclic_refresh, force_zero_mode_spatial_ref, RATE_CONTROL::frames_to_key, get_layer_context(), AV1_COMP::gf_frame_index, AV1Common::height, LAYER_CONTEXT::last_coded_q_map, CYCLIC_REFRESH::last_coded_q_map, LAYER_CONTEXT::map, CYCLIC_REFRESH::map, LAYER_CONTEXT::max_mv_magnitude, MotionVectorSearchParams::max_mv_magnitude, AV1_COMP::mv_search_params, AV1_COMP::oxcf, AV1_COMP::rc, AV1EncoderConfig::rc_cfg, LAYER_CONTEXT::sb_index, CYCLIC_REFRESH::sb_index, AV1_COMP::svc, RateControlCfg::target_bandwidth, 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 LAYER_CONTEXT::actual_num_seg1_blocks, CYCLIC_REFRESH::actual_num_seg1_blocks, LAYER_CONTEXT::actual_num_seg2_blocks, CYCLIC_REFRESH::actual_num_seg2_blocks, AV1_COMP::common, AV1Common::current_frame, AV1_COMP::cyclic_refresh, AV1_COMP::framerate, get_layer_context(), AV1_COMP::gf_frame_index, LAYER_CONTEXT::group_index, LAYER_CONTEXT::last_coded_q_map, CYCLIC_REFRESH::last_coded_q_map, LAYER_CONTEXT::map, CYCLIC_REFRESH::map, LAYER_CONTEXT::max_mv_magnitude, MotionVectorSearchParams::max_mv_magnitude, AV1_COMP::mv_search_params, AV1_COMP::oxcf, AV1_COMP::rc, AV1EncoderConfig::rc_cfg, LAYER_CONTEXT::sb_index, CYCLIC_REFRESH::sb_index, AV1_COMP::svc, and RateControlCfg::target_bandwidth.
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::last_coded_q_map, layer_context, LAYER_CONTEXT::map, and AV1_COMP::svc.
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(), av1_update_temporal_layer_framerate(), layer_context, and AV1_COMP::svc.
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(), AV1_COMP::common, downsample_filter_type, AV1Common::height, layer_context, AV1_COMP::oxcf, AV1_COMP::svc, and AV1Common::width.
Referenced by av1_get_compressed_data().
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().