AOMedia AOM/AV1 Encoder
Supported Codecs » AOM

## Files

file | aom_external_partition.h
| Provides function pointer definitions for the external partition.
file | aomcx.h
| Provides definitions for using AOM or AV1 encoder algorithm within the aom Codec Interface.

## Data Structures

struct | aom_ext_part_config
| Config information sent to the external partition model. More...
struct | aom_partition_features_before_none
| Features pass to the external model to make partition decisions. Specifically, features collected before NONE partition. Features "f" are used to determine: partition_none_allowed, partition_horz_allowed, partition_vert_allowed, do_rectangular_split, do_square_split Features "f_part2" are used to determine: prune_horz, prune_vert. More...
struct | aom_partition_features_none
| Features pass to the external model to make partition decisions. Specifically, features collected after NONE partition. More...
struct | aom_partition_features_split
| Features pass to the external model to make partition decisions. Specifically, features collected after SPLIT partition. More...
struct | aom_partition_features_rect
| Features pass to the external model to make partition decisions. Specifically, features collected after RECTANGULAR partition. More...
struct | aom_partition_features_ab
| Features pass to the external model to make partition decisions. Specifically, features collected after AB partition: HORZ_A, HORZ_B, VERT_A, VERT_B. More...
struct | aom_sb_tpl_features
| Features collected from the tpl process. More...
struct | aom_sb_simple_motion_features
| Features collected from the simple motion process. More...
struct | aom_sb_features
| Features of each super block. More...
struct | aom_partition_features
| Features pass to the external model to make partition decisions. More...
struct | aom_partition_decision
| Partition decisions received from the external model. More...
struct | aom_partition_stats
| Encoding stats for the given partition decision. More...
struct | aom_ext_part_funcs
| Callback function set for external partition model. More...
struct | aom_roi_map
| aom region of interest map More...
struct | aom_active_map
| aom active region map More...
struct | aom_scaling_mode
| aom image scaling mode More...
struct | aom_svc_layer_id
| Struct for spatial and temporal layer ID. More...
struct | aom_svc_params
| Parameter type for SVC. More...
struct | aom_svc_ref_frame_config
| Parameters for setting ref frame config. More...
struct | aom_svc_ref_frame_comp_pred
| Parameters for setting ref frame compound prediction. More...
struct | aom_gop_info
| The GOP structure information determined by the encoder. 250 is MAX_STATIC_GF_GROUP_LENGTH defined in av1/firstpass.h. This is a subset of GF_GROUP. More fields can be added if needed. More...

## Macros

#define | AOM_EXT_PART_ABI_VERSION 8
| Current ABI version number.
#define | AOM_EXT_PART_SIZE_DIRECT_SPLIT 17
| Number of features to determine whether to skip partition none and do partition split directly. The same as "FEATURE_SIZE_SMS_SPLIT".
#define | AOM_EXT_PART_SIZE_PRUNE_PART 25
| Number of features to use simple motion search to prune out rectangular partition in some direction. The same as "FEATURE_SIZE_SMS_PRUNE_PART".
#define | AOM_EXT_PART_SIZE_PRUNE_NONE 4
| Number of features to prune split and rectangular partition after PARTITION_NONE.
#define | AOM_EXT_PART_SIZE_TERM_NONE 28
| Number of features to terminates partition after partition none using simple_motion_search features and the rate, distortion, and rdcost of PARTITION_NONE. The same as "FEATURE_SIZE_SMS_TERM_NONE".
#define | AOM_EXT_PART_SIZE_TERM_SPLIT 31
| Number of features to terminates partition after partition split.
#define | AOM_EXT_PART_SIZE_PRUNE_RECT 9
| Number of features to prune rectangular partition using stats collected after partition split.
#define | AOM_EXT_PART_SIZE_PRUNE_AB 10
| Number of features to prune AB partition using stats collected after rectangular partition..
#define | AOM_EXT_PART_SIZE_PRUNE_4_WAY 18
| Number of features to prune 4-way partition using stats collected after AB partition.
#define | AOM_EFLAG_NO_REF_LAST (1 << 16)
| Don't reference the last frame.
#define | AOM_EFLAG_NO_REF_LAST2 (1 << 17)
| Don't reference the last2 frame.
#define | AOM_EFLAG_NO_REF_LAST3 (1 << 18)
| Don't reference the last3 frame.
#define | AOM_EFLAG_NO_REF_GF (1 << 19)
| Don't reference the golden frame.
#define | AOM_EFLAG_NO_REF_ARF (1 << 20)
| Don't reference the alternate reference frame.
#define | AOM_EFLAG_NO_REF_BWD (1 << 21)
| Don't reference the bwd reference frame.
#define | AOM_EFLAG_NO_REF_ARF2 (1 << 22)
| Don't reference the alt2 reference frame.
#define | AOM_EFLAG_NO_UPD_LAST (1 << 23)
| Don't update the last frame.
#define | AOM_EFLAG_NO_UPD_GF (1 << 24)
| Don't update the golden frame.
#define | AOM_EFLAG_NO_UPD_ARF (1 << 25)
| Don't update the alternate reference frame.
#define | AOM_EFLAG_NO_UPD_ENTROPY (1 << 26)
| Disable entropy update.
#define | AOM_EFLAG_NO_REF_FRAME_MVS (1 << 27)
| Disable ref frame mvs.
#define | AOM_EFLAG_ERROR_RESILIENT (1 << 28)
| Enable error resilient frame.
#define | AOM_EFLAG_SET_S_FRAME (1 << 29)
| Enable s frame mode.
#define | AOM_EFLAG_SET_PRIMARY_REF_NONE (1 << 30)
| Force primary_ref_frame to PRIMARY_REF_NONE.
#define | AOM_MAX_SEGMENTS 8
| Max number of segments.
#define | AOM_MAX_LAYERS 32
#define | AOM_MAX_SS_LAYERS 4
#define | AOM_MAX_TS_LAYERS 8

## Typedefs

typedef void * | aom_ext_part_model_t
| Abstract external partition model handler.
typedef enum aom_ext_part_decision_mode | aom_ext_part_decision_mode_t
| Decision mode of the external partition model. AOM_EXT_PART_WHOLE_TREE: the external partition model should provide the whole partition tree for the superblock.
typedef struct aom_ext_part_config | aom_ext_part_config_t
| Config information sent to the external partition model.
typedef struct aom_partition_features_before_none | aom_partition_features_before_none_t
| Features pass to the external model to make partition decisions. Specifically, features collected before NONE partition. Features "f" are used to determine: partition_none_allowed, partition_horz_allowed, partition_vert_allowed, do_rectangular_split, do_square_split Features "f_part2" are used to determine: prune_horz, prune_vert.
typedef struct aom_partition_features_none | aom_partition_features_none_t
| Features pass to the external model to make partition decisions. Specifically, features collected after NONE partition.
typedef struct aom_partition_features_split | aom_partition_features_split_t
| Features pass to the external model to make partition decisions. Specifically, features collected after SPLIT partition.
typedef struct aom_partition_features_rect | aom_partition_features_rect_t
| Features pass to the external model to make partition decisions. Specifically, features collected after RECTANGULAR partition.
typedef struct aom_partition_features_ab | aom_partition_features_ab_t
| Features pass to the external model to make partition decisions. Specifically, features collected after AB partition: HORZ_A, HORZ_B, VERT_A, VERT_B.
typedef struct aom_sb_tpl_features | aom_sb_tpl_features_t
| Features collected from the tpl process.
typedef struct aom_sb_simple_motion_features | aom_sb_simple_motion_features_t
| Features collected from the simple motion process.
typedef struct aom_sb_features | aom_sb_features_t
| Features of each super block.
typedef struct aom_partition_features | aom_partition_features_t
| Features pass to the external model to make partition decisions.
typedef struct aom_partition_decision | aom_partition_decision_t
| Partition decisions received from the external model.
typedef struct aom_partition_stats | aom_partition_stats_t
| Encoding stats for the given partition decision.
typedef enum aom_ext_part_status | aom_ext_part_status_t
| Enum for return status.
typedef aom_ext_part_status_t(* | aom_ext_part_create_model_fn_t) (void *priv, const aom_ext_part_config_t *part_config, aom_ext_part_model_t *ext_part_model)
| Callback of creating an external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_send_features_fn_t) (aom_ext_part_model_t ext_part_model, const aom_partition_features_t *part_features)
| Callback of sending features to the external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_get_decision_fn_t) (aom_ext_part_model_t ext_part_model, aom_partition_decision_t *ext_part_decision)
| Callback of receiving partition decisions from the external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_send_partition_stats_fn_t) (aom_ext_part_model_t ext_part_model, const aom_partition_stats_t *ext_part_stats)
| Callback of sending stats to the external partition model.
typedef aom_ext_part_status_t(* | aom_ext_part_delete_model_fn_t) (aom_ext_part_model_t ext_part_model)
| Callback of deleting the external partition model.
typedef struct aom_ext_part_funcs | aom_ext_part_funcs_t
| Callback function set for external partition model.
typedef enum aom_scaling_mode_1d | AOM_SCALING_MODE
| aom 1-D scaling mode
typedef struct aom_roi_map | aom_roi_map_t
| aom region of interest map
typedef struct aom_active_map | aom_active_map_t
| aom active region map
typedef struct aom_scaling_mode | aom_scaling_mode_t
| aom image scaling mode
typedef struct aom_svc_layer_id | aom_svc_layer_id_t
| Struct for spatial and temporal layer ID.
typedef struct aom_svc_params | aom_svc_params_t
| Parameter type for SVC.
typedef struct aom_svc_ref_frame_config | aom_svc_ref_frame_config_t
| Parameters for setting ref frame config.
typedef struct aom_svc_ref_frame_comp_pred | aom_svc_ref_frame_comp_pred_t
| Parameters for setting ref frame compound prediction.
typedef struct aom_gop_info | aom_gop_info_t
| The GOP structure information determined by the encoder. 250 is MAX_STATIC_GF_GROUP_LENGTH defined in av1/firstpass.h. This is a subset of GF_GROUP. More fields can be added if needed.

