2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
4 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
11 #ifndef AOM_AOM_AOMCX_H_
12 #define AOM_AOM_AOMCX_H_
14 /*!\defgroup aom_encoder AOMedia AOM/AV1 Encoder
20 #include "aom/aom_encoder.h"
21 #include "aom/aom_external_partition.h"
24 * \brief Provides definitions for using AOM or AV1 encoder algorithm within the
25 * aom Codec Interface.
27 * Several interfaces are excluded with CONFIG_REALTIME_ONLY build:
34 * The following features are also disabled with CONFIG_REALTIME_ONLY:
36 * 4X rectangular blocks
37 * 4X rectangular transform in intra prediction
44 /*!\name Algorithm interface for AV1
46 * This interface provides the capability to encode raw AV1 streams.
50 /*!\brief A single instance of the AV1 encoder.
51 *\deprecated This access mechanism is provided for backwards compatibility;
52 * prefer aom_codec_av1_cx().
54 extern aom_codec_iface_t aom_codec_av1_cx_algo
;
56 /*!\brief The interface to the AV1 encoder.
58 extern aom_codec_iface_t
*aom_codec_av1_cx(void);
59 /*!@} - end algorithm interface member group */
65 /*!\brief Don't reference the last frame
67 * When this flag is set, the encoder will not use the last frame as a
68 * predictor. When not set, the encoder will choose whether to use the
69 * last frame or not automatically.
71 #define AOM_EFLAG_NO_REF_LAST (1 << 16)
72 /*!\brief Don't reference the last2 frame
74 * When this flag is set, the encoder will not use the last2 frame as a
75 * predictor. When not set, the encoder will choose whether to use the
76 * last2 frame or not automatically.
78 #define AOM_EFLAG_NO_REF_LAST2 (1 << 17)
79 /*!\brief Don't reference the last3 frame
81 * When this flag is set, the encoder will not use the last3 frame as a
82 * predictor. When not set, the encoder will choose whether to use the
83 * last3 frame or not automatically.
85 #define AOM_EFLAG_NO_REF_LAST3 (1 << 18)
86 /*!\brief Don't reference the golden frame
88 * When this flag is set, the encoder will not use the golden frame as a
89 * predictor. When not set, the encoder will choose whether to use the
90 * golden frame or not automatically.
92 #define AOM_EFLAG_NO_REF_GF (1 << 19)
94 /*!\brief Don't reference the alternate reference frame
96 * When this flag is set, the encoder will not use the alt ref frame as a
97 * predictor. When not set, the encoder will choose whether to use the
98 * alt ref frame or not automatically.
100 #define AOM_EFLAG_NO_REF_ARF (1 << 20)
101 /*!\brief Don't reference the bwd reference frame
103 * When this flag is set, the encoder will not use the bwd ref frame as a
104 * predictor. When not set, the encoder will choose whether to use the
105 * bwd ref frame or not automatically.
107 #define AOM_EFLAG_NO_REF_BWD (1 << 21)
108 /*!\brief Don't reference the alt2 reference frame
110 * When this flag is set, the encoder will not use the alt2 ref frame as a
111 * predictor. When not set, the encoder will choose whether to use the
112 * alt2 ref frame or not automatically.
114 #define AOM_EFLAG_NO_REF_ARF2 (1 << 22)
116 /*!\brief Don't update the last frame
118 * When this flag is set, the encoder will not update the last frame with
119 * the contents of the current frame.
121 #define AOM_EFLAG_NO_UPD_LAST (1 << 23)
123 /*!\brief Don't update the golden frame
125 * When this flag is set, the encoder will not update the golden frame with
126 * the contents of the current frame.
128 #define AOM_EFLAG_NO_UPD_GF (1 << 24)
130 /*!\brief Don't update the alternate reference frame
132 * When this flag is set, the encoder will not update the alt ref frame with
133 * the contents of the current frame.
135 #define AOM_EFLAG_NO_UPD_ARF (1 << 25)
136 /*!\brief Disable entropy update
138 * When this flag is set, the encoder will not update its internal entropy
139 * model based on the entropy of this frame.
141 #define AOM_EFLAG_NO_UPD_ENTROPY (1 << 26)
142 /*!\brief Disable ref frame mvs
144 * When this flag is set, the encoder will not allow frames to
145 * be encoded using mfmv.
147 #define AOM_EFLAG_NO_REF_FRAME_MVS (1 << 27)
148 /*!\brief Enable error resilient frame
150 * When this flag is set, the encoder will code frames as error
153 #define AOM_EFLAG_ERROR_RESILIENT (1 << 28)
154 /*!\brief Enable s frame mode
156 * When this flag is set, the encoder will code frames as an
159 #define AOM_EFLAG_SET_S_FRAME (1 << 29)
160 /*!\brief Force primary_ref_frame to PRIMARY_REF_NONE
162 * When this flag is set, the encoder will set a frame's primary_ref_frame
163 * to PRIMARY_REF_NONE
165 #define AOM_EFLAG_SET_PRIMARY_REF_NONE (1 << 30)
167 /*!\brief AVx encoder control functions
169 * This set of macros define the control functions available for AVx
171 * The range of encode control ID is 7-229(max).
173 * \sa #aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id, ...)
175 enum aome_enc_control_id
{
176 /*!\brief Codec control function to set which reference frame encoder can use,
179 AOME_USE_REFERENCE
= 7,
181 /*!\brief Codec control function to pass an ROI map to encoder, aom_roi_map_t*
184 AOME_SET_ROI_MAP
= 8,
186 /*!\brief Codec control function to pass an Active map to encoder,
187 * aom_active_map_t* parameter.
189 AOME_SET_ACTIVEMAP
= 9,
191 /* NOTE: enum 10 unused */
193 /*!\brief Codec control function to set encoder scaling mode,
194 * aom_scaling_mode_t* parameter.
196 AOME_SET_SCALEMODE
= 11,
198 /*!\brief Codec control function to set encoder spatial layer id, unsigned int
201 AOME_SET_SPATIAL_LAYER_ID
= 12,
203 /*!\brief Codec control function to set encoder internal speed settings,
206 * Changes in this value influences the complexity of algorithms used in
207 * encoding process, values greater than 0 will increase encoder speed at
208 * the expense of quality.
210 * Valid range: 0..9. 0 runs the slowest, and 9 runs the fastest;
211 * quality improves as speed decreases (since more compression
212 * possibilities are explored).
214 AOME_SET_CPUUSED
= 13,
216 /*!\brief Codec control function to enable automatic set and use alf frames,
217 * unsigned int parameter
220 * - 1 = enable (default)
222 AOME_SET_ENABLEAUTOALTREF
= 14,
224 /* NOTE: enum 15 unused */
226 /*!\brief Codec control function to set the sharpness parameter,
227 * unsigned int parameter.
229 * This parameter controls the level at which rate-distortion optimization of
230 * transform coefficients favours sharpness in the block.
232 * Valid range: 0..7. The default is 0. Values 1-7 will avoid eob and skip
233 * block optimization and will change rdmult in favour of block sharpness.
235 AOME_SET_SHARPNESS
= AOME_SET_ENABLEAUTOALTREF
+ 2, // 16
237 /*!\brief Codec control function to set the threshold for MBs treated static,
238 * unsigned int parameter
240 AOME_SET_STATIC_THRESHOLD
= 17,
242 /* NOTE: enum 18 unused */
244 /*!\brief Codec control function to get last quantizer chosen by the encoder,
247 * Return value uses internal quantizer scale defined by the codec.
249 AOME_GET_LAST_QUANTIZER
= AOME_SET_STATIC_THRESHOLD
+ 2, // 19
251 /*!\brief Codec control function to get last quantizer chosen by the encoder,
254 * Return value uses the 0..63 scale as used by the rc_*_quantizer config
257 AOME_GET_LAST_QUANTIZER_64
= 20,
259 /*!\brief Codec control function to set the max no of frames to create arf,
260 * unsigned int parameter
262 AOME_SET_ARNR_MAXFRAMES
= 21,
264 /*!\brief Codec control function to set the filter strength for the arf,
265 * unsigned int parameter
267 AOME_SET_ARNR_STRENGTH
= 22,
269 /* NOTE: enum 23 unused */
271 /*!\brief Codec control function to set visual tuning, aom_tune_metric (int)
274 * The default is AOM_TUNE_PSNR.
276 AOME_SET_TUNING
= AOME_SET_ARNR_STRENGTH
+ 2, // 24
278 /*!\brief Codec control function to set constrained / constant quality level,
279 * unsigned int parameter
283 * \attention For this value to be used aom_codec_enc_cfg_t::rc_end_usage
284 * must be set to #AOM_CQ or #AOM_Q.
286 AOME_SET_CQ_LEVEL
= 25,
288 /*!\brief Codec control function to set max data rate for intra frames,
289 * unsigned int parameter
291 * This value controls additional clamping on the maximum size of a
292 * keyframe. It is expressed as a percentage of the average
293 * per-frame bitrate, with the special (and default) value 0 meaning
294 * unlimited, or no additional clamping beyond the codec's built-in
297 * For example, to allocate no more than 4.5 frames worth of bitrate
298 * to a keyframe, set this to 450.
300 AOME_SET_MAX_INTRA_BITRATE_PCT
= 26,
302 /*!\brief Codec control function to set number of spatial layers, int
305 AOME_SET_NUMBER_SPATIAL_LAYERS
= 27,
307 /*!\brief Codec control function to set max data rate for inter frames,
308 * unsigned int parameter
310 * This value controls additional clamping on the maximum size of an
311 * inter frame. It is expressed as a percentage of the average
312 * per-frame bitrate, with the special (and default) value 0 meaning
313 * unlimited, or no additional clamping beyond the codec's built-in
316 * For example, to allow no more than 4.5 frames worth of bitrate
317 * to an inter frame, set this to 450.
319 AV1E_SET_MAX_INTER_BITRATE_PCT
= AOME_SET_MAX_INTRA_BITRATE_PCT
+ 2, // 28
321 /*!\brief Boost percentage for Golden Frame in CBR mode, unsigned int
324 * This value controls the amount of boost given to Golden Frame in
325 * CBR mode. It is expressed as a percentage of the average
326 * per-frame bitrate, with the special (and default) value 0 meaning
327 * the feature is off, i.e., no golden frame boost in CBR mode and
328 * average bitrate target is used.
330 * For example, to allow 100% more bits, i.e, 2X, in a golden frame
331 * than average frame, set this to 100.
333 AV1E_SET_GF_CBR_BOOST_PCT
= 29,
335 /* NOTE: enum 30 unused */
337 /*!\brief Codec control function to set lossless encoding mode, unsigned int
340 * AV1 can operate in lossless encoding mode, in which the bitstream
341 * produced will be able to decode and reconstruct a perfect copy of
344 * - 0 = normal coding mode, may be lossy (default)
345 * - 1 = lossless coding mode
347 AV1E_SET_LOSSLESS
= AV1E_SET_GF_CBR_BOOST_PCT
+ 2, // 31
349 /*!\brief Codec control function to enable the row based multi-threading
350 * of the encoder, unsigned int parameter
353 * - 1 = enable (default)
355 AV1E_SET_ROW_MT
= 32,
357 /*!\brief Codec control function to set number of tile columns. unsigned int
360 * In encoding and decoding, AV1 allows an input image frame be partitioned
361 * into separate vertical tile columns, which can be encoded or decoded
362 * independently. This enables easy implementation of parallel encoding and
363 * decoding. The parameter for this control describes the number of tile
364 * columns (in log2 units), which has a valid range of [0, 6]:
370 n = 2**n tile columns
372 * By default, the value is 0, i.e. one single column tile for entire image.
374 AV1E_SET_TILE_COLUMNS
= 33,
376 /*!\brief Codec control function to set number of tile rows, unsigned int
379 * In encoding and decoding, AV1 allows an input image frame be partitioned
380 * into separate horizontal tile rows, which can be encoded or decoded
381 * independently. The parameter for this control describes the number of tile
382 * rows (in log2 units), which has a valid range of [0, 6]:
390 * By default, the value is 0, i.e. one single row tile for entire image.
392 AV1E_SET_TILE_ROWS
= 34,
394 /*!\brief Codec control function to enable RDO modulated by frame temporal
395 * dependency, unsigned int parameter
398 * - 1 = enable (default)
400 * \note Excluded from CONFIG_REALTIME_ONLY build.
402 AV1E_SET_ENABLE_TPL_MODEL
= 35,
404 /*!\brief Codec control function to enable temporal filtering on key frame,
405 * unsigned int parameter
408 * - 1 = enable without overlay (default)
409 * - 2 = enable with overlay
411 AV1E_SET_ENABLE_KEYFRAME_FILTERING
= 36,
413 /*!\brief Codec control function to enable frame parallel decoding feature,
414 * unsigned int parameter
416 * AV1 has a bitstream feature to reduce decoding dependency between frames
417 * by turning off backward update of probability context used in encoding
418 * and decoding. This allows staged parallel processing of more than one
419 * video frames in the decoder. This control function provides a means to
420 * turn this feature on or off for bitstreams produced by encoder.
422 * - 0 = disable (default)
425 AV1E_SET_FRAME_PARALLEL_DECODING
= 37,
427 /*!\brief Codec control function to enable error_resilient_mode, int parameter
429 * AV1 has a bitstream feature to guarantee parseability of a frame
430 * by turning on the error_resilient_decoding mode, even though the
431 * reference buffers are unreliable or not received.
433 * - 0 = disable (default)
436 AV1E_SET_ERROR_RESILIENT_MODE
= 38,
438 /*!\brief Codec control function to enable s_frame_mode, int parameter
440 * AV1 has a bitstream feature to designate certain frames as S-frames,
441 * from where we can switch to a different stream,
442 * even though the reference buffers may not be exactly identical.
444 * - 0 = disable (default)
447 AV1E_SET_S_FRAME_MODE
= 39,
449 /*!\brief Codec control function to set adaptive quantization mode, unsigned
452 * AV1 has a segment based feature that allows encoder to adaptively change
453 * quantization parameter for each segment within a frame to improve the
454 * subjective quality. This control makes encoder operate in one of the
455 * several AQ modes supported.
457 * - 0 = disable (default)
460 * - 3 = cyclic refresh
462 AV1E_SET_AQ_MODE
= 40,
464 /*!\brief Codec control function to enable/disable periodic Q boost, unsigned
467 * One AV1 encoder speed feature is to enable quality boost by lowering
468 * frame level Q periodically. This control function provides a means to
469 * turn on/off this feature.
471 * - 0 = disable (default)
474 AV1E_SET_FRAME_PERIODIC_BOOST
= 41,
476 /*!\brief Codec control function to set noise sensitivity, unsigned int
479 * - 0 = disable (default)
480 * - 1 = enable (Y only)
482 AV1E_SET_NOISE_SENSITIVITY
= 42,
484 /*!\brief Codec control function to set content type, aom_tune_content
487 * - AOM_CONTENT_DEFAULT = Regular video content (default)
488 * - AOM_CONTENT_SCREEN = Screen capture content
489 * - AOM_CONTENT_FILM = Film content
491 AV1E_SET_TUNE_CONTENT
= 43,
493 /*!\brief Codec control function to set CDF update mode, unsigned int
497 * - 1: update on every frame (default)
498 * - 2: selectively update
500 AV1E_SET_CDF_UPDATE_MODE
= 44,
502 /*!\brief Codec control function to set color space info, int parameter
504 * - 0 = For future use
506 * - 2 = Unspecified (default)
507 * - 3 = For future use
508 * - 4 = BT.470 System M (historical)
509 * - 5 = BT.470 System B, G (historical)
512 * - 8 = Generic film (color filters using illuminant C)
513 * - 9 = BT.2020, BT.2100
514 * - 10 = SMPTE 428 (CIE 1921 XYZ)
515 * - 11 = SMPTE RP 431-2
516 * - 12 = SMPTE EG 432-1
517 * - 13..21 = For future use
518 * - 22 = EBU Tech. 3213-E
519 * - 23 = For future use
521 AV1E_SET_COLOR_PRIMARIES
= 45,
523 /*!\brief Codec control function to set transfer function info, int parameter
525 * - 0 = For future use
527 * - 2 = Unspecified (default)
528 * - 3 = For future use
529 * - 4 = BT.470 System M (historical)
530 * - 5 = BT.470 System B, G (historical)
534 * - 9 = Logarithmic (100 : 1 range)
535 * - 10 = Logarithmic (100 * Sqrt(10) : 1 range)
536 * - 11 = IEC 61966-2-4
538 * - 13 = sRGB or sYCC
539 * - 14 = BT.2020 10-bit systems
540 * - 15 = BT.2020 12-bit systems
541 * - 16 = SMPTE ST 2084, ITU BT.2100 PQ
542 * - 17 = SMPTE ST 428
543 * - 18 = BT.2100 HLG, ARIB STD-B67
544 * - 19 = For future use
546 AV1E_SET_TRANSFER_CHARACTERISTICS
= 46,
548 /*!\brief Codec control function to set transfer function info, int parameter
550 * - 0 = Identity matrix
552 * - 2 = Unspecified (default)
553 * - 3 = For future use
554 * - 4 = US FCC 73.628
555 * - 5 = BT.470 System B, G (historical)
559 * - 9 = BT.2020 non-constant luminance, BT.2100 YCbCr
560 * - 10 = BT.2020 constant luminance
561 * - 11 = SMPTE ST 2085 YDzDx
562 * - 12 = Chromaticity-derived non-constant luminance
563 * - 13 = Chromaticity-derived constant luminance
564 * - 14 = BT.2100 ICtCp
565 * - 15 = For future use
567 AV1E_SET_MATRIX_COEFFICIENTS
= 47,
569 /*!\brief Codec control function to set chroma 4:2:0 sample position info,
570 * aom_chroma_sample_position_t parameter
572 * AOM_CSP_UNKNOWN is default
574 AV1E_SET_CHROMA_SAMPLE_POSITION
= 48,
576 /*!\brief Codec control function to set minimum interval between GF/ARF
577 * frames, unsigned int parameter
579 * By default the value is set as 4.
581 AV1E_SET_MIN_GF_INTERVAL
= 49,
583 /*!\brief Codec control function to set minimum interval between GF/ARF
584 * frames, unsigned int parameter
586 * By default the value is set as 16.
588 AV1E_SET_MAX_GF_INTERVAL
= 50,
590 /*!\brief Codec control function to get an active map back from the encoder,
591 aom_active_map_t* parameter
593 AV1E_GET_ACTIVEMAP
= 51,
595 /*!\brief Codec control function to set color range bit, int parameter
597 * - 0 = Limited range, 16..235 or HBD equivalent (default)
598 * - 1 = Full range, 0..255 or HBD equivalent
600 AV1E_SET_COLOR_RANGE
= 52,
602 /*!\brief Codec control function to set intended rendering image size,
603 * int32_t[2] parameter
605 * By default, this is identical to the image size in pixels.
607 AV1E_SET_RENDER_SIZE
= 53,
609 /*!\brief Control to set target sequence level index for a certain operating
610 * point(OP), int parameter
611 * Possible values are in the form of "ABxy"(pad leading zeros if less than
614 * - xy: Target level index for the OP. Can be values 0~23(corresponding to
615 * level 2.0 ~ 7.3) or 24(keep level stats only for level monitoring) or
616 * 31(maximum level parameter, no level-based constraints).
619 * - "0" means target level index 0 for the 0th OP;
620 * - "111" means target level index 11 for the 1st OP;
621 * - "1021" means target level index 21 for the 10th OP.
623 * If the target level is not specified for an OP, the maximum level parameter
624 * of 31 is used as default.
626 AV1E_SET_TARGET_SEQ_LEVEL_IDX
= 54,
628 /*!\brief Codec control function to get sequence level index for each
629 * operating point. int* parameter. There can be at most 32 operating points.
630 * The results will be written into a provided integer array of sufficient
633 AV1E_GET_SEQ_LEVEL_IDX
= 55,
635 /*!\brief Codec control function to set intended superblock size, unsigned int
638 * By default, the superblock size is determined separately for each
639 * frame by the encoder.
641 AV1E_SET_SUPERBLOCK_SIZE
= 56,
643 /*!\brief Codec control function to enable automatic set and use of
644 * bwd-pred frames, unsigned int parameter
646 * - 0 = disable (default)
649 AOME_SET_ENABLEAUTOBWDREF
= 57,
651 /*!\brief Codec control function to encode with CDEF, unsigned int parameter
653 * CDEF is the constrained directional enhancement filter which is an
654 * in-loop filter aiming to remove coding artifacts
657 * - 1 = enable for all frames (default)
658 * - 2 = disable for non-reference frames
660 AV1E_SET_ENABLE_CDEF
= 58,
662 /*!\brief Codec control function to encode with Loop Restoration Filter,
663 * unsigned int parameter
666 * - 1 = enable (default)
668 * \note Excluded from CONFIG_REALTIME_ONLY build.
670 AV1E_SET_ENABLE_RESTORATION
= 59,
672 /*!\brief Codec control function to force video mode, unsigned int parameter
674 * - 0 = do not force video mode (default)
675 * - 1 = force video mode even for a single frame
677 AV1E_SET_FORCE_VIDEO_MODE
= 60,
679 /*!\brief Codec control function to predict with OBMC mode, unsigned int
683 * - 1 = enable (default)
685 * \note Excluded from CONFIG_REALTIME_ONLY build.
687 AV1E_SET_ENABLE_OBMC
= 61,
689 /*!\brief Codec control function to encode without trellis quantization,
690 * unsigned int parameter
692 * - 0 = apply trellis quantization (default)
693 * - 1 = do not apply trellis quantization
694 * - 2 = disable trellis quantization in rd search
695 * - 3 = disable trellis quantization in estimate yrd
697 AV1E_SET_DISABLE_TRELLIS_QUANT
= 62,
699 /*!\brief Codec control function to encode with quantisation matrices,
700 * unsigned int parameter
702 * AOM can operate with default quantisation matrices dependent on
703 * quantisation level and block type.
705 * - 0 = disable (default)
708 AV1E_SET_ENABLE_QM
= 63,
710 /*!\brief Codec control function to set the min quant matrix flatness,
711 * unsigned int parameter
713 * AOM can operate with different ranges of quantisation matrices.
714 * As quantisation levels increase, the matrices get flatter. This
715 * control sets the minimum level of flatness from which the matrices
718 * By default, the encoder sets this minimum at half the available
721 AV1E_SET_QM_MIN
= 64,
723 /*!\brief Codec control function to set the max quant matrix flatness,
724 * unsigned int parameter
726 * AOM can operate with different ranges of quantisation matrices.
727 * As quantisation levels increase, the matrices get flatter. This
728 * control sets the maximum level of flatness possible.
730 * By default, the encoder sets this maximum at the top of the
733 AV1E_SET_QM_MAX
= 65,
735 /*!\brief Codec control function to set the min quant matrix flatness,
736 * unsigned int parameter
738 * AOM can operate with different ranges of quantisation matrices.
739 * As quantisation levels increase, the matrices get flatter. This
740 * control sets the flatness for luma (Y).
742 * By default, the encoder sets this minimum at half the available
747 /*!\brief Codec control function to set the min quant matrix flatness,
748 * unsigned int parameter
750 * AOM can operate with different ranges of quantisation matrices.
751 * As quantisation levels increase, the matrices get flatter. This
752 * control sets the flatness for chroma (U).
754 * By default, the encoder sets this minimum at half the available
759 /*!\brief Codec control function to set the min quant matrix flatness,
760 * unsigned int parameter
762 * AOM can operate with different ranges of quantisation matrices.
763 * As quantisation levels increase, the matrices get flatter. This
764 * control sets the flatness for chrome (V).
766 * By default, the encoder sets this minimum at half the available
771 /* NOTE: enum 69 unused */
773 /*!\brief Codec control function to set a maximum number of tile groups,
774 * unsigned int parameter
776 * This will set the maximum number of tile groups. This will be
777 * overridden if an MTU size is set. The default value is 1.
779 AV1E_SET_NUM_TG
= 70,
781 /*!\brief Codec control function to set an MTU size for a tile group, unsigned
784 * This will set the maximum number of bytes in a tile group. This can be
785 * exceeded only if a single tile is larger than this amount.
787 * By default, the value is 0, in which case a fixed number of tile groups
792 /* NOTE: enum 72 unused */
794 /*!\brief Codec control function to enable/disable rectangular partitions, int
798 * - 1 = enable (default)
800 AV1E_SET_ENABLE_RECT_PARTITIONS
= 73,
802 /*!\brief Codec control function to enable/disable AB partitions, int
806 * - 1 = enable (default)
808 AV1E_SET_ENABLE_AB_PARTITIONS
= 74,
810 /*!\brief Codec control function to enable/disable 1:4 and 4:1 partitions, int
814 * - 1 = enable (default)
816 AV1E_SET_ENABLE_1TO4_PARTITIONS
= 75,
818 /*!\brief Codec control function to set min partition size, int parameter
820 * min_partition_size is applied to both width and height of the partition.
821 * i.e, both width and height of a partition can not be smaller than
822 * the min_partition_size, except the partition at the picture boundary.
824 * Valid values: [4, 8, 16, 32, 64, 128]. The default value is 4 for
827 AV1E_SET_MIN_PARTITION_SIZE
= 76,
829 /*!\brief Codec control function to set max partition size, int parameter
831 * max_partition_size is applied to both width and height of the partition.
832 * i.e, both width and height of a partition can not be larger than
833 * the max_partition_size.
835 * Valid values:[4, 8, 16, 32, 64, 128] The default value is 128 for
838 AV1E_SET_MAX_PARTITION_SIZE
= 77,
840 /*!\brief Codec control function to turn on / off intra edge filter
841 * at sequence level, int parameter
844 * - 1 = enable (default)
846 AV1E_SET_ENABLE_INTRA_EDGE_FILTER
= 78,
848 /*!\brief Codec control function to turn on / off frame order hint (int
849 * parameter). Affects: joint compound mode, motion field motion vector,
850 * ref frame sign bias
853 * - 1 = enable (default)
855 AV1E_SET_ENABLE_ORDER_HINT
= 79,
857 /*!\brief Codec control function to turn on / off 64-length transforms, int
860 * This will enable or disable usage of length 64 transforms in any
864 * - 1 = enable (default)
866 AV1E_SET_ENABLE_TX64
= 80,
868 /*!\brief Codec control function to turn on / off flip and identity
869 * transforms, int parameter
871 * This will enable or disable usage of flip and identity transform
872 * types in any direction. If enabled, this includes:
875 * - FLIPADST_FLIPADST
888 * - 1 = enable (default)
890 AV1E_SET_ENABLE_FLIP_IDTX
= 81,
892 /*!\brief Codec control function to turn on / off rectangular transforms, int
895 * This will enable or disable usage of rectangular transforms. NOTE:
896 * Rectangular transforms only enabled when corresponding rectangular
900 * - 1 = enable (default)
902 AV1E_SET_ENABLE_RECT_TX
= 82,
904 /*!\brief Codec control function to turn on / off dist-wtd compound mode
905 * at sequence level, int parameter
907 * This will enable or disable distance-weighted compound mode.
908 * \attention If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced
912 * - 1 = enable (default)
914 AV1E_SET_ENABLE_DIST_WTD_COMP
= 83,
916 /*!\brief Codec control function to turn on / off ref frame mvs (mfmv) usage
917 * at sequence level, int parameter
919 * \attention If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced
923 * - 1 = enable (default)
925 AV1E_SET_ENABLE_REF_FRAME_MVS
= 84,
927 /*!\brief Codec control function to set temporal mv prediction
928 * enabling/disabling at frame level, int parameter
930 * \attention If AV1E_SET_ENABLE_REF_FRAME_MVS is 0, then this flag is
934 * - 1 = enable (default)
936 AV1E_SET_ALLOW_REF_FRAME_MVS
= 85,
938 /*!\brief Codec control function to turn on / off dual interpolation filter
939 * for a sequence, int parameter
944 AV1E_SET_ENABLE_DUAL_FILTER
= 86,
946 /*!\brief Codec control function to turn on / off delta quantization in chroma
947 * planes for a sequence, int parameter
949 * - 0 = disable (default)
952 AV1E_SET_ENABLE_CHROMA_DELTAQ
= 87,
954 /*!\brief Codec control function to turn on / off masked compound usage
955 * (wedge and diff-wtd compound modes) for a sequence, int parameter
958 * - 1 = enable (default)
960 AV1E_SET_ENABLE_MASKED_COMP
= 88,
962 /*!\brief Codec control function to turn on / off one sided compound usage
963 * for a sequence, int parameter
966 * - 1 = enable (default)
968 AV1E_SET_ENABLE_ONESIDED_COMP
= 89,
970 /*!\brief Codec control function to turn on / off interintra compound
971 * for a sequence, int parameter
974 * - 1 = enable (default)
976 AV1E_SET_ENABLE_INTERINTRA_COMP
= 90,
978 /*!\brief Codec control function to turn on / off smooth inter-intra
979 * mode for a sequence, int parameter
982 * - 1 = enable (default)
984 AV1E_SET_ENABLE_SMOOTH_INTERINTRA
= 91,
986 /*!\brief Codec control function to turn on / off difference weighted
987 * compound, int parameter
990 * - 1 = enable (default)
992 AV1E_SET_ENABLE_DIFF_WTD_COMP
= 92,
994 /*!\brief Codec control function to turn on / off interinter wedge
995 * compound, int parameter
998 * - 1 = enable (default)
1000 AV1E_SET_ENABLE_INTERINTER_WEDGE
= 93,
1002 /*!\brief Codec control function to turn on / off interintra wedge
1003 * compound, int parameter
1006 * - 1 = enable (default)
1008 AV1E_SET_ENABLE_INTERINTRA_WEDGE
= 94,
1010 /*!\brief Codec control function to turn on / off global motion usage
1011 * for a sequence, int parameter
1014 * - 1 = enable (default)
1016 * \note Excluded from CONFIG_REALTIME_ONLY build.
1018 AV1E_SET_ENABLE_GLOBAL_MOTION
= 95,
1020 /*!\brief Codec control function to turn on / off warped motion usage
1021 * at sequence level, int parameter
1024 * - 1 = enable (default)
1026 * \note Excluded from CONFIG_REALTIME_ONLY build.
1028 AV1E_SET_ENABLE_WARPED_MOTION
= 96,
1030 /*!\brief Codec control function to turn on / off warped motion usage
1031 * at frame level, int parameter
1033 * \attention If AV1E_SET_ENABLE_WARPED_MOTION is 0, then this flag is
1037 * - 1 = enable (default)
1039 * \note Excluded from CONFIG_REALTIME_ONLY build.
1041 AV1E_SET_ALLOW_WARPED_MOTION
= 97,
1043 /*!\brief Codec control function to turn on / off filter intra usage at
1044 * sequence level, int parameter
1047 * - 1 = enable (default)
1049 AV1E_SET_ENABLE_FILTER_INTRA
= 98,
1051 /*!\brief Codec control function to turn on / off smooth intra modes usage,
1054 * This will enable or disable usage of smooth, smooth_h and smooth_v intra
1058 * - 1 = enable (default)
1060 AV1E_SET_ENABLE_SMOOTH_INTRA
= 99,
1062 /*!\brief Codec control function to turn on / off Paeth intra mode usage, int
1066 * - 1 = enable (default)
1068 AV1E_SET_ENABLE_PAETH_INTRA
= 100,
1070 /*!\brief Codec control function to turn on / off CFL uv intra mode usage, int
1073 * This will enable or disable usage of chroma-from-luma intra mode.
1076 * - 1 = enable (default)
1078 AV1E_SET_ENABLE_CFL_INTRA
= 101,
1080 /*!\brief Codec control function to turn on / off frame superresolution, int
1084 * - 1 = enable (default)
1086 AV1E_SET_ENABLE_SUPERRES
= 102,
1088 /*!\brief Codec control function to turn on / off overlay frames for
1089 * filtered ALTREF frames, int parameter
1091 * This will enable or disable coding of overlay frames for filtered ALTREF
1092 * frames. When set to 0, overlay frames are not used but show existing frame
1093 * is used to display the filtered ALTREF frame as is. As a result the decoded
1094 * frame rate remains the same as the display frame rate. The default is 1.
1096 AV1E_SET_ENABLE_OVERLAY
= 103,
1098 /*!\brief Codec control function to turn on/off palette mode, int parameter */
1099 AV1E_SET_ENABLE_PALETTE
= 104,
1101 /*!\brief Codec control function to turn on/off intra block copy mode, int
1103 AV1E_SET_ENABLE_INTRABC
= 105,
1105 /*!\brief Codec control function to turn on/off intra angle delta, int
1107 AV1E_SET_ENABLE_ANGLE_DELTA
= 106,
1109 /*!\brief Codec control function to set the delta q mode, unsigned int
1112 * AV1 supports a delta q mode feature, that allows modulating q per
1115 * - 0 = deltaq signaling off
1116 * - 1 = use modulation to maximize objective quality (default)
1117 * - 2 = use modulation for local test
1118 * - 3 = use modulation for key frame perceptual quality optimization
1119 * - 4 = use modulation for user rating based perceptual quality optimization
1121 AV1E_SET_DELTAQ_MODE
= 107,
1123 /*!\brief Codec control function to turn on/off loopfilter modulation
1124 * when delta q modulation is enabled, unsigned int parameter.
1126 * \attention AV1 only supports loopfilter modulation when delta q
1127 * modulation is enabled as well.
1129 AV1E_SET_DELTALF_MODE
= 108,
1131 /*!\brief Codec control function to set the single tile decoding mode,
1132 * unsigned int parameter
1134 * \attention Only applicable if large scale tiling is on.
1136 * - 0 = single tile decoding is off
1137 * - 1 = single tile decoding is on (default)
1139 AV1E_SET_SINGLE_TILE_DECODING
= 109,
1141 /*!\brief Codec control function to enable the extreme motion vector unit
1142 * test, unsigned int parameter
1145 * - 1 = MAX_EXTREME_MV
1146 * - 2 = MIN_EXTREME_MV
1148 * \note This is only used in motion vector unit test.
1150 AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST
= 110,
1152 /*!\brief Codec control function to signal picture timing info in the
1153 * bitstream, aom_timing_info_type_t parameter. Default is
1154 * AOM_TIMING_UNSPECIFIED.
1156 AV1E_SET_TIMING_INFO_TYPE
= 111,
1158 /*!\brief Codec control function to add film grain parameters (one of several
1159 * preset types) info in the bitstream, int parameter
1161 Valid range: 0..16, 0 is unknown, 1..16 are test vectors
1163 AV1E_SET_FILM_GRAIN_TEST_VECTOR
= 112,
1165 /*!\brief Codec control function to set the path to the film grain parameters,
1166 * const char* parameter
1168 AV1E_SET_FILM_GRAIN_TABLE
= 113,
1170 /*!\brief Sets the noise level, int parameter */
1171 AV1E_SET_DENOISE_NOISE_LEVEL
= 114,
1173 /*!\brief Sets the denoisers block size, unsigned int parameter */
1174 AV1E_SET_DENOISE_BLOCK_SIZE
= 115,
1176 /*!\brief Sets the chroma subsampling x value, unsigned int parameter */
1177 AV1E_SET_CHROMA_SUBSAMPLING_X
= 116,
1179 /*!\brief Sets the chroma subsampling y value, unsigned int parameter */
1180 AV1E_SET_CHROMA_SUBSAMPLING_Y
= 117,
1182 /*!\brief Control to use a reduced tx type set, int parameter */
1183 AV1E_SET_REDUCED_TX_TYPE_SET
= 118,
1185 /*!\brief Control to use dct only for intra modes, int parameter */
1186 AV1E_SET_INTRA_DCT_ONLY
= 119,
1188 /*!\brief Control to use dct only for inter modes, int parameter */
1189 AV1E_SET_INTER_DCT_ONLY
= 120,
1191 /*!\brief Control to use default tx type only for intra modes, int parameter
1193 AV1E_SET_INTRA_DEFAULT_TX_ONLY
= 121,
1195 /*!\brief Control to use adaptive quantize_b, int parameter */
1196 AV1E_SET_QUANT_B_ADAPT
= 122,
1198 /*!\brief Control to select maximum height for the GF group pyramid structure,
1199 * unsigned int parameter
1203 AV1E_SET_GF_MAX_PYRAMID_HEIGHT
= 123,
1205 /*!\brief Control to select maximum reference frames allowed per frame, int
1210 AV1E_SET_MAX_REFERENCE_FRAMES
= 124,
1212 /*!\brief Control to use reduced set of single and compound references, int
1214 AV1E_SET_REDUCED_REFERENCE_SET
= 125,
1216 /*!\brief Control to set frequency of the cost updates for coefficients,
1217 * unsigned int parameter
1219 * - 0 = update at SB level (default)
1220 * - 1 = update at SB row level in tile
1221 * - 2 = update at tile level
1224 AV1E_SET_COEFF_COST_UPD_FREQ
= 126,
1226 /*!\brief Control to set frequency of the cost updates for mode, unsigned int
1229 * - 0 = update at SB level (default)
1230 * - 1 = update at SB row level in tile
1231 * - 2 = update at tile level
1234 AV1E_SET_MODE_COST_UPD_FREQ
= 127,
1236 /*!\brief Control to set frequency of the cost updates for motion vectors,
1237 * unsigned int parameter
1239 * - 0 = update at SB level (default)
1240 * - 1 = update at SB row level in tile
1241 * - 2 = update at tile level
1244 AV1E_SET_MV_COST_UPD_FREQ
= 128,
1246 /*!\brief Control to set bit mask that specifies which tier each of the 32
1247 * possible operating points conforms to, unsigned int parameter
1249 * - 0 = main tier (default)
1252 AV1E_SET_TIER_MASK
= 129,
1254 /*!\brief Control to set minimum compression ratio, unsigned int parameter
1255 * Take integer values. If non-zero, encoder will try to keep the compression
1256 * ratio of each frame to be higher than the given value divided by 100.
1257 * E.g. 850 means minimum compression ratio of 8.5.
1259 AV1E_SET_MIN_CR
= 130,
1261 /* NOTE: enums 145-149 unused */
1263 /*!\brief Codec control function to set the layer id, aom_svc_layer_id_t*
1266 AV1E_SET_SVC_LAYER_ID
= 131,
1268 /*!\brief Codec control function to set SVC paramaeters, aom_svc_params_t*
1271 AV1E_SET_SVC_PARAMS
= 132,
1273 /*!\brief Codec control function to set reference frame config:
1274 * the ref_idx and the refresh flags for each buffer slot.
1275 * aom_svc_ref_frame_config_t* parameter
1277 AV1E_SET_SVC_REF_FRAME_CONFIG
= 133,
1279 /*!\brief Codec control function to set the path to the VMAF model used when
1280 * tuning the encoder for VMAF, const char* parameter
1282 AV1E_SET_VMAF_MODEL_PATH
= 134,
1284 /*!\brief Codec control function to enable EXT_TILE_DEBUG in AV1 encoder,
1285 * unsigned int parameter
1287 * - 0 = disable (default)
1290 * \note This is only used in lightfield example test.
1292 AV1E_ENABLE_EXT_TILE_DEBUG
= 135,
1294 /*!\brief Codec control function to enable the superblock multipass unit test
1295 * in AV1 to ensure that the encoder does not leak state between different
1296 * passes. unsigned int parameter.
1298 * - 0 = disable (default)
1301 * \note This is only used in sb_multipass unit test.
1303 AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST
= 136,
1305 /*!\brief Control to select minimum height for the GF group pyramid structure,
1306 * unsigned int parameter
1308 * Valid values: 0..5
1310 AV1E_SET_GF_MIN_PYRAMID_HEIGHT
= 137,
1312 /*!\brief Control to set average complexity of the corpus in the case of
1313 * single pass vbr based on LAP, unsigned int parameter
1315 AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
= 138,
1317 /*!\brief Control to get baseline gf interval
1319 AV1E_GET_BASELINE_GF_INTERVAL
= 139,
1321 /*\brief Control to set encoding the denoised frame from denoise-noise-level
1323 * - 0 = disabled/encode the original frame
1324 * - 1 = enabled/encode the denoised frame (default)
1326 AV1E_SET_ENABLE_DNL_DENOISING
= 140,
1328 /*!\brief Codec control function to turn on / off D45 to D203 intra mode
1329 * usage, int parameter
1331 * This will enable or disable usage of D45 to D203 intra modes, which are a
1332 * subset of directional modes. This control has no effect if directional
1333 * modes are disabled (AV1E_SET_ENABLE_DIRECTIONAL_INTRA set to 0).
1336 * - 1 = enable (default)
1338 AV1E_SET_ENABLE_DIAGONAL_INTRA
= 141,
1340 /*!\brief Control to set frequency of the cost updates for intrabc motion
1341 * vectors, unsigned int parameter
1343 * - 0 = update at SB level (default)
1344 * - 1 = update at SB row level in tile
1345 * - 2 = update at tile level
1348 AV1E_SET_DV_COST_UPD_FREQ
= 142,
1350 /*!\brief Codec control to set the path for partition stats read and write.
1351 * const char * parameter.
1353 AV1E_SET_PARTITION_INFO_PATH
= 143,
1355 /*!\brief Codec control to use an external partition model
1356 * A set of callback functions is passed through this control
1357 * to let the encoder encode with given partitions.
1359 AV1E_SET_EXTERNAL_PARTITION
= 144,
1361 /*!\brief Codec control function to turn on / off directional intra mode
1362 * usage, int parameter
1365 * - 1 = enable (default)
1367 AV1E_SET_ENABLE_DIRECTIONAL_INTRA
= 145,
1369 /*!\brief Control to turn on / off transform size search.
1371 * - 0 = disable, transforms always have the largest possible size
1372 * - 1 = enable, search for the best transform size for each block (default)
1374 AV1E_SET_ENABLE_TX_SIZE_SEARCH
= 146,
1376 /*!\brief Codec control function to set reference frame compound prediction.
1377 * aom_svc_ref_frame_comp_pred_t* parameter
1379 AV1E_SET_SVC_REF_FRAME_COMP_PRED
= 147,
1381 /*!\brief Set --deltaq-mode strength.
1383 * Valid range: [0, 1000]
1385 AV1E_SET_DELTAQ_STRENGTH
= 148,
1387 /*!\brief Codec control to control loop filter
1389 * - 0 = Loop filter is disabled for all frames
1390 * - 1 = Loop filter is enabled for all frames
1391 * - 2 = Loop filter is disabled for non-reference frames
1392 * - 3 = Loop filter is disabled for the frames with low motion
1394 AV1E_SET_LOOPFILTER_CONTROL
= 149,
1396 /*!\brief Codec control function to get the loopfilter chosen by the encoder,
1399 AOME_GET_LOOPFILTER_LEVEL
= 150,
1401 /*!\brief Codec control to automatically turn off several intra coding tools
1402 * - 0 = do not use the feature
1403 * - 1 = enable the automatic decision to turn off several intra tools
1405 AV1E_SET_AUTO_INTRA_TOOLS_OFF
= 151,
1407 /*!\brief Codec control function to set flag for rate control used by external
1409 * - 1 = Enable rate control for external encoders. This will disable content
1410 * dependency in rate control and cyclic refresh.
1411 * - 0 = Default. Disable rate control for external encoders.
1413 AV1E_SET_RTC_EXTERNAL_RC
= 152,
1415 /*!\brief Codec control function to enable frame parallel multi-threading
1416 * of the encoder, unsigned int parameter
1418 * - 0 = disable (default)
1421 AV1E_SET_FP_MT
= 153,
1423 /*!\brief Codec control to enable actual frame parallel encode or
1424 * simulation of frame parallel encode in FPMT unit test, unsigned int
1427 * - 0 = simulate frame parallel encode
1428 * - 1 = actual frame parallel encode (default)
1430 * \note This is only used in FPMT unit test.
1432 AV1E_SET_FP_MT_UNIT_TEST
= 154,
1434 // Any new encoder control IDs should be added above.
1435 // Maximum allowed encoder control ID is 229.
1436 // No encoder control ID should be added below.
1439 /*!\brief aom 1-D scaling mode
1441 * This set of constants define 1-D aom scaling modes
1443 typedef enum aom_scaling_mode_1d
{
1453 /*!\brief Max number of segments
1455 * This is the limit of number of segments allowed within a frame.
1457 * Currently same as "MAX_SEGMENTS" in AV1, the maximum that AV1 supports.
1460 #define AOM_MAX_SEGMENTS 8
1462 /*!\brief aom region of interest map
1464 * These defines the data structures for the region of interest map
1466 * TODO(yaowu): create a unit test for ROI map related APIs
1469 typedef struct aom_roi_map
{
1470 /*! An id between 0 and 7 for each 8x8 region within a frame. */
1471 unsigned char *roi_map
;
1472 unsigned int rows
; /**< Number of rows. */
1473 unsigned int cols
; /**< Number of columns. */
1474 int delta_q
[AOM_MAX_SEGMENTS
]; /**< Quantizer deltas. */
1475 int delta_lf
[AOM_MAX_SEGMENTS
]; /**< Loop filter deltas. */
1476 /*! Static breakout threshold for each segment. */
1477 unsigned int static_threshold
[AOM_MAX_SEGMENTS
];
1480 /*!\brief aom active region map
1482 * These defines the data structures for active region map
1486 typedef struct aom_active_map
{
1487 /*!\brief specify an on (1) or off (0) each 16x16 region within a frame */
1488 unsigned char *active_map
;
1489 unsigned int rows
; /**< number of rows */
1490 unsigned int cols
; /**< number of cols */
1493 /*!\brief aom image scaling mode
1495 * This defines the data structure for image scaling mode
1498 typedef struct aom_scaling_mode
{
1499 AOM_SCALING_MODE h_scaling_mode
; /**< horizontal scaling mode */
1500 AOM_SCALING_MODE v_scaling_mode
; /**< vertical scaling mode */
1501 } aom_scaling_mode_t
;
1503 /*!brief AV1 encoder content type */
1505 AOM_CONTENT_DEFAULT
,
1511 /*!brief AV1 encoder timing info type signaling */
1513 AOM_TIMING_UNSPECIFIED
,
1515 AOM_TIMING_DEC_MODEL
1516 } aom_timing_info_type_t
;
1518 /*!\brief Model tuning parameters
1520 * Changes the encoder to tune for certain types of input material.
1526 /* NOTE: enums 2 and 3 unused */
1527 AOM_TUNE_VMAF_WITH_PREPROCESSING
= 4,
1528 AOM_TUNE_VMAF_WITHOUT_PREPROCESSING
= 5,
1529 AOM_TUNE_VMAF_MAX_GAIN
= 6,
1530 AOM_TUNE_VMAF_NEG_MAX_GAIN
= 7,
1531 AOM_TUNE_BUTTERAUGLI
= 8,
1534 #define AOM_MAX_LAYERS 32 /**< Max number of layers */
1535 #define AOM_MAX_SS_LAYERS 4 /**< Max number of spatial layers */
1536 #define AOM_MAX_TS_LAYERS 8 /**< Max number of temporal layers */
1538 /*!brief Struct for spatial and temporal layer ID */
1539 typedef struct aom_svc_layer_id
{
1540 int spatial_layer_id
; /**< Spatial layer ID */
1541 int temporal_layer_id
; /**< Temporal layer ID */
1542 } aom_svc_layer_id_t
;
1544 /*!brief Parameter type for SVC */
1545 typedef struct aom_svc_params
{
1546 int number_spatial_layers
; /**< Number of spatial layers */
1547 int number_temporal_layers
; /**< Number of temporal layers */
1548 int max_quantizers
[AOM_MAX_LAYERS
]; /**< Max Q for each layer */
1549 int min_quantizers
[AOM_MAX_LAYERS
]; /**< Min Q for each layer */
1550 int scaling_factor_num
[AOM_MAX_SS_LAYERS
]; /**< Scaling factor-numerator */
1551 int scaling_factor_den
[AOM_MAX_SS_LAYERS
]; /**< Scaling factor-denominator */
1552 /*! Target bitrate for each layer */
1553 int layer_target_bitrate
[AOM_MAX_LAYERS
];
1554 /*! Frame rate factor for each temporal layer */
1555 int framerate_factor
[AOM_MAX_TS_LAYERS
];
1558 /*!brief Parameters for setting ref frame config */
1559 typedef struct aom_svc_ref_frame_config
{
1560 // 7 references: LAST_FRAME (0), LAST2_FRAME(1), LAST3_FRAME(2),
1561 // GOLDEN_FRAME(3), BWDREF_FRAME(4), ALTREF2_FRAME(5), ALTREF_FRAME(6).
1562 int reference
[7]; /**< Reference flag for each of the 7 references. */
1563 /*! Buffer slot index for each of 7 references. */
1565 int refresh
[8]; /**< Refresh flag for each of the 8 slots. */
1566 } aom_svc_ref_frame_config_t
;
1568 /*!brief Parameters for setting ref frame compound prediction */
1569 typedef struct aom_svc_ref_frame_comp_pred
{
1570 // Use compound prediction for the ref_frame pairs GOLDEN_LAST (0),
1571 // LAST2_LAST (1), and ALTREF_LAST (2).
1572 int use_comp_pred
[3]; /**<Compound reference flag. */
1573 } aom_svc_ref_frame_comp_pred_t
;
1576 /*!\brief Encoder control function parameter type
1578 * Defines the data types that AOME/AV1E control functions take.
1580 * \note Additional common controls are defined in aom.h.
1582 * \note For each control ID "X", a macro-define of
1583 * AOM_CTRL_X is provided. It is used at compile time to determine
1584 * if the control ID is supported by the libaom library available,
1585 * when the libaom version cannot be controlled.
1587 AOM_CTRL_USE_TYPE(AOME_USE_REFERENCE
, int)
1588 #define AOM_CTRL_AOME_USE_REFERENCE
1590 AOM_CTRL_USE_TYPE(AOME_SET_ROI_MAP
, aom_roi_map_t
*)
1591 #define AOM_CTRL_AOME_SET_ROI_MAP
1593 AOM_CTRL_USE_TYPE(AOME_SET_ACTIVEMAP
, aom_active_map_t
*)
1594 #define AOM_CTRL_AOME_SET_ACTIVEMAP
1596 AOM_CTRL_USE_TYPE(AOME_SET_SCALEMODE
, aom_scaling_mode_t
*)
1597 #define AOM_CTRL_AOME_SET_SCALEMODE
1599 AOM_CTRL_USE_TYPE(AOME_SET_SPATIAL_LAYER_ID
, unsigned int)
1600 #define AOM_CTRL_AOME_SET_SPATIAL_LAYER_ID
1602 AOM_CTRL_USE_TYPE(AOME_SET_CPUUSED
, int)
1603 #define AOM_CTRL_AOME_SET_CPUUSED
1605 AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOALTREF
, unsigned int)
1606 #define AOM_CTRL_AOME_SET_ENABLEAUTOALTREF
1608 AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOBWDREF
, unsigned int)
1609 #define AOM_CTRL_AOME_SET_ENABLEAUTOBWDREF
1611 AOM_CTRL_USE_TYPE(AOME_SET_SHARPNESS
, unsigned int)
1612 #define AOM_CTRL_AOME_SET_SHARPNESS
1614 AOM_CTRL_USE_TYPE(AOME_SET_STATIC_THRESHOLD
, unsigned int)
1615 #define AOM_CTRL_AOME_SET_STATIC_THRESHOLD
1617 AOM_CTRL_USE_TYPE(AOME_SET_ARNR_MAXFRAMES
, unsigned int)
1618 #define AOM_CTRL_AOME_SET_ARNR_MAXFRAMES
1620 AOM_CTRL_USE_TYPE(AOME_SET_ARNR_STRENGTH
, unsigned int)
1621 #define AOM_CTRL_AOME_SET_ARNR_STRENGTH
1623 AOM_CTRL_USE_TYPE(AOME_SET_TUNING
, int) /* aom_tune_metric */
1624 #define AOM_CTRL_AOME_SET_TUNING
1626 AOM_CTRL_USE_TYPE(AOME_SET_CQ_LEVEL
, unsigned int)
1627 #define AOM_CTRL_AOME_SET_CQ_LEVEL
1629 AOM_CTRL_USE_TYPE(AV1E_SET_ROW_MT
, unsigned int)
1630 #define AOM_CTRL_AV1E_SET_ROW_MT
1632 AOM_CTRL_USE_TYPE(AV1E_SET_TILE_COLUMNS
, unsigned int)
1633 #define AOM_CTRL_AV1E_SET_TILE_COLUMNS
1635 AOM_CTRL_USE_TYPE(AV1E_SET_TILE_ROWS
, unsigned int)
1636 #define AOM_CTRL_AV1E_SET_TILE_ROWS
1638 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TPL_MODEL
, unsigned int)
1639 #define AOM_CTRL_AV1E_SET_ENABLE_TPL_MODEL
1641 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_KEYFRAME_FILTERING
, unsigned int)
1642 #define AOM_CTRL_AV1E_SET_ENABLE_KEYFRAME_FILTERING
1644 AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER
, int *)
1645 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER
1647 AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER_64
, int *)
1648 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER_64
1650 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTRA_BITRATE_PCT
, unsigned int)
1651 #define AOM_CTRL_AOME_SET_MAX_INTRA_BITRATE_PCT
1653 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTER_BITRATE_PCT
, unsigned int)
1654 #define AOM_CTRL_AOME_SET_MAX_INTER_BITRATE_PCT
1656 AOM_CTRL_USE_TYPE(AOME_SET_NUMBER_SPATIAL_LAYERS
, int)
1657 #define AOME_CTRL_AOME_SET_NUMBER_SPATIAL_LAYERS
1659 AOM_CTRL_USE_TYPE(AV1E_SET_GF_CBR_BOOST_PCT
, unsigned int)
1660 #define AOM_CTRL_AV1E_SET_GF_CBR_BOOST_PCT
1662 AOM_CTRL_USE_TYPE(AV1E_SET_LOSSLESS
, unsigned int)
1663 #define AOM_CTRL_AV1E_SET_LOSSLESS
1665 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CDEF
, unsigned int)
1666 #define AOM_CTRL_AV1E_SET_ENABLE_CDEF
1668 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RESTORATION
, unsigned int)
1669 #define AOM_CTRL_AV1E_SET_ENABLE_RESTORATION
1671 AOM_CTRL_USE_TYPE(AV1E_SET_FORCE_VIDEO_MODE
, unsigned int)
1672 #define AOM_CTRL_AV1E_SET_FORCE_VIDEO_MODE
1674 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OBMC
, unsigned int)
1675 #define AOM_CTRL_AV1E_SET_ENABLE_OBMC
1677 AOM_CTRL_USE_TYPE(AV1E_SET_DISABLE_TRELLIS_QUANT
, unsigned int)
1678 #define AOM_CTRL_AV1E_SET_DISABLE_TRELLIS_QUANT
1680 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_QM
, unsigned int)
1681 #define AOM_CTRL_AV1E_SET_ENABLE_QM
1683 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_8X8
, unsigned int)
1684 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_8X8
1686 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MIN
, unsigned int)
1687 #define AOM_CTRL_AV1E_SET_QM_MIN
1689 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MAX
, unsigned int)
1690 #define AOM_CTRL_AV1E_SET_QM_MAX
1692 AOM_CTRL_USE_TYPE(AV1E_SET_QM_Y
, unsigned int)
1693 #define AOM_CTRL_AV1E_SET_QM_Y
1695 AOM_CTRL_USE_TYPE(AV1E_SET_QM_U
, unsigned int)
1696 #define AOM_CTRL_AV1E_SET_QM_U
1698 AOM_CTRL_USE_TYPE(AV1E_SET_QM_V
, unsigned int)
1699 #define AOM_CTRL_AV1E_SET_QM_V
1701 AOM_CTRL_USE_TYPE(AV1E_SET_NUM_TG
, unsigned int)
1702 #define AOM_CTRL_AV1E_SET_NUM_TG
1704 AOM_CTRL_USE_TYPE(AV1E_SET_MTU
, unsigned int)
1705 #define AOM_CTRL_AV1E_SET_MTU
1707 AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE
, int) /* aom_timing_info_type_t */
1708 #define AOM_CTRL_AV1E_SET_TIMING_INFO_TYPE
1710 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_PARTITIONS
, int)
1711 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_PARTITIONS
1713 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_AB_PARTITIONS
, int)
1714 #define AOM_CTRL_AV1E_SET_ENABLE_AB_PARTITIONS
1716 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_1TO4_PARTITIONS
, int)
1717 #define AOM_CTRL_AV1E_SET_ENABLE_1TO4_PARTITIONS
1719 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_PARTITION_SIZE
, int)
1720 #define AOM_CTRL_AV1E_SET_MIN_PARTITION_SIZE
1722 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_PARTITION_SIZE
, int)
1723 #define AOM_CTRL_AV1E_SET_MAX_PARTITION_SIZE
1725 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRA_EDGE_FILTER
, int)
1726 #define AOM_CTRL_AV1E_SET_ENABLE_INTRA_EDGE_FILTER
1728 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ORDER_HINT
, int)
1729 #define AOM_CTRL_AV1E_SET_ENABLE_ORDER_HINT
1731 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TX64
, int)
1732 #define AOM_CTRL_AV1E_SET_ENABLE_TX64
1734 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FLIP_IDTX
, int)
1735 #define AOM_CTRL_AV1E_SET_ENABLE_FLIP_IDTX
1737 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_TX
, int)
1738 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_TX
1740 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_WTD_COMP
, int)
1741 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_WTD_COMP
1743 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_REF_FRAME_MVS
, int)
1744 #define AOM_CTRL_AV1E_SET_ENABLE_REF_FRAME_MVS
1746 AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_REF_FRAME_MVS
, int)
1747 #define AOM_CTRL_AV1E_SET_ALLOW_REF_FRAME_MVS
1749 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DUAL_FILTER
, int)
1750 #define AOM_CTRL_AV1E_SET_ENABLE_DUAL_FILTER
1752 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CHROMA_DELTAQ
, int)
1753 #define AOM_CTRL_AV1E_SET_ENABLE_CHROMA_DELTAQ
1755 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_MASKED_COMP
, int)
1756 #define AOM_CTRL_AV1E_SET_ENABLE_MASKED_COMP
1758 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ONESIDED_COMP
, int)
1759 #define AOM_CTRL_AV1E_SET_ENABLE_ONESIDED_COMP
1761 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_COMP
, int)
1762 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_COMP
1764 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTERINTRA
, int)
1765 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTERINTRA
1767 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIFF_WTD_COMP
, int)
1768 #define AOM_CTRL_AV1E_SET_ENABLE_DIFF_WTD_COMP
1770 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTER_WEDGE
, int)
1771 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTER_WEDGE
1773 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_WEDGE
, int)
1774 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_WEDGE
1776 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_GLOBAL_MOTION
, int)
1777 #define AOM_CTRL_AV1E_SET_ENABLE_GLOBAL_MOTION
1779 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_WARPED_MOTION
, int)
1780 #define AOM_CTRL_AV1E_SET_ENABLE_WARPED_MOTION
1782 AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_WARPED_MOTION
, int)
1783 #define AOM_CTRL_AV1E_SET_ALLOW_WARPED_MOTION
1785 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FILTER_INTRA
, int)
1786 #define AOM_CTRL_AV1E_SET_ENABLE_FILTER_INTRA
1788 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTRA
, int)
1789 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTRA
1791 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PAETH_INTRA
, int)
1792 #define AOM_CTRL_AV1E_SET_ENABLE_PAETH_INTRA
1794 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CFL_INTRA
, int)
1795 #define AOM_CTRL_AV1E_SET_ENABLE_CFL_INTRA
1797 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIAGONAL_INTRA
, int)
1798 #define AOM_CTRL_AV1E_SET_ENABLE_DIAGONAL_INTRA
1800 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SUPERRES
, int)
1801 #define AOM_CTRL_AV1E_SET_ENABLE_SUPERRES
1803 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OVERLAY
, int)
1804 #define AOM_CTRL_AV1E_SET_ENABLE_OVERLAY
1806 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PALETTE
, int)
1807 #define AOM_CTRL_AV1E_SET_ENABLE_PALETTE
1809 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRABC
, int)
1810 #define AOM_CTRL_AV1E_SET_ENABLE_INTRABC
1812 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ANGLE_DELTA
, int)
1813 #define AOM_CTRL_AV1E_SET_ENABLE_ANGLE_DELTA
1815 AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PARALLEL_DECODING
, unsigned int)
1816 #define AOM_CTRL_AV1E_SET_FRAME_PARALLEL_DECODING
1818 AOM_CTRL_USE_TYPE(AV1E_SET_ERROR_RESILIENT_MODE
, int)
1819 #define AOM_CTRL_AV1E_SET_ERROR_RESILIENT_MODE
1821 AOM_CTRL_USE_TYPE(AV1E_SET_S_FRAME_MODE
, int)
1822 #define AOM_CTRL_AV1E_SET_S_FRAME_MODE
1824 AOM_CTRL_USE_TYPE(AV1E_SET_AQ_MODE
, unsigned int)
1825 #define AOM_CTRL_AV1E_SET_AQ_MODE
1827 AOM_CTRL_USE_TYPE(AV1E_SET_DELTAQ_MODE
, unsigned int)
1828 #define AOM_CTRL_AV1E_SET_DELTAQ_MODE
1830 AOM_CTRL_USE_TYPE(AV1E_SET_DELTAQ_STRENGTH
, unsigned int)
1831 #define AOM_CTRL_AV1E_SET_DELTAQ_STRENGTH
1833 AOM_CTRL_USE_TYPE(AV1E_SET_DELTALF_MODE
, unsigned int)
1834 #define AOM_CTRL_AV1E_SET_DELTALF_MODE
1836 AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PERIODIC_BOOST
, unsigned int)
1837 #define AOM_CTRL_AV1E_SET_FRAME_PERIODIC_BOOST
1839 AOM_CTRL_USE_TYPE(AV1E_SET_NOISE_SENSITIVITY
, unsigned int)
1840 #define AOM_CTRL_AV1E_SET_NOISE_SENSITIVITY
1842 AOM_CTRL_USE_TYPE(AV1E_SET_TUNE_CONTENT
, int) /* aom_tune_content */
1843 #define AOM_CTRL_AV1E_SET_TUNE_CONTENT
1845 AOM_CTRL_USE_TYPE(AV1E_SET_COLOR_PRIMARIES
, int)
1846 #define AOM_CTRL_AV1E_SET_COLOR_PRIMARIES
1848 AOM_CTRL_USE_TYPE(AV1E_SET_TRANSFER_CHARACTERISTICS
, int)
1849 #define AOM_CTRL_AV1E_SET_TRANSFER_CHARACTERISTICS
1851 AOM_CTRL_USE_TYPE(AV1E_SET_MATRIX_COEFFICIENTS
, int)
1852 #define AOM_CTRL_AV1E_SET_MATRIX_COEFFICIENTS
1854 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SAMPLE_POSITION
, int)
1855 #define AOM_CTRL_AV1E_SET_CHROMA_SAMPLE_POSITION
1857 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_GF_INTERVAL
, unsigned int)
1858 #define AOM_CTRL_AV1E_SET_MIN_GF_INTERVAL
1860 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_GF_INTERVAL
, unsigned int)
1861 #define AOM_CTRL_AV1E_SET_MAX_GF_INTERVAL
1863 AOM_CTRL_USE_TYPE(AV1E_GET_ACTIVEMAP
, aom_active_map_t
*)
1864 #define AOM_CTRL_AV1E_GET_ACTIVEMAP
1866 AOM_CTRL_USE_TYPE(AV1E_SET_COLOR_RANGE
, int)
1867 #define AOM_CTRL_AV1E_SET_COLOR_RANGE
1869 #define AOM_CTRL_AV1E_SET_RENDER_SIZE
1870 AOM_CTRL_USE_TYPE(AV1E_SET_RENDER_SIZE
, int *)
1872 AOM_CTRL_USE_TYPE(AV1E_SET_SUPERBLOCK_SIZE
, unsigned int)
1873 #define AOM_CTRL_AV1E_SET_SUPERBLOCK_SIZE
1875 AOM_CTRL_USE_TYPE(AV1E_GET_SEQ_LEVEL_IDX
, int *)
1876 #define AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX
1878 AOM_CTRL_USE_TYPE(AV1E_GET_BASELINE_GF_INTERVAL
, int *)
1879 #define AOM_CTRL_AV1E_GET_BASELINE_GF_INTERVAL
1881 AOM_CTRL_USE_TYPE(AV1E_SET_SINGLE_TILE_DECODING
, unsigned int)
1882 #define AOM_CTRL_AV1E_SET_SINGLE_TILE_DECODING
1884 AOM_CTRL_USE_TYPE(AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST
, unsigned int)
1885 #define AOM_CTRL_AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST
1887 AOM_CTRL_USE_TYPE(AV1E_ENABLE_EXT_TILE_DEBUG
, unsigned int)
1888 #define AOM_CTRL_AV1E_ENABLE_EXT_TILE_DEBUG
1890 AOM_CTRL_USE_TYPE(AV1E_SET_VMAF_MODEL_PATH
, const char *)
1891 #define AOM_CTRL_AV1E_SET_VMAF_MODEL_PATH
1893 AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TEST_VECTOR
, int)
1894 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TEST_VECTOR
1896 AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TABLE
, const char *)
1897 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TABLE
1899 AOM_CTRL_USE_TYPE(AV1E_SET_CDF_UPDATE_MODE
, unsigned int)
1900 #define AOM_CTRL_AV1E_SET_CDF_UPDATE_MODE
1902 AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_NOISE_LEVEL
, int)
1903 #define AOM_CTRL_AV1E_SET_DENOISE_NOISE_LEVEL
1905 AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_BLOCK_SIZE
, unsigned int)
1906 #define AOM_CTRL_AV1E_SET_DENOISE_BLOCK_SIZE
1908 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_X
, unsigned int)
1909 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_X
1911 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_Y
, unsigned int)
1912 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_Y
1914 AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_TX_TYPE_SET
, int)
1915 #define AOM_CTRL_AV1E_SET_REDUCED_TX_TYPE_SET
1917 AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DCT_ONLY
, int)
1918 #define AOM_CTRL_AV1E_SET_INTRA_DCT_ONLY
1920 AOM_CTRL_USE_TYPE(AV1E_SET_INTER_DCT_ONLY
, int)
1921 #define AOM_CTRL_AV1E_SET_INTER_DCT_ONLY
1923 AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DEFAULT_TX_ONLY
, int)
1924 #define AOM_CTRL_AV1E_SET_INTRA_DEFAULT_TX_ONLY
1926 AOM_CTRL_USE_TYPE(AV1E_SET_QUANT_B_ADAPT
, int)
1927 #define AOM_CTRL_AV1E_SET_QUANT_B_ADAPT
1929 AOM_CTRL_USE_TYPE(AV1E_SET_GF_MIN_PYRAMID_HEIGHT
, unsigned int)
1930 #define AOM_CTRL_AV1E_SET_GF_MIN_PYRAMID_HEIGHT
1932 AOM_CTRL_USE_TYPE(AV1E_SET_GF_MAX_PYRAMID_HEIGHT
, unsigned int)
1933 #define AOM_CTRL_AV1E_SET_GF_MAX_PYRAMID_HEIGHT
1935 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_REFERENCE_FRAMES
, int)
1936 #define AOM_CTRL_AV1E_SET_MAX_REFERENCE_FRAMES
1938 AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_REFERENCE_SET
, int)
1939 #define AOM_CTRL_AV1E_SET_REDUCED_REFERENCE_SET
1941 AOM_CTRL_USE_TYPE(AV1E_SET_COEFF_COST_UPD_FREQ
, unsigned int)
1942 #define AOM_CTRL_AV1E_SET_COEFF_COST_UPD_FREQ
1944 AOM_CTRL_USE_TYPE(AV1E_SET_MODE_COST_UPD_FREQ
, unsigned int)
1945 #define AOM_CTRL_AV1E_SET_MODE_COST_UPD_FREQ
1947 AOM_CTRL_USE_TYPE(AV1E_SET_MV_COST_UPD_FREQ
, unsigned int)
1948 #define AOM_CTRL_AV1E_SET_MV_COST_UPD_FREQ
1950 AOM_CTRL_USE_TYPE(AV1E_SET_TARGET_SEQ_LEVEL_IDX
, int)
1951 #define AOM_CTRL_AV1E_SET_TARGET_SEQ_LEVEL_IDX
1953 AOM_CTRL_USE_TYPE(AV1E_SET_TIER_MASK
, unsigned int)
1954 #define AOM_CTRL_AV1E_SET_TIER_MASK
1956 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_CR
, unsigned int)
1957 #define AOM_CTRL_AV1E_SET_MIN_CR
1959 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_LAYER_ID
, aom_svc_layer_id_t
*)
1960 #define AOME_CTRL_AV1E_SET_SVC_LAYER_ID
1962 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_PARAMS
, aom_svc_params_t
*)
1963 #define AOME_CTRL_AV1E_SET_SVC_PARAMS
1965 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_REF_FRAME_CONFIG
, aom_svc_ref_frame_config_t
*)
1966 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG
1968 AOM_CTRL_USE_TYPE(AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST
, unsigned int)
1969 #define AOM_CTRL_AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST
1971 AOM_CTRL_USE_TYPE(AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
, unsigned int)
1972 #define AOM_CTRL_AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
1974 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DNL_DENOISING
, int)
1975 #define AOM_CTRL_AV1E_SET_ENABLE_DNL_DENOISING
1977 AOM_CTRL_USE_TYPE(AV1E_SET_DV_COST_UPD_FREQ
, unsigned int)
1978 #define AOM_CTRL_AV1E_SET_DV_COST_UPD_FREQ
1980 AOM_CTRL_USE_TYPE(AV1E_SET_PARTITION_INFO_PATH
, const char *)
1981 #define AOM_CTRL_AV1E_SET_PARTITION_INFO_PATH
1983 AOM_CTRL_USE_TYPE(AV1E_SET_EXTERNAL_PARTITION
, aom_ext_part_funcs_t
*)
1984 #define AOM_CTRL_AV1E_SET_EXTERNAL_PARTITION
1986 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIRECTIONAL_INTRA
, int)
1987 #define AOM_CTRL_AV1E_SET_ENABLE_DIRECTIONAL_INTRA
1989 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TX_SIZE_SEARCH
, int)
1990 #define AOM_CTRL_AV1E_SET_ENABLE_TX_SIZE_SEARCH
1992 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_REF_FRAME_COMP_PRED
,
1993 aom_svc_ref_frame_comp_pred_t
*)
1994 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_COMP_PRED
1996 AOM_CTRL_USE_TYPE(AV1E_SET_LOOPFILTER_CONTROL
, int)
1997 #define AOM_CTRL_AV1E_SET_LOOPFILTER_CONTROL
1999 AOM_CTRL_USE_TYPE(AOME_GET_LOOPFILTER_LEVEL
, int *)
2000 #define AOM_CTRL_AOME_GET_LOOPFILTER_LEVEL
2002 AOM_CTRL_USE_TYPE(AV1E_SET_AUTO_INTRA_TOOLS_OFF
, unsigned int)
2003 #define AOM_CTRL_AV1E_SET_AUTO_INTRA_TOOLS_OFF
2005 AOM_CTRL_USE_TYPE(AV1E_SET_RTC_EXTERNAL_RC
, int)
2006 #define AOM_CTRL_AV1E_SET_RTC_EXTERNAL_RC
2008 AOM_CTRL_USE_TYPE(AV1E_SET_FP_MT
, unsigned int)
2009 #define AOM_CTRL_AV1E_SET_FP_MT
2011 AOM_CTRL_USE_TYPE(AV1E_SET_FP_MT_UNIT_TEST
, unsigned int)
2012 #define AOM_CTRL_AV1E_SET_FP_MT_UNIT_TEST
2015 /*! @} - end defgroup aom_encoder */
2020 #endif // AOM_AOM_AOMCX_H_