AOMedia AV1 Codec: AV1_COMP Struct Reference

| AOMedia AV1 Codec

Data Fields
AV1_COMP Struct Reference

Top level encoder structure. More...

`#include <encoder.h>`

## Data Fields
AV1_PRIMARY * | ppi
EncQuantDequantParams | enc_quant_dequant_params
ThreadData | td
FRAME_COUNTS | counts
MBMIExtFrameBufferInfo | mbmi_ext_info
CB_COEFF_BUFFER * | coeff_buffer_base
CoeffBufferPool | coeff_buffer_pool
AV1_COMMON | common
AV1EncoderConfig | oxcf
TRELLIS_OPT_TYPE | optimize_seg_arr [8]
YV12_BUFFER_CONFIG * | source
YV12_BUFFER_CONFIG * | last_source
YV12_BUFFER_CONFIG * | unscaled_source
YV12_BUFFER_CONFIG | scaled_source
YV12_BUFFER_CONFIG * | unscaled_last_source
YV12_BUFFER_CONFIG | scaled_last_source
YV12_BUFFER_CONFIG * | unfiltered_source
YV12_BUFFER_CONFIG | orig_source
int | skip_tpl_setup_stats
double * | tpl_rdmult_scaling_factors
TemporalFilterCtx | tf_ctx
CdefSearchCtx * | cdef_search_ctx
ForceIntegerMVInfo | force_intpel_info
RefCntBuffer * | scaled_ref_buf [INTER_REFS_PER_FRAME]
RefCntBuffer * | last_show_frame_buf
RefreshFrameInfo | refresh_frame
int | rt_reduce_num_ref_buffers
ExternalFlags | ext_flags
YV12_BUFFER_CONFIG | last_frame_uf
YV12_BUFFER_CONFIG | trial_frame_rst
int64_t | ambient_err
RD_OPT | rd
CODING_CONTEXT | coding_context
GlobalMotionInfo | gm_info
WinnerModeParams | winner_mode_params
TimeStamps | time_stamps
RATE_CONTROL | rc
double | framerate
int | ref_frame_flags
int | speed
SPEED_FEATURES | sf
MotionVectorSearchParams | mv_search_params
int | all_one_sided_refs
EncSegmentationInfo | enc_seg
CYCLIC_REFRESH * | cyclic_refresh
ActiveMap | active_map
unsigned char | gf_frame_index
int | droppable
FRAME_INFO | frame_info
FRAME_INDEX_SET | frame_index_set
InitialDimensions | initial_dimensions
int | initial_mbs
bool | frame_size_related_setup_done
int | last_coded_width
int | last_coded_height
ResizePendingParams | resize_pending_params
TileDataEnc * | tile_data
int | allocated_tiles
TokenInfo | token_info
int | vaq_refresh
VarBasedPartitionInfo | vbp_info
int | num_frame_recode
FrameProbInfo | frame_new_probs [10]
int | do_update_frame_probs_txtype [10]
int | do_update_frame_probs_obmc [10]
int | do_update_frame_probs_warp [10]
int | do_update_frame_probs_interpfilter [10]
double | new_framerate
int | do_update_vbr_bits_off_target_fast
MultiThreadInfo | mt_info
int | existing_fb_idx_to_show
int | intrabc_used
int | prune_ref_frame_mask
AV1LrStruct | lr_ctxt
AV1LrPickStruct | pick_lr_ctxt
aom_film_grain_table_t * | film_grain_table
struct aom_denoise_and_model_t * | denoise_and_model
InterpSearchFlags | interp_search_flags
int | use_screen_content_tools
int | is_screen_content_type
int | frame_header_count
int | deltaq_used
RefFrameDistanceInfo | ref_frame_dist_info
double * | ssim_rdmult_scaling_factors
SVC | svc
COMPRESSOR_STAGE | compressor_stage
FRAME_TYPE | last_frame_type
int | num_tg
aom_superres_mode | superres_mode
FirstPassData | firstpass_data
NOISE_ESTIMATE | noise_estimate
uint8_t * | consec_zero_mv
int | consec_zero_mv_alloc_size
BLOCK_SIZE | fp_block_size
int | sb_counter
size_t | available_bs_size
ExtPartController | ext_part_controller
MV_STATS | mv_stats
int | ref_refresh_index
bool | refresh_idx_available
int | ref_idx_to_skip
bool | do_frame_data_update
WeberStats * | mb_weber_stats
int * | prep_rate_estimates
double * | ext_rate_distribution
double | ext_rate_scale
BLOCK_SIZE | weber_bsize
int64_t | norm_wiener_variance
int * | mb_delta_q
bool | is_dropped_frame
TWO_PASS_FRAME | twopass_frame
THIRD_PASS_DEC_CTX * | third_pass_ctx
FILE * | second_pass_log_stream
uint64_t * | src_sad_blk_64x64
uint64_t | rec_sse
int | use_ducky_encode
DuckyEncodeInfo | ducky_encode_info
int | frames_since_last_update
unsigned int | zeromv_skip_thresh_exit_part [BLOCK_SIZES_ALL]
int | image_pyramid_levels
int | palette_pixel_num

## Detailed Description

