AOMedia Codec SDK
Files | Data Structures | Macros | Typedefs | Enumerations
AOMedia AOM/AV1 Encoder

Files

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

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
 

Macros

#define AOM_EFLAG_NO_REF_LAST   (1 << 16)
 Don't reference the last frame. More...
 
#define AOM_EFLAG_NO_REF_LAST2   (1 << 17)
 Don't reference the last2 frame. More...
 
#define AOM_EFLAG_NO_REF_LAST3   (1 << 18)
 Don't reference the last3 frame. More...
 
#define AOM_EFLAG_NO_REF_GF   (1 << 19)
 Don't reference the golden frame. More...
 
#define AOM_EFLAG_NO_REF_ARF   (1 << 20)
 Don't reference the alternate reference frame. More...
 
#define AOM_EFLAG_NO_REF_BWD   (1 << 21)
 Don't reference the bwd reference frame. More...
 
#define AOM_EFLAG_NO_REF_ARF2   (1 << 22)
 Don't reference the alt2 reference frame. More...
 
#define AOM_EFLAG_NO_UPD_LAST   (1 << 23)
 Don't update the last frame. More...
 
#define AOM_EFLAG_NO_UPD_GF   (1 << 24)
 Don't update the golden frame. More...
 
#define AOM_EFLAG_NO_UPD_ARF   (1 << 25)
 Don't update the alternate reference frame. More...
 
#define AOM_EFLAG_NO_UPD_ENTROPY   (1 << 26)
 Disable entropy update. More...
 
#define AOM_EFLAG_NO_REF_FRAME_MVS   (1 << 27)
 Disable ref frame mvs. More...
 
#define AOM_EFLAG_ERROR_RESILIENT   (1 << 28)
 Enable error resilient frame. More...
 
#define AOM_EFLAG_SET_S_FRAME   (1 << 29)
 Enable s frame mode. More...
 
#define AOM_EFLAG_SET_PRIMARY_REF_NONE   (1 << 30)
 Force primary_ref_frame to PRIMARY_REF_NONE. More...
 
#define AOM_MAX_SEGMENTS   8
 Max number of segments. More...
 
#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 More...
 
typedef struct aom_roi_map aom_roi_map_t
 aom region of interest map More...
 
typedef struct aom_active_map aom_active_map_t
 aom active region map More...
 
typedef struct aom_scaling_mode aom_scaling_mode_t
 aom image scaling mode More...
 
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
 

Enumerations