## Enumerations

enum | aom_ext_part_decision_mode { AOM_EXT_PART_WHOLE_TREE = 0 , AOM_EXT_PART_RECURSIVE = 1 }
| Decision mode of the external partition model. AOM_EXT_PART_WHOLE_TREE: the external partition model should provide the whole partition tree for the superblock. More...
enum | AOM_EXT_PART_FEATURE_ID { AOM_EXT_PART_FEATURE_BEFORE_NONE , AOM_EXT_PART_FEATURE_BEFORE_NONE_PART2 , AOM_EXT_PART_FEATURE_AFTER_NONE , AOM_EXT_PART_FEATURE_AFTER_NONE_PART2 , AOM_EXT_PART_FEATURE_AFTER_SPLIT , AOM_EXT_PART_FEATURE_AFTER_SPLIT_PART2 , AOM_EXT_PART_FEATURE_AFTER_RECT , AOM_EXT_PART_FEATURE_AFTER_AB }
| Feature id to tell the external model the current stage in partition pruning and what features to use to make decisions accordingly.
enum | aom_ext_part_status { AOM_EXT_PART_OK = 0 , AOM_EXT_PART_ERROR = 1 , AOM_EXT_PART_TEST = 2 }
| Enum for return status. More...

enum

aome_enc_control_id {
AOME_USE_REFERENCE = 7 , AOME_SET_ROI_MAP = 8 , AOME_SET_ACTIVEMAP = 9 , AOME_SET_SCALEMODE = 11 ,
AOME_SET_SPATIAL_LAYER_ID = 12 , AOME_SET_CPUUSED = 13 , AOME_SET_ENABLEAUTOALTREF = 14 , AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2 ,
AOME_SET_STATIC_THRESHOLD = 17 , AOME_GET_LAST_QUANTIZER = AOME_SET_STATIC_THRESHOLD + 2 , AOME_GET_LAST_QUANTIZER_64 = 20 , AOME_SET_ARNR_MAXFRAMES = 21 ,
AOME_SET_ARNR_STRENGTH = 22 , AOME_SET_TUNING = AOME_SET_ARNR_STRENGTH + 2 , AOME_SET_CQ_LEVEL = 25 , AOME_SET_MAX_INTRA_BITRATE_PCT = 26 ,
AOME_SET_NUMBER_SPATIAL_LAYERS = 27 , AV1E_SET_MAX_INTER_BITRATE_PCT = AOME_SET_MAX_INTRA_BITRATE_PCT + 2 , AV1E_SET_GF_CBR_BOOST_PCT = 29 , AV1E_SET_LOSSLESS = AV1E_SET_GF_CBR_BOOST_PCT + 2 ,
AV1E_SET_ROW_MT = 32 , AV1E_SET_TILE_COLUMNS = 33 , AV1E_SET_TILE_ROWS = 34 , AV1E_SET_ENABLE_TPL_MODEL = 35 ,
AV1E_SET_ENABLE_KEYFRAME_FILTERING = 36 , AV1E_SET_FRAME_PARALLEL_DECODING = 37 , AV1E_SET_ERROR_RESILIENT_MODE = 38 , AV1E_SET_S_FRAME_MODE = 39 ,
AV1E_SET_AQ_MODE = 40 , AV1E_SET_FRAME_PERIODIC_BOOST = 41 , AV1E_SET_NOISE_SENSITIVITY = 42 , AV1E_SET_TUNE_CONTENT = 43 ,
AV1E_SET_CDF_UPDATE_MODE = 44 , AV1E_SET_COLOR_PRIMARIES = 45 , AV1E_SET_TRANSFER_CHARACTERISTICS = 46 , AV1E_SET_MATRIX_COEFFICIENTS = 47 ,
AV1E_SET_CHROMA_SAMPLE_POSITION = 48 , AV1E_SET_MIN_GF_INTERVAL = 49 , AV1E_SET_MAX_GF_INTERVAL = 50 , AV1E_GET_ACTIVEMAP = 51 ,
AV1E_SET_COLOR_RANGE = 52 , AV1E_SET_RENDER_SIZE = 53 , AV1E_SET_TARGET_SEQ_LEVEL_IDX = 54 , AV1E_GET_SEQ_LEVEL_IDX = 55 ,
AV1E_SET_SUPERBLOCK_SIZE = 56 , AOME_SET_ENABLEAUTOBWDREF = 57 , AV1E_SET_ENABLE_CDEF = 58 , AV1E_SET_ENABLE_RESTORATION = 59 ,
AV1E_SET_FORCE_VIDEO_MODE = 60 , AV1E_SET_ENABLE_OBMC = 61 , AV1E_SET_DISABLE_TRELLIS_QUANT = 62 , AV1E_SET_ENABLE_QM = 63 ,
AV1E_SET_QM_MIN = 64 , AV1E_SET_QM_MAX = 65 , AV1E_SET_QM_Y = 66 , AV1E_SET_QM_U = 67 ,
AV1E_SET_QM_V = 68 , AV1E_SET_NUM_TG = 70 , AV1E_SET_MTU = 71 , AV1E_SET_ENABLE_RECT_PARTITIONS = 73 ,
AV1E_SET_ENABLE_AB_PARTITIONS = 74 , AV1E_SET_ENABLE_1TO4_PARTITIONS = 75 , AV1E_SET_MIN_PARTITION_SIZE = 76 , AV1E_SET_MAX_PARTITION_SIZE = 77 ,
AV1E_SET_ENABLE_INTRA_EDGE_FILTER = 78 , AV1E_SET_ENABLE_ORDER_HINT = 79 , AV1E_SET_ENABLE_TX64 = 80 , AV1E_SET_ENABLE_FLIP_IDTX = 81 ,
AV1E_SET_ENABLE_RECT_TX = 82 , AV1E_SET_ENABLE_DIST_WTD_COMP = 83 , AV1E_SET_ENABLE_REF_FRAME_MVS = 84 , AV1E_SET_ALLOW_REF_FRAME_MVS = 85 ,
AV1E_SET_ENABLE_DUAL_FILTER = 86 , AV1E_SET_ENABLE_CHROMA_DELTAQ = 87 , AV1E_SET_ENABLE_MASKED_COMP = 88 , AV1E_SET_ENABLE_ONESIDED_COMP = 89 ,
AV1E_SET_ENABLE_INTERINTRA_COMP = 90 , AV1E_SET_ENABLE_SMOOTH_INTERINTRA = 91 , AV1E_SET_ENABLE_DIFF_WTD_COMP = 92 , AV1E_SET_ENABLE_INTERINTER_WEDGE = 93 ,
AV1E_SET_ENABLE_INTERINTRA_WEDGE = 94 , AV1E_SET_ENABLE_GLOBAL_MOTION = 95 , AV1E_SET_ENABLE_WARPED_MOTION = 96 , AV1E_SET_ALLOW_WARPED_MOTION = 97 ,
AV1E_SET_ENABLE_FILTER_INTRA = 98 , AV1E_SET_ENABLE_SMOOTH_INTRA = 99 , AV1E_SET_ENABLE_PAETH_INTRA = 100 , AV1E_SET_ENABLE_CFL_INTRA = 101 ,
AV1E_SET_ENABLE_SUPERRES = 102 , AV1E_SET_ENABLE_OVERLAY = 103 , AV1E_SET_ENABLE_PALETTE = 104 , AV1E_SET_ENABLE_INTRABC = 105 ,
AV1E_SET_ENABLE_ANGLE_DELTA = 106 , AV1E_SET_DELTAQ_MODE = 107 , AV1E_SET_DELTALF_MODE = 108 , AV1E_SET_SINGLE_TILE_DECODING = 109 ,
AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST = 110 , AV1E_SET_TIMING_INFO_TYPE = 111 , AV1E_SET_FILM_GRAIN_TEST_VECTOR = 112 , AV1E_SET_FILM_GRAIN_TABLE = 113 ,
AV1E_SET_DENOISE_NOISE_LEVEL = 114 , AV1E_SET_DENOISE_BLOCK_SIZE = 115 , AV1E_SET_CHROMA_SUBSAMPLING_X = 116 , AV1E_SET_CHROMA_SUBSAMPLING_Y = 117 ,
AV1E_SET_REDUCED_TX_TYPE_SET = 118 , AV1E_SET_INTRA_DCT_ONLY = 119 , AV1E_SET_INTER_DCT_ONLY = 120 , AV1E_SET_INTRA_DEFAULT_TX_ONLY = 121 ,
AV1E_SET_QUANT_B_ADAPT = 122 , AV1E_SET_GF_MAX_PYRAMID_HEIGHT = 123 , AV1E_SET_MAX_REFERENCE_FRAMES = 124 , AV1E_SET_REDUCED_REFERENCE_SET = 125 ,
AV1E_SET_COEFF_COST_UPD_FREQ = 126 , AV1E_SET_MODE_COST_UPD_FREQ = 127 , AV1E_SET_MV_COST_UPD_FREQ = 128 , AV1E_SET_TIER_MASK = 129 ,
AV1E_SET_MIN_CR = 130 , AV1E_SET_SVC_LAYER_ID = 131 , AV1E_SET_SVC_PARAMS = 132 , AV1E_SET_SVC_REF_FRAME_CONFIG = 133 ,
AV1E_SET_VMAF_MODEL_PATH = 134 , AV1E_ENABLE_EXT_TILE_DEBUG = 135 , AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST = 136 , AV1E_SET_GF_MIN_PYRAMID_HEIGHT = 137 ,
AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP = 138 , AV1E_GET_BASELINE_GF_INTERVAL = 139 , AV1E_SET_ENABLE_DNL_DENOISING = 140 , AV1E_SET_ENABLE_DIAGONAL_INTRA = 141 ,
AV1E_SET_DV_COST_UPD_FREQ = 142 , AV1E_SET_PARTITION_INFO_PATH = 143 , AV1E_SET_EXTERNAL_PARTITION = 144 , AV1E_SET_ENABLE_DIRECTIONAL_INTRA = 145 ,
AV1E_SET_ENABLE_TX_SIZE_SEARCH = 146 , AV1E_SET_SVC_REF_FRAME_COMP_PRED = 147 , AV1E_SET_DELTAQ_STRENGTH = 148 , AV1E_SET_LOOPFILTER_CONTROL = 149 ,
AOME_GET_LOOPFILTER_LEVEL = 150 , AV1E_SET_AUTO_INTRA_TOOLS_OFF = 151 , AV1E_SET_RTC_EXTERNAL_RC = 152 , AV1E_SET_FP_MT = 153 ,
AV1E_SET_FP_MT_UNIT_TEST = 154 , AV1E_GET_TARGET_SEQ_LEVEL_IDX = 155 , AV1E_GET_NUM_OPERATING_POINTS = 156 , AV1E_SET_SKIP_POSTPROC_FILTERING = 157 ,
AV1E_ENABLE_SB_QP_SWEEP = 158 , AV1E_SET_QUANTIZER_ONE_PASS = 159 , AV1E_ENABLE_RATE_GUIDE_DELTAQ = 160 , AV1E_SET_RATE_DISTRIBUTION_INFO = 161 ,
AV1E_GET_LUMA_CDEF_STRENGTH = 162 , AV1E_SET_BITRATE_ONE_PASS_CBR = 163 , AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR = 164 , AV1E_SET_SVC_FRAME_DROP_MODE = 165 ,
AV1E_SET_AUTO_TILES = 166 , AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC = 167 , AV1E_SET_POSTENCODE_DROP_RTC = 168 , AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR = 169 ,
AV1E_SET_ENABLE_LOW_COMPLEXITY_DECODE = 170 , AV1E_SET_SCREEN_CONTENT_DETECTION_MODE = 171 , AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS = 172 , AV1E_SET_EXTERNAL_RATE_CONTROL = 173 ,
AV1E_GET_GOP_INFO , AOME_SET_VALIDATE_HBD_INPUT
}