Top level encoder structure.

## Field Documentation

## ◆ ppi

AV1_PRIMARY* AV1_COMP::ppi

Pointer to top level primary encoder structure

Referenced by av1_encode(), av1_encode_strategy(), av1_encodedframe_overshoot_cbr(), av1_get_compressed_data(), av1_get_second_pass_params(), av1_gop_bit_allocation(), av1_nonrd_pick_inter_mode_sb(), av1_rc_pick_q_and_bounds(), av1_rc_update_rate_correction_factors(), av1_rd_pick_partition(), av1_receive_raw_frame(), av1_restore_layer_context(), av1_save_layer_context(), av1_set_rtc_reference_structure_one_layer(), av1_tf_do_filtering_row(), av1_twopass_postencode_update(), av1_update_layer_context_change_config(), calculate_gf_length(), calculate_total_gf_group_bits(), cdef_restoration_frame(), define_gf_group(), define_gf_group_pass0(), define_gf_group_pass3(), define_kf_interval(), dynamic_resize_one_pass_cbr(), encode_frame_internal(), encode_frame_to_data_rate(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), encode_without_recode(), find_next_key_frame(), get_q(), get_rate_correction_factor(), get_twopass_worst_quality(), grade_source_content_sb(), handle_inter_mode(), has_no_stats_stage(), loopfilter_frame(), motion_mode_rd(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), rc_scene_detection_onepass_rt(), recode_loop_update_q(), set_rate_correction_factor(), tf_motion_search(), and tf_setup_filtering_buffer().

## ◆ enc_quant_dequant_params

EncQuantDequantParams AV1_COMP::enc_quant_dequant_params

Quantization and dequantization parameters for internal quantizer setup in the encoder.

Referenced by encode_with_recode_loop(), and encode_without_recode().

## ◆ td

ThreadData AV1_COMP::td

Structure holding thread specific variables.

Referenced by av1_encode_frame(), av1_encode_strategy(), av1_get_compressed_data(), encode_frame_internal(), encode_frame_to_data_rate(), encode_tiles(), loopfilter_frame(), tf_do_filtering(), and tf_setup_filtering_buffer().

## ◆ counts

FRAME_COUNTS AV1_COMP::counts

Statistics collected at frame level.

Referenced by av1_get_compressed_data().

## ◆ mbmi_ext_info

MBMIExtFrameBufferInfo AV1_COMP::mbmi_ext_info

Holds buffer storing mode information at 4x4/8x8 level.

## ◆ coeff_buffer_base

CB_COEFF_BUFFER* AV1_COMP::coeff_buffer_base

Buffer holding the transform block related information. coeff_buffer_base[i] stores the transform block related information of the ith superblock in raster scan order.

## ◆ coeff_buffer_pool

CoeffBufferPool AV1_COMP::coeff_buffer_pool

Structure holding pointers to frame level memory allocated for transform block related information.

## ◆ common

AV1_COMMON AV1_COMP::common

Structure holding variables common to encoder and decoder.