enum  aome_enc_control_id {
  AOME_USE_REFERENCE = 7, AOME_SET_ROI_MAP = 8, AOME_SET_ACTIVEMAP, AOME_SET_SCALEMODE = 11,
  AOME_SET_SPATIAL_LAYER_ID = 12, AOME_SET_CPUUSED = 13, AOME_SET_ENABLEAUTOALTREF, AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2,
  AOME_SET_STATIC_THRESHOLD, AOME_GET_LAST_QUANTIZER = AOME_SET_STATIC_THRESHOLD + 2, AOME_GET_LAST_QUANTIZER_64, AOME_SET_ARNR_MAXFRAMES,
  AOME_SET_ARNR_STRENGTH, AOME_SET_TUNING = AOME_SET_ARNR_STRENGTH + 2, AOME_SET_CQ_LEVEL, AOME_SET_MAX_INTRA_BITRATE_PCT,
  AOME_SET_NUMBER_SPATIAL_LAYERS, AV1E_SET_MAX_INTER_BITRATE_PCT = AOME_SET_MAX_INTRA_BITRATE_PCT + 2, AV1E_SET_GF_CBR_BOOST_PCT, AV1E_SET_LOSSLESS = AV1E_SET_GF_CBR_BOOST_PCT + 2,
  AV1E_SET_ROW_MT, AV1E_SET_TILE_COLUMNS, AV1E_SET_TILE_ROWS, AV1E_SET_ENABLE_TPL_MODEL,
  AV1E_SET_FRAME_PARALLEL_DECODING, AV1E_SET_ERROR_RESILIENT_MODE, AV1E_SET_S_FRAME_MODE, AV1E_SET_AQ_MODE,
  AV1E_SET_FRAME_PERIODIC_BOOST, AV1E_SET_NOISE_SENSITIVITY, AV1E_SET_TUNE_CONTENT, AV1E_SET_CDF_UPDATE_MODE,
  AV1E_SET_COLOR_PRIMARIES, AV1E_SET_TRANSFER_CHARACTERISTICS, AV1E_SET_MATRIX_COEFFICIENTS, AV1E_SET_CHROMA_SAMPLE_POSITION,
  AV1E_SET_MIN_GF_INTERVAL, AV1E_SET_MAX_GF_INTERVAL, AV1E_GET_ACTIVEMAP, AV1E_SET_COLOR_RANGE,
  AV1E_SET_RENDER_SIZE, AV1E_SET_TARGET_SEQ_LEVEL_IDX, AV1E_GET_SEQ_LEVEL_IDX, AV1E_SET_SUPERBLOCK_SIZE,
  AOME_SET_ENABLEAUTOBWDREF, AV1E_SET_ENABLE_CDEF, AV1E_SET_ENABLE_RESTORATION, AV1E_SET_FORCE_VIDEO_MODE,
  AV1E_SET_ENABLE_OBMC, AV1E_SET_DISABLE_TRELLIS_QUANT, AV1E_SET_ENABLE_QM, AV1E_SET_QM_MIN,
  AV1E_SET_QM_MAX, AV1E_SET_QM_Y, AV1E_SET_QM_U, AV1E_SET_QM_V,
  AV1E_SET_ENABLE_DIST_8X8, AV1E_SET_NUM_TG, AV1E_SET_MTU, AV1E_SET_ANS_WINDOW_SIZE_LOG2,
  AV1E_SET_ENABLE_RECT_PARTITIONS, AV1E_SET_ENABLE_AB_PARTITIONS, AV1E_SET_ENABLE_1TO4_PARTITIONS, AV1E_SET_MIN_PARTITION_SIZE,
  AV1E_SET_MAX_PARTITION_SIZE, AV1E_SET_ENABLE_INTRA_EDGE_FILTER, AV1E_SET_ENABLE_ORDER_HINT, AV1E_SET_ENABLE_TX64,
  AV1E_SET_ENABLE_FLIP_IDTX, AV1E_SET_TX_SIZE_SEARCH_METHOD, AV1E_SET_ENABLE_DIST_WTD_COMP, AV1E_SET_ENABLE_REF_FRAME_MVS,
  AV1E_SET_ALLOW_REF_FRAME_MVS, AV1E_SET_ENABLE_DUAL_FILTER, AV1E_SET_ENABLE_CHROMA_DELTAQ, AV1E_SET_ENABLE_MASKED_COMP,
  AV1E_SET_ENABLE_ONESIDED_COMP, AV1E_SET_ENABLE_INTERINTRA_COMP, AV1E_SET_ENABLE_SMOOTH_INTERINTRA, AV1E_SET_ENABLE_DIFF_WTD_COMP,
  AV1E_SET_ENABLE_INTERINTER_WEDGE, AV1E_SET_ENABLE_INTERINTRA_WEDGE, AV1E_SET_ENABLE_GLOBAL_MOTION, AV1E_SET_ENABLE_WARPED_MOTION,
  AV1E_SET_ALLOW_WARPED_MOTION, AV1E_SET_ENABLE_FILTER_INTRA, AV1E_SET_ENABLE_SMOOTH_INTRA, AV1E_SET_ENABLE_PAETH_INTRA,
  AV1E_SET_ENABLE_CFL_INTRA, AV1E_SET_ENABLE_SUPERRES, AV1E_SET_ENABLE_PALETTE, AV1E_SET_ENABLE_INTRABC,
  AV1E_SET_ENABLE_ANGLE_DELTA, AV1E_SET_DELTAQ_MODE, AV1E_SET_DELTALF_MODE, AV1E_SET_SINGLE_TILE_DECODING,
  AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST, AV1E_SET_TIMING_INFO_TYPE, AV1E_SET_FILM_GRAIN_TEST_VECTOR, AV1E_SET_FILM_GRAIN_TABLE,
  AV1E_SET_DENOISE_NOISE_LEVEL, AV1E_SET_DENOISE_BLOCK_SIZE, AV1E_SET_CHROMA_SUBSAMPLING_X, AV1E_SET_CHROMA_SUBSAMPLING_Y,
  AV1E_SET_REDUCED_TX_TYPE_SET, AV1E_SET_INTRA_DCT_ONLY, AV1E_SET_INTER_DCT_ONLY, AV1E_SET_INTRA_DEFAULT_TX_ONLY,
  AV1E_SET_QUANT_B_ADAPT, AV1E_SET_GF_MAX_PYRAMID_HEIGHT, AV1E_SET_MAX_REFERENCE_FRAMES, AV1E_SET_REDUCED_REFERENCE_SET,
  AV1E_SET_COEFF_COST_UPD_FREQ, AV1E_SET_MODE_COST_UPD_FREQ, AV1E_SET_TIER_MASK, AV1E_SET_MIN_CR,
  AV1E_SET_SVC_LAYER_ID = 150, AV1E_SET_SVC_PARAMS = 151, AV1E_SET_SVC_REF_FRAME_CONFIG = 152
}
 AVx encoder control functions. More...
 