| AVx encoder control functions. More...
enum | aom_scaling_mode_1d { AOME_NORMAL = 0 , AOME_FOURFIVE = 1 , AOME_THREEFIVE = 2 , AOME_THREEFOUR = 3 , AOME_ONEFOUR = 4 , AOME_ONEEIGHT = 5 , AOME_ONETWO = 6 , AOME_TWOTHREE = 7 , AOME_ONETHREE = 8 }
| aom 1-D scaling mode More...
enum | aom_tune_content { AOM_CONTENT_DEFAULT , AOM_CONTENT_SCREEN , AOM_CONTENT_FILM , AOM_CONTENT_INVALID }
| AV1 encoder content type.
enum | aom_screen_detection_mode { AOM_SCREEN_DETECTION_STANDARD = 1 , AOM_SCREEN_DETECTION_ANTIALIASING_AWARE = 2 }
| Screen content detection mode. More...
enum | aom_timing_info_type_t { AOM_TIMING_UNSPECIFIED , AOM_TIMING_EQUAL , AOM_TIMING_DEC_MODEL }
| AV1 encoder timing info type signaling.
enum | aom_tune_metric { AOM_TUNE_PSNR = 0 , AOM_TUNE_SSIM = 1 , AOM_TUNE_VMAF_WITH_PREPROCESSING = 4 , AOM_TUNE_VMAF_WITHOUT_PREPROCESSING = 5 , AOM_TUNE_VMAF_MAX_GAIN = 6 , AOM_TUNE_VMAF_NEG_MAX_GAIN = 7 , AOM_TUNE_BUTTERAUGLI = 8 , AOM_TUNE_VMAF_SALIENCY_MAP = 9 , AOM_TUNE_IQ = 10 , AOM_TUNE_SSIMULACRA2 = 11 }
| Model tuning parameters. More...
enum | aom_dist_metric { AOM_DIST_METRIC_PSNR , AOM_DIST_METRIC_QM_PSNR }
| Distortion metric to use for RD optimization. More...
enum | AOM_SVC_FRAME_DROP_MODE { AOM_LAYER_DROP , AOM_FULL_SUPERFRAME_DROP }
| Frame drop modes for spatial/quality layer SVC. More...

## Algorithm interface for AV1

This interface provides the capability to encode raw AV1 streams.
aom_codec_iface_t | aom_codec_av1_cx_algo
| A single instance of the AV1 encoder.
aom_codec_iface_t * | aom_codec_av1_cx (void)
| The interface to the AV1 encoder.

## Detailed Description

## Macro Definition Documentation

## AOM_EFLAG_NO_REF_LAST

#define AOM_EFLAG_NO_REF_LAST (1 << 16)

Don't reference the last frame.

When this flag is set, the encoder will not use the last frame as a predictor. When not set, the encoder will choose whether to use the last frame or not automatically.

## AOM_EFLAG_NO_REF_LAST2

#define AOM_EFLAG_NO_REF_LAST2 (1 << 17)

Don't reference the last2 frame.

When this flag is set, the encoder will not use the last2 frame as a predictor. When not set, the encoder will choose whether to use the last2 frame or not automatically.

## AOM_EFLAG_NO_REF_LAST3

#define AOM_EFLAG_NO_REF_LAST3 (1 << 18)

Don't reference the last3 frame.

When this flag is set, the encoder will not use the last3 frame as a predictor. When not set, the encoder will choose whether to use the last3 frame or not automatically.

## AOM_EFLAG_NO_REF_GF

#define AOM_EFLAG_NO_REF_GF (1 << 19)

Don't reference the golden frame.

When this flag is set, the encoder will not use the golden frame as a predictor. When not set, the encoder will choose whether to use the golden frame or not automatically.

## AOM_EFLAG_NO_REF_ARF

#define AOM_EFLAG_NO_REF_ARF (1 << 20)

Don't reference the alternate reference frame.

When this flag is set, the encoder will not use the alt ref frame as a predictor. When not set, the encoder will choose whether to use the alt ref frame or not automatically.

## AOM_EFLAG_NO_REF_BWD

#define AOM_EFLAG_NO_REF_BWD (1 << 21)

Don't reference the bwd reference frame.

When this flag is set, the encoder will not use the bwd ref frame as a predictor. When not set, the encoder will choose whether to use the bwd ref frame or not automatically.

## AOM_EFLAG_NO_REF_ARF2

#define AOM_EFLAG_NO_REF_ARF2 (1 << 22)

Don't reference the alt2 reference frame.

When this flag is set, the encoder will not use the alt2 ref frame as a predictor. When not set, the encoder will choose whether to use the alt2 ref frame or not automatically.

## AOM_EFLAG_NO_UPD_LAST

#define AOM_EFLAG_NO_UPD_LAST (1 << 23)

Don't update the last frame.

When this flag is set, the encoder will not update the last frame with the contents of the current frame.

## AOM_EFLAG_NO_UPD_GF

#define AOM_EFLAG_NO_UPD_GF (1 << 24)

Don't update the golden frame.

When this flag is set, the encoder will not update the golden frame with the contents of the current frame.

## AOM_EFLAG_NO_UPD_ARF

#define AOM_EFLAG_NO_UPD_ARF (1 << 25)

Don't update the alternate reference frame.

When this flag is set, the encoder will not update the alt ref frame with the contents of the current frame.

## AOM_EFLAG_NO_UPD_ENTROPY

#define AOM_EFLAG_NO_UPD_ENTROPY (1 << 26)

Disable entropy update.

When this flag is set, the encoder will not update its internal entropy model based on the entropy of this frame.

## AOM_EFLAG_NO_REF_FRAME_MVS

#define AOM_EFLAG_NO_REF_FRAME_MVS (1 << 27)

Disable ref frame mvs.

When this flag is set, the encoder will not allow frames to be encoded using mfmv.

## AOM_EFLAG_ERROR_RESILIENT

#define AOM_EFLAG_ERROR_RESILIENT (1 << 28)

Enable error resilient frame.

When this flag is set, the encoder will code frames as error resilient.

## AOM_EFLAG_SET_S_FRAME

#define AOM_EFLAG_SET_S_FRAME (1 << 29)

Enable s frame mode.

When this flag is set, the encoder will code frames as an s frame.

## AOM_EFLAG_SET_PRIMARY_REF_NONE

#define AOM_EFLAG_SET_PRIMARY_REF_NONE (1 << 30)

Force primary_ref_frame to PRIMARY_REF_NONE.

When this flag is set, the encoder will set a frame's primary_ref_frame to PRIMARY_REF_NONE

## AOM_MAX_SEGMENTS

#define AOM_MAX_SEGMENTS 8

Max number of segments.

This is the limit of number of segments allowed within a frame.