Referenced by av1_encode(), av1_encode_frame(), av1_encode_sb_row(), av1_encode_strategy(), av1_encode_tile(), av1_encodedframe_overshoot_cbr(), av1_get_compressed_data(), av1_get_second_pass_params(), av1_handle_intra_y_mode(), av1_init_layer_context(), av1_interpolation_filter_search(), av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_nonrd_use_partition(), av1_one_pass_cbr_svc_start_layer(), av1_rc_pick_q_and_bounds(), av1_rc_update_rate_correction_factors(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_mode_sb(), av1_rd_pick_intra_sbuv_mode(), av1_rd_pick_intra_sby_mode(), av1_rd_pick_partition(), av1_rd_use_partition(), av1_receive_raw_frame(), av1_restore_layer_context(), av1_save_layer_context(), av1_search_intra_uv_modes_in_interframe(), av1_search_palette_mode(), av1_set_rtc_reference_structure_one_layer(), av1_tf_do_filtering_row(), av1_twopass_postencode_update(), av1_update_layer_context_change_config(), calculate_gf_length(), combined_motion_search(), define_gf_group(), define_gf_group_pass3(), define_kf_interval(), dynamic_resize_one_pass_cbr(), encode_b(), encode_frame_internal(), encode_frame_to_data_rate(), encode_nonrd_sb(), encode_rd_sb(), encode_sb(), encode_sb_row(), encode_tiles(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), encode_without_recode(), fast_interp_search(), find_next_key_frame(), find_predictors(), get_q(), get_rate_correction_factor(), get_sb_source_sad(), get_twopass_worst_quality(), grade_source_content_sb(), handle_filter_intra_mode(), handle_inter_mode(), intra_mode_info_cost_uv(), intra_mode_info_cost_y(), is_calc_src_content_needed(), model_intra_yrd_and_prune(), motion_mode_rd(), palette_rd_y(), pick_sb_modes(), pick_sb_modes_nonrd(), process_compound_inter_mode(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), rc_scene_detection_onepass_rt(), rd_pick_filter_intra_sby(), rd_pick_intrabc_mode_sb(), recode_loop_update_q(), search_filter_ref(), search_intra_modes_in_interframe(), search_new_mv(), set_rate_correction_factor(), setup_delta_q(), tf_do_filtering(), tf_motion_search(), and tf_setup_filtering_buffer().

## ◆ oxcf

AV1EncoderConfig AV1_COMP::oxcf

Encoder configuration related parameters.

Referenced by av1_encode(), av1_encode_frame(), av1_encode_strategy(), av1_encode_tile(), av1_encodedframe_overshoot_cbr(), av1_get_compressed_data(), av1_get_second_pass_params(), av1_handle_intra_y_mode(), av1_init_layer_context(), av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_one_pass_cbr_svc_start_layer(), av1_rc_pick_q_and_bounds(), av1_rc_update_rate_correction_factors(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sbuv_mode(), av1_rd_pick_intra_sby_mode(), av1_rd_pick_partition(), av1_receive_raw_frame(), av1_restore_layer_context(), av1_save_layer_context(), av1_search_intra_uv_modes_in_interframe(), av1_set_rtc_reference_structure_one_layer(), av1_tf_do_filtering_row(), av1_twopass_postencode_update(), calculate_total_gf_group_bits(), define_gf_group(), define_gf_group_pass0(), define_gf_group_pass3(), define_kf_interval(), dynamic_resize_one_pass_cbr(), encode_frame_internal(), encode_frame_to_data_rate(), encode_rd_sb(), encode_sb_row(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), encode_without_recode(), find_closest_qindex_by_rate(), find_next_key_frame(), get_q(), get_rate_correction_factor(), get_twopass_worst_quality(), has_no_stats_stage(), is_calc_src_content_needed(), loopfilter_frame(), motion_mode_rd(), pick_sb_modes(), pick_sb_modes_nonrd(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), rc_scene_detection_onepass_rt(), rd_pick_filter_intra_sby(), rd_pick_intrabc_mode_sb(), recode_loop_test(), recode_loop_update_q(), search_intra_modes_in_interframe(), search_new_mv(), set_rate_correction_factor(), setup_delta_q(), and tf_setup_filtering_buffer().

## ◆ optimize_seg_arr

TRELLIS_OPT_TYPE AV1_COMP::optimize_seg_arr[8]

Stores the trellis optimization type at segment level. optimize_seg_arr[i] stores the trellis opt type for ith segment.

Referenced by av1_rd_pick_intra_sbuv_mode(), and encode_frame_internal().

## ◆ source

YV12_BUFFER_CONFIG* AV1_COMP::source

Pointer to the frame buffer holding the source frame to be used during the current stage of encoding. It can be the raw input, temporally filtered input or scaled input.

Referenced by av1_encode(), av1_encode_frame(), av1_encode_strategy(), av1_rd_pick_partition(), cdef_restoration_frame(), encode_frame_internal(), encode_frame_to_data_rate(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), encode_without_recode(), loopfilter_frame(), recode_loop_update_q(), and setup_delta_q().

## ◆ last_source

YV12_BUFFER_CONFIG* AV1_COMP::last_source

Pointer to the frame buffer holding the last raw source frame. last_source is NULL for the following cases: 1) First frame 2) Alt-ref frames 3) All frames for all-intra frame encoding.

Referenced by encode_with_recode_loop(), and encode_without_recode().

## ◆ unscaled_source

YV12_BUFFER_CONFIG* AV1_COMP::unscaled_source

Pointer to the frame buffer holding the unscaled source frame. It can be either the raw input or temporally filtered input.

Referenced by av1_encode(), av1_encode_strategy(), encode_with_recode_loop(), and encode_without_recode().

## ◆ scaled_source

YV12_BUFFER_CONFIG AV1_COMP::scaled_source

Frame buffer holding the resized source frame (cropping / superres).

Referenced by encode_with_recode_loop(), and encode_without_recode().

## ◆ unscaled_last_source

YV12_BUFFER_CONFIG* AV1_COMP::unscaled_last_source

Pointer to the frame buffer holding the unscaled last source frame.

Referenced by av1_encode(), encode_frame_to_data_rate(), encode_with_recode_loop(), and encode_without_recode().

## ◆ scaled_last_source

YV12_BUFFER_CONFIG AV1_COMP::scaled_last_source

Frame buffer holding the resized last source frame.

Referenced by encode_with_recode_loop(), and encode_without_recode().

## ◆ unfiltered_source

YV12_BUFFER_CONFIG* AV1_COMP::unfiltered_source

Pointer to the original source frame. This is used to determine if the content is screen.

Referenced by av1_encode_strategy().

## ◆ orig_source

YV12_BUFFER_CONFIG AV1_COMP::orig_source

Frame buffer holding the orig source frame for PSNR calculation in rtc tf case.

Referenced by av1_encode_strategy(), and encode_without_recode().

## ◆ skip_tpl_setup_stats

int AV1_COMP::skip_tpl_setup_stats

Skip tpl setup when tpl data from gop length decision can be reused.

Referenced by av1_encode_strategy().

## ◆ tpl_rdmult_scaling_factors

double* AV1_COMP::tpl_rdmult_scaling_factors

