diff options
author | Moonchild <moonchild@palemoon.org> | 2021-03-03 18:48:48 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2021-03-04 00:03:46 +0000 |
commit | 44d2b4a86e3d862eb1b68db3d9a29b9dbf3da746 (patch) | |
tree | 9d9cc4d21c93ae3e1a88ab5c160c3be5f6af0ca9 /media/libaom/src/aom/aomcx.h | |
parent | 353943d1a48086a39ff5f4365b22f8f058d5f66e (diff) | |
download | aura-central-44d2b4a86e3d862eb1b68db3d9a29b9dbf3da746.tar.gz |
Issue mcp-graveyard/UXP%1737 - Import libaom 2.0.2 source
Diffstat (limited to 'media/libaom/src/aom/aomcx.h')
-rw-r--r-- | media/libaom/src/aom/aomcx.h | 1472 |
1 files changed, 1024 insertions, 448 deletions
diff --git a/media/libaom/src/aom/aomcx.h b/media/libaom/src/aom/aomcx.h index 013ddf57e..051d33e7b 100644 --- a/media/libaom/src/aom/aomcx.h +++ b/media/libaom/src/aom/aomcx.h @@ -148,85 +148,114 @@ extern aom_codec_iface_t *aom_codec_av1_cx(void); * This set of macros define the control functions available for AVx * encoder interface. * - * \sa #aom_codec_control + * \sa #aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id, ...) */ enum aome_enc_control_id { - /*!\brief Codec control function to set which reference frame encoder can use. + /*!\brief Codec control function to set which reference frame encoder can use, + * int parameter. */ AOME_USE_REFERENCE = 7, - /*!\brief Codec control function to pass an ROI map to encoder. + /*!\brief Codec control function to pass an ROI map to encoder, aom_roi_map_t* + * parameter. */ AOME_SET_ROI_MAP = 8, - /*!\brief Codec control function to pass an Active map to encoder. + /*!\brief Codec control function to pass an Active map to encoder, + * aom_active_map_t* parameter. */ - AOME_SET_ACTIVEMAP, + AOME_SET_ACTIVEMAP = 9, - /*!\brief Codec control function to set encoder scaling mode. + /* NOTE: enum 10 unused */ + + /*!\brief Codec control function to set encoder scaling mode, + * aom_scaling_mode_t* parameter. */ AOME_SET_SCALEMODE = 11, - /*!\brief Codec control function to set encoder spatial layer id. + /*!\brief Codec control function to set encoder spatial layer id, unsigned int + * parameter. */ AOME_SET_SPATIAL_LAYER_ID = 12, - /*!\brief Codec control function to set encoder internal speed settings. + /*!\brief Codec control function to set encoder internal speed settings, + * int parameter * - * 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. + * 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. * - * \note Valid range: 0..8 + * Valid range: 0..8. 0 runs the slowest, and 8 runs the fastest; + * quality improves as speed decreases (since more compression + * possibilities are explored). */ AOME_SET_CPUUSED = 13, - /*!\brief Codec control function to enable automatic set and use alf frames. + /*!\brief Codec control function to enable automatic set and use alf frames, + * unsigned int parameter + * + * - 0 = disable + * - 1 = enable (default) */ - AOME_SET_ENABLEAUTOALTREF, + AOME_SET_ENABLEAUTOALTREF = 14, - /*!\brief Codec control function to set sharpness. + /* NOTE: enum 15 unused */ + + /*!\brief Codec control function to set sharpness, unsigned int parameter. */ - AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2, + AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2, // 16 - /*!\brief Codec control function to set the threshold for MBs treated static. + /*!\brief Codec control function to set the threshold for MBs treated static, + * unsigned int parameter */ - AOME_SET_STATIC_THRESHOLD, + AOME_SET_STATIC_THRESHOLD = 17, + + /* NOTE: enum 18 unused */ - /*!\brief Codec control function to get last quantizer chosen by the encoder. + /*!\brief 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 = AOME_SET_STATIC_THRESHOLD + 2, + AOME_GET_LAST_QUANTIZER = AOME_SET_STATIC_THRESHOLD + 2, // 19 - /*!\brief Codec control function to get last quantizer chosen by the encoder. + /*!\brief 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_GET_LAST_QUANTIZER_64, + AOME_GET_LAST_QUANTIZER_64 = 20, - /*!\brief Codec control function to set the max no of frames to create arf. + /*!\brief Codec control function to set the max no of frames to create arf, + * unsigned int parameter */ - AOME_SET_ARNR_MAXFRAMES, + AOME_SET_ARNR_MAXFRAMES = 21, - /*!\brief Codec control function to set the filter strength for the arf. + /*!\brief Codec control function to set the filter strength for the arf, + * unsigned int parameter */ - AOME_SET_ARNR_STRENGTH, + AOME_SET_ARNR_STRENGTH = 22, - /*!\brief Codec control function to set visual tuning. + /* NOTE: enum 23 unused */ + + /*!\brief Codec control function to set visual tuning, aom_tune_metric (int) + * parameter */ - AOME_SET_TUNING = AOME_SET_ARNR_STRENGTH + 2, + AOME_SET_TUNING = AOME_SET_ARNR_STRENGTH + 2, // 24 - /*!\brief Codec control function to set constrained quality level. + /*!\brief 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::g_usage must be - * set to #AOM_CQ. - * \note 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_CQ_LEVEL, + AOME_SET_CQ_LEVEL = 25, - /*!\brief Codec control function to set Max data rate for Intra frames. + /*!\brief 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 @@ -237,13 +266,15 @@ enum aome_enc_control_id { * For example, to allocate no more than 4.5 frames worth of bitrate * to a keyframe, set this to 450. */ - AOME_SET_MAX_INTRA_BITRATE_PCT, + AOME_SET_MAX_INTRA_BITRATE_PCT = 26, - /*!\brief Codec control function to set number of spatial layers. + /*!\brief Codec control function to set number of spatial layers, int + * parameter */ - AOME_SET_NUMBER_SPATIAL_LAYERS, + AOME_SET_NUMBER_SPATIAL_LAYERS = 27, - /*!\brief Codec control function to set max data rate for Inter frames. + /*!\brief 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 @@ -254,9 +285,10 @@ enum aome_enc_control_id { * For example, to allow no more than 4.5 frames worth of bitrate * to an inter frame, set this to 450. */ - AV1E_SET_MAX_INTER_BITRATE_PCT = AOME_SET_MAX_INTRA_BITRATE_PCT + 2, + AV1E_SET_MAX_INTER_BITRATE_PCT = AOME_SET_MAX_INTRA_BITRATE_PCT + 2, // 28 - /*!\brief Boost percentage for Golden Frame in CBR mode. + /*!\brief 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 @@ -267,64 +299,85 @@ enum aome_enc_control_id { * For example, to allow 100% more bits, i.e, 2X, in a golden frame * than average frame, set this to 100. */ - AV1E_SET_GF_CBR_BOOST_PCT, + AV1E_SET_GF_CBR_BOOST_PCT = 29, + + /* NOTE: enum 30 unused */ - /*!\brief Codec control function to set lossless encoding mode. + /*!\brief 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. 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 + * input source. * - * By default, encoder operates in normal coding mode (maybe lossy). + * - 0 = normal coding mode, may be lossy (default) + * - 1 = lossless coding mode */ - AV1E_SET_LOSSLESS = AV1E_SET_GF_CBR_BOOST_PCT + 2, + AV1E_SET_LOSSLESS = AV1E_SET_GF_CBR_BOOST_PCT + 2, // 31 - /** 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. + /*!\brief Codec control function to enable the row based multi-threading + * of the encoder, unsigned int parameter + * + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_ROW_MT, + AV1E_SET_ROW_MT = 32, - /*!\brief Codec control function to set number of tile columns. + /*!\brief 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 - * The requested tile columns will be capped by encoder based on image size - * limitation (The minimum width of a tile column is 256 pixel, the maximum - * is 4096). - * + * \verbatim + 0 = 1 tile column + 1 = 2 tile columns + 2 = 4 tile columns + ..... + n = 2**n tile columns + \endverbatim * By default, the value is 0, i.e. one single column tile for entire image. */ - AV1E_SET_TILE_COLUMNS, + AV1E_SET_TILE_COLUMNS = 33, - /*!\brief Codec control function to set number of tile rows. + /*!\brief 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 - * + * \verbatim + 0 = 1 tile row + 1 = 2 tile rows + 2 = 4 tile rows + ..... + n = 2**n tile rows + \endverbatim * By default, the value is 0, i.e. one single row tile for entire image. */ - AV1E_SET_TILE_ROWS, + AV1E_SET_TILE_ROWS = 34, + + /*!\brief Codec control function to enable RDO modulated by frame temporal + * dependency, unsigned int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_TPL_MODEL = 35, + + /*!\brief Codec control function to enable temporal filtering on key frame, + * unsigned int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_KEYFRAME_FILTERING = 36, - /*!\brief Codec control function to enable frame parallel decoding feature. + /*!\brief 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 @@ -332,271 +385,301 @@ enum aome_enc_control_id { * 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. + * - 0 = disable (default) + * - 1 = enable */ - AV1E_SET_FRAME_PARALLEL_DECODING, + AV1E_SET_FRAME_PARALLEL_DECODING = 37, - /*!\brief Codec control function to enable error_resilient_mode + /*!\brief Codec control function to enable error_resilient_mode, int parameter * * 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. + * - 0 = disable (default) + * - 1 = enable */ - AV1E_SET_ERROR_RESILIENT_MODE, + AV1E_SET_ERROR_RESILIENT_MODE = 38, - /*!\brief Codec control function to enable s_frame_mode + /*!\brief 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. * - * By default, this feature is off. + * - 0 = disable (default) + * - 1 = enable */ - AV1E_SET_S_FRAME_MODE, + AV1E_SET_S_FRAME_MODE = 39, - /*!\brief Codec control function to set adaptive quantization mode. + /*!\brief 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. * - * By default, encoder operates with AQ_Mode 0(adaptive quantization off). + * - 0 = disable (default) + * - 1 = enable */ - AV1E_SET_AQ_MODE, + AV1E_SET_AQ_MODE = 40, - /*!\brief Codec control function to enable/disable periodic Q boost. + /*!\brief 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 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_FRAME_PERIODIC_BOOST, - - /*!\brief Codec control function to set noise sensitivity. - * - * 0: off, 1: On(YOnly) - */ - AV1E_SET_NOISE_SENSITIVITY, - - /*!\brief 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_TUNE_CONTENT, - - /*!\brief Codec control function to set CDF update mode. - * - * 0: no update 1: update on every frame - * 2: selectively update - */ - AV1E_SET_CDF_UPDATE_MODE, - - /*!\brief 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_COLOR_PRIMARIES, - - /*!\brief 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_TRANSFER_CHARACTERISTICS, - - /*!\brief 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_MATRIX_COEFFICIENTS, - - /*!\brief 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_CHROMA_SAMPLE_POSITION, - - /*!\brief Codec control function to set minimum interval between GF/ARF frames + * + * - 0 = disable (default) + * - 1 = enable + */ + AV1E_SET_FRAME_PERIODIC_BOOST = 41, + + /*!\brief Codec control function to set noise sensitivity, unsigned int + * parameter + * + * - 0 = disable (default) + * - 1 = enable (Y only) + */ + AV1E_SET_NOISE_SENSITIVITY = 42, + + /*!\brief Codec control function to set content type, aom_tune_content + * parameter + * + * - AOM_CONTENT_DEFAULT = Regular video content (default) + * - AOM_CONTENT_SCREEN = Screen capture content + */ + AV1E_SET_TUNE_CONTENT = 43, + + /*!\brief 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_CDF_UPDATE_MODE = 44, + + /*!\brief 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_COLOR_PRIMARIES = 45, + + /*!\brief 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_TRANSFER_CHARACTERISTICS = 46, + + /*!\brief 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_MATRIX_COEFFICIENTS = 47, + + /*!\brief 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_CHROMA_SAMPLE_POSITION = 48, + + /*!\brief Codec control function to set minimum interval between GF/ARF + * frames, unsigned int parameter * * By default the value is set as 4. */ - AV1E_SET_MIN_GF_INTERVAL, + AV1E_SET_MIN_GF_INTERVAL = 49, - /*!\brief Codec control function to set minimum interval between GF/ARF frames + /*!\brief Codec control function to set minimum interval between GF/ARF + * frames, unsigned int parameter * * By default the value is set as 16. */ - AV1E_SET_MAX_GF_INTERVAL, + AV1E_SET_MAX_GF_INTERVAL = 50, - /*!\brief Codec control function to get an Active map back from the encoder. + /*!\brief Codec control function to get an active map back from the encoder, + aom_active_map_t* parameter */ - AV1E_GET_ACTIVEMAP, + AV1E_GET_ACTIVEMAP = 51, - /*!\brief 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) + /*!\brief 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_COLOR_RANGE, + AV1E_SET_COLOR_RANGE = 52, - /*!\brief Codec control function to set intended rendering image size. + /*!\brief 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_RENDER_SIZE, + AV1E_SET_RENDER_SIZE = 53, - /*!\brief Codec control function to set target level. + /*!\brief Control to set target sequence level index for a certain operating + * point(OP), int parameter + * 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). * - * 255: off (default); 0: only keep level stats; 10: target for level 1.0; - * 11: target for level 1.1; ... 62: target for level 6.2 + * 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_SET_TARGET_LEVEL, + AV1E_SET_TARGET_SEQ_LEVEL_IDX = 54, - /*!\brief Codec control function to get bitstream level. + /*!\brief 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_GET_LEVEL, + AV1E_GET_SEQ_LEVEL_IDX = 55, - /*!\brief Codec control function to set intended superblock size. + /*!\brief 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. - * - * Experiment: EXT_PARTITION */ - AV1E_SET_SUPERBLOCK_SIZE, + AV1E_SET_SUPERBLOCK_SIZE = 56, - /*!\brief Codec control function to enable automatic set and use - * bwd-pred frames. + /*!\brief Codec control function to enable automatic set and use of + * bwd-pred frames, unsigned int parameter * + * - 0 = disable (default) + * - 1 = enable */ - AOME_SET_ENABLEAUTOBWDREF, + AOME_SET_ENABLEAUTOBWDREF = 57, - /*!\brief Codec control function to encode with CDEF. + /*!\brief 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 = do not apply CDEF - * 1 = apply CDEF - * - * By default, the encoder applies CDEF. * - * Experiment: AOM_CDEF + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_ENABLE_CDEF, + AV1E_SET_ENABLE_CDEF = 58, - /*!\brief 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. + /*!\brief Codec control function to encode with Loop Restoration Filter, + * unsigned int parameter * + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_ENABLE_RESTORATION, + AV1E_SET_ENABLE_RESTORATION = 59, - /*!\brief Codec control function to encode without trellis quantization. + /*!\brief Codec control function to force video mode, unsigned int parameter * - * 0 = apply trellis quantization - * 1 = do not apply trellis quantization + * - 0 = do not force video mode (default) + * - 1 = force video mode even for a single frame + */ + AV1E_SET_FORCE_VIDEO_MODE = 60, + + /*!\brief Codec control function to predict with OBMC mode, unsigned int + * parameter * - * By default, the encoder applies trellis optimization on quantized - * coefficients. + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_OBMC = 61, + + /*!\brief 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_DISABLE_TRELLIS_QUANT, + AV1E_SET_DISABLE_TRELLIS_QUANT = 62, - /*!\brief Codec control function to encode with quantisation matrices. + /*!\brief 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 = do not use quantisation matrices - * 1 = use quantisation matrices - * - * By default, the encoder operates without quantisation matrices. * - * Experiment: AOM_QM + * - 0 = disable (default) + * - 1 = enable */ + AV1E_SET_ENABLE_QM = 63, - AV1E_SET_ENABLE_QM, - - /*!\brief Codec control function to set the min quant matrix flatness. + /*!\brief 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 half the available - * range. - * - * Experiment: AOM_QM + * By default, the encoder sets this minimum at half the available + * range. */ - AV1E_SET_QM_MIN, + AV1E_SET_QM_MIN = 64, - /*!\brief Codec control function to set the max quant matrix flatness. + /*!\brief 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 @@ -604,267 +687,575 @@ enum aome_enc_control_id { * * By default, the encoder sets this maximum at the top of the * available range. - * - * Experiment: AOM_QM */ - AV1E_SET_QM_MAX, + AV1E_SET_QM_MAX = 65, - /*!\brief Codec control function to set the min quant matrix flatness. + /*!\brief 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. - * - * Experiment: AOM_QM + * By default, the encoder sets this minimum at half the available + * range. */ - AV1E_SET_QM_Y, + AV1E_SET_QM_Y = 66, - /*!\brief Codec control function to set the min quant matrix flatness. + /*!\brief 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. - * - * Experiment: AOM_QM + * By default, the encoder sets this minimum at half the available + * range. */ - AV1E_SET_QM_U, + AV1E_SET_QM_U = 67, - /*!\brief Codec control function to set the min quant matrix flatness. + /*!\brief 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. - * - * Experiment: AOM_QM + * By default, the encoder sets this minimum at half the available + * range. */ - AV1E_SET_QM_V, + AV1E_SET_QM_V = 68, - /*!\brief 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_ENABLE_DIST_8X8, + /* NOTE: enum 69 unused */ - /*!\brief Codec control function to set a maximum number of tile groups. + /*!\brief 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. - * - * Experiment: TILE_GROUPS */ - AV1E_SET_NUM_TG, + AV1E_SET_NUM_TG = 70, - /*!\brief Codec control function to set an MTU size for a tile group. + /*!\brief 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. - * - * Experiment: TILE_GROUPS */ - AV1E_SET_MTU, + AV1E_SET_MTU = 71, + + /* NOTE: enum 72 unused */ - /*!\brief Codec control function to set dependent_horz_tiles. + /*!\brief Codec control function to enable/disable rectangular partitions, int + * parameter * - * In encoding and decoding, AV1 allows enabling dependent horizontal tile - * The parameter for this control describes the value of this flag, - * which has a valid range [0, 1]: - * 0 = disable dependent horizontal tile - * 1 = enable dependent horizontal tile, + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_RECT_PARTITIONS = 73, + + /*!\brief Codec control function to enable/disable AB partitions, int + * parameter * - * By default, the value is 0, i.e. disable dependent horizontal tile. + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_TILE_DEPENDENT_ROWS, + AV1E_SET_ENABLE_AB_PARTITIONS = 74, - /*!\brief Codec control function to set the number of symbols in an ANS data - * window. + /*!\brief Codec control function to enable/disable 1:4 and 4:1 partitions, int + * parameter * - * The number of ANS symbols (both boolean and non-booleans alphabets) in an - * ANS data window is set to 1 << value. + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_1TO4_PARTITIONS = 75, + + /*!\brief Codec control function to set min partition size, int parameter * - * \note Valid range: [8, 23] + * 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. * - * Experiment: ANS + * Valid values: [4, 8, 16, 32, 64, 128]. The default value is 4 for + * 4x4. */ - AV1E_SET_ANS_WINDOW_SIZE_LOG2, + AV1E_SET_MIN_PARTITION_SIZE = 76, - /*!\brief Codec control function to turn on / off dual filter - * enabling/disabling. + /*!\brief Codec control function to set max partition size, int parameter * - * This will enable or disable dual filter. The default value is 1 + * 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_DF, + AV1E_SET_MAX_PARTITION_SIZE = 77, - /*!\brief Codec control function to turn on / off frame order hint for a - * few tools: + /*!\brief Codec control function to turn on / off intra edge filter + * at sequence level, int parameter * - * joint compound mode - * motion field motion vector + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_INTRA_EDGE_FILTER = 78, + + /*!\brief Codec control function to turn on / off frame order hint (int + * parameter). Affects: joint compound mode, motion field motion vector, * ref frame sign bias * - * The default value is 1. + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_ORDER_HINT = 79, + + /*!\brief 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_ORDER_HINT, + AV1E_SET_ENABLE_TX64 = 80, - /*!\brief Codec control function to turn on / off joint compound mode - * at sequence level. + /*!\brief Codec control function to turn on / off flip and identity + * transforms, int parameter * - * This will enable or disable joint compound mode. The default value is 1. - * If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced to 0. + * 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_JNT_COMP, + AV1E_SET_ENABLE_FLIP_IDTX = 81, + + /* Note: enum value 82 unused */ + + /*!\brief 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_DIST_WTD_COMP = 83, /*!\brief Codec control function to turn on / off ref frame mvs (mfmv) usage - * at sequence level. + * at sequence level, int parameter * - * 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. + * \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, + AV1E_SET_ENABLE_REF_FRAME_MVS = 84, /*!\brief Codec control function to set temporal mv prediction - * enabling/disabling at frame level. + * enabling/disabling at frame level, int parameter * - * 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. + * \attention If AV1E_SET_ENABLE_REF_FRAME_MVS is 0, then this flag is + * forced to 0. * + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_ALLOW_REF_FRAME_MVS, + AV1E_SET_ALLOW_REF_FRAME_MVS = 85, - /*!\brief Codec control function to turn on / off warped motion usage - * at sequence level. + /*!\brief Codec control function to turn on / off dual interpolation filter + * for a sequence, int parameter * - * This will enable or disable usage of warped motion. The default value is 1. + * - 0 = disable + * - 1 = enable + */ + AV1E_SET_ENABLE_DUAL_FILTER = 86, + + /*!\brief Codec control function to turn on / off delta quantization in chroma + * planes usage for a sequence, int parameter + * + * - 0 = disable (default) + * - 1 = enable + */ + AV1E_SET_ENABLE_CHROMA_DELTAQ = 87, + + /*!\brief 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_MASKED_COMP = 88, + + /*!\brief Codec control function to turn on / off one sided compound usage + * for a sequence, int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_ONESIDED_COMP = 89, + + /*!\brief Codec control function to turn on / off interintra compound + * for a sequence, int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_INTERINTRA_COMP = 90, + + /*!\brief Codec control function to turn on / off smooth inter-intra + * mode for a sequence, int parameter * + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_ENABLE_WARPED_MOTION, + AV1E_SET_ENABLE_SMOOTH_INTERINTRA = 91, + + /*!\brief Codec control function to turn on / off difference weighted + * compound, int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_DIFF_WTD_COMP = 92, + + /*!\brief Codec control function to turn on / off interinter wedge + * compound, int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_INTERINTER_WEDGE = 93, + + /*!\brief Codec control function to turn on / off interintra wedge + * compound, int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_INTERINTRA_WEDGE = 94, + + /*!\brief Codec control function to turn on / off global motion usage + * for a sequence, int parameter + * + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_GLOBAL_MOTION = 95, /*!\brief Codec control function to turn on / off warped motion usage - * at frame level. + * at sequence level, int parameter * - * 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. + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_WARPED_MOTION = 96, + + /*!\brief 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) */ - AV1E_SET_ALLOW_WARPED_MOTION, + AV1E_SET_ALLOW_WARPED_MOTION = 97, - /*!\brief Codec control function to turn on / off frame superresolution. + /*!\brief Codec control function to turn on / off filter intra usage at + * sequence level, int parameter * - * 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. + * \attention If AV1E_SET_ENABLE_FILTER_INTRA is 0, then this flag is + * forced to 0. + * + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_ENABLE_SUPERRES, + AV1E_SET_ENABLE_FILTER_INTRA = 98, - /*!\brief Codec control function to set loop_filter_across_tiles_v_enabled - * and loop_filter_across_tiles_h_enabled. - * In encoding and decoding, AV1 allows disabling loop filter across tile - * boundary The parameter for this control describes the value of this flag, - * which has a valid range [0, 1]: - * 0 = disable loop filter across tile boundary - * 1 = enable loop filter across tile boundary + /*!\brief Codec control function to turn on / off smooth intra modes usage, + * int parameter * - * By default, the value is 1, i.e. enable loop filter across tile boundary. + * This will enable or disable usage of smooth, smooth_h and smooth_v intra + * modes. * - * Experiment: LOOPFILTERING_ACROSS_TILES_EXT + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_TILE_LOOPFILTER_V, - AV1E_SET_TILE_LOOPFILTER_H, + AV1E_SET_ENABLE_SMOOTH_INTRA = 99, - /*!\brief Codec control function to set loop_filter_across_tiles_enabled. + /*!\brief Codec control function to turn on / off Paeth intra mode usage, int + * parameter * - * In encoding and decoding, AV1 allows disabling loop filter across tile - * boundary The parameter for this control describes the value of this flag, - * which has a valid range [0, 1]: - * 0 = disable loop filter across tile boundary - * 1 = enable loop filter across tile boundary + * - 0 = disable + * - 1 = enable (default) + */ + AV1E_SET_ENABLE_PAETH_INTRA = 100, + + /*!\brief Codec control function to turn on / off CFL uv intra mode usage, int + * parameter * - * By default, the value is 1, i.e. enable loop filter across tile boundary. + * This will enable or disable usage of chroma-from-luma intra mode. * - * Experiment: LOOPFILTERING_ACROSS_TILES + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_TILE_LOOPFILTER, + AV1E_SET_ENABLE_CFL_INTRA = 101, - /*!\brief Codec control function to set the delta q mode + /*!\brief Codec control function to turn on / off frame superresolution, 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. the delta q mode is added on top of segment based - * feature, and allows control per 64x64 q and lf delta.This control makes - * encoder operate in one of the several DELTA_Q_modes supported. + * \attention If AV1E_SET_ENABLE_SUPERRES is 0, then this flag is forced to 0. * - * By default, encoder operates with DELTAQ_Mode 0(deltaq signaling off). + * - 0 = disable + * - 1 = enable (default) */ - AV1E_SET_DELTAQ_MODE, + AV1E_SET_ENABLE_SUPERRES = 102, - /*!\brief Codec control function to set the single tile decoding mode to 0 or - * 1. + /*!\brief Codec control function to turn on / off overlay frames for + * filtered ALTREF frames, int parameter * - * 0 means that the single tile decoding is off, and 1 means that the single - * tile decoding is on. + * 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_OVERLAY = 103, + + /*!\brief Codec control function to turn on/off palette mode, int parameter */ + AV1E_SET_ENABLE_PALETTE = 104, + + /*!\brief Codec control function to turn on/off intra block copy mode, int + parameter */ + AV1E_SET_ENABLE_INTRABC = 105, + + /*!\brief Codec control function to turn on/off intra angle delta, int + parameter */ + AV1E_SET_ENABLE_ANGLE_DELTA = 106, + + /*!\brief 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. * - * Experiment: EXT_TILE + * - 0 = deltaq signaling off + * - 1 = use modulation to maximize objective quality (default) + * - 2 = use modulation to maximize perceptual quality */ - AV1E_SET_SINGLE_TILE_DECODING, + AV1E_SET_DELTAQ_MODE = 107, - /*!\brief 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. + /*!\brief Codec control function to turn on/off loopfilter modulation + * when delta q modulation is enabled, unsigned int parameter. * - * 0 : off, 1 : MAX_EXTREME_MV, 2 : MIN_EXTREME_MV + * \attention AV1 only supports loopfilter modulation when delta q + * modulation is enabled as well. */ - AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST, + AV1E_SET_DELTALF_MODE = 108, + + /*!\brief 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_SET_SINGLE_TILE_DECODING = 109, + + /*!\brief 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_ENABLE_MOTION_VECTOR_UNIT_TEST = 110, /*!\brief Codec control function to signal picture timing info in the - * bitstream. \note Valid ranges: 0..1, default is "UNKNOWN". 0 = UNKNOWN, 1 = - * EQUAL + * bitstream, aom_timing_info_type_t parameter. Default is + * AOM_TIMING_UNSPECIFIED. */ - AV1E_SET_TIMING_INFO_TYPE, + AV1E_SET_TIMING_INFO_TYPE = 111, /*!\brief 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 + * preset types) info in the bitstream, int parameter + * + Valid range: 0..16, 0 is unknown, 1..16 are test vectors */ - AV1E_SET_FILM_GRAIN_TEST_VECTOR, + AV1E_SET_FILM_GRAIN_TEST_VECTOR = 112, - /*!\brief Codec control function to set the path to the film grain parameters + /*!\brief Codec control function to set the path to the film grain parameters, + * const char* parameter */ - AV1E_SET_FILM_GRAIN_TABLE, + AV1E_SET_FILM_GRAIN_TABLE = 113, + + /*!\brief Sets the noise level, int parameter */ + AV1E_SET_DENOISE_NOISE_LEVEL = 114, + + /*!\brief Sets the denoisers block size, unsigned int parameter */ + AV1E_SET_DENOISE_BLOCK_SIZE = 115, - /*!\brief Sets the noise level */ - AV1E_SET_DENOISE_NOISE_LEVEL, + /*!\brief Sets the chroma subsampling x value, unsigned int parameter */ + AV1E_SET_CHROMA_SUBSAMPLING_X = 116, - /*!\brief Sets the denoisers block size */ - AV1E_SET_DENOISE_BLOCK_SIZE, + /*!\brief Sets the chroma subsampling y value, unsigned int parameter */ + AV1E_SET_CHROMA_SUBSAMPLING_Y = 117, - /*!\brief Sets the chroma subsampling x value */ - AV1E_SET_CHROMA_SUBSAMPLING_X, + /*!\brief Control to use a reduced tx type set, int parameter */ + AV1E_SET_REDUCED_TX_TYPE_SET = 118, - /*!\brief Sets the chroma subsampling y value */ - AV1E_SET_CHROMA_SUBSAMPLING_Y, + /*!\brief Control to use dct only for intra modes, int parameter */ + AV1E_SET_INTRA_DCT_ONLY = 119, + + /*!\brief Control to use dct only for inter modes, int parameter */ + AV1E_SET_INTER_DCT_ONLY = 120, + + /*!\brief Control to use default tx type only for intra modes, int parameter + */ + AV1E_SET_INTRA_DEFAULT_TX_ONLY = 121, + + /*!\brief Control to use adaptive quantize_b, int parameter */ + AV1E_SET_QUANT_B_ADAPT = 122, + + /*!\brief Control to select maximum height for the GF group pyramid structure, + * unsigned int parameter + * + * Valid range: 0..4 + */ + AV1E_SET_GF_MAX_PYRAMID_HEIGHT = 123, + + /*!\brief Control to select maximum reference frames allowed per frame, int + * parameter + * + * Valid range: 3..7 + */ + AV1E_SET_MAX_REFERENCE_FRAMES = 124, + + /*!\brief Control to use reduced set of single and compound references, int + parameter */ + AV1E_SET_REDUCED_REFERENCE_SET = 125, + + /* NOTE: enums 126-139 unused */ + /* NOTE: Need a gap in enum values to avoud conflict with 128, 129, 130 */ + + /*!\brief 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_COEFF_COST_UPD_FREQ = 140, + + /*!\brief 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_MODE_COST_UPD_FREQ = 141, + + /*!\brief 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_MV_COST_UPD_FREQ = 142, + + /*!\brief 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_TIER_MASK = 143, + + /*!\brief 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_MIN_CR = 144, + + /* NOTE: enums 145-149 unused */ + + /*!\brief Codec control function to set the layer id, aom_svc_layer_id_t* + * parameter + */ + AV1E_SET_SVC_LAYER_ID = 150, + + /*!\brief Codec control function to set SVC paramaeters, aom_svc_params_t* + * parameter + */ + AV1E_SET_SVC_PARAMS = 151, + + /*!\brief Codec control function to set reference frame config: + * the ref_idx and the refresh flags for each buffer slot. + * aom_svc_ref_frame_config_t* parameter + */ + AV1E_SET_SVC_REF_FRAME_CONFIG = 152, + + /*!\brief Codec control function to set the path to the VMAF model used when + * tuning the encoder for VMAF, const char* parameter + */ + AV1E_SET_VMAF_MODEL_PATH = 153, + + /*!\brief 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_EXT_TILE_DEBUG = 154, + + /*!\brief 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_ENABLE_SB_MULTIPASS_UNIT_TEST = 155, + + /*!\brief Control to select minimum height for the GF group pyramid structure, + * unsigned int parameter + * + * Valid values: 0..4 + */ + AV1E_SET_GF_MIN_PYRAMID_HEIGHT = 156, }; /*!\brief aom 1-D scaling mode @@ -948,36 +1339,78 @@ typedef enum { * */ typedef enum { - AOM_TUNE_PSNR, - AOM_TUNE_SSIM, - AOM_TUNE_CDEF_DIST, - AOM_TUNE_DAALA_DIST + AOM_TUNE_PSNR = 0, + AOM_TUNE_SSIM = 1, + /* NOTE: enums 2 and 3 unused */ + AOM_TUNE_VMAF_WITH_PREPROCESSING = 4, + AOM_TUNE_VMAF_WITHOUT_PREPROCESSING = 5, + AOM_TUNE_VMAF_MAX_GAIN = 6 } aom_tune_metric; +#define AOM_MAX_LAYERS 32 /**< Max number of layers */ +#define AOM_MAX_SS_LAYERS 4 /**< Max number of spatial layers */ +#define AOM_MAX_TS_LAYERS 8 /**< Max number of temporal layers */ + +/*!brief Struct for spatial and temporal layer ID */ +typedef struct aom_svc_layer_id { + int spatial_layer_id; /**< Spatial layer ID */ + int temporal_layer_id; /**< Temporal layer ID */ +} aom_svc_layer_id_t; + +/*!brief Parameter type for SVC */ +typedef struct aom_svc_params { + int number_spatial_layers; /**< Number of spatial layers */ + int number_temporal_layers; /**< Number of temporal layers */ + int max_quantizers[AOM_MAX_LAYERS]; /**< Max Q for each layer */ + int min_quantizers[AOM_MAX_LAYERS]; /**< Min Q for each layer */ + int scaling_factor_num[AOM_MAX_SS_LAYERS]; /**< Scaling factor-numerator */ + int scaling_factor_den[AOM_MAX_SS_LAYERS]; /**< Scaling factor-denominator */ + /*! Target bitrate for each layer */ + int layer_target_bitrate[AOM_MAX_LAYERS]; + /*! Frame rate factor for each temporal layer */ + int framerate_factor[AOM_MAX_TS_LAYERS]; +} aom_svc_params_t; + +/*!brief Parameters for setting ref frame config */ +typedef struct aom_svc_ref_frame_config { + // 7 references: LAST_FRAME (0), LAST2_FRAME(1), LAST3_FRAME(2), + // GOLDEN_FRAME(3), BWDREF_FRAME(4), ALTREF2_FRAME(5), ALTREF_FRAME(6). + int reference[7]; /**< Reference flag for each of the 7 references. */ + /*! Buffer slot index for each of 7 references. */ + int ref_idx[7]; + int refresh[8]; /**< Refresh flag for each of the 8 slots. */ +} aom_svc_ref_frame_config_t; + /*!\cond */ /*!\brief Encoder control function parameter type * - * Defines the data types that AOME/AV1E control functions take. Note that - * additional common controls are defined in aom.h + * Defines the data types that AOME/AV1E control functions take. * + * \note Additional common controls are defined in aom.h. + * + * \note For each control ID "X", a macro-define of + * AOM_CTRL_X is provided. It is used at compile time to determine + * if the control ID is supported by the libaom library available, + * when the libaom version cannot be controlled. */ - AOM_CTRL_USE_TYPE(AOME_USE_REFERENCE, int) #define AOM_CTRL_AOME_USE_REFERENCE + AOM_CTRL_USE_TYPE(AOME_SET_ROI_MAP, aom_roi_map_t *) #define AOM_CTRL_AOME_SET_ROI_MAP + AOM_CTRL_USE_TYPE(AOME_SET_ACTIVEMAP, aom_active_map_t *) #define AOM_CTRL_AOME_SET_ACTIVEMAP + AOM_CTRL_USE_TYPE(AOME_SET_SCALEMODE, aom_scaling_mode_t *) #define AOM_CTRL_AOME_SET_SCALEMODE -AOM_CTRL_USE_TYPE(AOME_SET_SPATIAL_LAYER_ID, int) +AOM_CTRL_USE_TYPE(AOME_SET_SPATIAL_LAYER_ID, unsigned int) #define AOM_CTRL_AOME_SET_SPATIAL_LAYER_ID AOM_CTRL_USE_TYPE(AOME_SET_CPUUSED, int) #define AOM_CTRL_AOME_SET_CPUUSED -AOM_CTRL_USE_TYPE(AOME_SET_DEVSF, int) -#define AOM_CTRL_AOME_SET_DEVSF + AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOALTREF, unsigned int) #define AOM_CTRL_AOME_SET_ENABLEAUTOALTREF @@ -986,43 +1419,46 @@ AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOBWDREF, unsigned int) AOM_CTRL_USE_TYPE(AOME_SET_SHARPNESS, unsigned int) #define AOM_CTRL_AOME_SET_SHARPNESS + AOM_CTRL_USE_TYPE(AOME_SET_STATIC_THRESHOLD, unsigned int) #define AOM_CTRL_AOME_SET_STATIC_THRESHOLD AOM_CTRL_USE_TYPE(AOME_SET_ARNR_MAXFRAMES, unsigned int) #define AOM_CTRL_AOME_SET_ARNR_MAXFRAMES + AOM_CTRL_USE_TYPE(AOME_SET_ARNR_STRENGTH, unsigned int) #define AOM_CTRL_AOME_SET_ARNR_STRENGTH + AOM_CTRL_USE_TYPE(AOME_SET_TUNING, int) /* aom_tune_metric */ #define AOM_CTRL_AOME_SET_TUNING + AOM_CTRL_USE_TYPE(AOME_SET_CQ_LEVEL, unsigned int) #define AOM_CTRL_AOME_SET_CQ_LEVEL -AOM_CTRL_USE_TYPE(AV1E_SET_ROW_MT, int) +AOM_CTRL_USE_TYPE(AV1E_SET_ROW_MT, unsigned int) #define AOM_CTRL_AV1E_SET_ROW_MT -AOM_CTRL_USE_TYPE(AV1E_SET_TILE_COLUMNS, int) +AOM_CTRL_USE_TYPE(AV1E_SET_TILE_COLUMNS, unsigned int) #define AOM_CTRL_AV1E_SET_TILE_COLUMNS -AOM_CTRL_USE_TYPE(AV1E_SET_TILE_ROWS, int) + +AOM_CTRL_USE_TYPE(AV1E_SET_TILE_ROWS, unsigned int) #define AOM_CTRL_AV1E_SET_TILE_ROWS -AOM_CTRL_USE_TYPE(AV1E_SET_TILE_DEPENDENT_ROWS, int) -#define AOM_CTRL_AV1E_SET_TILE_DEPENDENT_ROWS +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TPL_MODEL, unsigned int) +#define AOM_CTRL_AV1E_SET_ENABLE_TPL_MODEL -AOM_CTRL_USE_TYPE(AV1E_SET_TILE_LOOPFILTER_V, int) -#define AOM_CTRL_AV1E_SET_TILE_LOOPFILTER_V -AOM_CTRL_USE_TYPE(AV1E_SET_TILE_LOOPFILTER_H, int) -#define AOM_CTRL_AV1E_SET_TILE_LOOPFILTER_H -AOM_CTRL_USE_TYPE(AV1E_SET_TILE_LOOPFILTER, int) -#define AOM_CTRL_AV1E_SET_TILE_LOOPFILTER +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_KEYFRAME_FILTERING, unsigned int) +#define AOM_CTRL_AV1E_SET_ENABLE_KEYFRAME_FILTERING AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER, int *) #define AOM_CTRL_AOME_GET_LAST_QUANTIZER + AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER_64, int *) #define AOM_CTRL_AOME_GET_LAST_QUANTIZER_64 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTRA_BITRATE_PCT, unsigned int) #define AOM_CTRL_AOME_SET_MAX_INTRA_BITRATE_PCT + AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTER_BITRATE_PCT, unsigned int) #define AOM_CTRL_AOME_SET_MAX_INTER_BITRATE_PCT @@ -1041,6 +1477,12 @@ AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CDEF, unsigned int) AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RESTORATION, unsigned int) #define AOM_CTRL_AV1E_SET_ENABLE_RESTORATION +AOM_CTRL_USE_TYPE(AV1E_SET_FORCE_VIDEO_MODE, unsigned int) +#define AOM_CTRL_AV1E_SET_FORCE_VIDEO_MODE + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OBMC, unsigned int) +#define AOM_CTRL_AV1E_SET_ENABLE_OBMC + AOM_CTRL_USE_TYPE(AV1E_SET_DISABLE_TRELLIS_QUANT, unsigned int) #define AOM_CTRL_AV1E_SET_DISABLE_TRELLIS_QUANT @@ -1067,43 +1509,119 @@ AOM_CTRL_USE_TYPE(AV1E_SET_QM_V, unsigned int) AOM_CTRL_USE_TYPE(AV1E_SET_NUM_TG, unsigned int) #define AOM_CTRL_AV1E_SET_NUM_TG + AOM_CTRL_USE_TYPE(AV1E_SET_MTU, unsigned int) #define AOM_CTRL_AV1E_SET_MTU -AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, aom_timing_info_type_t) +AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, int) /* aom_timing_info_type_t */ #define AOM_CTRL_AV1E_SET_TIMING_INFO_TYPE -AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DF, unsigned int) -#define AOM_CTRL_AV1E_SET_ENABLE_DF +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_PARTITIONS, int) +#define AOM_CTRL_AV1E_SET_ENABLE_RECT_PARTITIONS + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_AB_PARTITIONS, int) +#define AOM_CTRL_AV1E_SET_ENABLE_AB_PARTITIONS + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_1TO4_PARTITIONS, int) +#define AOM_CTRL_AV1E_SET_ENABLE_1TO4_PARTITIONS -AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ORDER_HINT, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_MIN_PARTITION_SIZE, int) +#define AOM_CTRL_AV1E_SET_MIN_PARTITION_SIZE + +AOM_CTRL_USE_TYPE(AV1E_SET_MAX_PARTITION_SIZE, int) +#define AOM_CTRL_AV1E_SET_MAX_PARTITION_SIZE + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRA_EDGE_FILTER, int) +#define AOM_CTRL_AV1E_SET_ENABLE_INTRA_EDGE_FILTER + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ORDER_HINT, int) #define AOM_CTRL_AV1E_SET_ENABLE_ORDER_HINT -AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_JNT_COMP, unsigned int) -#define AOM_CTRL_AV1E_SET_ENABLE_JNT_COMP +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TX64, int) +#define AOM_CTRL_AV1E_SET_ENABLE_TX64 + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FLIP_IDTX, int) +#define AOM_CTRL_AV1E_SET_ENABLE_FLIP_IDTX -AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_REF_FRAME_MVS, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_WTD_COMP, int) +#define AOM_CTRL_AV1E_SET_ENABLE_DIST_WTD_COMP + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_REF_FRAME_MVS, int) #define AOM_CTRL_AV1E_SET_ENABLE_REF_FRAME_MVS -AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_REF_FRAME_MVS, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_REF_FRAME_MVS, int) #define AOM_CTRL_AV1E_SET_ALLOW_REF_FRAME_MVS -AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_WARPED_MOTION, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DUAL_FILTER, int) +#define AOM_CTRL_AV1E_SET_ENABLE_DUAL_FILTER + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CHROMA_DELTAQ, int) +#define AOM_CTRL_AV1E_SET_ENABLE_CHROMA_DELTAQ + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_MASKED_COMP, int) +#define AOM_CTRL_AV1E_SET_ENABLE_MASKED_COMP + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ONESIDED_COMP, int) +#define AOM_CTRL_AV1E_SET_ENABLE_ONESIDED_COMP + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_COMP, int) +#define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_COMP + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTERINTRA, int) +#define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTERINTRA + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIFF_WTD_COMP, int) +#define AOM_CTRL_AV1E_SET_ENABLE_DIFF_WTD_COMP + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTER_WEDGE, int) +#define AOM_CTRL_AV1E_SET_ENABLE_INTERINTER_WEDGE + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_WEDGE, int) +#define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_WEDGE + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_GLOBAL_MOTION, int) +#define AOM_CTRL_AV1E_SET_ENABLE_GLOBAL_MOTION + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_WARPED_MOTION, int) #define AOM_CTRL_AV1E_SET_ENABLE_WARPED_MOTION -AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_WARPED_MOTION, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_WARPED_MOTION, int) #define AOM_CTRL_AV1E_SET_ALLOW_WARPED_MOTION -AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SUPERRES, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FILTER_INTRA, int) +#define AOM_CTRL_AV1E_SET_ENABLE_FILTER_INTRA + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTRA, int) +#define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTRA + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PAETH_INTRA, int) +#define AOM_CTRL_AV1E_SET_ENABLE_PAETH_INTRA + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CFL_INTRA, int) +#define AOM_CTRL_AV1E_SET_ENABLE_CFL_INTRA + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SUPERRES, int) #define AOM_CTRL_AV1E_SET_ENABLE_SUPERRES +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OVERLAY, int) +#define AOM_CTRL_AV1E_SET_ENABLE_OVERLAY + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PALETTE, int) +#define AOM_CTRL_AV1E_SET_ENABLE_PALETTE + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRABC, int) +#define AOM_CTRL_AV1E_SET_ENABLE_INTRABC + +AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ANGLE_DELTA, int) +#define AOM_CTRL_AV1E_SET_ENABLE_ANGLE_DELTA + AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PARALLEL_DECODING, unsigned int) #define AOM_CTRL_AV1E_SET_FRAME_PARALLEL_DECODING -AOM_CTRL_USE_TYPE(AV1E_SET_ERROR_RESILIENT_MODE, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_ERROR_RESILIENT_MODE, int) #define AOM_CTRL_AV1E_SET_ERROR_RESILIENT_MODE -AOM_CTRL_USE_TYPE(AV1E_SET_S_FRAME_MODE, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_SET_S_FRAME_MODE, int) #define AOM_CTRL_AV1E_SET_S_FRAME_MODE AOM_CTRL_USE_TYPE(AV1E_SET_AQ_MODE, unsigned int) @@ -1112,6 +1630,9 @@ AOM_CTRL_USE_TYPE(AV1E_SET_AQ_MODE, unsigned int) AOM_CTRL_USE_TYPE(AV1E_SET_DELTAQ_MODE, unsigned int) #define AOM_CTRL_AV1E_SET_DELTAQ_MODE +AOM_CTRL_USE_TYPE(AV1E_SET_DELTALF_MODE, unsigned int) +#define AOM_CTRL_AV1E_SET_DELTALF_MODE + AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PERIODIC_BOOST, unsigned int) #define AOM_CTRL_AV1E_SET_FRAME_PERIODIC_BOOST @@ -1151,14 +1672,8 @@ AOM_CTRL_USE_TYPE(AV1E_SET_RENDER_SIZE, int *) AOM_CTRL_USE_TYPE(AV1E_SET_SUPERBLOCK_SIZE, unsigned int) #define AOM_CTRL_AV1E_SET_SUPERBLOCK_SIZE -AOM_CTRL_USE_TYPE(AV1E_SET_TARGET_LEVEL, unsigned int) -#define AOM_CTRL_AV1E_SET_TARGET_LEVEL - -AOM_CTRL_USE_TYPE(AV1E_GET_LEVEL, int *) -#define AOM_CTRL_AV1E_GET_LEVEL - -AOM_CTRL_USE_TYPE(AV1E_SET_ANS_WINDOW_SIZE_LOG2, unsigned int) -#define AOM_CTRL_AV1E_SET_ANS_WINDOW_SIZE_LOG2 +AOM_CTRL_USE_TYPE(AV1E_GET_SEQ_LEVEL_IDX, int *) +#define AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX AOM_CTRL_USE_TYPE(AV1E_SET_SINGLE_TILE_DECODING, unsigned int) #define AOM_CTRL_AV1E_SET_SINGLE_TILE_DECODING @@ -1166,22 +1681,26 @@ AOM_CTRL_USE_TYPE(AV1E_SET_SINGLE_TILE_DECODING, unsigned int) AOM_CTRL_USE_TYPE(AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST, unsigned int) #define AOM_CTRL_AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST -AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TEST_VECTOR, unsigned int) +AOM_CTRL_USE_TYPE(AV1E_ENABLE_EXT_TILE_DEBUG, unsigned int) +#define AOM_CTRL_AV1E_ENABLE_EXT_TILE_DEBUG + +AOM_CTRL_USE_TYPE(AV1E_SET_VMAF_MODEL_PATH, const char *) +#define AOM_CTRL_AV1E_SET_VMAF_MODEL_PATH + +AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TEST_VECTOR, int) #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TEST_VECTOR AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TABLE, const char *) #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TABLE -AOM_CTRL_USE_TYPE(AV1E_SET_CDF_UPDATE_MODE, int) +AOM_CTRL_USE_TYPE(AV1E_SET_CDF_UPDATE_MODE, unsigned int) #define AOM_CTRL_AV1E_SET_CDF_UPDATE_MODE -#ifdef CONFIG_DENOISE -AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_NOISE_LEVEL, int); +AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_NOISE_LEVEL, int) #define AOM_CTRL_AV1E_SET_DENOISE_NOISE_LEVEL -AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_BLOCK_SIZE, unsigned int); +AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_BLOCK_SIZE, unsigned int) #define AOM_CTRL_AV1E_SET_DENOISE_BLOCK_SIZE -#endif AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_X, unsigned int) #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_X @@ -1189,6 +1708,63 @@ AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_X, unsigned int) AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_Y, unsigned int) #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_Y +AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_TX_TYPE_SET, int) +#define AOM_CTRL_AV1E_SET_REDUCED_TX_TYPE_SET + +AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DCT_ONLY, int) +#define AOM_CTRL_AV1E_SET_INTRA_DCT_ONLY + +AOM_CTRL_USE_TYPE(AV1E_SET_INTER_DCT_ONLY, int) +#define AOM_CTRL_AV1E_SET_INTER_DCT_ONLY + +AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DEFAULT_TX_ONLY, int) +#define AOM_CTRL_AV1E_SET_INTRA_DEFAULT_TX_ONLY + +AOM_CTRL_USE_TYPE(AV1E_SET_QUANT_B_ADAPT, int) +#define AOM_CTRL_AV1E_SET_QUANT_B_ADAPT + +AOM_CTRL_USE_TYPE(AV1E_SET_GF_MIN_PYRAMID_HEIGHT, unsigned int) +#define AOM_CTRL_AV1E_SET_GF_MIN_PYRAMID_HEIGHT + +AOM_CTRL_USE_TYPE(AV1E_SET_GF_MAX_PYRAMID_HEIGHT, unsigned int) +#define AOM_CTRL_AV1E_SET_GF_MAX_PYRAMID_HEIGHT + +AOM_CTRL_USE_TYPE(AV1E_SET_MAX_REFERENCE_FRAMES, int) +#define AOM_CTRL_AV1E_SET_MAX_REFERENCE_FRAMES + +AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_REFERENCE_SET, int) +#define AOM_CTRL_AV1E_SET_REDUCED_REFERENCE_SET + +AOM_CTRL_USE_TYPE(AV1E_SET_COEFF_COST_UPD_FREQ, unsigned int) +#define AOM_CTRL_AV1E_SET_COEFF_COST_UPD_FREQ + +AOM_CTRL_USE_TYPE(AV1E_SET_MODE_COST_UPD_FREQ, unsigned int) +#define AOM_CTRL_AV1E_SET_MODE_COST_UPD_FREQ + +AOM_CTRL_USE_TYPE(AV1E_SET_MV_COST_UPD_FREQ, unsigned int) +#define AOM_CTRL_AV1E_SET_MV_COST_UPD_FREQ + +AOM_CTRL_USE_TYPE(AV1E_SET_TARGET_SEQ_LEVEL_IDX, int) +#define AOM_CTRL_AV1E_SET_TARGET_SEQ_LEVEL_IDX + +AOM_CTRL_USE_TYPE(AV1E_SET_TIER_MASK, unsigned int) +#define AOM_CTRL_AV1E_SET_TIER_MASK + +AOM_CTRL_USE_TYPE(AV1E_SET_MIN_CR, unsigned int) +#define AOM_CTRL_AV1E_SET_MIN_CR + +AOM_CTRL_USE_TYPE(AV1E_SET_SVC_LAYER_ID, aom_svc_layer_id_t *) +#define AOME_CTRL_AV1E_SET_SVC_LAYER_ID + +AOM_CTRL_USE_TYPE(AV1E_SET_SVC_PARAMS, aom_svc_params_t *) +#define AOME_CTRL_AV1E_SET_SVC_PARAMS + +AOM_CTRL_USE_TYPE(AV1E_SET_SVC_REF_FRAME_CONFIG, aom_svc_ref_frame_config_t *) +#define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG + +AOM_CTRL_USE_TYPE(AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST, unsigned int) +#define AOM_CTRL_AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST + /*!\endcond */ /*! @} - end defgroup aom_encoder */ #ifdef __cplusplus |