Currently same as "MAX_SEGMENTS" in AV1, the maximum that AV1 supports.

## AOM_MAX_LAYERS

#define AOM_MAX_LAYERS 32

Max number of layers

## AOM_MAX_SS_LAYERS

#define AOM_MAX_SS_LAYERS 4

Max number of spatial layers

## AOM_MAX_TS_LAYERS

#define AOM_MAX_TS_LAYERS 8

Max number of temporal layers

## Typedef Documentation

## aom_ext_part_decision_mode_t

typedef enum aom_ext_part_decision_mode aom_ext_part_decision_mode_t

Decision mode of the external partition model. AOM_EXT_PART_WHOLE_TREE: the external partition model should provide the whole partition tree for the superblock.

AOM_EXT_PART_RECURSIVE: the external partition model provides the partition decision of the current block only. The decision process starts from the superblock size, down to the smallest block size (4x4) recursively.

## aom_ext_part_config_t

typedef struct aom_ext_part_config aom_ext_part_config_t

Config information sent to the external partition model.

For example, the maximum superblock size determined by the sequence header.

## aom_sb_tpl_features_t

typedef struct aom_sb_tpl_features aom_sb_tpl_features_t

Features collected from the tpl process.

The tpl process collects information that help measure the inter-frame dependency. The tpl process is computed in the unit of tpl_bsize_1d (16x16). Therefore, the max number of units inside a superblock is 128x128 / (16x16) = 64. Change it if the tpl process changes.

## aom_sb_simple_motion_features_t

typedef struct aom_sb_simple_motion_features aom_sb_simple_motion_features_t

Features collected from the simple motion process.

The simple motion process collects information by applying motion compensated prediction on each block. The block size is 16x16, which could be changed. If it is changed, update comments and the array size here.

## aom_sb_features_t

typedef struct aom_sb_features aom_sb_features_t

Features of each super block.

Features collected for each super block before partition search.

## aom_partition_features_t

typedef struct aom_partition_features aom_partition_features_t

Features pass to the external model to make partition decisions.

The encoder sends these features to the external model through "func()" defined in .....

NOTE: new member variables may be added to this structure in the future. Once new features are finalized, bump the major version of libaom.

## aom_partition_decision_t

typedef struct aom_partition_decision aom_partition_decision_t

Partition decisions received from the external model.

The encoder receives partition decisions and encodes the superblock with the given partition type. The encoder receives it from "func()" define in ....

NOTE: new member variables may be added to this structure in the future. Once new features are finalized, bump the major version of libaom.

## aom_partition_stats_t

typedef struct aom_partition_stats aom_partition_stats_t

Encoding stats for the given partition decision.

The encoding stats collected by encoding the superblock with the given partition types. The encoder sends the stats to the external model for training or inference through "func()" defined in ....

## aom_ext_part_create_model_fn_t

typedef aom_ext_part_status_t(* aom_ext_part_create_model_fn_t) (void *priv, const aom_ext_part_config_t *part_config, aom_ext_part_model_t *ext_part_model)

Callback of creating an external partition model.

The callback is invoked by the encoder to create an external partition model.

Parameters

  [in] | priv | Callback's private data
  [in] | part_config | Config information pointer for model creation
  [out] | ext_part_model | Pointer to the model

## aom_ext_part_send_features_fn_t

typedef aom_ext_part_status_t(* aom_ext_part_send_features_fn_t) (aom_ext_part_model_t ext_part_model, const aom_partition_features_t *part_features)

Callback of sending features to the external partition model.

The callback is invoked by the encoder to send features to the external partition model.

Parameters

  [in] | ext_part_model | The external model
  [in] | part_features | Pointer to the features

## aom_ext_part_get_decision_fn_t

typedef aom_ext_part_status_t(* aom_ext_part_get_decision_fn_t) (aom_ext_part_model_t ext_part_model, aom_partition_decision_t *ext_part_decision)

Callback of receiving partition decisions from the external partition model.

The callback is invoked by the encoder to receive partition decisions from the external partition model.

Parameters

  [in] | ext_part_model | The external model
  [in] | ext_part_decision | Pointer to the partition decisions

## aom_ext_part_send_partition_stats_fn_t

typedef aom_ext_part_status_t(* aom_ext_part_send_partition_stats_fn_t) (aom_ext_part_model_t ext_part_model, const aom_partition_stats_t *ext_part_stats)

Callback of sending stats to the external partition model.

The callback is invoked by the encoder to send encoding stats to the external partition model.

Parameters

  [in] | ext_part_model | The external model
  [in] | ext_part_stats | Pointer to the encoding stats

## aom_ext_part_delete_model_fn_t

typedef aom_ext_part_status_t(* aom_ext_part_delete_model_fn_t) (aom_ext_part_model_t ext_part_model)

Callback of deleting the external partition model.

The callback is invoked by the encoder to delete the external partition model.

Parameters

  [in] | ext_part_model | The external model

## aom_ext_part_funcs_t

typedef struct aom_ext_part_funcs aom_ext_part_funcs_t

Callback function set for external partition model.

Uses can enable external partition model by registering a set of callback functions with the flag: AV1E_SET_EXTERNAL_PARTITION_MODEL

## AOM_SCALING_MODE

typedef enum aom_scaling_mode_1d AOM_SCALING_MODE

aom 1-D scaling mode

This set of constants define 1-D aom scaling modes

## aom_roi_map_t

typedef struct aom_roi_map aom_roi_map_t

aom region of interest map

These defines the data structures for the region of interest map

## aom_active_map_t

typedef struct aom_active_map aom_active_map_t

aom active region map

These defines the data structures for active region map

## aom_scaling_mode_t

typedef struct aom_scaling_mode aom_scaling_mode_t

aom image scaling mode

This defines the data structure for image scaling mode

## aom_svc_params_t

typedef struct aom_svc_params aom_svc_params_t

Parameter type for SVC.

In the arrays of size AOM_MAX_LAYERS, the index for spatial layer sl and temporal layer tl is sl * number_temporal_layers + tl.

## aom_gop_info_t

typedef struct aom_gop_info aom_gop_info_t

The GOP structure information determined by the encoder. 250 is MAX_STATIC_GF_GROUP_LENGTH defined in av1/firstpass.h. This is a subset of GF_GROUP. More fields can be added if needed.

Attention
  Experimental. Not part of the stable API.

## Enumeration Type Documentation

## aom_ext_part_decision_mode

enum aom_ext_part_decision_mode

Decision mode of the external partition model. AOM_EXT_PART_WHOLE_TREE: the external partition model should provide the whole partition tree for the superblock.

AOM_EXT_PART_RECURSIVE: the external partition model provides the partition decision of the current block only. The decision process starts from the superblock size, down to the smallest block size (4x4) recursively.

## aom_ext_part_status

enum aom_ext_part_status

Enum for return status.

Enumerator
AOM_EXT_PART_OK | Status of success.
AOM_EXT_PART_ERROR | Status of failure.
AOM_EXT_PART_TEST | Status used for tests.

## aome_enc_control_id

enum aome_enc_control_id

AVx encoder control functions.

This set of macros define the control functions available for AVx encoder interface. The range of encode control ID is 7-229(max).

See also
  aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id, ...)

Enumerator
AOME_USE_REFERENCE | Codec control function to set which reference frame encoder can use, int parameter.
AOME_SET_ROI_MAP | Codec control function to pass an ROI map to encoder, aom_roi_map_t* parameter.
AOME_SET_ACTIVEMAP | Codec control function to pass an Active map to encoder, aom_active_map_t* parameter.
AOME_SET_SCALEMODE | Codec control function to set encoder scaling mode for the next frame to be coded, aom_scaling_mode_t* parameter.
AOME_SET_SPATIAL_LAYER_ID | Codec control function to set encoder spatial layer id, int parameter. Spatial layer id must be within valid range of 0 to the allowed number of spatial layers, set via the control AV1E_SET_SVC_PARAMS, or via AOME_SET_NUMBER_SPATIAL_LAYERS.

AOME_SET_CPUUSED

Codec control function to set encoder internal speed settings, int parameter.

Changes in this value influences the complexity of algorithms used in encoding process, values greater than 0 will increase encoder speed at the expense of quality.

Valid range: 0..12. 0 runs the slowest, and 12 runs the fastest; quality improves as speed decreases (since more compression possibilities are explored).

NOTE: 10 - 12 are only allowed in AOM_USAGE_REALTIME. In AOM_USAGE_GOOD_QUALITY and AOM_USAGE_ALL_INTRA, 9 is the highest allowed value. However, AOM_USAGE_GOOD_QUALITY treats 7..9 the same as 6. Also, AOM_USAGE_REALTIME treats 0..4 the same as 5.

AOME_SET_ENABLEAUTOALTREF

Codec control function to enable automatic set and use arf frames, unsigned int parameter.

- 0 = disable
- 1 = enable (default)

AOME_SET_SHARPNESS

Codec control function to set the sharpness parameter, unsigned int parameter.

This parameter controls the level at which rate-distortion optimization of transform coefficients favors sharpness in the block.

Valid range: 0..7. The default is 0.

Values 1-7 will avoid eob and skip block optimization and will change rdmult in favor of block sharpness.

In all-intra mode: it also sets the loop_filter_sharpness syntax element in the bitstream. Larger values increasingly reduce how much the filtering can change the sample values on block edges to favor perceived sharpness.

