AOMedia AV1 Codec: HIGH_LEVEL_SPEED_FEATURES Struct Reference

| AOMedia AV1 Codec

HIGH_LEVEL_SPEED_FEATURES Struct Reference

Sequence/frame level speed vs quality features. More...

`#include <speed_features.h>`

## Data Fields
int | frame_parameter_update
RECODE_LOOP_TYPE | recode_loop
int | recode_tolerance
MV_PREC_LOGIC | high_precision_mv_usage
int | static_segmentation
SUPERRES_AUTO_SEARCH_TYPE | superres_auto_search_type
int | disable_extra_sc_testing
int | second_alt_ref_filtering
int | adjust_num_frames_for_arf_filtering
int | accurate_bit_estimate
int | weight_calc_level_in_tf
int | allow_sub_blk_me_in_tf
int | ref_frame_mvs_lvl
int | screen_detection_mode2_fast_detection

## Detailed Description

Sequence/frame level speed vs quality features.

## Field Documentation

## ◆ frame_parameter_update

int HIGH_LEVEL_SPEED_FEATURES::frame_parameter_update

Frame level coding parameter update.

Referenced by av1_encode_frame().

## ◆ recode_loop

RECODE_LOOP_TYPE HIGH_LEVEL_SPEED_FEATURES::recode_loop

Cases and frame types for which the recode loop is enabled.

Referenced by encode_with_recode_loop(), encode_with_recode_loop_and_filter(), and recode_loop_test().

## ◆ recode_tolerance

int HIGH_LEVEL_SPEED_FEATURES::recode_tolerance

Controls the tolerance vs target rate used in deciding whether to recode a frame. It has no meaning if recode is disabled.

## ◆ high_precision_mv_usage

MV_PREC_LOGIC HIGH_LEVEL_SPEED_FEATURES::high_precision_mv_usage

Determine how motion vector precision is chosen. The possibilities are: LAST_MV_DATA: use the mv data from the last coded frame CURRENT_Q: use the current q as a threshold QTR_ONLY: use quarter pel precision only.

Referenced by encode_with_recode_loop().

## ◆ static_segmentation

int HIGH_LEVEL_SPEED_FEATURES::static_segmentation

Always set to 0. If on it enables 0 cost background transmission (except for the initial transmission of the segmentation). The feature is disabled because the addition of very large block sizes make the backgrounds very to cheap to encode, and the segmentation we have adds overhead.

## ◆ superres_auto_search_type

SUPERRES_AUTO_SEARCH_TYPE HIGH_LEVEL_SPEED_FEATURES::superres_auto_search_type

Superres-auto mode search type:

## ◆ disable_extra_sc_testing

int HIGH_LEVEL_SPEED_FEATURES::disable_extra_sc_testing

Enable/disable extra screen content test by encoding key frame twice.

Referenced by encode_with_recode_loop().

## ◆ second_alt_ref_filtering

int HIGH_LEVEL_SPEED_FEATURES::second_alt_ref_filtering

Enable/disable second_alt_ref temporal filtering.

## ◆ adjust_num_frames_for_arf_filtering

int HIGH_LEVEL_SPEED_FEATURES::adjust_num_frames_for_arf_filtering

The number of frames to be used during temporal filtering of an ARF frame is adjusted based on noise level of the current frame. The sf has three levels to decide number of frames to be considered for filtering: 0 : Use default number of frames 1 and 2 : Reduce the number of frames based on noise level with varied aggressiveness

Referenced by tf_setup_filtering_buffer().

## ◆ accurate_bit_estimate

int HIGH_LEVEL_SPEED_FEATURES::accurate_bit_estimate

Decide the bit estimation approach used in qindex decision. 0: estimate bits based on a constant value; 1: estimate bits more accurately based on the frame complexity.

Referenced by av1_rc_pick_q_and_bounds().

## ◆ weight_calc_level_in_tf

int HIGH_LEVEL_SPEED_FEATURES::weight_calc_level_in_tf

Decide the approach for weight calculation during temporal filtering. 0: Calculate weight using exp() 1: Calculate weight using a lookup table that approximates exp().

Referenced by av1_tf_do_filtering_row().

## ◆ allow_sub_blk_me_in_tf

int HIGH_LEVEL_SPEED_FEATURES::allow_sub_blk_me_in_tf

Decide whether to perform motion estimation at split block (i.e. 16x16) level or not. 0: Always allow motion estimation. 1: Conditionally allow motion estimation based on 4x4 sub-blocks variance.

Referenced by av1_tf_do_filtering_row().

## ◆ ref_frame_mvs_lvl

int HIGH_LEVEL_SPEED_FEATURES::ref_frame_mvs_lvl

Decide whether to disable temporal mv prediction. 0: Do not disable 1: Conditionally disable 2: Always disable

Referenced by encode_frame_internal().

## ◆ screen_detection_mode2_fast_detection

int HIGH_LEVEL_SPEED_FEATURES::screen_detection_mode2_fast_detection

Decide whether to enable screen detection mode 2 fast detection. 0: Regular detection 1: Fast detection

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

- av1/encoder/speed_features.h