enum  aom_scaling_mode_1d { AOME_NORMAL = 0, AOME_FOURFIVE = 1, AOME_THREEFIVE = 2, AOME_ONETWO = 3 }
 aom 1-D scaling mode More...
 
enum  aom_tune_content { AOM_CONTENT_DEFAULT, AOM_CONTENT_SCREEN, 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, AOM_TUNE_SSIM, AOM_TUNE_CDEF_DIST, AOM_TUNE_DAALA_DIST }
 Model tuning parameters. More...
 

Algorithm interface for AV1

This interface provides the capability to encode raw AV1 streams.

aom_codec_iface_t aom_codec_av1_cx_algo
 
aom_codec_iface_taom_codec_av1_cx (void)
 

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

TODO(yaowu): create a unit test for ROI map related APIs

◆ aom_active_map_t

aom active region map

These defines the data structures for active region map

◆ aom_scaling_mode_t

aom image scaling mode

This defines the data structure for image scaling mode

◆ aom_svc_layer_id_t

brief Struct for spatial and temporal layer ID

◆ aom_svc_params_t

brief Parameter type for SVC

◆ aom_svc_ref_frame_config_t

brief Parameters for setting ref frame config

Enumeration Type Documentation

◆ aome_enc_control_id

AVx encoder control functions.

This set of macros define the control functions available for AVx encoder interface.

See also
aom_codec_control
Enumerator
AOME_USE_REFERENCE 

Codec control function to set which reference frame encoder can use.

AOME_SET_ROI_MAP 

Codec control function to pass an ROI map to encoder.

AOME_SET_ACTIVEMAP 

Codec control function to pass an Active map to encoder.

AOME_SET_SCALEMODE 

Codec control function to set encoder scaling mode.

AOME_SET_SPATIAL_LAYER_ID 

Codec control function to set encoder spatial layer id.

AOME_SET_CPUUSED 

Codec control function to set encoder internal speed settings.

Changes in this value influences, among others, the encoder's selection of motion estimation methods. Values greater than 0 will increase encoder speed at the expense of quality.

Note
Valid range: 0..8
AOME_SET_ENABLEAUTOALTREF 

Codec control function to enable automatic set and use alf frames.

AOME_SET_SHARPNESS 

Codec control function to set sharpness.

AOME_SET_STATIC_THRESHOLD 

Codec control function to set the threshold for MBs treated static.

AOME_GET_LAST_QUANTIZER 

Codec control function to get last quantizer chosen by the encoder.

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.

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.

AOME_SET_ARNR_STRENGTH 

Codec control function to set the filter strength for the arf.

AOME_SET_TUNING 

Codec control function to set visual tuning.

AOME_SET_CQ_LEVEL 

Codec control function to set constrained quality level.

Attention
For this value to be used aom_codec_enc_cfg_t::rc_end_usage must be set to AOM_CQ.
Note
Valid range: 0..63
AOME_SET_MAX_INTRA_BITRATE_PCT 

Codec control function to set Max data rate for Intra frames.

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.

AV1E_SET_MAX_INTER_BITRATE_PCT 

Codec control function to set max data rate for Inter frames.

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.

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.

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. This control function provides a mean to switch encoder into lossless coding mode(1) or normal coding mode(0) that may be lossy. 0 = lossy coding mode 1 = lossless coding mode