AOME_SET_STATIC_THRESHOLD | Codec control function to set the threshold for MBs treated static, unsigned int parameter.
AOME_GET_LAST_QUANTIZER | Codec control function to get last quantizer chosen by the encoder, int* parameter. Return value uses internal quantizer scale defined by the codec.
AOME_GET_LAST_QUANTIZER_64 | Codec control function to get last quantizer chosen by the encoder, int* parameter. Return value uses the 0..63 scale as used by the rc_*_quantizer config parameters.
AOME_SET_ARNR_MAXFRAMES | Codec control function to set the max no of frames to create arf, unsigned int parameter.
AOME_SET_ARNR_STRENGTH | Codec control function to set the filter strength for the arf, unsigned int parameter.
AOME_SET_TUNING | Codec control function to set visual tuning, aom_tune_metric (int) parameter. The default is AOM_TUNE_PSNR.

AOME_SET_CQ_LEVEL

Codec control function to set constrained / constant quality level, unsigned int parameter.

Valid range: 0..63

Attention
  For this value to be used aom_codec_enc_cfg_t::rc_end_usage must be set to AOM_CQ or AOM_Q.

AOME_SET_MAX_INTRA_BITRATE_PCT

Codec control function to set max data rate for intra frames, unsigned int parameter.

This value controls additional clamping on the maximum size of a keyframe. It is expressed as a percentage of the average per-frame bitrate, with the special (and default) value 0 meaning unlimited, or no additional clamping beyond the codec's built-in algorithm.

For example, to allocate no more than 4.5 frames worth of bitrate to a keyframe, set this to 450.

AOME_SET_NUMBER_SPATIAL_LAYERS

Codec control function to set number of spatial layers, int parameter.

Valid range:

- When using AV1E_SET_SVC_REF_FRAME_CONFIG: [1, AOM_MAX_SS_LAYERS]
- When not using AV1E_SET_SVC_REF_FRAME_CONFIG: [1, 3]

AV1E_SET_MAX_INTER_BITRATE_PCT

Codec control function to set max data rate for inter frames, unsigned int parameter.

This value controls additional clamping on the maximum size of an inter frame. It is expressed as a percentage of the average per-frame bitrate, with the special (and default) value 0 meaning unlimited, or no additional clamping beyond the codec's built-in algorithm.

For example, to allow no more than 4.5 frames worth of bitrate to an inter frame, set this to 450.

AV1E_SET_GF_CBR_BOOST_PCT

Boost percentage for Golden Frame in CBR mode, unsigned int parameter.

This value controls the amount of boost given to Golden Frame in CBR mode. It is expressed as a percentage of the average per-frame bitrate, with the special (and default) value 0 meaning the feature is off, i.e., no golden frame boost in CBR mode and average bitrate target is used.

For example, to allow 100% more bits, i.e, 2X, in a golden frame than average frame, set this to 100.

AV1E_SET_LOSSLESS

Codec control function to set lossless encoding mode, unsigned int parameter.

AV1 can operate in lossless encoding mode, in which the bitstream produced will be able to decode and reconstruct a perfect copy of input source.

- 0 = normal coding mode, may be lossy (default)
- 1 = lossless coding mode

AV1E_SET_ROW_MT

Codec control function to enable the row based multi-threading of the encoder, unsigned int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_TILE_COLUMNS

Codec control function to set number of tile columns. unsigned int parameter.

In encoding and decoding, AV1 allows an input image frame be partitioned into separate vertical tile columns, which can be encoded or decoded independently. This enables easy implementation of parallel encoding and decoding. The parameter for this control describes the number of tile columns (in log2 units), which has a valid range of [0, 6]:

                  0 = 1 tile column
                  1 = 2 tile columns
                  2 = 4 tile columns
                  .....
                  n = 2**n tile columns

By default, the value is 0, i.e. one single column tile for entire image.

AV1E_SET_TILE_ROWS

Codec control function to set number of tile rows, unsigned int parameter.

In encoding and decoding, AV1 allows an input image frame be partitioned into separate horizontal tile rows, which can be encoded or decoded independently. The parameter for this control describes the number of tile rows (in log2 units), which has a valid range of [0, 6]:

                 0 = 1 tile row
                 1 = 2 tile rows
                 2 = 4 tile rows
                 .....
                 n = 2**n tile rows

By default, the value is 0, i.e. one single row tile for entire image.

AV1E_SET_ENABLE_TPL_MODEL

Codec control function to enable RDO modulated by frame temporal dependency, unsigned int parameter.

- 0 = disable
- 1 = enable (default)

Note
  Excluded from CONFIG_REALTIME_ONLY build.

AV1E_SET_ENABLE_KEYFRAME_FILTERING

Codec control function to enable temporal filtering on key frame, unsigned int parameter.

- 0 = disable
- 1 = enable without overlay (default)
- 2 = enable with overlay

AV1E_SET_FRAME_PARALLEL_DECODING

Codec control function to enable frame parallel decoding feature, unsigned int parameter.

AV1 has a bitstream feature to reduce decoding dependency between frames by turning off backward update of probability context used in encoding and decoding. This allows staged parallel processing of more than one video frames in the decoder. This control function provides a means to turn this feature on or off for bitstreams produced by encoder.

- 0 = disable (default)
- 1 = enable

AV1E_SET_ERROR_RESILIENT_MODE

Codec control function to enable error_resilient_mode, int parameter.

AV1 has a bitstream feature to guarantee parsability of a frame by turning on the error_resilient_decoding mode, even though the reference buffers are unreliable or not received.

- 0 = disable (default)
- 1 = enable

AV1E_SET_S_FRAME_MODE

Codec control function to enable s_frame_mode, int parameter.

AV1 has a bitstream feature to designate certain frames as S-frames, from where we can switch to a different stream, even though the reference buffers may not be exactly identical.

- 0 = disable (default)
- 1 = enable

AV1E_SET_AQ_MODE

Codec control function to set adaptive quantization mode, unsigned int parameter.

AV1 has a segment based feature that allows encoder to adaptively change quantization parameter for each segment within a frame to improve the subjective quality. This control makes encoder operate in one of the several AQ modes supported.

- 0 = disable (default)
- 1 = variance
- 2 = complexity
- 3 = cyclic refresh

AV1E_SET_FRAME_PERIODIC_BOOST

Codec control function to enable/disable periodic Q boost, unsigned int parameter.

One AV1 encoder speed feature is to enable quality boost by lowering frame level Q periodically. This control function provides a means to turn on/off this feature.

- 0 = disable (default)
- 1 = enable

AV1E_SET_NOISE_SENSITIVITY

Codec control function to set noise sensitivity, unsigned int parameter.

- 0 = disable (default)
- 1 = enable (Y only)

AV1E_SET_TUNE_CONTENT

Codec control function to set content type, aom_tune_content parameter.

- AOM_CONTENT_DEFAULT = Regular video content (default)
- AOM_CONTENT_SCREEN = Screen capture content
- AOM_CONTENT_FILM = Film content

AV1E_SET_CDF_UPDATE_MODE

Codec control function to set CDF update mode, unsigned int parameter.

- 0: no update
- 1: update on every frame (default)
- 2: selectively update

AV1E_SET_COLOR_PRIMARIES

Codec control function to set color space info, int parameter.

- 0 = For future use
- 1 = BT.709
- 2 = Unspecified (default)
- 3 = For future use
- 4 = BT.470 System M (historical)
- 5 = BT.470 System B, G (historical)
- 6 = BT.601
- 7 = SMPTE 240
- 8 = Generic film (color filters using illuminant C)
- 9 = BT.2020, BT.2100
- 10 = SMPTE 428 (CIE 1921 XYZ)
- 11 = SMPTE RP 431-2
- 12 = SMPTE EG 432-1
- 13..21 = For future use
- 22 = EBU Tech. 3213-E
- 23 = For future use

AV1E_SET_TRANSFER_CHARACTERISTICS

Codec control function to set transfer function info, int parameter.

- 0 = For future use
- 1 = BT.709
- 2 = Unspecified (default)
- 3 = For future use
- 4 = BT.470 System M (historical)
- 5 = BT.470 System B, G (historical)
- 6 = BT.601
- 7 = SMPTE 240 M
- 8 = Linear
- 9 = Logarithmic (100 : 1 range)
- 10 = Logarithmic (100 * Sqrt(10) : 1 range)
- 11 = IEC 61966-2-4
- 12 = BT.1361
- 13 = sRGB or sYCC
- 14 = BT.2020 10-bit systems
- 15 = BT.2020 12-bit systems
- 16 = SMPTE ST 2084, ITU BT.2100 PQ
- 17 = SMPTE ST 428
- 18 = BT.2100 HLG, ARIB STD-B67
- 19 = For future use

AV1E_SET_MATRIX_COEFFICIENTS

Codec control function to set transfer function info, int parameter.

- 0 = Identity matrix
- 1 = BT.709
- 2 = Unspecified (default)
- 3 = For future use
- 4 = US FCC 73.628
- 5 = BT.470 System B, G (historical)
- 6 = BT.601
- 7 = SMPTE 240 M
- 8 = YCgCo
- 9 = BT.2020 non-constant luminance, BT.2100 YCbCr
- 10 = BT.2020 constant luminance
- 11 = SMPTE ST 2085 YDzDx
- 12 = Chromaticity-derived non-constant luminance
- 13 = Chromaticity-derived constant luminance
- 14 = BT.2100 ICtCp
- 15 = For future use

AV1E_SET_CHROMA_SAMPLE_POSITION | Codec control function to set chroma 4:2:0 sample position info, aom_chroma_sample_position_t parameter. AOM_CSP_UNKNOWN is default
AV1E_SET_MIN_GF_INTERVAL | Codec control function to set minimum interval between GF/ARF frames, unsigned int parameter. By default the value is set as 4.
AV1E_SET_MAX_GF_INTERVAL | Codec control function to set minimum interval between GF/ARF frames, unsigned int parameter. By default the value is set as 16.
AV1E_GET_ACTIVEMAP | Codec control function to get an active map back from the encoder, aom_active_map_t* parameter.