Scaling factors used in the RD multiplier modulation. TODO(sdeng): consider merge the following arrays. tpl_rdmult_scaling_factors is a temporary buffer used to store the intermediate scaling factors which are used in the calculation of tpl_sb_rdmult_scaling_factors. tpl_rdmult_scaling_factors[i] stores the intermediate scaling factor of the ith 16 x 16 block in raster scan order.

## ◆ tf_ctx

TemporalFilterCtx AV1_COMP::tf_ctx

Temporal filter context.

Referenced by av1_tf_do_filtering_row(), tf_do_filtering(), and tf_setup_filtering_buffer().

## ◆ cdef_search_ctx

CdefSearchCtx* AV1_COMP::cdef_search_ctx

Pointer to CDEF search context.

## ◆ force_intpel_info

ForceIntegerMVInfo AV1_COMP::force_intpel_info

Variables related to forcing integer mv decisions for the current frame.

Referenced by encode_frame_to_data_rate().

## ◆ scaled_ref_buf

RefCntBuffer* AV1_COMP::scaled_ref_buf[INTER_REFS_PER_FRAME]

Pointer to the buffer holding the scaled reference frames. scaled_ref_buf[i] holds the scaled reference frame of type i.

## ◆ last_show_frame_buf

RefCntBuffer* AV1_COMP::last_show_frame_buf

Pointer to the buffer holding the last show frame.

Referenced by encode_frame_to_data_rate().

## ◆ refresh_frame

RefreshFrameInfo AV1_COMP::refresh_frame

Refresh frame flags for golden, bwd-ref and alt-ref frames.

Referenced by av1_encode(), av1_encode_strategy(), encode_without_recode(), get_rate_correction_factor(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), and set_rate_correction_factor().

## ◆ rt_reduce_num_ref_buffers

int AV1_COMP::rt_reduce_num_ref_buffers

Flag to reduce the number of reference frame buffers used in rt.

Referenced by av1_set_rtc_reference_structure_one_layer().

## ◆ ext_flags

ExternalFlags AV1_COMP::ext_flags

Flags signalled by the external interface at frame level.

Referenced by av1_encode_strategy(), and av1_set_rtc_reference_structure_one_layer().

## ◆ last_frame_uf

YV12_BUFFER_CONFIG AV1_COMP::last_frame_uf

Temporary frame buffer used to store the non-loop filtered reconstructed frame during the search of loop filter level.

## ◆ trial_frame_rst

YV12_BUFFER_CONFIG AV1_COMP::trial_frame_rst

Temporary frame buffer used to store the loop restored frame during loop restoration search.

## ◆ ambient_err

int64_t AV1_COMP::ambient_err

Ambient reconstruction err target for force key frames.

Referenced by encode_with_recode_loop_and_filter(), and recode_loop_update_q().

## ◆ rd

RD_OPT AV1_COMP::rd

Parameters related to rate distortion optimization.

Referenced by encode_frame_to_data_rate(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), and loopfilter_frame().

## ◆ coding_context

CODING_CONTEXT AV1_COMP::coding_context

Temporary coding context used to save and restore when encoding with and without super-resolution.

## ◆ gm_info

GlobalMotionInfo AV1_COMP::gm_info

Parameters related to global motion search.

Referenced by encode_with_recode_loop().

## ◆ winner_mode_params

WinnerModeParams AV1_COMP::winner_mode_params

Parameters related to winner mode processing.

Referenced by encode_frame_internal().

## ◆ time_stamps

TimeStamps AV1_COMP::time_stamps

Frame time stamps.

Referenced by av1_encode_strategy().

## ◆ rc

RATE_CONTROL AV1_COMP::rc

Rate control related parameters.

Referenced by av1_encode_strategy(), av1_encodedframe_overshoot_cbr(), av1_get_compressed_data(), av1_get_second_pass_params(), av1_nonrd_pick_inter_mode_sb(), av1_rc_pick_q_and_bounds(), av1_rc_update_rate_correction_factors(), av1_rd_pick_inter_mode(), av1_restore_layer_context(), av1_save_layer_context(), av1_set_rtc_reference_structure_one_layer(), av1_twopass_postencode_update(), av1_update_layer_context_change_config(), av1_update_temporal_layer_framerate(), calculate_gf_length(), calculate_total_gf_group_bits(), define_gf_group(), define_gf_group_pass0(), define_gf_group_pass3(), define_kf_interval(), dynamic_resize_one_pass_cbr(), encode_frame_internal(), encode_frame_to_data_rate(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), encode_without_recode(), find_next_key_frame(), get_q(), get_rate_correction_factor(), get_twopass_worst_quality(), grade_source_content_sb(), pick_sb_modes_nonrd(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), rc_pick_q_and_bounds_no_stats_cbr(), rc_scene_detection_onepass_rt(), recode_loop_test(), recode_loop_update_q(), set_gf_interval_update_onepass_rt(), set_rate_correction_factor(), and tf_setup_filtering_buffer().

## ◆ framerate

double AV1_COMP::framerate

Frame rate of the video.

Referenced by av1_encode_strategy(), av1_save_layer_context(), av1_twopass_postencode_update(), av1_update_layer_context_change_config(), av1_update_temporal_layer_framerate(), dynamic_resize_one_pass_cbr(), find_next_key_frame(), and rc_scene_detection_onepass_rt().

