aomcx.h File Reference
Supported Codecs » AOM » AOMedia AOM/AV1 Encoder

Provides definitions for using AOM or AV1 encoder algorithm within the aom Codec Interface. More...

`#include "aom/aom.h"`
`#include "aom/aom_encoder.h"`
`#include "aom/aom_ext_ratectrl.h"`
`#include "aom/aom_external_partition.h"`

Go to the source code of this file.

## Data Structures

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_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_HAVE_TUNE_IQ 1
| Allows detection of the presence of AOM_TUNE_IQ at compile time.
#define | AOM_HAVE_TUNE_SSIMULACRA2 1
| Allows detection of the presence of AOM_TUNE_SSIMULACRA2 at compile time.
#define | AOM_MAX_LAYERS 32
#define | AOM_MAX_SS_LAYERS 4
#define | AOM_MAX_TS_LAYERS 8

## Typedefs

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

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

Provides definitions for using AOM or AV1 encoder algorithm within the aom Codec Interface.

Several interfaces are excluded with CONFIG_REALTIME_ONLY build: Global motion Warped motion OBMC TPL model Loop restoration

The following features are also disabled with CONFIG_REALTIME_ONLY: AV1E_SET_QUANT_B_ADAPT CNN 4X rectangular blocks 4X rectangular transform in intra prediction