AV1E_SET_COLOR_RANGE

Codec control function to set color range bit, int parameter.

- 0 = Limited range, 16..235 or HBD equivalent (default)
- 1 = Full range, 0..255 or HBD equivalent

AV1E_SET_RENDER_SIZE | Codec control function to set intended rendering image size, int32_t[2] parameter. By default, this is identical to the image size in pixels.

AV1E_SET_TARGET_SEQ_LEVEL_IDX

Control to set target sequence level index for a certain operating point (OP), int parameter Possible values are in the form of "ABxy".

- AB: OP index.
- xy: Target level index for the OP. Possible values are:
  - 0~27: corresponding to level 2.0 ~ 8.3. Note: > Levels 2.2 (2), 2.3 (3), 3.2 (6), 3.3 (7), 4.2 (10) & 4.3 (11) are undefined. > Levels 7.x and 8.x (20~27) are in draft status, available under the config flag CONFIG_CWG_C013.
  - 31: maximum parameters level, no level-based constraints.
  - 32: keep level stats only for level monitoring.

E.g.:

- "0" means target level index 0 (2.0) for the 0th OP;
- "109" means target level index 9 (4.1) for the 1st OP;
- "1019" means target level index 19 (6.3) for the 10th OP.

If the target level is not specified for an OP, the maximum parameters level of 31 is used as default.

AV1E_GET_SEQ_LEVEL_IDX | Codec control function to get sequence level index for each operating point. int* parameter. There can be at most 32 operating points. The results will be written into a provided integer array of sufficient size.
AV1E_SET_SUPERBLOCK_SIZE | Codec control function to set intended superblock size, unsigned int parameter. By default, the superblock size is determined separately for each frame by the encoder.

AOME_SET_ENABLEAUTOBWDREF

Codec control function to enable automatic set and use of bwd-pred frames, unsigned int parameter.

- 0 = disable (default)
- 1 = enable

AV1E_SET_ENABLE_CDEF

Codec control function to encode with CDEF, unsigned int parameter.

CDEF is the constrained directional enhancement filter which is an in-loop filter aiming to remove coding artifacts

- 0 = disable
- 1 = enable for all frames (default)
- 2 = disable for non-reference frames
- 3 = enable adaptively based on frame qindex

AV1E_SET_ENABLE_RESTORATION

Codec control function to encode with Loop Restoration Filter, unsigned int parameter.

- 0 = disable
- 1 = enable (default)

Note
  Excluded from CONFIG_REALTIME_ONLY build.

AV1E_SET_FORCE_VIDEO_MODE

Codec control function to force video mode, unsigned int parameter.

- 0 = do not force video mode (default)
- 1 = force video mode even for a single frame

AV1E_SET_ENABLE_OBMC

Codec control function to predict with OBMC mode, unsigned int parameter.

- 0 = disable
- 1 = enable (default)

Note
  Excluded from CONFIG_REALTIME_ONLY build.

AV1E_SET_DISABLE_TRELLIS_QUANT

Codec control function to encode without trellis quantization, unsigned int parameter.

- 0 = apply trellis quantization (default)
- 1 = do not apply trellis quantization
- 2 = disable trellis quantization in rd search
- 3 = disable trellis quantization in estimate yrd

AV1E_SET_ENABLE_QM

Codec control function to encode with quantisation matrices, unsigned int parameter.

AOM can operate with default quantisation matrices dependent on quantisation level and block type.

- 0 = disable (default)
- 1 = enable

AV1E_SET_QM_MIN | Codec control function to set the min quant matrix flatness, unsigned int parameter. AOM can operate with different ranges of quantisation matrices. As quantisation levels increase, the matrices get flatter. This control sets the minimum level of flatness from which the matrices are determined. By default, the encoder sets this minimum at level 5 (4 in all intra mode).
AV1E_SET_QM_MAX | Codec control function to set the max quant matrix flatness, unsigned int parameter. AOM can operate with different ranges of quantisation matrices. As quantisation levels increase, the matrices get flatter. This control sets the maximum level of flatness possible. By default, the encoder sets this maximum at level 9 (10 in all intra mode)
AV1E_SET_QM_Y | Codec control function to set the min quant matrix flatness, unsigned int parameter. AOM can operate with different ranges of quantisation matrices. As quantisation levels increase, the matrices get flatter. This control sets the flatness for luma (Y). By default, the encoder sets this minimum at half the available range.
AV1E_SET_QM_U | Codec control function to set the min quant matrix flatness, unsigned int parameter. AOM can operate with different ranges of quantisation matrices. As quantisation levels increase, the matrices get flatter. This control sets the flatness for chroma (U). By default, the encoder sets this minimum at half the available range.
AV1E_SET_QM_V | Codec control function to set the min quant matrix flatness, unsigned int parameter. AOM can operate with different ranges of quantisation matrices. As quantisation levels increase, the matrices get flatter. This control sets the flatness for chrome (V). By default, the encoder sets this minimum at half the available range.
AV1E_SET_NUM_TG | Codec control function to set a maximum number of tile groups, unsigned int parameter. This will set the maximum number of tile groups. This will be overridden if an MTU size is set. The default value is 1.
AV1E_SET_MTU | Codec control function to set an MTU size for a tile group, unsigned int parameter. This will set the maximum number of bytes in a tile group. This can be exceeded only if a single tile is larger than this amount. By default, the value is 0, in which case a fixed number of tile groups is used.

AV1E_SET_ENABLE_RECT_PARTITIONS

Codec control function to enable/disable rectangular partitions, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_AB_PARTITIONS

Codec control function to enable/disable AB partitions, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_1TO4_PARTITIONS

Codec control function to enable/disable 1:4 and 4:1 partitions, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_MIN_PARTITION_SIZE | Codec control function to set min partition size, int parameter. min_partition_size is applied to both width and height of the partition. i.e, both width and height of a partition can not be smaller than the min_partition_size, except the partition at the picture boundary. Valid values: [4, 8, 16, 32, 64, 128]. The default value is 4 for 4x4.
AV1E_SET_MAX_PARTITION_SIZE | Codec control function to set max partition size, int parameter. max_partition_size is applied to both width and height of the partition. i.e, both width and height of a partition can not be larger than the max_partition_size. Valid values:[4, 8, 16, 32, 64, 128] The default value is 128 for 128x128.

AV1E_SET_ENABLE_INTRA_EDGE_FILTER

Codec control function to turn on / off intra edge filter at sequence level, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_ORDER_HINT

Codec control function to turn on / off frame order hint (int parameter). Affects: joint compound mode, motion field motion vector, ref frame sign bias.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_TX64

Codec control function to turn on / off 64-length transforms, int parameter.

This will enable or disable usage of length 64 transforms in any direction.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_FLIP_IDTX

Codec control function to turn on / off flip and identity transforms, int parameter.

This will enable or disable usage of flip and identity transform types in any direction. If enabled, this includes:

- FLIPADST_DCT
- DCT_FLIPADST
- FLIPADST_FLIPADST
- ADST_FLIPADST
- FLIPADST_ADST
- IDTX
- V_DCT
- H_DCT
- V_ADST
- H_ADST
- V_FLIPADST
- H_FLIPADST

Valid values:

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_RECT_TX

Codec control function to turn on / off rectangular transforms, int parameter.

This will enable or disable usage of rectangular transforms. NOTE: Rectangular transforms only enabled when corresponding rectangular partitions are.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_DIST_WTD_COMP

Codec control function to turn on / off dist-wtd compound mode at sequence level, int parameter.

This will enable or disable distance-weighted compound mode.

Attention
  If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced to 0.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_REF_FRAME_MVS

Codec control function to turn on / off ref frame mvs (mfmv) usage at sequence level, int parameter.

Attention
  If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced to 0.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ALLOW_REF_FRAME_MVS

Codec control function to set temporal mv prediction enabling/disabling at frame level, int parameter.

Attention
  If AV1E_SET_ENABLE_REF_FRAME_MVS is 0, then this flag is forced to 0.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_DUAL_FILTER

Codec control function to turn on / off dual interpolation filter for a sequence, int parameter.

- 0 = disable
- 1 = enable

AV1E_SET_ENABLE_CHROMA_DELTAQ

Codec control function to turn on / off delta quantization in chroma planes for a sequence, int parameter.

- 0 = disable (default)
- 1 = enable

AV1E_SET_ENABLE_MASKED_COMP

Codec control function to turn on / off masked compound usage (wedge and diff-wtd compound modes) for a sequence, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_ONESIDED_COMP

Codec control function to turn on / off one sided compound usage for a sequence, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_INTERINTRA_COMP

Codec control function to turn on / off interintra compound for a sequence, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_SMOOTH_INTERINTRA

Codec control function to turn on / off smooth inter-intra mode for a sequence, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_DIFF_WTD_COMP

Codec control function to turn on / off difference weighted compound, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_INTERINTER_WEDGE

Codec control function to turn on / off interinter wedge compound, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_INTERINTRA_WEDGE

Codec control function to turn on / off interintra wedge compound, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_GLOBAL_MOTION

Codec control function to turn on / off global motion usage for a sequence, int parameter.

- 0 = disable
- 1 = enable (default)

Note
  Excluded from CONFIG_REALTIME_ONLY build.

AV1E_SET_ENABLE_WARPED_MOTION

Codec control function to turn on / off warped motion usage at sequence level, int parameter.

