1 /* 2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved. 3 * 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. 10 */ 11 #ifndef AOM_AOM_AOMCX_H_ 12 #define AOM_AOM_AOMCX_H_ 13 14 /*!\defgroup aom_encoder AOMedia AOM/AV1 Encoder 15 * \ingroup aom 16 * 17 * @{ 18 */ 19 #include "aom/aom.h" 20 #include "aom/aom_encoder.h" 21 #include "aom/aom_external_partition.h" 22 23 /*!\file 24 * \brief Provides definitions for using AOM or AV1 encoder algorithm within the 25 * aom Codec Interface. 26 * 27 * Several interfaces are excluded with CONFIG_REALTIME_ONLY build: 28 * Global motion 29 * Warped motion 30 * OBMC 31 * TPL model 32 * Loop restoration 33 * 34 * The following features are also disabled with CONFIG_REALTIME_ONLY: 35 * AV1E_SET_QUANT_B_ADAPT 36 * CNN 37 * 4X rectangular blocks 38 * 4X rectangular transform in intra prediction 39 */ 40 41 #ifdef __cplusplus 42 extern "C" { 43 #endif 44 45 /*!\name Algorithm interface for AV1 46 * 47 * This interface provides the capability to encode raw AV1 streams. 48 *@{ 49 */ 50 51 /*!\brief A single instance of the AV1 encoder. 52 *\deprecated This access mechanism is provided for backwards compatibility; 53 * prefer aom_codec_av1_cx(). 54 */ 55 extern aom_codec_iface_t aom_codec_av1_cx_algo; 56 57 /*!\brief The interface to the AV1 encoder. 58 */ 59 extern aom_codec_iface_t *aom_codec_av1_cx(void); 60 /*!@} - end algorithm interface member group */ 61 62 /* 63 * Algorithm Flags 64 */ 65 66 /*!\brief Don't reference the last frame 67 * 68 * When this flag is set, the encoder will not use the last frame as a 69 * predictor. When not set, the encoder will choose whether to use the 70 * last frame or not automatically. 71 */ 72 #define AOM_EFLAG_NO_REF_LAST (1 << 16) 73 /*!\brief Don't reference the last2 frame 74 * 75 * When this flag is set, the encoder will not use the last2 frame as a 76 * predictor. When not set, the encoder will choose whether to use the 77 * last2 frame or not automatically. 78 */ 79 #define AOM_EFLAG_NO_REF_LAST2 (1 << 17) 80 /*!\brief Don't reference the last3 frame 81 * 82 * When this flag is set, the encoder will not use the last3 frame as a 83 * predictor. When not set, the encoder will choose whether to use the 84 * last3 frame or not automatically. 85 */ 86 #define AOM_EFLAG_NO_REF_LAST3 (1 << 18) 87 /*!\brief Don't reference the golden frame 88 * 89 * When this flag is set, the encoder will not use the golden frame as a 90 * predictor. When not set, the encoder will choose whether to use the 91 * golden frame or not automatically. 92 */ 93 #define AOM_EFLAG_NO_REF_GF (1 << 19) 94 95 /*!\brief Don't reference the alternate reference frame 96 * 97 * When this flag is set, the encoder will not use the alt ref frame as a 98 * predictor. When not set, the encoder will choose whether to use the 99 * alt ref frame or not automatically. 100 */ 101 #define AOM_EFLAG_NO_REF_ARF (1 << 20) 102 /*!\brief Don't reference the bwd reference frame 103 * 104 * When this flag is set, the encoder will not use the bwd ref frame as a 105 * predictor. When not set, the encoder will choose whether to use the 106 * bwd ref frame or not automatically. 107 */ 108 #define AOM_EFLAG_NO_REF_BWD (1 << 21) 109 /*!\brief Don't reference the alt2 reference frame 110 * 111 * When this flag is set, the encoder will not use the alt2 ref frame as a 112 * predictor. When not set, the encoder will choose whether to use the 113 * alt2 ref frame or not automatically. 114 */ 115 #define AOM_EFLAG_NO_REF_ARF2 (1 << 22) 116 117 /*!\brief Don't update the last frame 118 * 119 * When this flag is set, the encoder will not update the last frame with 120 * the contents of the current frame. 121 */ 122 #define AOM_EFLAG_NO_UPD_LAST (1 << 23) 123 124 /*!\brief Don't update the golden frame 125 * 126 * When this flag is set, the encoder will not update the golden frame with 127 * the contents of the current frame. 128 */ 129 #define AOM_EFLAG_NO_UPD_GF (1 << 24) 130 131 /*!\brief Don't update the alternate reference frame 132 * 133 * When this flag is set, the encoder will not update the alt ref frame with 134 * the contents of the current frame. 135 */ 136 #define AOM_EFLAG_NO_UPD_ARF (1 << 25) 137 /*!\brief Disable entropy update 138 * 139 * When this flag is set, the encoder will not update its internal entropy 140 * model based on the entropy of this frame. 141 */ 142 #define AOM_EFLAG_NO_UPD_ENTROPY (1 << 26) 143 /*!\brief Disable ref frame mvs 144 * 145 * When this flag is set, the encoder will not allow frames to 146 * be encoded using mfmv. 147 */ 148 #define AOM_EFLAG_NO_REF_FRAME_MVS (1 << 27) 149 /*!\brief Enable error resilient frame 150 * 151 * When this flag is set, the encoder will code frames as error 152 * resilient. 153 */ 154 #define AOM_EFLAG_ERROR_RESILIENT (1 << 28) 155 /*!\brief Enable s frame mode 156 * 157 * When this flag is set, the encoder will code frames as an 158 * s frame. 159 */ 160 #define AOM_EFLAG_SET_S_FRAME (1 << 29) 161 /*!\brief Force primary_ref_frame to PRIMARY_REF_NONE 162 * 163 * When this flag is set, the encoder will set a frame's primary_ref_frame 164 * to PRIMARY_REF_NONE 165 */ 166 #define AOM_EFLAG_SET_PRIMARY_REF_NONE (1 << 30) 167 168 /*!\brief AVx encoder control functions 169 * 170 * This set of macros define the control functions available for AVx 171 * encoder interface. 172 * The range of encode control ID is 7-229(max). 173 * 174 * \sa #aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id, ...) 175 */ 176 enum aome_enc_control_id { 177 /*!\brief Codec control function to set which reference frame encoder can use, 178 * int parameter. 179 */ 180 AOME_USE_REFERENCE = 7, 181 182 /*!\brief Codec control function to pass an ROI map to encoder, aom_roi_map_t* 183 * parameter. 184 */ 185 AOME_SET_ROI_MAP = 8, 186 187 /*!\brief Codec control function to pass an Active map to encoder, 188 * aom_active_map_t* parameter. 189 */ 190 AOME_SET_ACTIVEMAP = 9, 191 192 /* NOTE: enum 10 unused */ 193 194 /*!\brief Codec control function to set encoder scaling mode for the next 195 * frame to be coded, aom_scaling_mode_t* parameter. 196 */ 197 AOME_SET_SCALEMODE = 11, 198 199 /*!\brief Codec control function to set encoder spatial layer id, int 200 * parameter. 201 */ 202 AOME_SET_SPATIAL_LAYER_ID = 12, 203 204 /*!\brief Codec control function to set encoder internal speed settings, 205 * int parameter 206 * 207 * Changes in this value influences the complexity of algorithms used in 208 * encoding process, values greater than 0 will increase encoder speed at 209 * the expense of quality. 210 * 211 * Valid range: 0..11. 0 runs the slowest, and 11 runs the fastest; 212 * quality improves as speed decreases (since more compression 213 * possibilities are explored). 214 * 215 * NOTE: 10 and 11 are only allowed in AOM_USAGE_REALTIME. In 216 * AOM_USAGE_GOOD_QUALITY and AOM_USAGE_ALL_INTRA, 9 is the highest allowed 217 * value. However, AOM_USAGE_GOOD_QUALITY treats 7..9 the same as 6. Also, 218 * AOM_USAGE_REALTIME treats 0..4 the same as 5. 219 */ 220 AOME_SET_CPUUSED = 13, 221 222 /*!\brief Codec control function to enable automatic set and use alf frames, 223 * unsigned int parameter 224 * 225 * - 0 = disable 226 * - 1 = enable (default) 227 */ 228 AOME_SET_ENABLEAUTOALTREF = 14, 229 230 /* NOTE: enum 15 unused */ 231 232 /*!\brief Codec control function to set the sharpness parameter, 233 * unsigned int parameter. 234 * 235 * This parameter controls the level at which rate-distortion optimization of 236 * transform coefficients favors sharpness in the block. 237 * 238 * Valid range: 0..7. The default is 0. 239 * 240 * Values 1-7 will avoid eob and skip block optimization and will change 241 * rdmult in favor of block sharpness. 242 * 243 * In all-intra mode: it also sets the `loop_filter_sharpness` syntax element 244 * in the bitstream. Larger values increasingly reduce how much the filtering 245 * can change the sample values on block edges to favor perceived sharpness. 246 */ 247 AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2, // 16 248 249 /*!\brief Codec control function to set the threshold for MBs treated static, 250 * unsigned int parameter 251 */ 252 AOME_SET_STATIC_THRESHOLD = 17, 253 254 /* NOTE: enum 18 unused */ 255 256 /*!\brief Codec control function to get last quantizer chosen by the encoder, 257 * int* parameter 258 * 259 * Return value uses internal quantizer scale defined by the codec. 260 */ 261 AOME_GET_LAST_QUANTIZER = AOME_SET_STATIC_THRESHOLD + 2, // 19 262 263 /*!\brief Codec control function to get last quantizer chosen by the encoder, 264 * int* parameter 265 * 266 * Return value uses the 0..63 scale as used by the rc_*_quantizer config 267 * parameters. 268 */ 269 AOME_GET_LAST_QUANTIZER_64 = 20, 270 271 /*!\brief Codec control function to set the max no of frames to create arf, 272 * unsigned int parameter 273 */ 274 AOME_SET_ARNR_MAXFRAMES = 21, 275 276 /*!\brief Codec control function to set the filter strength for the arf, 277 * unsigned int parameter 278 */ 279 AOME_SET_ARNR_STRENGTH = 22, 280 281 /* NOTE: enum 23 unused */ 282 283 /*!\brief Codec control function to set visual tuning, aom_tune_metric (int) 284 * parameter 285 * 286 * The default is AOM_TUNE_PSNR. 287 */ 288 AOME_SET_TUNING = AOME_SET_ARNR_STRENGTH + 2, // 24 289 290 /*!\brief Codec control function to set constrained / constant quality level, 291 * unsigned int parameter 292 * 293 * Valid range: 0..63 294 * 295 * \attention For this value to be used aom_codec_enc_cfg_t::rc_end_usage 296 * must be set to #AOM_CQ or #AOM_Q. 297 */ 298 AOME_SET_CQ_LEVEL = 25, 299 300 /*!\brief Codec control function to set max data rate for intra frames, 301 * unsigned int parameter 302 * 303 * This value controls additional clamping on the maximum size of a 304 * keyframe. It is expressed as a percentage of the average 305 * per-frame bitrate, with the special (and default) value 0 meaning 306 * unlimited, or no additional clamping beyond the codec's built-in 307 * algorithm. 308 * 309 * For example, to allocate no more than 4.5 frames worth of bitrate 310 * to a keyframe, set this to 450. 311 */ 312 AOME_SET_MAX_INTRA_BITRATE_PCT = 26, 313 314 /*!\brief Codec control function to set number of spatial layers, int 315 * parameter 316 */ 317 AOME_SET_NUMBER_SPATIAL_LAYERS = 27, 318 319 /*!\brief Codec control function to set max data rate for inter frames, 320 * unsigned int parameter 321 * 322 * This value controls additional clamping on the maximum size of an 323 * inter frame. It is expressed as a percentage of the average 324 * per-frame bitrate, with the special (and default) value 0 meaning 325 * unlimited, or no additional clamping beyond the codec's built-in 326 * algorithm. 327 * 328 * For example, to allow no more than 4.5 frames worth of bitrate 329 * to an inter frame, set this to 450. 330 */ 331 AV1E_SET_MAX_INTER_BITRATE_PCT = AOME_SET_MAX_INTRA_BITRATE_PCT + 2, // 28 332 333 /*!\brief Boost percentage for Golden Frame in CBR mode, unsigned int 334 * parameter 335 * 336 * This value controls the amount of boost given to Golden Frame in 337 * CBR mode. It is expressed as a percentage of the average 338 * per-frame bitrate, with the special (and default) value 0 meaning 339 * the feature is off, i.e., no golden frame boost in CBR mode and 340 * average bitrate target is used. 341 * 342 * For example, to allow 100% more bits, i.e, 2X, in a golden frame 343 * than average frame, set this to 100. 344 */ 345 AV1E_SET_GF_CBR_BOOST_PCT = 29, 346 347 /* NOTE: enum 30 unused */ 348 349 /*!\brief Codec control function to set lossless encoding mode, unsigned int 350 * parameter 351 * 352 * AV1 can operate in lossless encoding mode, in which the bitstream 353 * produced will be able to decode and reconstruct a perfect copy of 354 * input source. 355 * 356 * - 0 = normal coding mode, may be lossy (default) 357 * - 1 = lossless coding mode 358 */ 359 AV1E_SET_LOSSLESS = AV1E_SET_GF_CBR_BOOST_PCT + 2, // 31 360 361 /*!\brief Codec control function to enable the row based multi-threading 362 * of the encoder, unsigned int parameter 363 * 364 * - 0 = disable 365 * - 1 = enable (default) 366 */ 367 AV1E_SET_ROW_MT = 32, 368 369 /*!\brief Codec control function to set number of tile columns. unsigned int 370 * parameter 371 * 372 * In encoding and decoding, AV1 allows an input image frame be partitioned 373 * into separate vertical tile columns, which can be encoded or decoded 374 * independently. This enables easy implementation of parallel encoding and 375 * decoding. The parameter for this control describes the number of tile 376 * columns (in log2 units), which has a valid range of [0, 6]: 377 * \verbatim 378 0 = 1 tile column 379 1 = 2 tile columns 380 2 = 4 tile columns 381 ..... 382 n = 2**n tile columns 383 \endverbatim 384 * By default, the value is 0, i.e. one single column tile for entire image. 385 */ 386 AV1E_SET_TILE_COLUMNS = 33, 387 388 /*!\brief Codec control function to set number of tile rows, unsigned int 389 * parameter 390 * 391 * In encoding and decoding, AV1 allows an input image frame be partitioned 392 * into separate horizontal tile rows, which can be encoded or decoded 393 * independently. The parameter for this control describes the number of tile 394 * rows (in log2 units), which has a valid range of [0, 6]: 395 * \verbatim 396 0 = 1 tile row 397 1 = 2 tile rows 398 2 = 4 tile rows 399 ..... 400 n = 2**n tile rows 401 \endverbatim 402 * By default, the value is 0, i.e. one single row tile for entire image. 403 */ 404 AV1E_SET_TILE_ROWS = 34, 405 406 /*!\brief Codec control function to enable RDO modulated by frame temporal 407 * dependency, unsigned int parameter 408 * 409 * - 0 = disable 410 * - 1 = enable (default) 411 * 412 * \note Excluded from CONFIG_REALTIME_ONLY build. 413 */ 414 AV1E_SET_ENABLE_TPL_MODEL = 35, 415 416 /*!\brief Codec control function to enable temporal filtering on key frame, 417 * unsigned int parameter 418 * 419 * - 0 = disable 420 * - 1 = enable without overlay (default) 421 * - 2 = enable with overlay 422 */ 423 AV1E_SET_ENABLE_KEYFRAME_FILTERING = 36, 424 425 /*!\brief Codec control function to enable frame parallel decoding feature, 426 * unsigned int parameter 427 * 428 * AV1 has a bitstream feature to reduce decoding dependency between frames 429 * by turning off backward update of probability context used in encoding 430 * and decoding. This allows staged parallel processing of more than one 431 * video frames in the decoder. This control function provides a means to 432 * turn this feature on or off for bitstreams produced by encoder. 433 * 434 * - 0 = disable (default) 435 * - 1 = enable 436 */ 437 AV1E_SET_FRAME_PARALLEL_DECODING = 37, 438 439 /*!\brief Codec control function to enable error_resilient_mode, int parameter 440 * 441 * AV1 has a bitstream feature to guarantee parsability of a frame 442 * by turning on the error_resilient_decoding mode, even though the 443 * reference buffers are unreliable or not received. 444 * 445 * - 0 = disable (default) 446 * - 1 = enable 447 */ 448 AV1E_SET_ERROR_RESILIENT_MODE = 38, 449 450 /*!\brief Codec control function to enable s_frame_mode, int parameter 451 * 452 * AV1 has a bitstream feature to designate certain frames as S-frames, 453 * from where we can switch to a different stream, 454 * even though the reference buffers may not be exactly identical. 455 * 456 * - 0 = disable (default) 457 * - 1 = enable 458 */ 459 AV1E_SET_S_FRAME_MODE = 39, 460 461 /*!\brief Codec control function to set adaptive quantization mode, unsigned 462 * int parameter 463 * 464 * AV1 has a segment based feature that allows encoder to adaptively change 465 * quantization parameter for each segment within a frame to improve the 466 * subjective quality. This control makes encoder operate in one of the 467 * several AQ modes supported. 468 * 469 * - 0 = disable (default) 470 * - 1 = variance 471 * - 2 = complexity 472 * - 3 = cyclic refresh 473 */ 474 AV1E_SET_AQ_MODE = 40, 475 476 /*!\brief Codec control function to enable/disable periodic Q boost, unsigned 477 * int parameter 478 * 479 * One AV1 encoder speed feature is to enable quality boost by lowering 480 * frame level Q periodically. This control function provides a means to 481 * turn on/off this feature. 482 * 483 * - 0 = disable (default) 484 * - 1 = enable 485 */ 486 AV1E_SET_FRAME_PERIODIC_BOOST = 41, 487 488 /*!\brief Codec control function to set noise sensitivity, unsigned int 489 * parameter 490 * 491 * - 0 = disable (default) 492 * - 1 = enable (Y only) 493 */ 494 AV1E_SET_NOISE_SENSITIVITY = 42, 495 496 /*!\brief Codec control function to set content type, aom_tune_content 497 * parameter 498 * 499 * - AOM_CONTENT_DEFAULT = Regular video content (default) 500 * - AOM_CONTENT_SCREEN = Screen capture content 501 * - AOM_CONTENT_FILM = Film content 502 */ 503 AV1E_SET_TUNE_CONTENT = 43, 504 505 /*!\brief Codec control function to set CDF update mode, unsigned int 506 * parameter 507 * 508 * - 0: no update 509 * - 1: update on every frame (default) 510 * - 2: selectively update 511 */ 512 AV1E_SET_CDF_UPDATE_MODE = 44, 513 514 /*!\brief Codec control function to set color space info, int parameter 515 * 516 * - 0 = For future use 517 * - 1 = BT.709 518 * - 2 = Unspecified (default) 519 * - 3 = For future use 520 * - 4 = BT.470 System M (historical) 521 * - 5 = BT.470 System B, G (historical) 522 * - 6 = BT.601 523 * - 7 = SMPTE 240 524 * - 8 = Generic film (color filters using illuminant C) 525 * - 9 = BT.2020, BT.2100 526 * - 10 = SMPTE 428 (CIE 1921 XYZ) 527 * - 11 = SMPTE RP 431-2 528 * - 12 = SMPTE EG 432-1 529 * - 13..21 = For future use 530 * - 22 = EBU Tech. 3213-E 531 * - 23 = For future use 532 */ 533 AV1E_SET_COLOR_PRIMARIES = 45, 534 535 /*!\brief Codec control function to set transfer function info, int parameter 536 * 537 * - 0 = For future use 538 * - 1 = BT.709 539 * - 2 = Unspecified (default) 540 * - 3 = For future use 541 * - 4 = BT.470 System M (historical) 542 * - 5 = BT.470 System B, G (historical) 543 * - 6 = BT.601 544 * - 7 = SMPTE 240 M 545 * - 8 = Linear 546 * - 9 = Logarithmic (100 : 1 range) 547 * - 10 = Logarithmic (100 * Sqrt(10) : 1 range) 548 * - 11 = IEC 61966-2-4 549 * - 12 = BT.1361 550 * - 13 = sRGB or sYCC 551 * - 14 = BT.2020 10-bit systems 552 * - 15 = BT.2020 12-bit systems 553 * - 16 = SMPTE ST 2084, ITU BT.2100 PQ 554 * - 17 = SMPTE ST 428 555 * - 18 = BT.2100 HLG, ARIB STD-B67 556 * - 19 = For future use 557 */ 558 AV1E_SET_TRANSFER_CHARACTERISTICS = 46, 559 560 /*!\brief Codec control function to set transfer function info, int parameter 561 * 562 * - 0 = Identity matrix 563 * - 1 = BT.709 564 * - 2 = Unspecified (default) 565 * - 3 = For future use 566 * - 4 = US FCC 73.628 567 * - 5 = BT.470 System B, G (historical) 568 * - 6 = BT.601 569 * - 7 = SMPTE 240 M 570 * - 8 = YCgCo 571 * - 9 = BT.2020 non-constant luminance, BT.2100 YCbCr 572 * - 10 = BT.2020 constant luminance 573 * - 11 = SMPTE ST 2085 YDzDx 574 * - 12 = Chromaticity-derived non-constant luminance 575 * - 13 = Chromaticity-derived constant luminance 576 * - 14 = BT.2100 ICtCp 577 * - 15 = For future use 578 */ 579 AV1E_SET_MATRIX_COEFFICIENTS = 47, 580 581 /*!\brief Codec control function to set chroma 4:2:0 sample position info, 582 * aom_chroma_sample_position_t parameter 583 * 584 * AOM_CSP_UNKNOWN is default 585 */ 586 AV1E_SET_CHROMA_SAMPLE_POSITION = 48, 587 588 /*!\brief Codec control function to set minimum interval between GF/ARF 589 * frames, unsigned int parameter 590 * 591 * By default the value is set as 4. 592 */ 593 AV1E_SET_MIN_GF_INTERVAL = 49, 594 595 /*!\brief Codec control function to set minimum interval between GF/ARF 596 * frames, unsigned int parameter 597 * 598 * By default the value is set as 16. 599 */ 600 AV1E_SET_MAX_GF_INTERVAL = 50, 601 602 /*!\brief Codec control function to get an active map back from the encoder, 603 aom_active_map_t* parameter 604 */ 605 AV1E_GET_ACTIVEMAP = 51, 606 607 /*!\brief Codec control function to set color range bit, int parameter 608 * 609 * - 0 = Limited range, 16..235 or HBD equivalent (default) 610 * - 1 = Full range, 0..255 or HBD equivalent 611 */ 612 AV1E_SET_COLOR_RANGE = 52, 613 614 /*!\brief Codec control function to set intended rendering image size, 615 * int32_t[2] parameter 616 * 617 * By default, this is identical to the image size in pixels. 618 */ 619 AV1E_SET_RENDER_SIZE = 53, 620 621 /*!\brief Control to set target sequence level index for a certain operating 622 * point (OP), int parameter 623 * Possible values are in the form of "ABxy". 624 * - AB: OP index. 625 * - xy: Target level index for the OP. Possible values are: 626 * + 0~27: corresponding to level 2.0 ~ 8.3. Note: 627 * > Levels 2.2 (2), 2.3 (3), 3.2 (6), 3.3 (7), 4.2 (10) & 4.3 (11) are 628 * undefined. 629 * > Levels 7.x and 8.x (20~27) are in draft status, available under the 630 * config flag CONFIG_CWG_C013. 631 * + 31: maximum parameters level, no level-based constraints. 632 * + 32: keep level stats only for level monitoring. 633 * 634 * E.g.: 635 * - "0" means target level index 0 (2.0) for the 0th OP; 636 * - "109" means target level index 9 (4.1) for the 1st OP; 637 * - "1019" means target level index 19 (6.3) for the 10th OP. 638 * 639 * If the target level is not specified for an OP, the maximum parameters 640 * level of 31 is used as default. 641 */ 642 AV1E_SET_TARGET_SEQ_LEVEL_IDX = 54, 643 644 /*!\brief Codec control function to get sequence level index for each 645 * operating point. int* parameter. There can be at most 32 operating points. 646 * The results will be written into a provided integer array of sufficient 647 * size. 648 */ 649 AV1E_GET_SEQ_LEVEL_IDX = 55, 650 651 /*!\brief Codec control function to set intended superblock size, unsigned int 652 * parameter 653 * 654 * By default, the superblock size is determined separately for each 655 * frame by the encoder. 656 */ 657 AV1E_SET_SUPERBLOCK_SIZE = 56, 658 659 /*!\brief Codec control function to enable automatic set and use of 660 * bwd-pred frames, unsigned int parameter 661 * 662 * - 0 = disable (default) 663 * - 1 = enable 664 */ 665 AOME_SET_ENABLEAUTOBWDREF = 57, 666 667 /*!\brief Codec control function to encode with CDEF, unsigned int parameter 668 * 669 * CDEF is the constrained directional enhancement filter which is an 670 * in-loop filter aiming to remove coding artifacts 671 * 672 * - 0 = disable 673 * - 1 = enable for all frames (default) 674 * - 2 = disable for non-reference frames 675 * - 3 = enable adaptively based on frame qindex 676 */ 677 AV1E_SET_ENABLE_CDEF = 58, 678 679 /*!\brief Codec control function to encode with Loop Restoration Filter, 680 * unsigned int parameter 681 * 682 * - 0 = disable 683 * - 1 = enable (default) 684 * 685 * \note Excluded from CONFIG_REALTIME_ONLY build. 686 */ 687 AV1E_SET_ENABLE_RESTORATION = 59, 688 689 /*!\brief Codec control function to force video mode, unsigned int parameter 690 * 691 * - 0 = do not force video mode (default) 692 * - 1 = force video mode even for a single frame 693 */ 694 AV1E_SET_FORCE_VIDEO_MODE = 60, 695 696 /*!\brief Codec control function to predict with OBMC mode, unsigned int 697 * parameter 698 * 699 * - 0 = disable 700 * - 1 = enable (default) 701 * 702 * \note Excluded from CONFIG_REALTIME_ONLY build. 703 */ 704 AV1E_SET_ENABLE_OBMC = 61, 705 706 /*!\brief Codec control function to encode without trellis quantization, 707 * unsigned int parameter 708 * 709 * - 0 = apply trellis quantization (default) 710 * - 1 = do not apply trellis quantization 711 * - 2 = disable trellis quantization in rd search 712 * - 3 = disable trellis quantization in estimate yrd 713 */ 714 AV1E_SET_DISABLE_TRELLIS_QUANT = 62, 715 716 /*!\brief Codec control function to encode with quantisation matrices, 717 * unsigned int parameter 718 * 719 * AOM can operate with default quantisation matrices dependent on 720 * quantisation level and block type. 721 * 722 * - 0 = disable (default) 723 * - 1 = enable 724 */ 725 AV1E_SET_ENABLE_QM = 63, 726 727 /*!\brief Codec control function to set the min quant matrix flatness, 728 * unsigned int parameter 729 * 730 * AOM can operate with different ranges of quantisation matrices. 731 * As quantisation levels increase, the matrices get flatter. This 732 * control sets the minimum level of flatness from which the matrices 733 * are determined. 734 * 735 * By default, the encoder sets this minimum at level 5 (4 in all intra 736 * mode). 737 */ 738 AV1E_SET_QM_MIN = 64, 739 740 /*!\brief Codec control function to set the max quant matrix flatness, 741 * unsigned int parameter 742 * 743 * AOM can operate with different ranges of quantisation matrices. 744 * As quantisation levels increase, the matrices get flatter. This 745 * control sets the maximum level of flatness possible. 746 * 747 * By default, the encoder sets this maximum at level 9 (10 in all intra 748 * mode) 749 */ 750 AV1E_SET_QM_MAX = 65, 751 752 /*!\brief Codec control function to set the min quant matrix flatness, 753 * unsigned int parameter 754 * 755 * AOM can operate with different ranges of quantisation matrices. 756 * As quantisation levels increase, the matrices get flatter. This 757 * control sets the flatness for luma (Y). 758 * 759 * By default, the encoder sets this minimum at half the available 760 * range. 761 */ 762 AV1E_SET_QM_Y = 66, 763 764 /*!\brief Codec control function to set the min quant matrix flatness, 765 * unsigned int parameter 766 * 767 * AOM can operate with different ranges of quantisation matrices. 768 * As quantisation levels increase, the matrices get flatter. This 769 * control sets the flatness for chroma (U). 770 * 771 * By default, the encoder sets this minimum at half the available 772 * range. 773 */ 774 AV1E_SET_QM_U = 67, 775 776 /*!\brief Codec control function to set the min quant matrix flatness, 777 * unsigned int parameter 778 * 779 * AOM can operate with different ranges of quantisation matrices. 780 * As quantisation levels increase, the matrices get flatter. This 781 * control sets the flatness for chrome (V). 782 * 783 * By default, the encoder sets this minimum at half the available 784 * range. 785 */ 786 AV1E_SET_QM_V = 68, 787 788 /* NOTE: enum 69 unused */ 789 790 /*!\brief Codec control function to set a maximum number of tile groups, 791 * unsigned int parameter 792 * 793 * This will set the maximum number of tile groups. This will be 794 * overridden if an MTU size is set. The default value is 1. 795 */ 796 AV1E_SET_NUM_TG = 70, 797 798 /*!\brief Codec control function to set an MTU size for a tile group, unsigned 799 * int parameter 800 * 801 * This will set the maximum number of bytes in a tile group. This can be 802 * exceeded only if a single tile is larger than this amount. 803 * 804 * By default, the value is 0, in which case a fixed number of tile groups 805 * is used. 806 */ 807 AV1E_SET_MTU = 71, 808 809 /* NOTE: enum 72 unused */ 810 811 /*!\brief Codec control function to enable/disable rectangular partitions, int 812 * parameter 813 * 814 * - 0 = disable 815 * - 1 = enable (default) 816 */ 817 AV1E_SET_ENABLE_RECT_PARTITIONS = 73, 818 819 /*!\brief Codec control function to enable/disable AB partitions, int 820 * parameter 821 * 822 * - 0 = disable 823 * - 1 = enable (default) 824 */ 825 AV1E_SET_ENABLE_AB_PARTITIONS = 74, 826 827 /*!\brief Codec control function to enable/disable 1:4 and 4:1 partitions, int 828 * parameter 829 * 830 * - 0 = disable 831 * - 1 = enable (default) 832 */ 833 AV1E_SET_ENABLE_1TO4_PARTITIONS = 75, 834 835 /*!\brief Codec control function to set min partition size, int parameter 836 * 837 * min_partition_size is applied to both width and height of the partition. 838 * i.e, both width and height of a partition can not be smaller than 839 * the min_partition_size, except the partition at the picture boundary. 840 * 841 * Valid values: [4, 8, 16, 32, 64, 128]. The default value is 4 for 842 * 4x4. 843 */ 844 AV1E_SET_MIN_PARTITION_SIZE = 76, 845 846 /*!\brief Codec control function to set max partition size, int parameter 847 * 848 * max_partition_size is applied to both width and height of the partition. 849 * i.e, both width and height of a partition can not be larger than 850 * the max_partition_size. 851 * 852 * Valid values:[4, 8, 16, 32, 64, 128] The default value is 128 for 853 * 128x128. 854 */ 855 AV1E_SET_MAX_PARTITION_SIZE = 77, 856 857 /*!\brief Codec control function to turn on / off intra edge filter 858 * at sequence level, int parameter 859 * 860 * - 0 = disable 861 * - 1 = enable (default) 862 */ 863 AV1E_SET_ENABLE_INTRA_EDGE_FILTER = 78, 864 865 /*!\brief Codec control function to turn on / off frame order hint (int 866 * parameter). Affects: joint compound mode, motion field motion vector, 867 * ref frame sign bias 868 * 869 * - 0 = disable 870 * - 1 = enable (default) 871 */ 872 AV1E_SET_ENABLE_ORDER_HINT = 79, 873 874 /*!\brief Codec control function to turn on / off 64-length transforms, int 875 * parameter 876 * 877 * This will enable or disable usage of length 64 transforms in any 878 * direction. 879 * 880 * - 0 = disable 881 * - 1 = enable (default) 882 */ 883 AV1E_SET_ENABLE_TX64 = 80, 884 885 /*!\brief Codec control function to turn on / off flip and identity 886 * transforms, int parameter 887 * 888 * This will enable or disable usage of flip and identity transform 889 * types in any direction. If enabled, this includes: 890 * - FLIPADST_DCT 891 * - DCT_FLIPADST 892 * - FLIPADST_FLIPADST 893 * - ADST_FLIPADST 894 * - FLIPADST_ADST 895 * - IDTX 896 * - V_DCT 897 * - H_DCT 898 * - V_ADST 899 * - H_ADST 900 * - V_FLIPADST 901 * - H_FLIPADST 902 * 903 * Valid values: 904 * - 0 = disable 905 * - 1 = enable (default) 906 */ 907 AV1E_SET_ENABLE_FLIP_IDTX = 81, 908 909 /*!\brief Codec control function to turn on / off rectangular transforms, int 910 * parameter 911 * 912 * This will enable or disable usage of rectangular transforms. NOTE: 913 * Rectangular transforms only enabled when corresponding rectangular 914 * partitions are. 915 * 916 * - 0 = disable 917 * - 1 = enable (default) 918 */ 919 AV1E_SET_ENABLE_RECT_TX = 82, 920 921 /*!\brief Codec control function to turn on / off dist-wtd compound mode 922 * at sequence level, int parameter 923 * 924 * This will enable or disable distance-weighted compound mode. 925 * \attention If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced 926 * to 0. 927 * 928 * - 0 = disable 929 * - 1 = enable (default) 930 */ 931 AV1E_SET_ENABLE_DIST_WTD_COMP = 83, 932 933 /*!\brief Codec control function to turn on / off ref frame mvs (mfmv) usage 934 * at sequence level, int parameter 935 * 936 * \attention If AV1E_SET_ENABLE_ORDER_HINT is 0, then this flag is forced 937 * to 0. 938 * 939 * - 0 = disable 940 * - 1 = enable (default) 941 */ 942 AV1E_SET_ENABLE_REF_FRAME_MVS = 84, 943 944 /*!\brief Codec control function to set temporal mv prediction 945 * enabling/disabling at frame level, int parameter 946 * 947 * \attention If AV1E_SET_ENABLE_REF_FRAME_MVS is 0, then this flag is 948 * forced to 0. 949 * 950 * - 0 = disable 951 * - 1 = enable (default) 952 */ 953 AV1E_SET_ALLOW_REF_FRAME_MVS = 85, 954 955 /*!\brief Codec control function to turn on / off dual interpolation filter 956 * for a sequence, int parameter 957 * 958 * - 0 = disable 959 * - 1 = enable 960 */ 961 AV1E_SET_ENABLE_DUAL_FILTER = 86, 962 963 /*!\brief Codec control function to turn on / off delta quantization in chroma 964 * planes for a sequence, int parameter 965 * 966 * - 0 = disable (default) 967 * - 1 = enable 968 */ 969 AV1E_SET_ENABLE_CHROMA_DELTAQ = 87, 970 971 /*!\brief Codec control function to turn on / off masked compound usage 972 * (wedge and diff-wtd compound modes) for a sequence, int parameter 973 * 974 * - 0 = disable 975 * - 1 = enable (default) 976 */ 977 AV1E_SET_ENABLE_MASKED_COMP = 88, 978 979 /*!\brief Codec control function to turn on / off one sided compound usage 980 * for a sequence, int parameter 981 * 982 * - 0 = disable 983 * - 1 = enable (default) 984 */ 985 AV1E_SET_ENABLE_ONESIDED_COMP = 89, 986 987 /*!\brief Codec control function to turn on / off interintra compound 988 * for a sequence, int parameter 989 * 990 * - 0 = disable 991 * - 1 = enable (default) 992 */ 993 AV1E_SET_ENABLE_INTERINTRA_COMP = 90, 994 995 /*!\brief Codec control function to turn on / off smooth inter-intra 996 * mode for a sequence, int parameter 997 * 998 * - 0 = disable 999 * - 1 = enable (default) 1000 */ 1001 AV1E_SET_ENABLE_SMOOTH_INTERINTRA = 91, 1002 1003 /*!\brief Codec control function to turn on / off difference weighted 1004 * compound, int parameter 1005 * 1006 * - 0 = disable 1007 * - 1 = enable (default) 1008 */ 1009 AV1E_SET_ENABLE_DIFF_WTD_COMP = 92, 1010 1011 /*!\brief Codec control function to turn on / off interinter wedge 1012 * compound, int parameter 1013 * 1014 * - 0 = disable 1015 * - 1 = enable (default) 1016 */ 1017 AV1E_SET_ENABLE_INTERINTER_WEDGE = 93, 1018 1019 /*!\brief Codec control function to turn on / off interintra wedge 1020 * compound, int parameter 1021 * 1022 * - 0 = disable 1023 * - 1 = enable (default) 1024 */ 1025 AV1E_SET_ENABLE_INTERINTRA_WEDGE = 94, 1026 1027 /*!\brief Codec control function to turn on / off global motion usage 1028 * for a sequence, int parameter 1029 * 1030 * - 0 = disable 1031 * - 1 = enable (default) 1032 * 1033 * \note Excluded from CONFIG_REALTIME_ONLY build. 1034 */ 1035 AV1E_SET_ENABLE_GLOBAL_MOTION = 95, 1036 1037 /*!\brief Codec control function to turn on / off warped motion usage 1038 * at sequence level, int parameter 1039 * 1040 * - 0 = disable 1041 * - 1 = enable (default) 1042 * 1043 * \note Excluded from CONFIG_REALTIME_ONLY build. 1044 */ 1045 AV1E_SET_ENABLE_WARPED_MOTION = 96, 1046 1047 /*!\brief Codec control function to turn on / off warped motion usage 1048 * at frame level, int parameter 1049 * 1050 * \attention If AV1E_SET_ENABLE_WARPED_MOTION is 0, then this flag is 1051 * forced to 0. 1052 * 1053 * - 0 = disable 1054 * - 1 = enable (default) 1055 * 1056 * \note Excluded from CONFIG_REALTIME_ONLY build. 1057 */ 1058 AV1E_SET_ALLOW_WARPED_MOTION = 97, 1059 1060 /*!\brief Codec control function to turn on / off filter intra usage at 1061 * sequence level, int parameter 1062 * 1063 * - 0 = disable 1064 * - 1 = enable (default) 1065 */ 1066 AV1E_SET_ENABLE_FILTER_INTRA = 98, 1067 1068 /*!\brief Codec control function to turn on / off smooth intra modes usage, 1069 * int parameter 1070 * 1071 * This will enable or disable usage of smooth, smooth_h and smooth_v intra 1072 * modes. 1073 * 1074 * - 0 = disable 1075 * - 1 = enable (default) 1076 */ 1077 AV1E_SET_ENABLE_SMOOTH_INTRA = 99, 1078 1079 /*!\brief Codec control function to turn on / off Paeth intra mode usage, int 1080 * parameter 1081 * 1082 * - 0 = disable 1083 * - 1 = enable (default) 1084 */ 1085 AV1E_SET_ENABLE_PAETH_INTRA = 100, 1086 1087 /*!\brief Codec control function to turn on / off CFL uv intra mode usage, int 1088 * parameter 1089 * 1090 * This will enable or disable usage of chroma-from-luma intra mode. 1091 * 1092 * - 0 = disable 1093 * - 1 = enable (default) 1094 */ 1095 AV1E_SET_ENABLE_CFL_INTRA = 101, 1096 1097 /*!\brief Codec control function to turn on / off frame superresolution, int 1098 * parameter 1099 * 1100 * - 0 = disable 1101 * - 1 = enable (default) 1102 */ 1103 AV1E_SET_ENABLE_SUPERRES = 102, 1104 1105 /*!\brief Codec control function to turn on / off overlay frames for 1106 * filtered ALTREF frames, int parameter 1107 * 1108 * This will enable or disable coding of overlay frames for filtered ALTREF 1109 * frames. When set to 0, overlay frames are not used but show existing frame 1110 * is used to display the filtered ALTREF frame as is. As a result the decoded 1111 * frame rate remains the same as the display frame rate. The default is 1. 1112 */ 1113 AV1E_SET_ENABLE_OVERLAY = 103, 1114 1115 /*!\brief Codec control function to turn on/off palette mode, int parameter */ 1116 AV1E_SET_ENABLE_PALETTE = 104, 1117 1118 /*!\brief Codec control function to turn on/off intra block copy mode, int 1119 parameter */ 1120 AV1E_SET_ENABLE_INTRABC = 105, 1121 1122 /*!\brief Codec control function to turn on/off intra angle delta, int 1123 parameter */ 1124 AV1E_SET_ENABLE_ANGLE_DELTA = 106, 1125 1126 /*!\brief Codec control function to set the delta q mode, unsigned int 1127 * parameter 1128 * 1129 * AV1 supports a delta q mode feature, that allows modulating q per 1130 * superblock. 1131 * 1132 * - 0 = deltaq signaling off 1133 * - 1 = use modulation to maximize objective quality (default) 1134 * - 2 = use modulation for local test 1135 * - 3 = use modulation for key frame perceptual quality optimization 1136 * - 4 = use modulation for user rating based perceptual quality optimization 1137 * - 5 = use modulation for HDR video 1138 * - 6 = use modulation for all intra using Variance Boost 1139 */ 1140 AV1E_SET_DELTAQ_MODE = 107, 1141 1142 /*!\brief Codec control function to turn on/off loopfilter modulation 1143 * when delta q modulation is enabled, unsigned int parameter. 1144 * 1145 * \attention AV1 only supports loopfilter modulation when delta q 1146 * modulation is enabled as well. 1147 */ 1148 AV1E_SET_DELTALF_MODE = 108, 1149 1150 /*!\brief Codec control function to set the single tile decoding mode, 1151 * unsigned int parameter 1152 * 1153 * \attention Only applicable if large scale tiling is on. 1154 * 1155 * - 0 = single tile decoding is off 1156 * - 1 = single tile decoding is on (default) 1157 */ 1158 AV1E_SET_SINGLE_TILE_DECODING = 109, 1159 1160 /*!\brief Codec control function to enable the extreme motion vector unit 1161 * test, unsigned int parameter 1162 * 1163 * - 0 = off 1164 * - 1 = MAX_EXTREME_MV 1165 * - 2 = MIN_EXTREME_MV 1166 * 1167 * \note This is only used in motion vector unit test. 1168 */ 1169 AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST = 110, 1170 1171 /*!\brief Codec control function to signal picture timing info in the 1172 * bitstream, aom_timing_info_type_t parameter. Default is 1173 * AOM_TIMING_UNSPECIFIED. 1174 */ 1175 AV1E_SET_TIMING_INFO_TYPE = 111, 1176 1177 /*!\brief Codec control function to add film grain parameters (one of several 1178 * preset types) info in the bitstream, int parameter 1179 * 1180 Valid range: 0..16, 0 is unknown, 1..16 are test vectors 1181 */ 1182 AV1E_SET_FILM_GRAIN_TEST_VECTOR = 112, 1183 1184 /*!\brief Codec control function to set the path to the film grain parameters, 1185 * const char* parameter 1186 */ 1187 AV1E_SET_FILM_GRAIN_TABLE = 113, 1188 1189 /*!\brief Sets the noise level, int parameter */ 1190 AV1E_SET_DENOISE_NOISE_LEVEL = 114, 1191 1192 /*!\brief Sets the denoisers block size, unsigned int parameter */ 1193 AV1E_SET_DENOISE_BLOCK_SIZE = 115, 1194 1195 /*!\brief Sets the chroma subsampling x value, unsigned int parameter */ 1196 AV1E_SET_CHROMA_SUBSAMPLING_X = 116, 1197 1198 /*!\brief Sets the chroma subsampling y value, unsigned int parameter */ 1199 AV1E_SET_CHROMA_SUBSAMPLING_Y = 117, 1200 1201 /*!\brief Control to use a reduced tx type set, int parameter */ 1202 AV1E_SET_REDUCED_TX_TYPE_SET = 118, 1203 1204 /*!\brief Control to use dct only for intra modes, int parameter */ 1205 AV1E_SET_INTRA_DCT_ONLY = 119, 1206 1207 /*!\brief Control to use dct only for inter modes, int parameter */ 1208 AV1E_SET_INTER_DCT_ONLY = 120, 1209 1210 /*!\brief Control to use default tx type only for intra modes, int parameter 1211 */ 1212 AV1E_SET_INTRA_DEFAULT_TX_ONLY = 121, 1213 1214 /*!\brief Control to use adaptive quantize_b, int parameter */ 1215 AV1E_SET_QUANT_B_ADAPT = 122, 1216 1217 /*!\brief Control to select maximum height for the GF group pyramid structure, 1218 * unsigned int parameter 1219 * 1220 * Valid range: 0..5 1221 */ 1222 AV1E_SET_GF_MAX_PYRAMID_HEIGHT = 123, 1223 1224 /*!\brief Control to select maximum reference frames allowed per frame, int 1225 * parameter 1226 * 1227 * Valid range: 3..7 1228 */ 1229 AV1E_SET_MAX_REFERENCE_FRAMES = 124, 1230 1231 /*!\brief Control to use reduced set of single and compound references, int 1232 parameter */ 1233 AV1E_SET_REDUCED_REFERENCE_SET = 125, 1234 1235 /*!\brief Control to set frequency of the cost updates for coefficients, 1236 * unsigned int parameter 1237 * 1238 * - 0 = update at SB level (default) 1239 * - 1 = update at SB row level in tile 1240 * - 2 = update at tile level 1241 * - 3 = turn off 1242 */ 1243 AV1E_SET_COEFF_COST_UPD_FREQ = 126, 1244 1245 /*!\brief Control to set frequency of the cost updates for mode, unsigned int 1246 * parameter 1247 * 1248 * - 0 = update at SB level (default) 1249 * - 1 = update at SB row level in tile 1250 * - 2 = update at tile level 1251 * - 3 = turn off 1252 */ 1253 AV1E_SET_MODE_COST_UPD_FREQ = 127, 1254 1255 /*!\brief Control to set frequency of the cost updates for motion vectors, 1256 * unsigned int parameter 1257 * 1258 * - 0 = update at SB level (default) 1259 * - 1 = update at SB row level in tile 1260 * - 2 = update at tile level 1261 * - 3 = turn off 1262 */ 1263 AV1E_SET_MV_COST_UPD_FREQ = 128, 1264 1265 /*!\brief Control to set bit mask that specifies which tier each of the 32 1266 * possible operating points conforms to, unsigned int parameter 1267 * 1268 * - 0 = main tier (default) 1269 * - 1 = high tier 1270 */ 1271 AV1E_SET_TIER_MASK = 129, 1272 1273 /*!\brief Control to set minimum compression ratio, unsigned int parameter 1274 * Take integer values. If non-zero, encoder will try to keep the compression 1275 * ratio of each frame to be higher than the given value divided by 100. 1276 * E.g. 850 means minimum compression ratio of 8.5. 1277 */ 1278 AV1E_SET_MIN_CR = 130, 1279 1280 /* NOTE: enums 145-149 unused */ 1281 1282 /*!\brief Codec control function to set the layer id, aom_svc_layer_id_t* 1283 * parameter 1284 */ 1285 AV1E_SET_SVC_LAYER_ID = 131, 1286 1287 /*!\brief Codec control function to set SVC parameters, aom_svc_params_t* 1288 * parameter 1289 */ 1290 AV1E_SET_SVC_PARAMS = 132, 1291 1292 /*!\brief Codec control function to set the reference frame config, 1293 * aom_svc_ref_frame_config_t* parameter 1294 */ 1295 AV1E_SET_SVC_REF_FRAME_CONFIG = 133, 1296 1297 /*!\brief Codec control function to set the path to the VMAF model used when 1298 * tuning the encoder for VMAF, const char* parameter 1299 */ 1300 AV1E_SET_VMAF_MODEL_PATH = 134, 1301 1302 /*!\brief Codec control function to enable EXT_TILE_DEBUG in AV1 encoder, 1303 * unsigned int parameter 1304 * 1305 * - 0 = disable (default) 1306 * - 1 = enable 1307 * 1308 * \note This is only used in lightfield example test. 1309 */ 1310 AV1E_ENABLE_EXT_TILE_DEBUG = 135, 1311 1312 /*!\brief Codec control function to enable the superblock multipass unit test 1313 * in AV1 to ensure that the encoder does not leak state between different 1314 * passes. unsigned int parameter. 1315 * 1316 * - 0 = disable (default) 1317 * - 1 = enable 1318 * 1319 * \note This is only used in sb_multipass unit test. 1320 */ 1321 AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST = 136, 1322 1323 /*!\brief Control to select minimum height for the GF group pyramid structure, 1324 * unsigned int parameter 1325 * 1326 * Valid values: 0..5 1327 */ 1328 AV1E_SET_GF_MIN_PYRAMID_HEIGHT = 137, 1329 1330 /*!\brief Control to set average complexity of the corpus in the case of 1331 * single pass vbr based on LAP, unsigned int parameter 1332 */ 1333 AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP = 138, 1334 1335 /*!\brief Control to get baseline gf interval 1336 */ 1337 AV1E_GET_BASELINE_GF_INTERVAL = 139, 1338 1339 /*\brief Control to set encoding the denoised frame from denoise-noise-level 1340 * 1341 * - 0 = disabled/encode the original frame 1342 * - 1 = enabled/encode the denoised frame (default) 1343 */ 1344 AV1E_SET_ENABLE_DNL_DENOISING = 140, 1345 1346 /*!\brief Codec control function to turn on / off D45 to D203 intra mode 1347 * usage, int parameter 1348 * 1349 * This will enable or disable usage of D45 to D203 intra modes, which are a 1350 * subset of directional modes. This control has no effect if directional 1351 * modes are disabled (AV1E_SET_ENABLE_DIRECTIONAL_INTRA set to 0). 1352 * 1353 * - 0 = disable 1354 * - 1 = enable (default) 1355 */ 1356 AV1E_SET_ENABLE_DIAGONAL_INTRA = 141, 1357 1358 /*!\brief Control to set frequency of the cost updates for intrabc motion 1359 * vectors, unsigned int parameter 1360 * 1361 * - 0 = update at SB level (default) 1362 * - 1 = update at SB row level in tile 1363 * - 2 = update at tile level 1364 * - 3 = turn off 1365 */ 1366 AV1E_SET_DV_COST_UPD_FREQ = 142, 1367 1368 /*!\brief Codec control to set the path for partition stats read and write. 1369 * const char * parameter. 1370 */ 1371 AV1E_SET_PARTITION_INFO_PATH = 143, 1372 1373 /*!\brief Codec control to use an external partition model 1374 * A set of callback functions is passed through this control 1375 * to let the encoder encode with given partitions. 1376 */ 1377 AV1E_SET_EXTERNAL_PARTITION = 144, 1378 1379 /*!\brief Codec control function to turn on / off directional intra mode 1380 * usage, int parameter 1381 * 1382 * - 0 = disable 1383 * - 1 = enable (default) 1384 */ 1385 AV1E_SET_ENABLE_DIRECTIONAL_INTRA = 145, 1386 1387 /*!\brief Control to turn on / off transform size search. 1388 * Note: it can not work with non RD pick mode in real-time encoding, 1389 * where the max transform size is only 16x16. 1390 * It will be ignored if non RD pick mode is set. 1391 * 1392 * - 0 = disable, transforms always have the largest possible size 1393 * - 1 = enable, search for the best transform size for each block (default) 1394 */ 1395 AV1E_SET_ENABLE_TX_SIZE_SEARCH = 146, 1396 1397 /*!\brief Codec control function to set reference frame compound prediction. 1398 * aom_svc_ref_frame_comp_pred_t* parameter 1399 */ 1400 AV1E_SET_SVC_REF_FRAME_COMP_PRED = 147, 1401 1402 /*!\brief Set --deltaq-mode strength. 1403 * 1404 * Valid range: [0, 1000] 1405 */ 1406 AV1E_SET_DELTAQ_STRENGTH = 148, 1407 1408 /*!\brief Codec control to control loop filter 1409 * 1410 * - 0 = Loop filter is disabled for all frames 1411 * - 1 = Loop filter is enabled for all frames 1412 * - 2 = Loop filter is disabled for non-reference frames 1413 * - 3 = Loop filter is disabled for the frames with low motion 1414 */ 1415 AV1E_SET_LOOPFILTER_CONTROL = 149, 1416 1417 /*!\brief Codec control function to get the loopfilter chosen by the encoder, 1418 * int* parameter 1419 */ 1420 AOME_GET_LOOPFILTER_LEVEL = 150, 1421 1422 /*!\brief Codec control to automatically turn off several intra coding tools, 1423 * unsigned int parameter 1424 * - 0 = do not use the feature 1425 * - 1 = enable the automatic decision to turn off several intra tools 1426 */ 1427 AV1E_SET_AUTO_INTRA_TOOLS_OFF = 151, 1428 1429 /*!\brief Codec control function to set flag for rate control used by external 1430 * encoders. 1431 * - 1 = Enable rate control for external encoders. This will disable content 1432 * dependency in rate control and cyclic refresh. 1433 * - 0 = Default. Disable rate control for external encoders. 1434 */ 1435 AV1E_SET_RTC_EXTERNAL_RC = 152, 1436 1437 /*!\brief Codec control function to enable frame parallel multi-threading 1438 * of the encoder, unsigned int parameter 1439 * 1440 * - 0 = disable (default) 1441 * - 1 = enable 1442 */ 1443 AV1E_SET_FP_MT = 153, 1444 1445 /*!\brief Codec control to enable actual frame parallel encode or 1446 * simulation of frame parallel encode in FPMT unit test, unsigned int 1447 * parameter 1448 * 1449 * - 0 = simulate frame parallel encode 1450 * - 1 = actual frame parallel encode (default) 1451 * 1452 * \note This is only used in FPMT unit test. 1453 */ 1454 AV1E_SET_FP_MT_UNIT_TEST = 154, 1455 1456 /*!\brief Codec control function to get the target sequence level index for 1457 * each operating point. int* parameter. There can be at most 32 operating 1458 * points. The results will be written into a provided integer array of 1459 * sufficient size. If a target level is not set, the result will be 31. 1460 * Please refer to https://aomediacodec.github.io/av1-spec/#levels for more 1461 * details on level definitions and indices. 1462 */ 1463 AV1E_GET_TARGET_SEQ_LEVEL_IDX = 155, 1464 1465 /*!\brief Codec control function to get the number of operating points. int* 1466 * parameter. 1467 */ 1468 AV1E_GET_NUM_OPERATING_POINTS = 156, 1469 1470 /*!\brief Codec control function to skip the application of post-processing 1471 * filters on reconstructed frame, unsigned int parameter 1472 * 1473 * - 0 = disable (default) 1474 * - 1 = enable 1475 * 1476 * \attention For this value to be used aom_codec_enc_cfg_t::g_usage 1477 * must be set to AOM_USAGE_ALL_INTRA. 1478 */ 1479 AV1E_SET_SKIP_POSTPROC_FILTERING = 157, 1480 1481 /*!\brief Codec control function to enable the superblock level 1482 * qp sweep in AV1 to ensure that end-to-end test runs well, 1483 * unsigned int parameter. 1484 * 1485 * - 0 = disable (default) 1486 * - 1 = enable 1487 * 1488 * \note This is only used in sb_qp_sweep unit test. 1489 */ 1490 AV1E_ENABLE_SB_QP_SWEEP = 158, 1491 1492 /*!\brief Codec control to set quantizer for the next frame, int parameter. 1493 * 1494 * - Valid range [0, 63] 1495 * 1496 * This will turn off cyclic refresh. Only applicable to 1-pass. 1497 */ 1498 AV1E_SET_QUANTIZER_ONE_PASS = 159, 1499 1500 /*!\brief Codec control to enable the rate distribution guided delta 1501 * quantization in all intra mode, unsigned int parameter 1502 * 1503 * - 0 = disable (default) 1504 * - 1 = enable 1505 * 1506 * \attention This feature requires --deltaq-mode=3, also an input file 1507 * which contains rate distribution for each 16x16 block, 1508 * passed in by --rate-distribution-info=rate_distribution.txt. 1509 */ 1510 AV1E_ENABLE_RATE_GUIDE_DELTAQ = 160, 1511 1512 /*!\brief Codec control to set the input file for rate distribution used 1513 * in all intra mode, const char * parameter 1514 * The input should be the name of a text file, which 1515 * contains (rows x cols) float values separated by space. 1516 * Each float value represent the number of bits for each 16x16 block. 1517 * rows = (frame_height + 15) / 16 1518 * cols = (frame_width + 15) / 16 1519 * 1520 * \attention This feature requires --enable-rate-guide-deltaq=1. 1521 */ 1522 AV1E_SET_RATE_DISTRIBUTION_INFO = 161, 1523 1524 /*!\brief Codec control to get the CDEF strength for Y / luma plane, 1525 * int * parameter. 1526 * Returns an integer array of CDEF_MAX_STRENGTHS elements. 1527 */ 1528 AV1E_GET_LUMA_CDEF_STRENGTH = 162, 1529 1530 /*!\brief Codec control to set the target bitrate in kilobits per second, 1531 * unsigned int parameter. For 1 pass CBR mode, single layer encoding. 1532 * This controls replaces the call aom_codec_enc_config_set(&codec, &cfg) 1533 * when only target bitrate is changed, and so is much cheaper as it 1534 * bypasses a lot of unneeded code checks. 1535 */ 1536 AV1E_SET_BITRATE_ONE_PASS_CBR = 163, 1537 1538 /*!\brief Codec control to set the maximum number of consecutive frame drops, 1539 * in units of frames, allowed for the frame dropper in 1 pass 1540 * CBR mode, int parameter. Value of zero has no effect. 1541 * \deprecated Use the new control AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR. 1542 */ 1543 AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR = 164, 1544 1545 /*!\brief Codec control to set the frame drop mode for SVC, 1546 * unsigned int parameter. The valid values are constants of the 1547 * AOM_SVC_FRAME_DROP_MODE enum: AOM_LAYER_DROP or AOM_FULL_SUPERFRAME_DROP. 1548 */ 1549 AV1E_SET_SVC_FRAME_DROP_MODE = 165, 1550 1551 /*!\brief Codec control to set auto tiling, unsigned int parameter. 1552 * Value of 1 means encoder will set number of tile_columns and tile_rows, 1553 * based on the number of threads and resolution. This will override any 1554 * settings set via SET_TILE_COLUMNS/ROWS. If the value is 0 no change is 1555 * done, the previous setting (if any) for tile_columns/rows is preserved. 1556 */ 1557 AV1E_SET_AUTO_TILES = 166, 1558 1559 /*!\brief Codec control to get the high motion content flag, used for 1560 * screen content realtime (RTC) encoding, int * parameter. 1561 * Returns an integer. 1562 * 1 means high motion content flag is set to 1, 0 means set to 0. 1563 */ 1564 AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC = 167, 1565 1566 /*!\brief Codec control to enable post encode frame drop for RTC encoding, 1567 * int parameter. 1568 * 1569 * Value of 1 means encoder will enable post encode drop. Default is 0 (not 1570 * enabled). Post encode drop is only allowed when frame dropping is enabled 1571 * (aom_codec_enc_cfg::rc_dropframe_thresh > 0). 1572 */ 1573 AV1E_SET_POSTENCODE_DROP_RTC = 168, 1574 1575 /*!\brief Codec control to set the maximum number of consecutive frame drops, 1576 * in units of time (milliseconds), allowed for the frame dropper in 1 pass 1577 * CBR mode, int parameter. Value of zero has no effect. 1578 */ 1579 AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR = 169, 1580 1581 // Any new encoder control IDs should be added above. 1582 // Maximum allowed encoder control ID is 229. 1583 // No encoder control ID should be added below. 1584 }; 1585 1586 /*!\brief aom 1-D scaling mode 1587 * 1588 * This set of constants define 1-D aom scaling modes 1589 */ 1590 typedef enum aom_scaling_mode_1d { 1591 AOME_NORMAL = 0, 1592 AOME_FOURFIVE = 1, 1593 AOME_THREEFIVE = 2, 1594 AOME_THREEFOUR = 3, 1595 AOME_ONEFOUR = 4, 1596 AOME_ONEEIGHT = 5, 1597 AOME_ONETWO = 6, 1598 AOME_TWOTHREE = 7, 1599 AOME_ONETHREE = 8 1600 } AOM_SCALING_MODE; 1601 1602 /*!\brief Max number of segments 1603 * 1604 * This is the limit of number of segments allowed within a frame. 1605 * 1606 * Currently same as "MAX_SEGMENTS" in AV1, the maximum that AV1 supports. 1607 * 1608 */ 1609 #define AOM_MAX_SEGMENTS 8 1610 1611 /*!\brief aom region of interest map 1612 * 1613 * These defines the data structures for the region of interest map 1614 * 1615 * TODO(yaowu): create a unit test for ROI map related APIs 1616 * 1617 */ 1618 typedef struct aom_roi_map { 1619 /*! An id between 0 and 7 for each 8x8 region within a frame. */ 1620 unsigned char *roi_map; 1621 unsigned int rows; /**< Number of rows. */ 1622 unsigned int cols; /**< Number of columns. */ 1623 int delta_q[AOM_MAX_SEGMENTS]; /**< Quantizer deltas. */ 1624 int delta_lf[AOM_MAX_SEGMENTS]; /**< Loop filter deltas. */ 1625 /*! Static breakout threshold for each segment. */ 1626 unsigned int static_threshold[AOM_MAX_SEGMENTS]; 1627 } aom_roi_map_t; 1628 1629 /*!\brief aom active region map 1630 * 1631 * These defines the data structures for active region map 1632 * 1633 */ 1634 1635 typedef struct aom_active_map { 1636 /*!\brief specify an on (1) or off (0) each 16x16 region within a frame */ 1637 unsigned char *active_map; 1638 unsigned int rows; /**< number of rows */ 1639 unsigned int cols; /**< number of cols */ 1640 } aom_active_map_t; 1641 1642 /*!\brief aom image scaling mode 1643 * 1644 * This defines the data structure for image scaling mode 1645 * 1646 */ 1647 typedef struct aom_scaling_mode { 1648 AOM_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */ 1649 AOM_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */ 1650 } aom_scaling_mode_t; 1651 1652 /*!brief AV1 encoder content type */ 1653 typedef enum { 1654 AOM_CONTENT_DEFAULT, 1655 AOM_CONTENT_SCREEN, 1656 AOM_CONTENT_FILM, 1657 AOM_CONTENT_INVALID 1658 } aom_tune_content; 1659 1660 /*!brief AV1 encoder timing info type signaling */ 1661 typedef enum { 1662 AOM_TIMING_UNSPECIFIED, 1663 AOM_TIMING_EQUAL, 1664 AOM_TIMING_DEC_MODEL 1665 } aom_timing_info_type_t; 1666 1667 /*!\brief Model tuning parameters 1668 * 1669 * Changes the encoder to tune for certain types of input material. 1670 * 1671 * \note 1672 * AOM_TUNE_IQ is restricted to all intra mode (AOM_USAGE_ALL_INTRA). Setting 1673 * the tuning option to AOM_TUNE_IQ causes the following options to be set 1674 * (expressed as command-line options): 1675 * * --enable-qm=1 1676 * * --qm-min=2 1677 * * --qm-max=10 1678 * * --sharpness=7 1679 * * --dist-metric=qm-psnr 1680 * * --enable-cdef=3 1681 * * --enable-chroma-deltaq=1 1682 * * --deltaq-mode=6 1683 */ 1684 typedef enum { 1685 AOM_TUNE_PSNR = 0, 1686 AOM_TUNE_SSIM = 1, 1687 /* NOTE: enums 2 and 3 unused */ 1688 AOM_TUNE_VMAF_WITH_PREPROCESSING = 4, 1689 AOM_TUNE_VMAF_WITHOUT_PREPROCESSING = 5, 1690 AOM_TUNE_VMAF_MAX_GAIN = 6, 1691 AOM_TUNE_VMAF_NEG_MAX_GAIN = 7, 1692 AOM_TUNE_BUTTERAUGLI = 8, 1693 AOM_TUNE_VMAF_SALIENCY_MAP = 9, 1694 /*!\brief Allows detection of the presence of AOM_TUNE_IQ at compile time. */ 1695 #define AOM_HAVE_TUNE_IQ 1 1696 /* Image quality (or intra quality). Increases image quality and consistency, 1697 * guided by the SSIMULACRA 2 metric and subjective quality checks. Shares 1698 * the rdmult code with AOM_TUNE_SSIM. 1699 */ 1700 AOM_TUNE_IQ = 10, 1701 } aom_tune_metric; 1702 1703 /*!\brief Distortion metric to use for RD optimization. 1704 * 1705 * Changes the encoder to use a different distortion metric for RD search. Note 1706 * that this value operates on a "lower level" compared to aom_tune_metric - it 1707 * affects the distortion metric inside a block, while aom_tune_metric only 1708 * affects RD across blocks. 1709 * 1710 */ 1711 typedef enum { 1712 // Use PSNR for in-block rate-distortion optimization. 1713 AOM_DIST_METRIC_PSNR, 1714 // Use quantization matrix-weighted PSNR for in-block rate-distortion 1715 // optimization. If --enable-qm=1 is not specified, this falls back to 1716 // behaving in the same way as AOM_DIST_METRIC_PSNR. 1717 AOM_DIST_METRIC_QM_PSNR, 1718 } aom_dist_metric; 1719 1720 #define AOM_MAX_LAYERS 32 /**< Max number of layers */ 1721 #define AOM_MAX_SS_LAYERS 4 /**< Max number of spatial layers */ 1722 #define AOM_MAX_TS_LAYERS 8 /**< Max number of temporal layers */ 1723 1724 /*!brief Struct for spatial and temporal layer ID */ 1725 typedef struct aom_svc_layer_id { 1726 int spatial_layer_id; /**< Spatial layer ID */ 1727 int temporal_layer_id; /**< Temporal layer ID */ 1728 } aom_svc_layer_id_t; 1729 1730 /*!brief Parameter type for SVC 1731 * 1732 * In the arrays of size AOM_MAX_LAYERS, the index for spatial layer `sl` and 1733 * temporal layer `tl` is sl * number_temporal_layers + tl. 1734 * 1735 */ 1736 typedef struct aom_svc_params { 1737 int number_spatial_layers; /**< Number of spatial layers */ 1738 int number_temporal_layers; /**< Number of temporal layers */ 1739 int max_quantizers[AOM_MAX_LAYERS]; /**< Max Q for each layer */ 1740 int min_quantizers[AOM_MAX_LAYERS]; /**< Min Q for each layer */ 1741 int scaling_factor_num[AOM_MAX_SS_LAYERS]; /**< Scaling factor-numerator */ 1742 int scaling_factor_den[AOM_MAX_SS_LAYERS]; /**< Scaling factor-denominator */ 1743 /*! Target bitrate for each layer, in kilobits per second */ 1744 int layer_target_bitrate[AOM_MAX_LAYERS]; 1745 /*! Frame rate factor for each temporal layer */ 1746 int framerate_factor[AOM_MAX_TS_LAYERS]; 1747 } aom_svc_params_t; 1748 1749 /*!brief Parameters for setting ref frame config */ 1750 typedef struct aom_svc_ref_frame_config { 1751 // Three arrays need to be set: reference[], ref_id[], refresh[]. 1752 // reference[i]: is a boolean flag to indicate which of the 7 possible 1753 // references are used for prediction. Values are 0 (not used as reference) 1754 // or 1 (use as reference). The index 0 - 6 refers to the references: 1755 // last(0), last2(1), last3(2), golden(3), bwdref(4), altref2(5), altref(6). 1756 // ref_idx[i]: maps a reference to one of the 8 buffers slots, values are 1757 // 0 - 7. The ref_idx for a unused reference (reference[i] = 1, and not used 1758 // for refresh, see below) can be set to the ref_idx of the first reference 1759 // used (usually LAST). 1760 // refresh[i] is a boolean flag to indicate if a buffer is updated/refreshed 1761 // with the current encoded frame. Values are 0 (no refresh) or 1 (refresh). 1762 // The refresh is done internally by looking at the ref_idx[j], for j = 0 - 6, 1763 // so to refresh a buffer slot (i) a reference must be mapped to that slot 1764 // (i = ref_idx[j]). 1765 // Examples for usage (for RTC encoding) are in: examples/svc_encoder_rtc.c. 1766 int reference[7]; /**< Reference flag for each of the 7 references. */ 1767 /*! Buffer slot index (0..7) for each of 7 references indexed above. */ 1768 int ref_idx[7]; 1769 int refresh[8]; /**< Refresh flag for each of the 8 buffer slots. */ 1770 } aom_svc_ref_frame_config_t; 1771 1772 /*!brief Parameters for setting ref frame compound prediction */ 1773 typedef struct aom_svc_ref_frame_comp_pred { 1774 // Use compound prediction for the ref_frame pairs GOLDEN_LAST (0), 1775 // LAST2_LAST (1), and ALTREF_LAST (2). 1776 int use_comp_pred[3]; /**<Compound reference flag. */ 1777 } aom_svc_ref_frame_comp_pred_t; 1778 1779 /*!brief Frame drop modes for spatial/quality layer SVC */ 1780 typedef enum { 1781 AOM_LAYER_DROP, /**< Any spatial layer can drop. */ 1782 AOM_FULL_SUPERFRAME_DROP, /**< Only full superframe can drop. */ 1783 } AOM_SVC_FRAME_DROP_MODE; 1784 1785 /*!\cond */ 1786 /*!\brief Encoder control function parameter type 1787 * 1788 * Defines the data types that AOME/AV1E control functions take. 1789 * 1790 * \note Additional common controls are defined in aom.h. 1791 * 1792 * \note For each control ID "X", a macro-define of 1793 * AOM_CTRL_X is provided. It is used at compile time to determine 1794 * if the control ID is supported by the libaom library available, 1795 * when the libaom version cannot be controlled. 1796 */ 1797 AOM_CTRL_USE_TYPE(AOME_USE_REFERENCE, int) 1798 #define AOM_CTRL_AOME_USE_REFERENCE 1799 1800 AOM_CTRL_USE_TYPE(AOME_SET_ROI_MAP, aom_roi_map_t *) 1801 #define AOM_CTRL_AOME_SET_ROI_MAP 1802 1803 AOM_CTRL_USE_TYPE(AOME_SET_ACTIVEMAP, aom_active_map_t *) 1804 #define AOM_CTRL_AOME_SET_ACTIVEMAP 1805 1806 AOM_CTRL_USE_TYPE(AOME_SET_SCALEMODE, aom_scaling_mode_t *) 1807 #define AOM_CTRL_AOME_SET_SCALEMODE 1808 1809 AOM_CTRL_USE_TYPE(AOME_SET_SPATIAL_LAYER_ID, int) 1810 #define AOM_CTRL_AOME_SET_SPATIAL_LAYER_ID 1811 1812 AOM_CTRL_USE_TYPE(AOME_SET_CPUUSED, int) 1813 #define AOM_CTRL_AOME_SET_CPUUSED 1814 1815 AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOALTREF, unsigned int) 1816 #define AOM_CTRL_AOME_SET_ENABLEAUTOALTREF 1817 1818 AOM_CTRL_USE_TYPE(AOME_SET_SHARPNESS, unsigned int) 1819 #define AOM_CTRL_AOME_SET_SHARPNESS 1820 1821 AOM_CTRL_USE_TYPE(AOME_SET_STATIC_THRESHOLD, unsigned int) 1822 #define AOM_CTRL_AOME_SET_STATIC_THRESHOLD 1823 1824 AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER, int *) 1825 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER 1826 1827 AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER_64, int *) 1828 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER_64 1829 1830 AOM_CTRL_USE_TYPE(AOME_SET_ARNR_MAXFRAMES, unsigned int) 1831 #define AOM_CTRL_AOME_SET_ARNR_MAXFRAMES 1832 1833 AOM_CTRL_USE_TYPE(AOME_SET_ARNR_STRENGTH, unsigned int) 1834 #define AOM_CTRL_AOME_SET_ARNR_STRENGTH 1835 1836 AOM_CTRL_USE_TYPE(AOME_SET_TUNING, int) /* aom_tune_metric */ 1837 #define AOM_CTRL_AOME_SET_TUNING 1838 1839 AOM_CTRL_USE_TYPE(AOME_SET_CQ_LEVEL, unsigned int) 1840 #define AOM_CTRL_AOME_SET_CQ_LEVEL 1841 1842 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTRA_BITRATE_PCT, unsigned int) 1843 #define AOM_CTRL_AOME_SET_MAX_INTRA_BITRATE_PCT 1844 1845 AOM_CTRL_USE_TYPE(AOME_SET_NUMBER_SPATIAL_LAYERS, int) 1846 #define AOM_CTRL_AOME_SET_NUMBER_SPATIAL_LAYERS 1847 // TODO(aomedia:3231): Deprecated. Remove it. 1848 #define AOME_CTRL_AOME_SET_NUMBER_SPATIAL_LAYERS 1849 1850 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTER_BITRATE_PCT, unsigned int) 1851 #define AOM_CTRL_AV1E_SET_MAX_INTER_BITRATE_PCT 1852 // TODO(aomedia:3231): Deprecated. Remove it. 1853 #define AOM_CTRL_AOME_SET_MAX_INTER_BITRATE_PCT 1854 1855 AOM_CTRL_USE_TYPE(AV1E_SET_GF_CBR_BOOST_PCT, unsigned int) 1856 #define AOM_CTRL_AV1E_SET_GF_CBR_BOOST_PCT 1857 1858 AOM_CTRL_USE_TYPE(AV1E_SET_LOSSLESS, unsigned int) 1859 #define AOM_CTRL_AV1E_SET_LOSSLESS 1860 1861 AOM_CTRL_USE_TYPE(AV1E_SET_ROW_MT, unsigned int) 1862 #define AOM_CTRL_AV1E_SET_ROW_MT 1863 1864 AOM_CTRL_USE_TYPE(AV1E_SET_TILE_COLUMNS, unsigned int) 1865 #define AOM_CTRL_AV1E_SET_TILE_COLUMNS 1866 1867 AOM_CTRL_USE_TYPE(AV1E_SET_TILE_ROWS, unsigned int) 1868 #define AOM_CTRL_AV1E_SET_TILE_ROWS 1869 1870 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TPL_MODEL, unsigned int) 1871 #define AOM_CTRL_AV1E_SET_ENABLE_TPL_MODEL 1872 1873 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_KEYFRAME_FILTERING, unsigned int) 1874 #define AOM_CTRL_AV1E_SET_ENABLE_KEYFRAME_FILTERING 1875 1876 AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PARALLEL_DECODING, unsigned int) 1877 #define AOM_CTRL_AV1E_SET_FRAME_PARALLEL_DECODING 1878 1879 AOM_CTRL_USE_TYPE(AV1E_SET_ERROR_RESILIENT_MODE, int) 1880 #define AOM_CTRL_AV1E_SET_ERROR_RESILIENT_MODE 1881 1882 AOM_CTRL_USE_TYPE(AV1E_SET_S_FRAME_MODE, int) 1883 #define AOM_CTRL_AV1E_SET_S_FRAME_MODE 1884 1885 AOM_CTRL_USE_TYPE(AV1E_SET_AQ_MODE, unsigned int) 1886 #define AOM_CTRL_AV1E_SET_AQ_MODE 1887 1888 AOM_CTRL_USE_TYPE(AV1E_SET_FRAME_PERIODIC_BOOST, unsigned int) 1889 #define AOM_CTRL_AV1E_SET_FRAME_PERIODIC_BOOST 1890 1891 AOM_CTRL_USE_TYPE(AV1E_SET_NOISE_SENSITIVITY, unsigned int) 1892 #define AOM_CTRL_AV1E_SET_NOISE_SENSITIVITY 1893 1894 AOM_CTRL_USE_TYPE(AV1E_SET_TUNE_CONTENT, int) /* aom_tune_content */ 1895 #define AOM_CTRL_AV1E_SET_TUNE_CONTENT 1896 1897 AOM_CTRL_USE_TYPE(AV1E_SET_CDF_UPDATE_MODE, unsigned int) 1898 #define AOM_CTRL_AV1E_SET_CDF_UPDATE_MODE 1899 1900 AOM_CTRL_USE_TYPE(AV1E_SET_COLOR_PRIMARIES, int) 1901 #define AOM_CTRL_AV1E_SET_COLOR_PRIMARIES 1902 1903 AOM_CTRL_USE_TYPE(AV1E_SET_TRANSFER_CHARACTERISTICS, int) 1904 #define AOM_CTRL_AV1E_SET_TRANSFER_CHARACTERISTICS 1905 1906 AOM_CTRL_USE_TYPE(AV1E_SET_MATRIX_COEFFICIENTS, int) 1907 #define AOM_CTRL_AV1E_SET_MATRIX_COEFFICIENTS 1908 1909 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SAMPLE_POSITION, int) 1910 #define AOM_CTRL_AV1E_SET_CHROMA_SAMPLE_POSITION 1911 1912 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_GF_INTERVAL, unsigned int) 1913 #define AOM_CTRL_AV1E_SET_MIN_GF_INTERVAL 1914 1915 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_GF_INTERVAL, unsigned int) 1916 #define AOM_CTRL_AV1E_SET_MAX_GF_INTERVAL 1917 1918 AOM_CTRL_USE_TYPE(AV1E_GET_ACTIVEMAP, aom_active_map_t *) 1919 #define AOM_CTRL_AV1E_GET_ACTIVEMAP 1920 1921 AOM_CTRL_USE_TYPE(AV1E_SET_COLOR_RANGE, int) 1922 #define AOM_CTRL_AV1E_SET_COLOR_RANGE 1923 1924 AOM_CTRL_USE_TYPE(AV1E_SET_RENDER_SIZE, int *) 1925 #define AOM_CTRL_AV1E_SET_RENDER_SIZE 1926 1927 AOM_CTRL_USE_TYPE(AV1E_SET_TARGET_SEQ_LEVEL_IDX, int) 1928 #define AOM_CTRL_AV1E_SET_TARGET_SEQ_LEVEL_IDX 1929 1930 AOM_CTRL_USE_TYPE(AV1E_GET_SEQ_LEVEL_IDX, int *) 1931 #define AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX 1932 1933 AOM_CTRL_USE_TYPE(AV1E_SET_SUPERBLOCK_SIZE, unsigned int) 1934 #define AOM_CTRL_AV1E_SET_SUPERBLOCK_SIZE 1935 1936 AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOBWDREF, unsigned int) 1937 #define AOM_CTRL_AOME_SET_ENABLEAUTOBWDREF 1938 1939 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CDEF, unsigned int) 1940 #define AOM_CTRL_AV1E_SET_ENABLE_CDEF 1941 1942 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RESTORATION, unsigned int) 1943 #define AOM_CTRL_AV1E_SET_ENABLE_RESTORATION 1944 1945 AOM_CTRL_USE_TYPE(AV1E_SET_FORCE_VIDEO_MODE, unsigned int) 1946 #define AOM_CTRL_AV1E_SET_FORCE_VIDEO_MODE 1947 1948 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OBMC, unsigned int) 1949 #define AOM_CTRL_AV1E_SET_ENABLE_OBMC 1950 1951 AOM_CTRL_USE_TYPE(AV1E_SET_DISABLE_TRELLIS_QUANT, unsigned int) 1952 #define AOM_CTRL_AV1E_SET_DISABLE_TRELLIS_QUANT 1953 1954 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_QM, unsigned int) 1955 #define AOM_CTRL_AV1E_SET_ENABLE_QM 1956 1957 // TODO(aomedia:3231): Remove these two lines. 1958 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_8X8, unsigned int) 1959 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_8X8 1960 1961 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MIN, unsigned int) 1962 #define AOM_CTRL_AV1E_SET_QM_MIN 1963 1964 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MAX, unsigned int) 1965 #define AOM_CTRL_AV1E_SET_QM_MAX 1966 1967 AOM_CTRL_USE_TYPE(AV1E_SET_QM_Y, unsigned int) 1968 #define AOM_CTRL_AV1E_SET_QM_Y 1969 1970 AOM_CTRL_USE_TYPE(AV1E_SET_QM_U, unsigned int) 1971 #define AOM_CTRL_AV1E_SET_QM_U 1972 1973 AOM_CTRL_USE_TYPE(AV1E_SET_QM_V, unsigned int) 1974 #define AOM_CTRL_AV1E_SET_QM_V 1975 1976 AOM_CTRL_USE_TYPE(AV1E_SET_NUM_TG, unsigned int) 1977 #define AOM_CTRL_AV1E_SET_NUM_TG 1978 1979 AOM_CTRL_USE_TYPE(AV1E_SET_MTU, unsigned int) 1980 #define AOM_CTRL_AV1E_SET_MTU 1981 1982 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_PARTITIONS, int) 1983 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_PARTITIONS 1984 1985 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_AB_PARTITIONS, int) 1986 #define AOM_CTRL_AV1E_SET_ENABLE_AB_PARTITIONS 1987 1988 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_1TO4_PARTITIONS, int) 1989 #define AOM_CTRL_AV1E_SET_ENABLE_1TO4_PARTITIONS 1990 1991 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_PARTITION_SIZE, int) 1992 #define AOM_CTRL_AV1E_SET_MIN_PARTITION_SIZE 1993 1994 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_PARTITION_SIZE, int) 1995 #define AOM_CTRL_AV1E_SET_MAX_PARTITION_SIZE 1996 1997 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRA_EDGE_FILTER, int) 1998 #define AOM_CTRL_AV1E_SET_ENABLE_INTRA_EDGE_FILTER 1999 2000 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ORDER_HINT, int) 2001 #define AOM_CTRL_AV1E_SET_ENABLE_ORDER_HINT 2002 2003 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TX64, int) 2004 #define AOM_CTRL_AV1E_SET_ENABLE_TX64 2005 2006 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FLIP_IDTX, int) 2007 #define AOM_CTRL_AV1E_SET_ENABLE_FLIP_IDTX 2008 2009 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_RECT_TX, int) 2010 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_TX 2011 2012 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_WTD_COMP, int) 2013 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_WTD_COMP 2014 2015 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_REF_FRAME_MVS, int) 2016 #define AOM_CTRL_AV1E_SET_ENABLE_REF_FRAME_MVS 2017 2018 AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_REF_FRAME_MVS, int) 2019 #define AOM_CTRL_AV1E_SET_ALLOW_REF_FRAME_MVS 2020 2021 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DUAL_FILTER, int) 2022 #define AOM_CTRL_AV1E_SET_ENABLE_DUAL_FILTER 2023 2024 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CHROMA_DELTAQ, int) 2025 #define AOM_CTRL_AV1E_SET_ENABLE_CHROMA_DELTAQ 2026 2027 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_MASKED_COMP, int) 2028 #define AOM_CTRL_AV1E_SET_ENABLE_MASKED_COMP 2029 2030 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ONESIDED_COMP, int) 2031 #define AOM_CTRL_AV1E_SET_ENABLE_ONESIDED_COMP 2032 2033 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_COMP, int) 2034 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_COMP 2035 2036 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTERINTRA, int) 2037 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTERINTRA 2038 2039 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIFF_WTD_COMP, int) 2040 #define AOM_CTRL_AV1E_SET_ENABLE_DIFF_WTD_COMP 2041 2042 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTER_WEDGE, int) 2043 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTER_WEDGE 2044 2045 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTERINTRA_WEDGE, int) 2046 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_WEDGE 2047 2048 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_GLOBAL_MOTION, int) 2049 #define AOM_CTRL_AV1E_SET_ENABLE_GLOBAL_MOTION 2050 2051 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_WARPED_MOTION, int) 2052 #define AOM_CTRL_AV1E_SET_ENABLE_WARPED_MOTION 2053 2054 AOM_CTRL_USE_TYPE(AV1E_SET_ALLOW_WARPED_MOTION, int) 2055 #define AOM_CTRL_AV1E_SET_ALLOW_WARPED_MOTION 2056 2057 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_FILTER_INTRA, int) 2058 #define AOM_CTRL_AV1E_SET_ENABLE_FILTER_INTRA 2059 2060 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SMOOTH_INTRA, int) 2061 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTRA 2062 2063 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PAETH_INTRA, int) 2064 #define AOM_CTRL_AV1E_SET_ENABLE_PAETH_INTRA 2065 2066 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_CFL_INTRA, int) 2067 #define AOM_CTRL_AV1E_SET_ENABLE_CFL_INTRA 2068 2069 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_SUPERRES, int) 2070 #define AOM_CTRL_AV1E_SET_ENABLE_SUPERRES 2071 2072 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_OVERLAY, int) 2073 #define AOM_CTRL_AV1E_SET_ENABLE_OVERLAY 2074 2075 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_PALETTE, int) 2076 #define AOM_CTRL_AV1E_SET_ENABLE_PALETTE 2077 2078 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_INTRABC, int) 2079 #define AOM_CTRL_AV1E_SET_ENABLE_INTRABC 2080 2081 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ANGLE_DELTA, int) 2082 #define AOM_CTRL_AV1E_SET_ENABLE_ANGLE_DELTA 2083 2084 AOM_CTRL_USE_TYPE(AV1E_SET_DELTAQ_MODE, unsigned int) 2085 #define AOM_CTRL_AV1E_SET_DELTAQ_MODE 2086 2087 AOM_CTRL_USE_TYPE(AV1E_SET_DELTALF_MODE, unsigned int) 2088 #define AOM_CTRL_AV1E_SET_DELTALF_MODE 2089 2090 AOM_CTRL_USE_TYPE(AV1E_SET_SINGLE_TILE_DECODING, unsigned int) 2091 #define AOM_CTRL_AV1E_SET_SINGLE_TILE_DECODING 2092 2093 AOM_CTRL_USE_TYPE(AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST, unsigned int) 2094 #define AOM_CTRL_AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST 2095 2096 AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, int) /* aom_timing_info_type_t */ 2097 #define AOM_CTRL_AV1E_SET_TIMING_INFO_TYPE 2098 2099 AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TEST_VECTOR, int) 2100 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TEST_VECTOR 2101 2102 AOM_CTRL_USE_TYPE(AV1E_SET_FILM_GRAIN_TABLE, const char *) 2103 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TABLE 2104 2105 AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_NOISE_LEVEL, int) 2106 #define AOM_CTRL_AV1E_SET_DENOISE_NOISE_LEVEL 2107 2108 AOM_CTRL_USE_TYPE(AV1E_SET_DENOISE_BLOCK_SIZE, unsigned int) 2109 #define AOM_CTRL_AV1E_SET_DENOISE_BLOCK_SIZE 2110 2111 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_X, unsigned int) 2112 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_X 2113 2114 AOM_CTRL_USE_TYPE(AV1E_SET_CHROMA_SUBSAMPLING_Y, unsigned int) 2115 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_Y 2116 2117 AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_TX_TYPE_SET, int) 2118 #define AOM_CTRL_AV1E_SET_REDUCED_TX_TYPE_SET 2119 2120 AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DCT_ONLY, int) 2121 #define AOM_CTRL_AV1E_SET_INTRA_DCT_ONLY 2122 2123 AOM_CTRL_USE_TYPE(AV1E_SET_INTER_DCT_ONLY, int) 2124 #define AOM_CTRL_AV1E_SET_INTER_DCT_ONLY 2125 2126 AOM_CTRL_USE_TYPE(AV1E_SET_INTRA_DEFAULT_TX_ONLY, int) 2127 #define AOM_CTRL_AV1E_SET_INTRA_DEFAULT_TX_ONLY 2128 2129 AOM_CTRL_USE_TYPE(AV1E_SET_QUANT_B_ADAPT, int) 2130 #define AOM_CTRL_AV1E_SET_QUANT_B_ADAPT 2131 2132 AOM_CTRL_USE_TYPE(AV1E_SET_GF_MAX_PYRAMID_HEIGHT, unsigned int) 2133 #define AOM_CTRL_AV1E_SET_GF_MAX_PYRAMID_HEIGHT 2134 2135 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_REFERENCE_FRAMES, int) 2136 #define AOM_CTRL_AV1E_SET_MAX_REFERENCE_FRAMES 2137 2138 AOM_CTRL_USE_TYPE(AV1E_SET_REDUCED_REFERENCE_SET, int) 2139 #define AOM_CTRL_AV1E_SET_REDUCED_REFERENCE_SET 2140 2141 AOM_CTRL_USE_TYPE(AV1E_SET_COEFF_COST_UPD_FREQ, unsigned int) 2142 #define AOM_CTRL_AV1E_SET_COEFF_COST_UPD_FREQ 2143 2144 AOM_CTRL_USE_TYPE(AV1E_SET_MODE_COST_UPD_FREQ, unsigned int) 2145 #define AOM_CTRL_AV1E_SET_MODE_COST_UPD_FREQ 2146 2147 AOM_CTRL_USE_TYPE(AV1E_SET_MV_COST_UPD_FREQ, unsigned int) 2148 #define AOM_CTRL_AV1E_SET_MV_COST_UPD_FREQ 2149 2150 AOM_CTRL_USE_TYPE(AV1E_SET_TIER_MASK, unsigned int) 2151 #define AOM_CTRL_AV1E_SET_TIER_MASK 2152 2153 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_CR, unsigned int) 2154 #define AOM_CTRL_AV1E_SET_MIN_CR 2155 2156 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_LAYER_ID, aom_svc_layer_id_t *) 2157 #define AOM_CTRL_AV1E_SET_SVC_LAYER_ID 2158 // TODO(aomedia:3231): Deprecated. Remove it. 2159 #define AOME_CTRL_AV1E_SET_SVC_LAYER_ID 2160 2161 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_PARAMS, aom_svc_params_t *) 2162 #define AOM_CTRL_AV1E_SET_SVC_PARAMS 2163 // TODO(aomedia:3231): Deprecated. Remove it. 2164 #define AOME_CTRL_AV1E_SET_SVC_PARAMS 2165 2166 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_REF_FRAME_CONFIG, aom_svc_ref_frame_config_t *) 2167 #define AOM_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG 2168 // TODO(aomedia:3231): Deprecated. Remove it. 2169 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG 2170 2171 AOM_CTRL_USE_TYPE(AV1E_SET_VMAF_MODEL_PATH, const char *) 2172 #define AOM_CTRL_AV1E_SET_VMAF_MODEL_PATH 2173 2174 AOM_CTRL_USE_TYPE(AV1E_ENABLE_EXT_TILE_DEBUG, unsigned int) 2175 #define AOM_CTRL_AV1E_ENABLE_EXT_TILE_DEBUG 2176 2177 AOM_CTRL_USE_TYPE(AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST, unsigned int) 2178 #define AOM_CTRL_AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST 2179 2180 AOM_CTRL_USE_TYPE(AV1E_SET_GF_MIN_PYRAMID_HEIGHT, unsigned int) 2181 #define AOM_CTRL_AV1E_SET_GF_MIN_PYRAMID_HEIGHT 2182 2183 AOM_CTRL_USE_TYPE(AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP, unsigned int) 2184 #define AOM_CTRL_AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP 2185 2186 AOM_CTRL_USE_TYPE(AV1E_GET_BASELINE_GF_INTERVAL, int *) 2187 #define AOM_CTRL_AV1E_GET_BASELINE_GF_INTERVAL 2188 2189 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DNL_DENOISING, int) 2190 #define AOM_CTRL_AV1E_SET_ENABLE_DNL_DENOISING 2191 2192 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIAGONAL_INTRA, int) 2193 #define AOM_CTRL_AV1E_SET_ENABLE_DIAGONAL_INTRA 2194 2195 AOM_CTRL_USE_TYPE(AV1E_SET_DV_COST_UPD_FREQ, unsigned int) 2196 #define AOM_CTRL_AV1E_SET_DV_COST_UPD_FREQ 2197 2198 AOM_CTRL_USE_TYPE(AV1E_SET_PARTITION_INFO_PATH, const char *) 2199 #define AOM_CTRL_AV1E_SET_PARTITION_INFO_PATH 2200 2201 AOM_CTRL_USE_TYPE(AV1E_SET_EXTERNAL_PARTITION, aom_ext_part_funcs_t *) 2202 #define AOM_CTRL_AV1E_SET_EXTERNAL_PARTITION 2203 2204 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIRECTIONAL_INTRA, int) 2205 #define AOM_CTRL_AV1E_SET_ENABLE_DIRECTIONAL_INTRA 2206 2207 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_TX_SIZE_SEARCH, int) 2208 #define AOM_CTRL_AV1E_SET_ENABLE_TX_SIZE_SEARCH 2209 2210 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_REF_FRAME_COMP_PRED, 2211 aom_svc_ref_frame_comp_pred_t *) 2212 #define AOM_CTRL_AV1E_SET_SVC_REF_FRAME_COMP_PRED 2213 // TODO(aomedia:3231): Deprecated. Remove it. 2214 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_COMP_PRED 2215 2216 AOM_CTRL_USE_TYPE(AV1E_SET_DELTAQ_STRENGTH, unsigned int) 2217 #define AOM_CTRL_AV1E_SET_DELTAQ_STRENGTH 2218 2219 AOM_CTRL_USE_TYPE(AV1E_SET_LOOPFILTER_CONTROL, int) 2220 #define AOM_CTRL_AV1E_SET_LOOPFILTER_CONTROL 2221 2222 AOM_CTRL_USE_TYPE(AOME_GET_LOOPFILTER_LEVEL, int *) 2223 #define AOM_CTRL_AOME_GET_LOOPFILTER_LEVEL 2224 2225 AOM_CTRL_USE_TYPE(AV1E_SET_AUTO_INTRA_TOOLS_OFF, unsigned int) 2226 #define AOM_CTRL_AV1E_SET_AUTO_INTRA_TOOLS_OFF 2227 2228 AOM_CTRL_USE_TYPE(AV1E_SET_RTC_EXTERNAL_RC, int) 2229 #define AOM_CTRL_AV1E_SET_RTC_EXTERNAL_RC 2230 2231 AOM_CTRL_USE_TYPE(AV1E_SET_FP_MT, unsigned int) 2232 #define AOM_CTRL_AV1E_SET_FP_MT 2233 2234 AOM_CTRL_USE_TYPE(AV1E_SET_FP_MT_UNIT_TEST, unsigned int) 2235 #define AOM_CTRL_AV1E_SET_FP_MT_UNIT_TEST 2236 2237 AOM_CTRL_USE_TYPE(AV1E_GET_TARGET_SEQ_LEVEL_IDX, int *) 2238 #define AOM_CTRL_AV1E_GET_TARGET_SEQ_LEVEL_IDX 2239 2240 AOM_CTRL_USE_TYPE(AV1E_GET_NUM_OPERATING_POINTS, int *) 2241 #define AOM_CTRL_AV1E_GET_NUM_OPERATING_POINTS 2242 2243 AOM_CTRL_USE_TYPE(AV1E_SET_SKIP_POSTPROC_FILTERING, unsigned int) 2244 #define AOM_CTRL_AV1E_SET_SKIP_POSTPROC_FILTERING 2245 2246 AOM_CTRL_USE_TYPE(AV1E_ENABLE_SB_QP_SWEEP, unsigned int) 2247 #define AOM_CTRL_AV1E_ENABLE_SB_QP_SWEEP 2248 2249 AOM_CTRL_USE_TYPE(AV1E_SET_QUANTIZER_ONE_PASS, int) 2250 #define AOM_CTRL_AV1E_SET_QUANTIZER_ONE_PASS 2251 2252 AOM_CTRL_USE_TYPE(AV1E_ENABLE_RATE_GUIDE_DELTAQ, unsigned int) 2253 #define AOM_CTRL_AV1E_ENABLE_RATE_GUIDE_DELTAQ 2254 2255 AOM_CTRL_USE_TYPE(AV1E_SET_RATE_DISTRIBUTION_INFO, const char *) 2256 #define AOM_CTRL_AV1E_SET_RATE_DISTRIBUTION_INFO 2257 2258 AOM_CTRL_USE_TYPE(AV1E_GET_LUMA_CDEF_STRENGTH, int *) 2259 #define AOM_CTRL_AV1E_GET_LUMA_CDEF_STRENGTH 2260 2261 AOM_CTRL_USE_TYPE(AV1E_SET_BITRATE_ONE_PASS_CBR, unsigned int) 2262 #define AOM_CTRL_AV1E_SET_BITRATE_ONE_PASS_CBR 2263 2264 AOM_CTRL_USE_TYPE(AV1E_SET_SVC_FRAME_DROP_MODE, unsigned int) 2265 #define AOM_CTRL_AV1E_SET_SVC_FRAME_DROP_MODE 2266 2267 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR, int) 2268 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR 2269 2270 AOM_CTRL_USE_TYPE(AV1E_SET_AUTO_TILES, unsigned int) 2271 #define AOM_CTRL_AV1E_SET_AUTO_TILES 2272 2273 AOM_CTRL_USE_TYPE(AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC, int *) 2274 #define AOM_CTRL_AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC 2275 2276 AOM_CTRL_USE_TYPE(AV1E_SET_POSTENCODE_DROP_RTC, int) 2277 #define AOM_CTRL_AV1E_SET_POSTENCODE_DROP_RTC 2278 2279 AOM_CTRL_USE_TYPE(AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR, int) 2280 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR 2281 2282 /*!\endcond */ 2283 /*! @} - end defgroup aom_encoder */ 2284 #ifdef __cplusplus 2285 } // extern "C" 2286 #endif 2287 2288 #endif // AOM_AOM_AOMCX_H_ 2289