By default, encoder operates in normal coding mode (maybe lossy).

AV1E_SET_ROW_MT 

control function to enable the row based multi-threading of encoder. A value that is equal to 1 indicates that row based multi-threading is enabled.

AV1E_SET_TILE_COLUMNS 

Codec control function to set number of tile columns.

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.

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.

By default, this feature is off.

AV1E_SET_FRAME_PARALLEL_DECODING 

Codec control function to enable frame parallel decoding feature.

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 mean to turn this feature on or off for bitstreams produced by encoder.

By default, this feature is off.

AV1E_SET_ERROR_RESILIENT_MODE 

Codec control function to enable error_resilient_mode.

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

By default, this feature is off.

AV1E_SET_S_FRAME_MODE 

Codec control function to enable s_frame_mode.

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.

By default, this feature is off.

AV1E_SET_AQ_MODE 

Codec control function to set adaptive quantization mode.

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.

By default, encoder operates with AQ_Mode 0(adaptive quantization off).

AV1E_SET_FRAME_PERIODIC_BOOST 

Codec control function to enable/disable periodic Q boost.

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

By default, the encoder is allowed to use this feature for appropriate encoding modes.

AV1E_SET_NOISE_SENSITIVITY 

Codec control function to set noise sensitivity.

0: off, 1: On(YOnly)

AV1E_SET_TUNE_CONTENT 

Codec control function to set content type.

Note
Valid parameter range: AOM_CONTENT_DEFAULT = Regular video content (Default) AOM_CONTENT_SCREEN = Screen capture content
AV1E_SET_CDF_UPDATE_MODE 

Codec control function to set CDF update mode.

0: no update 1: update on every frame 2: selectively update

AV1E_SET_COLOR_PRIMARIES 

Codec control function to set color space info.

Note
Valid ranges: 0..23, default is "Unspecified". 0 = For future use 1 = BT.709 2 = Unspecified 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 = For future use (values 13 - 21) 22 = EBU Tech. 3213-E 23 = For future use
AV1E_SET_TRANSFER_CHARACTERISTICS 

Codec control function to set transfer function info.

Note
Valid ranges: 0..19, default is "Unspecified". 0 = For future use 1 = BT.709 2 = Unspecified 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.

Note
Valid ranges: 0..15, default is "Unspecified". 0 = Identity matrix 1 = BT.709 2 = Unspecified 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.

Note
Valid ranges: 0..3, default is "UNKNOWN". 0 = UNKNOWN, 1 = VERTICAL 2 = COLOCATED 3 = RESERVED
AV1E_SET_MIN_GF_INTERVAL 

Codec control function to set minimum interval between GF/ARF frames.

By default the value is set as 4.

AV1E_SET_MAX_GF_INTERVAL 

Codec control function to set minimum interval between GF/ARF frames.

By default the value is set as 16.

AV1E_GET_ACTIVEMAP 

Codec control function to get an Active map back from the encoder.

AV1E_SET_COLOR_RANGE 

Codec control function to set color range bit.

Note
Valid ranges: 0..1, default is 0 0 = Limited range (16..235 or HBD equivalent) 1 = Full range (0..255 or HBD equivalent)
AV1E_SET_RENDER_SIZE 

Codec control function to set intended rendering image size.

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). Possible values are in the form of "ABxy"(pad leading zeros if less than 4 digits). AB: OP index. xy: Target level index for the OP. Can be values 0~23(corresponding to level 2.0 ~ 7.3) or 24(keep level stats only for level monitoring) or 31(maximum level parameter, no level-based constraints). E.g. "0" means target level index 0 for the 0th OP; "111" means target level index 11 for the 1st OP; "1021" means target level index 21 for the 10th OP. If the target level is not specified for an OP, the maximum level parameter of 31 is used as default.

AV1E_GET_SEQ_LEVEL_IDX 

Codec control function to get sequence level index for each operating point. 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.

By default, the superblock size is determined separately for each frame by the encoder.

Experiment: EXT_PARTITION

AOME_SET_ENABLEAUTOBWDREF 

Codec control function to enable automatic set and use bwd-pred frames.

AV1E_SET_ENABLE_CDEF 