## ◆ ref_frame_flags

int AV1_COMP::ref_frame_flags

Bitmask indicating which reference buffers may be referenced by this frame.

Referenced by av1_encode(), av1_encode_frame(), and encode_without_recode().

## ◆ speed

int AV1_COMP::speed

speed is passed as a per-frame parameter into the encoder.

Referenced by av1_encode(), and av1_rd_pick_inter_mode().

## ◆ sf

SPEED_FEATURES AV1_COMP::sf

sf contains fine-grained config set internally based on speed.

Referenced by av1_encode_frame(), av1_encode_strategy(), av1_encode_tile(), av1_get_second_pass_params(), av1_handle_intra_y_mode(), av1_interpolation_filter_search(), av1_nonrd_pick_inter_mode_sb(), av1_nonrd_pick_intra_mode(), av1_nonrd_use_partition(), av1_rc_pick_q_and_bounds(), av1_rd_pick_inter_mode(), av1_rd_pick_intra_sbuv_mode(), av1_rd_pick_intra_sby_mode(), av1_rd_pick_partition(), av1_rd_use_partition(), av1_restore_layer_context(), av1_set_rtc_reference_structure_one_layer(), av1_tf_do_filtering_row(), combined_motion_search(), encode_b(), encode_frame_internal(), encode_frame_to_data_rate(), encode_nonrd_sb(), encode_rd_sb(), encode_sb_row(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), encode_without_recode(), fast_interp_search(), grade_source_content_sb(), handle_inter_mode(), hybrid_intra_mode_search(), intra_block_yrd(), loopfilter_frame(), motion_mode_rd(), palette_rd_y(), pick_sb_modes(), pick_sb_modes_nonrd(), rd_pick_filter_intra_sby(), rd_pick_intrabc_mode_sb(), recode_loop_test(), search_filter_ref(), search_intra_modes_in_interframe(), search_new_mv(), tf_motion_search(), and tf_setup_filtering_buffer().

## ◆ mv_search_params

MotionVectorSearchParams AV1_COMP::mv_search_params

Parameters for motion vector search process.

Referenced by av1_restore_layer_context(), av1_save_layer_context(), combined_motion_search(), rd_pick_intrabc_mode_sb(), search_new_mv(), and tf_motion_search().

## ◆ all_one_sided_refs

int AV1_COMP::all_one_sided_refs

When set, indicates that all reference frames are forward references, i.e., all the reference frames are output before the current frame.

Referenced by encode_frame_internal().

## ◆ enc_seg

EncSegmentationInfo AV1_COMP::enc_seg

Segmentation related information for current frame.

Referenced by av1_encode_frame(), encode_frame_internal(), and encode_sb_row().

## ◆ cyclic_refresh

CYCLIC_REFRESH* AV1_COMP::cyclic_refresh

Parameters related to cyclic refresh aq-mode.

Referenced by av1_encodedframe_overshoot_cbr(), av1_rc_update_rate_correction_factors(), av1_restore_layer_context(), av1_save_layer_context(), encode_frame_internal(), and find_closest_qindex_by_rate().

## ◆ active_map

ActiveMap AV1_COMP::active_map

Parameters related to active map. Active maps indicate if there is any activity on a 4x4 block basis.

## ◆ gf_frame_index

unsigned char AV1_COMP::gf_frame_index

The frame processing order within a GOP.

Referenced by av1_encode(), av1_encode_strategy(), av1_get_compressed_data(), av1_get_second_pass_params(), av1_rd_pick_partition(), av1_restore_layer_context(), av1_save_layer_context(), av1_twopass_postencode_update(), define_gf_group(), define_gf_group_pass3(), encode_frame_internal(), encode_frame_to_data_rate(), encode_with_recode_loop(), encode_without_recode(), find_next_key_frame(), get_q(), get_rate_correction_factor(), handle_inter_mode(), motion_mode_rd(), rc_pick_q_and_bounds(), rc_pick_q_and_bounds_no_stats(), recode_loop_update_q(), and set_rate_correction_factor().

## ◆ droppable

int AV1_COMP::droppable

When set, indicates that the frame is droppable, i.e., this frame does not update any reference buffers.

Referenced by av1_encode_strategy().

## ◆ frame_info

FRAME_INFO AV1_COMP::frame_info

Stores the frame parameters during encoder initialization.

Referenced by find_next_key_frame(), and tf_setup_filtering_buffer().

## ◆ frame_index_set

FRAME_INDEX_SET AV1_COMP::frame_index_set

Stores different types of frame indices.

## ◆ initial_dimensions

InitialDimensions AV1_COMP::initial_dimensions

Structure to store the cm->width and cm->height in the last call of alloc_compressor_data(). TODO(chengchen): rename this variable or delete it.

## ◆ initial_mbs

int AV1_COMP::initial_mbs

Number of MBs in the full-size frame; to be used to normalize the firstpass stats. This will differ from the number of MBs in the current frame when the frame is scaled.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

## ◆ frame_size_related_setup_done

bool AV1_COMP::frame_size_related_setup_done

