AOMedia AV1 Codec
speed_features.h File Reference
#include "av1/common/enums.h"
#include "av1/encoder/enc_enums.h"
#include "av1/encoder/mcomp.h"
#include "av1/encoder/encodemb.h"

Go to the source code of this file.

Data Structures

struct  HIGH_LEVEL_SPEED_FEATURES
 Sequence/frame level speed vs quality features. More...
 
struct  FIRST_PASS_SPEED_FEATURES
 
struct  SPEED_FEATURES
 Top level speed vs quality trade off data struture. More...
 

Typedefs

typedef struct HIGH_LEVEL_SPEED_FEATURES HIGH_LEVEL_SPEED_FEATURES
 Sequence/frame level speed vs quality features.
 
typedef struct FIRST_PASS_SPEED_FEATURES FIRST_PASS_SPEED_FEATURES
 
typedef struct SPEED_FEATURES SPEED_FEATURES
 Top level speed vs quality trade off data struture.
 

Enumerations

enum  CDEF_PICK_METHOD {
  CDEF_FULL_SEARCH , CDEF_FAST_SEARCH_LVL1 , CDEF_FAST_SEARCH_LVL2 , CDEF_FAST_SEARCH_LVL3 ,
  CDEF_FAST_SEARCH_LVL4 , CDEF_FAST_SEARCH_LVL5 , CDEF_PICK_FROM_Q , CDEF_PICK_METHODS
}
 This enumeration defines a variety of CDEF pick methods. More...
 
enum  INTERNAL_COST_UPDATE_TYPE {
  INTERNAL_COST_UPD_OFF , INTERNAL_COST_UPD_TILE , INTERNAL_COST_UPD_SBROW_SET , INTERNAL_COST_UPD_SBROW ,
  INTERNAL_COST_UPD_SB
}
 This enum decides internally how often to update the entropy costs. More...
 
enum  SIMPLE_MOTION_SEARCH_PRUNE_LEVEL {
  NO_PRUNING = -1 , SIMPLE_AGG_LVL0 , SIMPLE_AGG_LVL1 , SIMPLE_AGG_LVL2 ,
  SIMPLE_AGG_LVL3 , QIDX_BASED_AGG_LVL1 , TOTAL_SIMPLE_AGG_LVLS = QIDX_BASED_AGG_LVL1 , TOTAL_QINDEX_BASED_AGG_LVLS ,
  TOTAL_AGG_LVLS
}
 This enumeration defines a variety of simple motion search based partition prune levels. More...
 
enum  PRUNE_MESH_SEARCH_LEVEL { PRUNE_MESH_SEARCH_DISABLED = 0 , PRUNE_MESH_SEARCH_LVL_1 = 1 , PRUNE_MESH_SEARCH_LVL_2 = 2 }
 This enumeration defines a variety of mesh search prune levels. More...
 
enum  INTER_SEARCH_EARLY_TERM_IDX {
  EARLY_TERM_DISABLED , EARLY_TERM_IDX_1 , EARLY_TERM_IDX_2 , EARLY_TERM_IDX_3 ,
  EARLY_TERM_IDX_4 , EARLY_TERM_INDICES
}
 This enumeration defines inter search early termination index in non-rd path based on sse value. More...
 

Functions

void av1_set_speed_features_framesize_independent (struct AV1_COMP *cpi, int speed)
 Frame size independent speed vs quality trade off flags.
 
void av1_set_speed_features_framesize_dependent (struct AV1_COMP *cpi, int speed)
 Frame size dependent speed vs quality trade off flags.
 
void av1_set_speed_features_qindex_dependent (struct AV1_COMP *cpi, int speed)
 Q index dependent speed vs quality trade off flags.
 

Typedef Documentation

◆ FIRST_PASS_SPEED_FEATURES

typedef struct FIRST_PASS_SPEED_FEATURES FIRST_PASS_SPEED_FEATURES

Speed features for the first pass.