Codec control function to encode with CDEF.

CDEF is the constrained directional enhancement filter which is an in-loop filter aiming to remove coding artifacts 0 = do not apply CDEF 1 = apply CDEF

By default, the encoder applies CDEF.

Experiment: AOM_CDEF

AV1E_SET_ENABLE_RESTORATION 

Codec control function to encode with Loop Restoration Filter.

                       0 = do not apply Restoration Filter
                       1 = apply Restoration Filter

By default, the encoder applies Restoration Filter.

AV1E_SET_FORCE_VIDEO_MODE 

Codec control function to force video mode.

                       0 = do not force video mode
                       1 = force video mode even for a single frame

By default, the encoder does not force video and allows still picture.

AV1E_SET_ENABLE_OBMC 

Codec control function to predict with OBMC mode.

                       0 = do not allow OBMC mode
                       1 = allow OBMC mode

By default, the encoder allows OBMC prediction mode.

AV1E_SET_DISABLE_TRELLIS_QUANT 

Codec control function to encode without trellis quantization.

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

By default, the encoder applies optimization on quantized coefficients.

AV1E_SET_ENABLE_QM 

Codec control function to encode with quantisation matrices.

AOM can operate with default quantisation matrices dependent on quantisation level and block type. 0 = do not use quantisation matrices 1 = use quantisation matrices

By default, the encoder operates without quantisation matrices.

Experiment: AOM_QM

AV1E_SET_QM_MIN 

Codec control function to set the min quant matrix flatness.

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 half the available range.

Experiment: AOM_QM

AV1E_SET_QM_MAX 

Codec control function to set the max quant matrix flatness.

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 the top of the available range.

Experiment: AOM_QM

AV1E_SET_QM_Y 

Codec control function to set the min quant matrix flatness.

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.

Experiment: AOM_QM

AV1E_SET_QM_U 

Codec control function to set the min quant matrix flatness.

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.

Experiment: AOM_QM

AV1E_SET_QM_V 

Codec control function to set the min quant matrix flatness.

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.

Experiment: AOM_QM

AV1E_SET_ENABLE_DIST_8X8 

Codec control function to encode with dist_8x8.

The dist_8x8 is enabled automatically for model tuning parameters that require measuring distortion at the 8x8 level. This control also allows measuring distortion at the 8x8 level for other tuning options (e.g., PSNR), for testing purposes. 0 = do not use dist_8x8 1 = use dist_8x8

By default, the encoder does not use dist_8x8

Experiment: DIST_8X8

AV1E_SET_NUM_TG 

Codec control function to set a maximum number of tile groups.

This will set the maximum number of tile groups. This will be overridden if an MTU size is set. The default value is 1.

Experiment: TILE_GROUPS

AV1E_SET_MTU 

Codec control function to set an MTU size for a tile group.

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.

Experiment: TILE_GROUPS

AV1E_SET_ANS_WINDOW_SIZE_LOG2 

Codec control function to set the number of symbols in an ANS data window.

The number of ANS symbols (both boolean and non-booleans alphabets) in an ANS data window is set to 1 << value.

Note
Valid range: [8, 23]

Experiment: ANS

AV1E_SET_ENABLE_RECT_PARTITIONS 

Codec control function to enable/disable rectangular partitions.

This will enable or disable usage of rectangular partitions. The default value is 1.

AV1E_SET_ENABLE_AB_PARTITIONS 

Codec control function to enable/disable AB partitions.

This will enable or disable usage of AB partitions. The default value is 1.

AV1E_SET_ENABLE_1TO4_PARTITIONS 

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

This will enable or disable usage of 1:4 and 4:1 partitions. The default value is 1.

AV1E_SET_MIN_PARTITION_SIZE 

Codec control function to set min partition size.

This will set min partition size. The default value is 4 for 4x4. valid values are [4, 8, 16, 32, 64, 128] 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.

AV1E_SET_MAX_PARTITION_SIZE 

Codec control function to set max partition size.

This will set max partition size. The default value is 128 for 128x128. valid values are [4, 8, 16, 32, 64, 128] 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.

AV1E_SET_ENABLE_INTRA_EDGE_FILTER 

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

This will enable or disable usage of intra-edge filtering. The default value is 1.