Flag to indicate whether the frame size inforamation has been setup and propagated to associated allocations.

## ◆ last_coded_width

int AV1_COMP::last_coded_width

The width of the frame that is lastly encoded. It is updated in the function "encoder_encode()".

## ◆ last_coded_height

int AV1_COMP::last_coded_height

The height of the frame that is lastly encoded. It is updated in the function "encoder_encode()".

## ◆ resize_pending_params

ResizePendingParams AV1_COMP::resize_pending_params

Resize related parameters.

## ◆ tile_data

TileDataEnc* AV1_COMP::tile_data

Pointer to struct holding adaptive data/contexts/models for the tile during encoding.

Referenced by av1_encode_sb_row(), av1_encode_tile(), encode_frame_to_data_rate(), and encode_tiles().

## ◆ allocated_tiles

int AV1_COMP::allocated_tiles

Number of tiles for which memory has been allocated for tile_data.

Referenced by encode_tiles().

## ◆ token_info

TokenInfo AV1_COMP::token_info

Structure to store the palette token related information.

## ◆ vaq_refresh

int AV1_COMP::vaq_refresh

VARIANCE_AQ segment map refresh.

Referenced by av1_rd_pick_partition(), and av1_rd_use_partition().

## ◆ vbp_info

VarBasedPartitionInfo AV1_COMP::vbp_info

Thresholds for variance based partitioning.

## ◆ num_frame_recode

int AV1_COMP::num_frame_recode

Number of recodes in the frame.

Referenced by av1_twopass_postencode_update(), encode_frame_internal(), and encode_with_recode_loop().

## ◆ frame_new_probs

FrameProbInfo AV1_COMP::frame_new_probs[10]

Current frame probability of parallel frames, across recodes.

Referenced by av1_twopass_postencode_update(), and encode_frame_internal().

## ◆ do_update_frame_probs_txtype

int AV1_COMP::do_update_frame_probs_txtype[10]

Retain condition for transform type frame_probability calculation

Referenced by av1_twopass_postencode_update(), encode_frame_internal(), and encode_with_recode_loop_and_filter().

## ◆ do_update_frame_probs_obmc

int AV1_COMP::do_update_frame_probs_obmc[10]

Retain condition for obmc frame_probability calculation

Referenced by av1_twopass_postencode_update(), encode_frame_internal(), and encode_with_recode_loop_and_filter().

## ◆ do_update_frame_probs_warp

int AV1_COMP::do_update_frame_probs_warp[10]

Retain condition for warped motion frame_probability calculation

Referenced by av1_twopass_postencode_update(), encode_frame_internal(), and encode_with_recode_loop_and_filter().

## ◆ do_update_frame_probs_interpfilter

int AV1_COMP::do_update_frame_probs_interpfilter[10]

Retain condition for interpolation filter frame_probability calculation

Referenced by av1_twopass_postencode_update(), encode_frame_internal(), and encode_with_recode_loop_and_filter().

## ◆ new_framerate

double AV1_COMP::new_framerate

Updated framerate for the current parallel frame. cpi->framerate is updated with new_framerate during post encode updates for parallel frames.

Referenced by av1_twopass_postencode_update().

## ◆ do_update_vbr_bits_off_target_fast

int AV1_COMP::do_update_vbr_bits_off_target_fast

Retain condition for fast_extra_bits calculation.

Referenced by av1_twopass_postencode_update(), and encode_with_recode_loop_and_filter().

## ◆ mt_info

MultiThreadInfo AV1_COMP::mt_info

Multi-threading parameters.

Referenced by av1_nonrd_pick_inter_mode_sb(), cdef_restoration_frame(), encode_frame_internal(), encode_sb_row(), encode_with_recode_loop_and_filter(), loopfilter_frame(), pick_sb_modes(), and pick_sb_modes_nonrd().

## ◆ existing_fb_idx_to_show

int AV1_COMP::existing_fb_idx_to_show

Specifies the frame to be output. It is valid only if show_existing_frame is 1. When show_existing_frame is 0, existing_fb_idx_to_show is set to INVALID_IDX.

Referenced by av1_encode(), and encode_frame_to_data_rate().

## ◆ intrabc_used

int AV1_COMP::intrabc_used

A flag to indicate if intrabc is ever used in current frame.

Referenced by encode_frame_internal(), and encode_tiles().

## ◆ prune_ref_frame_mask

int AV1_COMP::prune_ref_frame_mask

Mark which ref frames can be skipped for encoding current frame during RDO.

Referenced by encode_frame_internal().

## ◆ lr_ctxt

AV1LrStruct AV1_COMP::lr_ctxt

Loop Restoration context.

Referenced by cdef_restoration_frame().

## ◆ pick_lr_ctxt

AV1LrPickStruct AV1_COMP::pick_lr_ctxt

Loop Restoration context used during pick stage.

## ◆ film_grain_table

aom_film_grain_table_t* AV1_COMP::film_grain_table

Pointer to list of tables with film grain parameters.

Referenced by av1_encode_strategy().

## ◆ denoise_and_model

struct aom_denoise_and_model_t* AV1_COMP::denoise_and_model

Pointer to structure holding the denoised image buffers and the helper noise models.