Enumeration Type Documentation

◆ CDEF_PICK_METHOD

This enumeration defines a variety of CDEF pick methods.

Enumerator
CDEF_FULL_SEARCH 

Full search

CDEF_FAST_SEARCH_LVL1 

Search among a subset of all possible filters.

CDEF_FAST_SEARCH_LVL2 

Search reduced subset of filters than Level 1.

CDEF_FAST_SEARCH_LVL3 

Search reduced subset of secondary filters than Level 2.

CDEF_FAST_SEARCH_LVL4 

Search reduced subset of filters than Level 3.

CDEF_FAST_SEARCH_LVL5 

Search reduced subset of filters than Level 4.

CDEF_PICK_FROM_Q 

Estimate filter strength based on quantizer.

◆ INTERNAL_COST_UPDATE_TYPE

This enum decides internally how often to update the entropy costs.

INTERNAL_COST_UPD_TYPE is similar to COST_UPDATE_TYPE but has slightly more flexibility in update frequency. This enum is separate from COST_UPDATE_TYPE because although COST_UPDATE_TYPE is not exposed, its values are public so it cannot be modified without breaking public API. Due to the use of AOMMIN() in populate_unified_cost_update_freq() to compute the unified cost update frequencies (out of COST_UPDATE_TYPE and INTERNAL_COST_UPDATE_TYPE), the values of this enum type must be listed in the order of increasing frequencies.

Warning
In case of any updates/modifications to the enum COST_UPDATE_TYPE, update the enum INTERNAL_COST_UPDATE_TYPE as well.
Enumerator
INTERNAL_COST_UPD_OFF 

Turn off cost updates.

INTERNAL_COST_UPD_TILE 

Update every tile.

INTERNAL_COST_UPD_SBROW_SET 

Update every row_set of height 256 pixs.

INTERNAL_COST_UPD_SBROW 

Update every sb rows inside a tile.

INTERNAL_COST_UPD_SB 

Update every sb.

◆ SIMPLE_MOTION_SEARCH_PRUNE_LEVEL

This enumeration defines a variety of simple motion search based partition prune levels.

Enumerator
SIMPLE_AGG_LVL0 

Simple prune aggressiveness level 0.

SIMPLE_AGG_LVL1 

Simple prune aggressiveness level 1.

SIMPLE_AGG_LVL2 

Simple prune aggressiveness level 2.

SIMPLE_AGG_LVL3 

Simple prune aggressiveness level 3.

QIDX_BASED_AGG_LVL1 

Qindex based prune aggressiveness level, aggressive level maps to simple agg level 1 or 2 based on qindex.

TOTAL_SIMPLE_AGG_LVLS 

Total number of simple prune aggressiveness levels.

TOTAL_QINDEX_BASED_AGG_LVLS 

Total number of qindex based simple prune aggressiveness levels.

TOTAL_AGG_LVLS 

Total number of levels.

◆ PRUNE_MESH_SEARCH_LEVEL

This enumeration defines a variety of mesh search prune levels.

Enumerator
PRUNE_MESH_SEARCH_DISABLED 

Prune mesh search level 0.

PRUNE_MESH_SEARCH_LVL_1 

Prune mesh search level 1.

PRUNE_MESH_SEARCH_LVL_2 

Prune mesh search level 2.

◆ INTER_SEARCH_EARLY_TERM_IDX

This enumeration defines inter search early termination index in non-rd path based on sse value.

Enumerator
EARLY_TERM_DISABLED 

Early terminate inter mode search based on sse disabled.

EARLY_TERM_IDX_1 

Early terminate inter mode search based on sse, index 1.

EARLY_TERM_IDX_2 

Early terminate inter mode search based on sse, index 2.

EARLY_TERM_IDX_3 

Early terminate inter mode search based on sse, index 3.

EARLY_TERM_IDX_4 

Early terminate inter mode search based on sse, index 4.

EARLY_TERM_INDICES 

Total number of early terminate indices