AOMedia AV1 Codec
aomcx.h File Reference

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_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  aom_svc_params
 
struct  aom_svc_ref_frame_config
 
struct  aom_svc_ref_frame_comp_pred
 

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_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
 
typedef struct aom_svc_params aom_svc_params_t
 
typedef struct aom_svc_ref_frame_config aom_svc_ref_frame_config_t
 
typedef struct aom_svc_ref_frame_comp_pred aom_svc_ref_frame_comp_pred_t
 

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
}
 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 }
 
enum  aom_timing_info_type_t { AOM_TIMING_UNSPECIFIED , AOM_TIMING_EQUAL , AOM_TIMING_DEC_MODEL }
 
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
}
 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 }
 

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_taom_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