AV1E_SET_ENABLE_ORDER_HINT 

Codec control function to turn on / off frame order hint for a few tools:

joint compound mode motion field motion vector ref frame sign bias

The default value is 1.

AV1E_SET_ENABLE_TX64 

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

This will enable or disable usage of length 64 transforms in any direction. The default value is 1.

AV1E_SET_ENABLE_FLIP_IDTX 

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

This will enable or disable usage of flip and identity transform types in any direction. The default value is 1. Including: FLIPADST_DCT, DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST, IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST

AV1E_SET_TX_SIZE_SEARCH_METHOD 

Codec control function to set transform block size search method.

This will set the transform block size search method. 0: use Full RD search, 1: use Fast RD search, 2: always use largest allowed transform block size based on partition size.

AV1E_SET_ENABLE_DIST_WTD_COMP 

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

This will enable or disable distance-weighted compound mode. The default value is 1. If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced to 0.

AV1E_SET_ENABLE_REF_FRAME_MVS 

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

This will enable or disable usage of MFMV. The default value is 1. If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced to 0.

AV1E_SET_ALLOW_REF_FRAME_MVS 

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

This will enable or disable temporal mv predicton. The default value is 1. If AV1E_SET_ENABLE_REF_FRAME_MVS is 0, then this flag is forced to 0.

AV1E_SET_ENABLE_DUAL_FILTER 

Codec control function to turn on / off dual filter usage for a sequence.

This will enable or disable use of dual interpolation filter. The default value is 1.

AV1E_SET_ENABLE_CHROMA_DELTAQ 

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

This will enable or disable use of chroma deltaq. The default value is 0.

AV1E_SET_ENABLE_MASKED_COMP 

Codec control function to turn on / off masked compound usage for a sequence.

This will enable or disable usage of wedge and diff-wtd compound modes. The default value is 1.

AV1E_SET_ENABLE_ONESIDED_COMP 

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

This will enable or disable usage of one sided compound modes. The default value is 1.

AV1E_SET_ENABLE_INTERINTRA_COMP 

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

This will enable or disable usage of inter-intra compound modes. The default value is 1.

AV1E_SET_ENABLE_SMOOTH_INTERINTRA 

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

This will enable or disable usage of smooth inter-intra mode. The default value is 1.

AV1E_SET_ENABLE_DIFF_WTD_COMP 

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

This will enable or disable usage of difference weighted compound. The default value is 1.

AV1E_SET_ENABLE_INTERINTER_WEDGE 

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

This will enable or disable usage of interinter wedge compound. The default value is 1.

AV1E_SET_ENABLE_INTERINTRA_WEDGE 

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

This will enable or disable usage of interintra wedge compound. The default value is 1.

AV1E_SET_ENABLE_GLOBAL_MOTION 

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

This will enable or disable usage of global motion. The default value is 1.

AV1E_SET_ENABLE_WARPED_MOTION 

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

This will enable or disable usage of warped motion. The default value is 1.

AV1E_SET_ALLOW_WARPED_MOTION 

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

This will enable or disable usage of warped motion. The default value is 1. If AV1E_SET_ENABLE_WARPED_MOTION is 0, then this flag is forced to 0.

AV1E_SET_ENABLE_FILTER_INTRA 

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

This will enable or disable usage of filter intra. The default value is 1. If AV1E_SET_ENABLE_FILTER_INTRA is 0, then this flag is forced to 0.

AV1E_SET_ENABLE_SMOOTH_INTRA 

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

This will enable or disable usage of smooth, smooth_h and smooth_v intra modes. The default value is 1.

AV1E_SET_ENABLE_PAETH_INTRA 

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

This will enable or disable usage of Paeth intra mode. The default value is 1.

AV1E_SET_ENABLE_CFL_INTRA 

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

This will enable or disable usage of chroma-from-luma intra mode. The default value is 1.

AV1E_SET_ENABLE_SUPERRES 

Codec control function to turn on / off frame superresolution.

This will enable or disable frame superresolution. The default value is 1 If AV1E_SET_ENABLE_SUPERRES is 0, then this flag is forced to 0.

AV1E_SET_ENABLE_PALETTE 

Codec control function to turn on/off palette mode.