- 0 = disable
- 1 = enable (default)

Note
  Excluded from CONFIG_REALTIME_ONLY build.

AV1E_SET_ALLOW_WARPED_MOTION

Codec control function to turn on / off warped motion usage at frame level, int parameter.

Attention
  If AV1E_SET_ENABLE_WARPED_MOTION is 0, then this flag is forced to 0.

- 0 = disable
- 1 = enable (default)

Note
  Excluded from CONFIG_REALTIME_ONLY build.

AV1E_SET_ENABLE_FILTER_INTRA

Codec control function to turn on / off filter intra usage at sequence level, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_SMOOTH_INTRA

Codec control function to turn on / off smooth intra modes usage, int parameter.

This will enable or disable usage of smooth, smooth_h and smooth_v intra modes.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_PAETH_INTRA

Codec control function to turn on / off Paeth intra mode usage, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_CFL_INTRA

Codec control function to turn on / off CFL uv intra mode usage, int parameter.

This will enable or disable usage of chroma-from-luma intra mode.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_SUPERRES

Codec control function to turn on / off frame superresolution, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_OVERLAY

Codec control function to turn on / off overlay frames for filtered ALTREF frames, int parameter.

This will enable or disable coding of overlay frames for filtered ALTREF frames. When set to 0, overlay frames are not used but show existing frame is used to display the filtered ALTREF frame as is. As a result the decoded frame rate remains the same as the display frame rate. The default is 1.

AV1E_SET_ENABLE_PALETTE | Codec control function to turn on/off palette mode, int parameter.
AV1E_SET_ENABLE_INTRABC | Codec control function to turn on/off intra block copy mode, int parameter.
AV1E_SET_ENABLE_ANGLE_DELTA | Codec control function to turn on/off intra angle delta, int parameter.

AV1E_SET_DELTAQ_MODE

Codec control function to set the delta q mode, unsigned int parameter.

AV1 supports a delta q mode feature, that allows modulating q per superblock.

- 0 = deltaq signaling off
- 1 = use modulation to maximize objective quality (default)
- 2 = use modulation for local test
- 3 = use modulation for key frame perceptual quality optimization
- 4 = use modulation for user rating based perceptual quality optimization
- 5 = use modulation for HDR video
- 6 = use modulation for all intra using Variance Boost

Attention
  Delta q modes 1-5 are unsupported and are silently ignored in non-RD mode. Non-RD mode is enabled by setting cpu-used >= 8 (all intra usage) and cpu-used >= 7 (realtime usage).

AV1E_SET_DELTALF_MODE

Codec control function to turn on/off loopfilter modulation when delta q modulation is enabled, unsigned int parameter.

Attention
  AV1 only supports loopfilter modulation when delta q modulation is enabled as well.

AV1E_SET_SINGLE_TILE_DECODING

Codec control function to set the single tile decoding mode, unsigned int parameter.

Attention
  Only applicable if large scale tiling is on.

- 0 = single tile decoding is off
- 1 = single tile decoding is on (default)

AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST

Codec control function to enable the extreme motion vector unit test, unsigned int parameter.

- 0 = off
- 1 = MAX_EXTREME_MV
- 2 = MIN_EXTREME_MV

Note
  This is only used in motion vector unit test.

AV1E_SET_TIMING_INFO_TYPE | Codec control function to signal picture timing info in the bitstream, aom_timing_info_type_t parameter. Default is AOM_TIMING_UNSPECIFIED.
AV1E_SET_FILM_GRAIN_TEST_VECTOR | Codec control function to add film grain parameters (one of several preset types) info in the bitstream, int parameter. Valid range: 0..16, 0 is unknown, 1..16 are test vectors
AV1E_SET_FILM_GRAIN_TABLE | Codec control function to set the path to the film grain parameters, const char* parameter.
AV1E_SET_DENOISE_NOISE_LEVEL | Sets the noise level, int parameter.
AV1E_SET_DENOISE_BLOCK_SIZE | Sets the denoisers block size, unsigned int parameter.
AV1E_SET_CHROMA_SUBSAMPLING_X | Sets the chroma subsampling x value, unsigned int parameter.
AV1E_SET_CHROMA_SUBSAMPLING_Y | Sets the chroma subsampling y value, unsigned int parameter.
AV1E_SET_REDUCED_TX_TYPE_SET | Control to use a reduced tx type set, int parameter.
AV1E_SET_INTRA_DCT_ONLY | Control to use dct only for intra modes, int parameter.
AV1E_SET_INTER_DCT_ONLY | Control to use dct only for inter modes, int parameter.
AV1E_SET_INTRA_DEFAULT_TX_ONLY | Control to use default tx type only for intra modes, int parameter.
AV1E_SET_QUANT_B_ADAPT | Control to use adaptive quantize_b, int parameter.
AV1E_SET_GF_MAX_PYRAMID_HEIGHT | Control to select maximum height for the GF group pyramid structure, unsigned int parameter. Valid range: 0..5
AV1E_SET_MAX_REFERENCE_FRAMES | Control to select maximum reference frames allowed per frame, int parameter. Valid range: 3..7
AV1E_SET_REDUCED_REFERENCE_SET | Control to use reduced set of single and compound references, int parameter.

AV1E_SET_COEFF_COST_UPD_FREQ

Control to set frequency of the cost updates for coefficients, unsigned int parameter.

- 0 = update at SB level (default)
- 1 = update at SB row level in tile
- 2 = update at tile level
- 3 = turn off

AV1E_SET_MODE_COST_UPD_FREQ

Control to set frequency of the cost updates for mode, unsigned int parameter.

- 0 = update at SB level (default)
- 1 = update at SB row level in tile
- 2 = update at tile level
- 3 = turn off

AV1E_SET_MV_COST_UPD_FREQ

Control to set frequency of the cost updates for motion vectors, unsigned int parameter.

- 0 = update at SB level (default)
- 1 = update at SB row level in tile
- 2 = update at tile level
- 3 = turn off

AV1E_SET_TIER_MASK

Control to set bit mask that specifies which tier each of the 32 possible operating points conforms to, unsigned int parameter.

- 0 = main tier (default)
- 1 = high tier

AV1E_SET_MIN_CR | Control to set minimum compression ratio, unsigned int parameter Take integer values. If non-zero, encoder will try to keep the compression ratio of each frame to be higher than the given value divided by 100. E.g. 850 means minimum compression ratio of 8.5.
AV1E_SET_SVC_LAYER_ID | Codec control function to set the layer id, aom_svc_layer_id_t* parameter. Layer id for spatial or temporal layer must be within valid range of 0 to the allowed number of spatial or temporal layers, set via the control AV1E_SET_SVC_PARAMS, or via AOME_SET_NUMBER_SPATIAL_LAYERS.
AV1E_SET_SVC_PARAMS | Codec control function to set SVC parameters, aom_svc_params_t* parameter.
AV1E_SET_SVC_REF_FRAME_CONFIG | Codec control function to set the reference frame config, aom_svc_ref_frame_config_t* parameter.
AV1E_SET_VMAF_MODEL_PATH | Codec control function to set the path to the VMAF model used when tuning the encoder for VMAF, const char* parameter.

AV1E_ENABLE_EXT_TILE_DEBUG

Codec control function to enable EXT_TILE_DEBUG in AV1 encoder, unsigned int parameter.

- 0 = disable (default)
- 1 = enable

Note
  This is only used in lightfield example test.

AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST

Codec control function to enable the superblock multipass unit test in AV1 to ensure that the encoder does not leak state between different passes. unsigned int parameter.

- 0 = disable (default)
- 1 = enable

Note
  This is only used in sb_multipass unit test.

AV1E_SET_GF_MIN_PYRAMID_HEIGHT | Control to select minimum height for the GF group pyramid structure, unsigned int parameter. Valid values: 0..5
AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP | Control to set average complexity of the corpus in the case of single pass vbr based on LAP, unsigned int parameter.
AV1E_GET_BASELINE_GF_INTERVAL | Control to get baseline gf interval.

AV1E_SET_ENABLE_DIAGONAL_INTRA

Codec control function to turn on / off D45 to D203 intra mode usage, int parameter.

This will enable or disable usage of D45 to D203 intra modes, which are a subset of directional modes. This control has no effect if directional modes are disabled (AV1E_SET_ENABLE_DIRECTIONAL_INTRA set to 0).

- 0 = disable
- 1 = enable (default)

AV1E_SET_DV_COST_UPD_FREQ

Control to set frequency of the cost updates for intrabc motion vectors, unsigned int parameter.

- 0 = update at SB level (default)
- 1 = update at SB row level in tile
- 2 = update at tile level
- 3 = turn off

AV1E_SET_PARTITION_INFO_PATH | Codec control to set the path for partition stats read and write. const char * parameter.
AV1E_SET_EXTERNAL_PARTITION | Codec control to use an external partition model A set of callback functions is passed through this control to let the encoder encode with given partitions.

AV1E_SET_ENABLE_DIRECTIONAL_INTRA

Codec control function to turn on / off directional intra mode usage, int parameter.

- 0 = disable
- 1 = enable (default)

AV1E_SET_ENABLE_TX_SIZE_SEARCH

Control to turn on / off transform size search. Note: it can not work with non RD pick mode in real-time encoding, where the max transform size is only 16x16. It will be ignored if non RD pick mode is set.

- 0 = disable, transforms always have the largest possible size
- 1 = enable, search for the best transform size for each block (default)