## ◆ interp_search_flags

InterpSearchFlags AV1_COMP::interp_search_flags

Flags related to interpolation filter search.

Referenced by av1_interpolation_filter_search(), encode_frame_internal(), and encode_with_recode_loop().

## ◆ use_screen_content_tools

int AV1_COMP::use_screen_content_tools

Turn on screen content tools flag. Note that some videos are not screen content videos, but screen content tools could also improve coding efficiency. For example, videos with large flat regions, gaming videos that look like natural videos.

## ◆ is_screen_content_type

int AV1_COMP::is_screen_content_type

A flag to indicate "real" screen content videos. For example, screen shares, screen editing. This type is true indicates |use_screen_content_tools| must be true. In addition, rate control strategy is adjusted when this flag is true.

Referenced by av1_rc_update_rate_correction_factors().

## ◆ frame_header_count

int AV1_COMP::frame_header_count

Count the number of OBU_FRAME and OBU_FRAME_HEADER for level calculation.

## ◆ deltaq_used

int AV1_COMP::deltaq_used

Whether any no-zero delta_q was actually used.

Referenced by encode_frame_internal(), and encode_tiles().

## ◆ ref_frame_dist_info

RefFrameDistanceInfo AV1_COMP::ref_frame_dist_info

Refrence frame distance related variables.

Referenced by av1_encode_frame().

## ◆ ssim_rdmult_scaling_factors

double* AV1_COMP::ssim_rdmult_scaling_factors

ssim_rdmult_scaling_factors[i] stores the RD multiplier scaling factor of the ith 16 x 16 block in raster scan order. This scaling factor is used for RD multiplier modulation when SSIM tuning is enabled.

## ◆ svc

SVC AV1_COMP::svc

Parameters for scalable video coding.

Referenced by av1_alloc_layer_context(), av1_encode_strategy(), av1_encodedframe_overshoot_cbr(), av1_free_svc_cyclic_refresh(), av1_init_layer_context(), av1_nonrd_pick_inter_mode_sb(), av1_one_pass_cbr_svc_start_layer(), av1_restore_layer_context(), av1_save_layer_context(), av1_svc_reset_temporal_layers(), av1_update_layer_context_change_config(), av1_update_temporal_layer_framerate(), encode_frame_internal(), encode_frame_to_data_rate(), encode_without_recode(), get_layer_context(), grade_source_content_sb(), is_calc_src_content_needed(), rc_scene_detection_onepass_rt(), and set_gf_interval_update_onepass_rt().

## ◆ compressor_stage

COMPRESSOR_STAGE AV1_COMP::compressor_stage

Indicates whether current processing stage is encode stage or LAP stage.

Referenced by av1_encode_strategy(), av1_get_compressed_data(), has_no_stats_stage(), and tf_setup_filtering_buffer().

## ◆ last_frame_type

FRAME_TYPE AV1_COMP::last_frame_type

Frame type of the last frame. May be used in some heuristics for speeding up the encoding.

Referenced by encode_frame_to_data_rate().

## ◆ num_tg

int AV1_COMP::num_tg

Number of tile-groups.

Referenced by encode_frame_to_data_rate().

## ◆ superres_mode

aom_superres_mode AV1_COMP::superres_mode

Super-resolution mode currently being used by the encoder. This may / may not be same as user-supplied mode in oxcf->superres_mode (when we are recoding to try multiple options for example).

Referenced by encode_frame_to_data_rate(), encode_with_recode_loop(), rc_pick_q_and_bounds(), and rc_pick_q_and_bounds_no_stats().

## ◆ firstpass_data

FirstPassData AV1_COMP::firstpass_data

First pass related data.

## ◆ noise_estimate

NOISE_ESTIMATE AV1_COMP::noise_estimate

Temporal Noise Estimate

## ◆ consec_zero_mv

uint8_t* AV1_COMP::consec_zero_mv

Count on how many consecutive times a block uses small/zeromv for encoding in a scale of 8x8 block.

Referenced by encode_without_recode().

## ◆ consec_zero_mv_alloc_size

int AV1_COMP::consec_zero_mv_alloc_size

Allocated memory size for |consec_zero_mv|.

Referenced by encode_without_recode().

## ◆ fp_block_size

BLOCK_SIZE AV1_COMP::fp_block_size

Block size of first pass encoding

## ◆ sb_counter

int AV1_COMP::sb_counter

The counter of encoded super block, used to differentiate block names. This number starts from 0 and increases whenever a super block is encoded.

Referenced by av1_rd_pick_partition().

## ◆ available_bs_size

size_t AV1_COMP::available_bs_size

Available bitstream buffer size in bytes

Referenced by av1_get_compressed_data().

## ◆ ext_part_controller

ExtPartController AV1_COMP::ext_part_controller

The controller of the external partition model. It is used to do partition type selection based on external models.

Referenced by encode_rd_sb().

## ◆ mv_stats

MV_STATS AV1_COMP::mv_stats

Motion vector stats of the current encoded frame, used to update the ppi->mv_stats during postencode.

Referenced by av1_encode_strategy(), and encode_with_recode_loop().

## ◆ ref_refresh_index

int AV1_COMP::ref_refresh_index