AV1E_SET_ENABLE_INTRABC 

Codec control function to turn on/off intra block copy mode.

AV1E_SET_ENABLE_ANGLE_DELTA 

Codec control function to turn on/off intra angle delta.

AV1E_SET_DELTAQ_MODE 

Codec control function to set the delta q mode.

AV1 supports a delta q mode feature, that allows modulating q per superblock. This control makes encoder operate in one of several DELTA_Q_modes supported: 0: Not Supported 1: Use modulation to maximize objective quality 2: Use modulation to maximize perceptual quality

By default, encoder operates with DELTAQ_Mode 0(deltaq signaling off).

AV1E_SET_DELTALF_MODE 

Codec control function to turn on/off loopfilter modulation when delta q modulation is enabled. Note 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 to 0 or 1.

0 means that the single tile decoding is off, and 1 means that the single tile decoding is on.

Experiment: EXT_TILE

AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST 

Codec control function to enable the extreme motion vector unit test in AV1. Please note that this is only used in motion vector unit test.

0 : off, 1 : MAX_EXTREME_MV, 2 : MIN_EXTREME_MV

AV1E_SET_TIMING_INFO_TYPE 

Codec control function to signal picture timing info in the bitstream.

Note
Valid ranges: 0..1, default is "UNKNOWN". 0 = UNKNOWN, 1 = EQUAL
AV1E_SET_FILM_GRAIN_TEST_VECTOR 

Codec control function to add film grain parameters (one of several preset types) info in the bitstream.

Note
Valid ranges: 0..11, default is "0". 0 = UNKNOWN, 1..16 = different test vectors for grain
AV1E_SET_FILM_GRAIN_TABLE 

Codec control function to set the path to the film grain parameters.

AV1E_SET_DENOISE_NOISE_LEVEL 

Sets the noise level.

AV1E_SET_DENOISE_BLOCK_SIZE 

Sets the denoisers block size.

AV1E_SET_CHROMA_SUBSAMPLING_X 

Sets the chroma subsampling x value.

AV1E_SET_CHROMA_SUBSAMPLING_Y 

Sets the chroma subsampling y value.

AV1E_SET_REDUCED_TX_TYPE_SET 

Control to use a reduced tx type set.

AV1E_SET_INTRA_DCT_ONLY 

Control to use dct only for intra modes.

AV1E_SET_INTER_DCT_ONLY 

Control to use dct only for inter modes.

AV1E_SET_INTRA_DEFAULT_TX_ONLY 

Control to use default tx type only for intra modes.

AV1E_SET_QUANT_B_ADAPT 

Control to use adaptive quantize_b.

AV1E_SET_GF_MAX_PYRAMID_HEIGHT 

Control to select maximum height for the GF group pyramid structure (valid values: 0 - 4)

AV1E_SET_MAX_REFERENCE_FRAMES 

Control to select maximum reference frames allowed per frame (valid values: 3 - 7)

AV1E_SET_REDUCED_REFERENCE_SET 

Control to use reduced set of single and compound references.

AV1E_SET_COEFF_COST_UPD_FREQ 

Control to set frequency of the cost updates for coefficients Possible values are: 0: Update at SB level (default) 1: Update at SB row level in tile 2: Update at tile level.

AV1E_SET_MODE_COST_UPD_FREQ 

Control to set frequency of the cost updates for mode Possible values are: 0: Update at SB level (default) 1: Update at SB row level in tile 2: Update at tile level.

AV1E_SET_TIER_MASK 

Control to set bit mask that specifies which tier each of the 32 possible operating points conforms to. Bit value 0: Main Tier; 1: High Tier.

AV1E_SET_MIN_CR 

Control to set minimum compression ratio. 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.

AV1E_SET_SVC_PARAMS 

Codec control function to set SVC paramaeters.

AV1E_SET_SVC_REF_FRAME_CONFIG 

Codec control function to set reference frame config: the ref_idx and the refresh flags for each buffer slot.

◆ aom_scaling_mode_1d

aom 1-D scaling mode

This set of constants define 1-D aom scaling modes

◆ aom_tune_content

brief AV1 encoder content type

◆ aom_timing_info_type_t

brief AV1 encoder timing info type signaling

◆ aom_tune_metric

Model tuning parameters.

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