AV1E_SET_SVC_REF_FRAME_COMP_PRED | Codec control function to set reference frame compound prediction. aom_svc_ref_frame_comp_pred_t* parameter.
AV1E_SET_DELTAQ_STRENGTH | Set –deltaq-mode strength, where the value is a percentage, unsigned int parameter. Valid range: [0, 1000]

AV1E_SET_LOOPFILTER_CONTROL

Codec control to control loop filter.

- 0 = Loop filter is disabled for all frames
- 1 = Loop filter is enabled for all frames
- 2 = Loop filter is disabled for non-reference frames
- 3 = Loop filter is disabled for the frames with low motion

AOME_GET_LOOPFILTER_LEVEL | Codec control function to get the loopfilter chosen by the encoder, int* parameter.

AV1E_SET_AUTO_INTRA_TOOLS_OFF

Codec control to automatically turn off several intra coding tools, unsigned int parameter.

- 0 = do not use the feature
- 1 = enable the automatic decision to turn off several intra tools

AV1E_SET_RTC_EXTERNAL_RC

Codec control function to set flag for rate control used by external encoders.

- 1 = Enable rate control for external encoders. This will disable content dependency in rate control and cyclic refresh.
- 0 = Default. Disable rate control for external encoders.

AV1E_SET_FP_MT

Codec control function to enable frame parallel multi-threading of the encoder, unsigned int parameter.

- 0 = disable (default)
- 1 = enable

AV1E_SET_FP_MT_UNIT_TEST

Codec control to enable actual frame parallel encode or simulation of frame parallel encode in FPMT unit test, unsigned int parameter.

- 0 = simulate frame parallel encode
- 1 = actual frame parallel encode (default)

Note
  This is only used in FPMT unit test.

AV1E_GET_TARGET_SEQ_LEVEL_IDX

Codec control function to get the target sequence level index for each operating point. int* parameter. There can be at most 32 operating points. The results will be written into a provided integer array of sufficient size. If a target level is not set, the result will be 31. Please refer to https://aomediacodec.github.io/av1-spec/#levels for more details on level definitions and indices.

AV1E_GET_NUM_OPERATING_POINTS | Codec control function to get the number of operating points. int* parameter.

AV1E_SET_SKIP_POSTPROC_FILTERING

Codec control function to skip the application of post-processing filters on reconstructed frame, unsigned int parameter.

- 0 = disable (default)
- 1 = enable

Attention
  For this value to be used aom_codec_enc_cfg_t::g_usage must be set to AOM_USAGE_ALL_INTRA.

AV1E_ENABLE_SB_QP_SWEEP

Codec control function to enable the superblock level qp sweep in AV1 to ensure that end-to-end test runs well, unsigned int parameter.

- 0 = disable (default)
- 1 = enable

Note
  This is only used in sb_qp_sweep unit test.

AV1E_SET_QUANTIZER_ONE_PASS

Codec control to set quantizer for the next frame, int parameter.

- Valid range [0, 63]

This will turn off cyclic refresh. Only applicable to 1-pass.

AV1E_ENABLE_RATE_GUIDE_DELTAQ

Codec control to enable the rate distribution guided delta quantization in all intra mode, unsigned int parameter.

- 0 = disable (default)
- 1 = enable

Attention
  This feature requires –deltaq-mode=3, also an input file which contains rate distribution for each 16x16 block, passed in by –rate-distribution-info=rate_distribution.txt.

AV1E_SET_RATE_DISTRIBUTION_INFO

Codec control to set the input file for rate distribution used in all intra mode, const char * parameter The input should be the name of a text file, which contains (rows x cols) float values separated by space. Each float value represent the number of bits for each 16x16 block. rows = (frame_height + 15) / 16 cols = (frame_width + 15) / 16.

Attention
  This feature requires –enable-rate-guide-deltaq=1.

AV1E_GET_LUMA_CDEF_STRENGTH | Codec control to get the CDEF strength for Y / luma plane, int * parameter. Returns an integer array of CDEF_MAX_STRENGTHS elements.
AV1E_SET_BITRATE_ONE_PASS_CBR | Codec control to set the target bitrate in kilobits per second, unsigned int parameter. For 1 pass CBR mode, single layer encoding. This controls replaces the call aom_codec_enc_config_set(&codec, &cfg) when only target bitrate is changed, and so is much cheaper as it bypasses a lot of unneeded code checks.

AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR

Codec control to set the maximum number of consecutive frame drops, in units of frames, allowed for the frame dropper in 1 pass CBR mode, int parameter. Value of zero has no effect.

Deprecated
  Use the new control AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.

AV1E_SET_SVC_FRAME_DROP_MODE | Codec control to set the frame drop mode for SVC, unsigned int parameter. The valid values are constants of the AOM_SVC_FRAME_DROP_MODE enum: AOM_LAYER_DROP or AOM_FULL_SUPERFRAME_DROP.
AV1E_SET_AUTO_TILES | Codec control to set auto tiling, unsigned int parameter. Value of 1 means encoder will set number of tile_columns and tile_rows, based on the number of threads and resolution. This will override any settings set via SET_TILE_COLUMNS/ROWS. If the value is 0 no change is done, the previous setting (if any) for tile_columns/rows is preserved.
AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC | Codec control to get the high motion content flag, used for screen content realtime (RTC) encoding, int * parameter. Returns an integer. 1 means high motion content flag is set to 1, 0 means set to 0.
AV1E_SET_POSTENCODE_DROP_RTC | Codec control to enable post encode frame drop for RTC encoding, int parameter. Value of 1 means encoder will enable post encode drop. Default is 0 (not enabled). Post encode drop is only allowed when frame dropping is enabled (aom_codec_enc_cfg::rc_dropframe_thresh > 0).
AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR | Codec control to set the maximum number of consecutive frame drops, in units of time (milliseconds), allowed for the frame dropper in 1 pass CBR mode, int parameter. Value of zero has no effect.
AV1E_SET_ENABLE_LOW_COMPLEXITY_DECODE | Codec control to enable the low complexity decode mode, unsigned int parameter. Value of zero means this mode is disabled.

AV1E_SET_SCREEN_CONTENT_DETECTION_MODE

Codec control to set the screen content detection mode, aom_screen_detection_mode parameter.

- 1: AOM_SCREEN_DETECTION_STANDARD = standard (default in good quality and realtime modes)
- 2: AOM_SCREEN_DETECTION_ANTIALIASING_AWARE = anti-aliased text and graphics aware (default in all intra mode)

AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS

Codec control to enable adaptive sharpness, which modulates sharpness based on frame QP, unsigned int parameter.

Adaptive sharpness helps mitigate blocking artifacts in the low to medium quality range.

- 0 = disable (default)
- 1 = enable

Note
  When adaptive sharpness is enabled, AOME_SET_SHARPNESS acts as a "maximum sharpness" value. Adaptive sharpness can still modulate effective sharpness between 0 and the maximum sharpness. As a consequence, adaptive sharpness only has effects when sharpness is greater than 0.

AV1E_SET_EXTERNAL_RATE_CONTROL

Codec control function to enable external rate control library.

args: a pointer to aom_rc_funcs_t that contains implementation of callbacks

Attention
  Experimental. Not part of the stable API.

AV1E_GET_GOP_INFO

Codec control function to get GOP structure from the encoder.

args: a pointer to aom_gop_info_t

Attention
  Experimental. Not part of the stable API.

AOME_SET_VALIDATE_HBD_INPUT | Codec control function to validate HBD input. AV1 allows the encoder to validate the high bitdepth (HBD) input and ensure that every pixel is within the valid range. To disable/enable, set this parameter to 0/1. The default value is set to be 1.

## aom_scaling_mode_1d

enum aom_scaling_mode_1d

aom 1-D scaling mode

This set of constants define 1-D aom scaling modes

## aom_screen_detection_mode

enum aom_screen_detection_mode

Screen content detection mode.

Enumerator
AOM_SCREEN_DETECTION_STANDARD | Standard
AOM_SCREEN_DETECTION_ANTIALIASING_AWARE | Anti-aliased text and graphics aware

## aom_tune_metric

enum aom_tune_metric

Model tuning parameters.

Changes the encoder to tune for certain types of input material.

Note
  AOM_TUNE_IQ and AOM_TUNE_SSIMULACRA2 are meant for image encoding. Using these tuning modes for videos isn't recommended. Setting the tuning option to either AOM_TUNE_IQ or AOM_TUNE_SSIMULACRA2 causes the following options to be set (expressed as command-line options):
  - –enable-qm=1
  - –qm-min=2
  - –qm-max=10
  - –sharpness=7
  - –dist-metric=qm-psnr
  - –enable-cdef=3
  - –enable-chroma-deltaq=1
  - –deltaq-mode=6
  - –screen-detection-mode=2 AOM_TUNE_IQ additionally sets the following options:
  - –enable-adaptive-sharpness=1

## aom_dist_metric

enum aom_dist_metric

Distortion metric to use for RD optimization.

Changes the encoder to use a different distortion metric for RD search. Note that this value operates on a "lower level" compared to aom_tune_metric - it affects the distortion metric inside a block, while aom_tune_metric only affects RD across blocks.

## AOM_SVC_FRAME_DROP_MODE

enum AOM_SVC_FRAME_DROP_MODE

Frame drop modes for spatial/quality layer SVC.

Enumerator
AOM_LAYER_DROP | Any spatial layer can drop.
AOM_FULL_SUPERFRAME_DROP | Only full superframe can drop.

## Variable Documentation

## aom_codec_av1_cx_algo

aom_codec_iface_t aom_codec_av1_cx_algo

extern

A single instance of the AV1 encoder.

Deprecated
  This access mechanism is provided for backwards compatibility; prefer aom_codec_av1_cx().