Stores the reference refresh index for the current frame.

Referenced by av1_encode_strategy().

## ◆ refresh_idx_available

bool AV1_COMP::refresh_idx_available

A flag to indicate if the reference refresh index is available for the current frame.

Referenced by av1_encode_strategy().

## ◆ ref_idx_to_skip

int AV1_COMP::ref_idx_to_skip

Reference frame index corresponding to the frame to be excluded from being used as a reference by frame_parallel_level 2 frame in a parallel encode set of lower layer frames.

## ◆ do_frame_data_update

bool AV1_COMP::do_frame_data_update

A flag to indicate frames that will update their data to the primary context at the end of the encode. It is set for non-parallel frames and the last frame in encode order in a given parallel encode set.

Referenced by av1_twopass_postencode_update(), encode_frame_to_data_rate(), and encode_with_recode_loop().

## ◆ mb_weber_stats

WeberStats* AV1_COMP::mb_weber_stats

Buffer to store MB variance after Wiener filter.

## ◆ prep_rate_estimates

int* AV1_COMP::prep_rate_estimates

Buffer to store rate cost estimates for each macro block (8x8) in the preprocessing stage used in allintra mode.

## ◆ ext_rate_distribution

double* AV1_COMP::ext_rate_distribution

Buffer to store rate cost estimates for each 16x16 block read from an external file, used in allintra mode.

## ◆ ext_rate_scale

double AV1_COMP::ext_rate_scale

The scale that equals sum_rate_uniform_quantizer / sum_ext_rate.

## ◆ weber_bsize

BLOCK_SIZE AV1_COMP::weber_bsize

Buffer to store MB variance after Wiener filter.

## ◆ norm_wiener_variance

int64_t AV1_COMP::norm_wiener_variance

Frame level Wiener filter normalization.

## ◆ mb_delta_q

int* AV1_COMP::mb_delta_q

Buffer to store delta-q values for delta-q mode 4.

## ◆ is_dropped_frame

bool AV1_COMP::is_dropped_frame

Flag to indicate that current frame is dropped.

Referenced by av1_encode_strategy(), av1_get_compressed_data(), and encode_frame_to_data_rate().

## ◆ twopass_frame

TWO_PASS_FRAME AV1_COMP::twopass_frame

Frame level twopass status and control data

Referenced by av1_encode_strategy(), av1_get_second_pass_params(), av1_twopass_postencode_update(), calculate_gf_length(), define_gf_group(), define_gf_group_pass3(), find_next_key_frame(), and tf_setup_filtering_buffer().

## ◆ third_pass_ctx

THIRD_PASS_DEC_CTX* AV1_COMP::third_pass_ctx

Context needed for third pass encoding.

Referenced by av1_get_second_pass_params(), define_gf_group(), and define_gf_group_pass3().

## ◆ second_pass_log_stream

FILE* AV1_COMP::second_pass_log_stream

File pointer to second pass log

Referenced by av1_encode_strategy(), and av1_get_second_pass_params().

## ◆ src_sad_blk_64x64

uint64_t* AV1_COMP::src_sad_blk_64x64

Buffer to store 64x64 SAD

Referenced by get_sb_source_sad(), and rc_scene_detection_onepass_rt().

## ◆ rec_sse

uint64_t AV1_COMP::rec_sse

SSE between the current frame and the reconstructed last frame It is only used for CBR mode. It is not used if the reference frame has a different frame size.

Referenced by av1_rc_pick_q_and_bounds().

## ◆ use_ducky_encode

int AV1_COMP::use_ducky_encode

A flag to indicate whether the encoder is controlled by DuckyEncode or not. 1:yes 0:no

Referenced by av1_get_second_pass_params(), av1_twopass_postencode_update(), encode_frame_internal(), encode_frame_to_data_rate(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), and setup_delta_q().

## ◆ ducky_encode_info

DuckyEncodeInfo AV1_COMP::ducky_encode_info

A structure that facilitates the communication between DuckyEncode and AV1 encoder.

Referenced by av1_get_second_pass_params(), av1_twopass_postencode_update(), encode_frame_to_data_rate(), encode_with_recode_loop(), encode_with_recode_loop_and_filter(), and setup_delta_q().

## ◆ frames_since_last_update

int AV1_COMP::frames_since_last_update

Frames since last frame with cdf update.

Referenced by encode_frame_to_data_rate().

## ◆ zeromv_skip_thresh_exit_part

unsigned int AV1_COMP::zeromv_skip_thresh_exit_part[BLOCK_SIZES_ALL]

Block level thresholds to force zeromv-skip at partition level.

## ◆ image_pyramid_levels

int AV1_COMP::image_pyramid_levels

Number of downsampling pyramid levels to allocate for each frame This is currently only used for global motion

Referenced by av1_encode_frame(), av1_receive_raw_frame(), encode_with_recode_loop(), and encode_without_recode().

## ◆ palette_pixel_num

int AV1_COMP::palette_pixel_num

Number of pixels that choose palette mode for luma in the fast encoding pass in av1_determine_sc_tools_with_encoding().

Referenced by av1_encode_frame(), and encode_tiles().

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

- av1/encoder/encoder.h