AOMedia AV1 Codec
aomcx.h
Go to the documentation of this file.
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 
19 #include "aom/aom.h"
20 #include "aom/aom_encoder.h"
22 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
56 
62 /*
63  * Algorithm Flags
64  */
65 
72 #define AOM_EFLAG_NO_REF_LAST (1 << 16)
73 
79 #define AOM_EFLAG_NO_REF_LAST2 (1 << 17)
80 
86 #define AOM_EFLAG_NO_REF_LAST3 (1 << 18)
87 
93 #define AOM_EFLAG_NO_REF_GF (1 << 19)
94 
101 #define AOM_EFLAG_NO_REF_ARF (1 << 20)
102 
108 #define AOM_EFLAG_NO_REF_BWD (1 << 21)
109 
115 #define AOM_EFLAG_NO_REF_ARF2 (1 << 22)
116 
122 #define AOM_EFLAG_NO_UPD_LAST (1 << 23)
123 
129 #define AOM_EFLAG_NO_UPD_GF (1 << 24)
130 
136 #define AOM_EFLAG_NO_UPD_ARF (1 << 25)
137 
142 #define AOM_EFLAG_NO_UPD_ENTROPY (1 << 26)
143 
148 #define AOM_EFLAG_NO_REF_FRAME_MVS (1 << 27)
149 
154 #define AOM_EFLAG_ERROR_RESILIENT (1 << 28)
155 
160 #define AOM_EFLAG_SET_S_FRAME (1 << 29)
161 
166 #define AOM_EFLAG_SET_PRIMARY_REF_NONE (1 << 30)
167 
181 
186 
191 
192  /* NOTE: enum 10 unused */
193 
198 
203 
221 
229 
230  /* NOTE: enum 15 unused */
231 
248 
253 
254  /* NOTE: enum 18 unused */
255 
262 
270 
275 
280 
281  /* NOTE: enum 23 unused */
282 
289 
299 
313 
318 
332 
346 
347  /* NOTE: enum 30 unused */
348 
360 
368 
387 
405 
415 
424 
438 
449 
460 
475 
487 
495 
504 
513 
534 
559 
580 
587 
594 
601 
606 
613 
620 
643 
650 
658 
666 
678 
688 
695 
705 
715 
726 
739 
751 
763 
775 
787 
788  /* NOTE: enum 69 unused */
789 
797 
808 
809  /* NOTE: enum 72 unused */
810 
818 
826 
834 
845 
856 
864 
873 
884 
908 
920 
932 
943 
954 
962 
970 
978 
986 
994 
1002 
1010 
1018 
1026 
1036 
1046 
1059 
1067 
1078 
1086 
1096 
1104 
1114 
1117 
1121 
1125 
1141 
1149 
1159 
1170 
1176 
1183 
1188 
1191 
1194 
1197 
1200 
1203 
1206 
1209 
1213 
1216 
1223 
1230 
1234 
1244 
1254 
1264 
1272 
1279 
1280  /* NOTE: enums 145-149 unused */
1281 
1286 
1291 
1296 
1301 
1311 
1322 
1329 
1334 
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 
1357 
1367 
1372 
1378 
1386 
1396 
1401 
1407 
1416 
1421 
1428 
1436 
1444 
1455 
1464 
1469 
1480 
1491 
1499 
1511 
1523 
1529 
1537 
1544 
1550 
1558 
1565 
1574 
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 
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
1601 
1609 #define AOM_MAX_SEGMENTS 8
1610 
1618 typedef struct aom_roi_map {
1620  unsigned char *roi_map;
1621  unsigned int rows;
1622  unsigned int cols;
1627 } aom_roi_map_t;
1628 
1635 typedef struct aom_active_map {
1637  unsigned char *active_map;
1638  unsigned int rows;
1639  unsigned int cols;
1641 
1647 typedef struct aom_scaling_mode {
1651 
1653 typedef enum {
1654  AOM_CONTENT_DEFAULT,
1655  AOM_CONTENT_SCREEN,
1656  AOM_CONTENT_FILM,
1657  AOM_CONTENT_INVALID
1659 
1661 typedef enum {
1662  AOM_TIMING_UNSPECIFIED,
1663  AOM_TIMING_EQUAL,
1664  AOM_TIMING_DEC_MODEL
1666 
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,
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 
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
1721 #define AOM_MAX_SS_LAYERS 4
1722 #define AOM_MAX_TS_LAYERS 8
1725 typedef struct aom_svc_layer_id {
1729 
1736 typedef struct aom_svc_params {
1748 
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];
1768  int ref_idx[7];
1769  int refresh[8];
1771 
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];
1778 
1780 typedef enum {
1784 
1798 #define AOM_CTRL_AOME_USE_REFERENCE
1799 
1801 #define AOM_CTRL_AOME_SET_ROI_MAP
1802 
1804 #define AOM_CTRL_AOME_SET_ACTIVEMAP
1805 
1807 #define AOM_CTRL_AOME_SET_SCALEMODE
1808 
1810 #define AOM_CTRL_AOME_SET_SPATIAL_LAYER_ID
1811 
1813 #define AOM_CTRL_AOME_SET_CPUUSED
1814 
1816 #define AOM_CTRL_AOME_SET_ENABLEAUTOALTREF
1817 
1819 #define AOM_CTRL_AOME_SET_SHARPNESS
1820 
1822 #define AOM_CTRL_AOME_SET_STATIC_THRESHOLD
1823 
1825 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER
1826 
1828 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER_64
1829 
1831 #define AOM_CTRL_AOME_SET_ARNR_MAXFRAMES
1832 
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 
1843 #define AOM_CTRL_AOME_SET_MAX_INTRA_BITRATE_PCT
1844 
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 
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 
1865 #define AOM_CTRL_AV1E_SET_TILE_COLUMNS
1866 
1868 #define AOM_CTRL_AV1E_SET_TILE_ROWS
1869 
1871 #define AOM_CTRL_AV1E_SET_ENABLE_TPL_MODEL
1872 
1874 #define AOM_CTRL_AV1E_SET_ENABLE_KEYFRAME_FILTERING
1875 
1877 #define AOM_CTRL_AV1E_SET_FRAME_PARALLEL_DECODING
1878 
1880 #define AOM_CTRL_AV1E_SET_ERROR_RESILIENT_MODE
1881 
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 
1889 #define AOM_CTRL_AV1E_SET_FRAME_PERIODIC_BOOST
1890 
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 
1898 #define AOM_CTRL_AV1E_SET_CDF_UPDATE_MODE
1899 
1901 #define AOM_CTRL_AV1E_SET_COLOR_PRIMARIES
1902 
1904 #define AOM_CTRL_AV1E_SET_TRANSFER_CHARACTERISTICS
1905 
1907 #define AOM_CTRL_AV1E_SET_MATRIX_COEFFICIENTS
1908 
1910 #define AOM_CTRL_AV1E_SET_CHROMA_SAMPLE_POSITION
1911 
1913 #define AOM_CTRL_AV1E_SET_MIN_GF_INTERVAL
1914 
1916 #define AOM_CTRL_AV1E_SET_MAX_GF_INTERVAL
1917 
1919 #define AOM_CTRL_AV1E_GET_ACTIVEMAP
1920 
1922 #define AOM_CTRL_AV1E_SET_COLOR_RANGE
1923 
1925 #define AOM_CTRL_AV1E_SET_RENDER_SIZE
1926 
1928 #define AOM_CTRL_AV1E_SET_TARGET_SEQ_LEVEL_IDX
1929 
1931 #define AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX
1932 
1934 #define AOM_CTRL_AV1E_SET_SUPERBLOCK_SIZE
1935 
1937 #define AOM_CTRL_AOME_SET_ENABLEAUTOBWDREF
1938 
1940 #define AOM_CTRL_AV1E_SET_ENABLE_CDEF
1941 
1943 #define AOM_CTRL_AV1E_SET_ENABLE_RESTORATION
1944 
1946 #define AOM_CTRL_AV1E_SET_FORCE_VIDEO_MODE
1947 
1949 #define AOM_CTRL_AV1E_SET_ENABLE_OBMC
1950 
1952 #define AOM_CTRL_AV1E_SET_DISABLE_TRELLIS_QUANT
1953 
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 
1983 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_PARTITIONS
1984 
1986 #define AOM_CTRL_AV1E_SET_ENABLE_AB_PARTITIONS
1987 
1989 #define AOM_CTRL_AV1E_SET_ENABLE_1TO4_PARTITIONS
1990 
1992 #define AOM_CTRL_AV1E_SET_MIN_PARTITION_SIZE
1993 
1995 #define AOM_CTRL_AV1E_SET_MAX_PARTITION_SIZE
1996 
1998 #define AOM_CTRL_AV1E_SET_ENABLE_INTRA_EDGE_FILTER
1999 
2001 #define AOM_CTRL_AV1E_SET_ENABLE_ORDER_HINT
2002 
2004 #define AOM_CTRL_AV1E_SET_ENABLE_TX64
2005 
2007 #define AOM_CTRL_AV1E_SET_ENABLE_FLIP_IDTX
2008 
2010 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_TX
2011 
2013 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_WTD_COMP
2014 
2016 #define AOM_CTRL_AV1E_SET_ENABLE_REF_FRAME_MVS
2017 
2019 #define AOM_CTRL_AV1E_SET_ALLOW_REF_FRAME_MVS
2020 
2022 #define AOM_CTRL_AV1E_SET_ENABLE_DUAL_FILTER
2023 
2025 #define AOM_CTRL_AV1E_SET_ENABLE_CHROMA_DELTAQ
2026 
2028 #define AOM_CTRL_AV1E_SET_ENABLE_MASKED_COMP
2029 
2031 #define AOM_CTRL_AV1E_SET_ENABLE_ONESIDED_COMP
2032 
2034 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_COMP
2035 
2037 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTERINTRA
2038 
2040 #define AOM_CTRL_AV1E_SET_ENABLE_DIFF_WTD_COMP
2041 
2043 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTER_WEDGE
2044 
2046 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_WEDGE
2047 
2049 #define AOM_CTRL_AV1E_SET_ENABLE_GLOBAL_MOTION
2050 
2052 #define AOM_CTRL_AV1E_SET_ENABLE_WARPED_MOTION
2053 
2055 #define AOM_CTRL_AV1E_SET_ALLOW_WARPED_MOTION
2056 
2058 #define AOM_CTRL_AV1E_SET_ENABLE_FILTER_INTRA
2059 
2061 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTRA
2062 
2064 #define AOM_CTRL_AV1E_SET_ENABLE_PAETH_INTRA
2065 
2067 #define AOM_CTRL_AV1E_SET_ENABLE_CFL_INTRA
2068 
2070 #define AOM_CTRL_AV1E_SET_ENABLE_SUPERRES
2071 
2073 #define AOM_CTRL_AV1E_SET_ENABLE_OVERLAY
2074 
2076 #define AOM_CTRL_AV1E_SET_ENABLE_PALETTE
2077 
2079 #define AOM_CTRL_AV1E_SET_ENABLE_INTRABC
2080 
2082 #define AOM_CTRL_AV1E_SET_ENABLE_ANGLE_DELTA
2083 
2085 #define AOM_CTRL_AV1E_SET_DELTAQ_MODE
2086 
2088 #define AOM_CTRL_AV1E_SET_DELTALF_MODE
2089 
2091 #define AOM_CTRL_AV1E_SET_SINGLE_TILE_DECODING
2092 
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 
2100 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TEST_VECTOR
2101 
2103 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TABLE
2104 
2106 #define AOM_CTRL_AV1E_SET_DENOISE_NOISE_LEVEL
2107 
2109 #define AOM_CTRL_AV1E_SET_DENOISE_BLOCK_SIZE
2110 
2112 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_X
2113 
2115 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_Y
2116 
2118 #define AOM_CTRL_AV1E_SET_REDUCED_TX_TYPE_SET
2119 
2121 #define AOM_CTRL_AV1E_SET_INTRA_DCT_ONLY
2122 
2124 #define AOM_CTRL_AV1E_SET_INTER_DCT_ONLY
2125 
2127 #define AOM_CTRL_AV1E_SET_INTRA_DEFAULT_TX_ONLY
2128 
2130 #define AOM_CTRL_AV1E_SET_QUANT_B_ADAPT
2131 
2133 #define AOM_CTRL_AV1E_SET_GF_MAX_PYRAMID_HEIGHT
2134 
2136 #define AOM_CTRL_AV1E_SET_MAX_REFERENCE_FRAMES
2137 
2139 #define AOM_CTRL_AV1E_SET_REDUCED_REFERENCE_SET
2140 
2142 #define AOM_CTRL_AV1E_SET_COEFF_COST_UPD_FREQ
2143 
2145 #define AOM_CTRL_AV1E_SET_MODE_COST_UPD_FREQ
2146 
2148 #define AOM_CTRL_AV1E_SET_MV_COST_UPD_FREQ
2149 
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 
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 
2162 #define AOM_CTRL_AV1E_SET_SVC_PARAMS
2163 // TODO(aomedia:3231): Deprecated. Remove it.
2164 #define AOME_CTRL_AV1E_SET_SVC_PARAMS
2165 
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 
2172 #define AOM_CTRL_AV1E_SET_VMAF_MODEL_PATH
2173 
2175 #define AOM_CTRL_AV1E_ENABLE_EXT_TILE_DEBUG
2176 
2178 #define AOM_CTRL_AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST
2179 
2181 #define AOM_CTRL_AV1E_SET_GF_MIN_PYRAMID_HEIGHT
2182 
2184 #define AOM_CTRL_AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
2185 
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 
2193 #define AOM_CTRL_AV1E_SET_ENABLE_DIAGONAL_INTRA
2194 
2196 #define AOM_CTRL_AV1E_SET_DV_COST_UPD_FREQ
2197 
2199 #define AOM_CTRL_AV1E_SET_PARTITION_INFO_PATH
2200 
2202 #define AOM_CTRL_AV1E_SET_EXTERNAL_PARTITION
2203 
2205 #define AOM_CTRL_AV1E_SET_ENABLE_DIRECTIONAL_INTRA
2206 
2208 #define AOM_CTRL_AV1E_SET_ENABLE_TX_SIZE_SEARCH
2209 
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 
2217 #define AOM_CTRL_AV1E_SET_DELTAQ_STRENGTH
2218 
2220 #define AOM_CTRL_AV1E_SET_LOOPFILTER_CONTROL
2221 
2223 #define AOM_CTRL_AOME_GET_LOOPFILTER_LEVEL
2224 
2226 #define AOM_CTRL_AV1E_SET_AUTO_INTRA_TOOLS_OFF
2227 
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 
2235 #define AOM_CTRL_AV1E_SET_FP_MT_UNIT_TEST
2236 
2238 #define AOM_CTRL_AV1E_GET_TARGET_SEQ_LEVEL_IDX
2239 
2241 #define AOM_CTRL_AV1E_GET_NUM_OPERATING_POINTS
2242 
2244 #define AOM_CTRL_AV1E_SET_SKIP_POSTPROC_FILTERING
2245 
2247 #define AOM_CTRL_AV1E_ENABLE_SB_QP_SWEEP
2248 
2250 #define AOM_CTRL_AV1E_SET_QUANTIZER_ONE_PASS
2251 
2253 #define AOM_CTRL_AV1E_ENABLE_RATE_GUIDE_DELTAQ
2254 
2256 #define AOM_CTRL_AV1E_SET_RATE_DISTRIBUTION_INFO
2257 
2259 #define AOM_CTRL_AV1E_GET_LUMA_CDEF_STRENGTH
2260 
2262 #define AOM_CTRL_AV1E_SET_BITRATE_ONE_PASS_CBR
2263 
2265 #define AOM_CTRL_AV1E_SET_SVC_FRAME_DROP_MODE
2266 
2268 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR
2269 
2271 #define AOM_CTRL_AV1E_SET_AUTO_TILES
2272 
2274 #define AOM_CTRL_AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC
2275 
2277 #define AOM_CTRL_AV1E_SET_POSTENCODE_DROP_RTC
2278 
2280 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR
2281 
2284 #ifdef __cplusplus
2285 } // extern "C"
2286 #endif
2287 
2288 #endif // AOM_AOM_AOMCX_H_
Control to use dct only for intra modes, int parameter.
Definition: aomcx.h:1205
Codec control function to set max data rate for intra frames, unsigned int parameter.
Definition: aomcx.h:312
int number_spatial_layers
Definition: aomcx.h:1737
Codec control function to turn on / off Paeth intra mode usage, int parameter.
Definition: aomcx.h:1085
Codec control function to set an MTU size for a tile group, unsigned int parameter.
Definition: aomcx.h:807
Codec control function to encode with CDEF, unsigned int parameter.
Definition: aomcx.h:677
Codec control to set the frame drop mode for SVC, unsigned int parameter. The valid values are consta...
Definition: aomcx.h:1549
Codec control to set the target bitrate in kilobits per second, unsigned int parameter. For 1 pass CBR mode, single layer encoding. This controls replaces the call aom_codec_enc_config_set(&codec, &cfg) when only target bitrate is changed, and so is much cheaper as it bypasses a lot of unneeded code checks.
Definition: aomcx.h:1536
Codec control function to turn on / off directional intra mode usage, int parameter.
Definition: aomcx.h:1385
Codec control to set the maximum number of consecutive frame drops, in units of time (milliseconds)...
Definition: aomcx.h:1579
int layer_target_bitrate[32]
Definition: aomcx.h:1744
unsigned char * active_map
specify an on (1) or off (0) each 16x16 region within a frame
Definition: aomcx.h:1637
Codec control function to turn on / off frame order hint (int parameter). Affects: joint compound mod...
Definition: aomcx.h:872
Describes the encoder algorithm interface to applications.
int spatial_layer_id
Definition: aomcx.h:1726
Codec control function to set max partition size, int parameter.
Definition: aomcx.h:855
Codec control function to skip the application of post-processing filters on reconstructed frame...
Definition: aomcx.h:1479
Codec control to automatically turn off several intra coding tools, unsigned int parameter.
Definition: aomcx.h:1427
Callback function set for external partition model.
Definition: aom_external_partition.h:410
Codec control function to set noise sensitivity, unsigned int parameter.
Definition: aomcx.h:494
Codec control function to encode with quantisation matrices, unsigned int parameter.
Definition: aomcx.h:725
#define AOM_MAX_SS_LAYERS
Definition: aomcx.h:1721
Codec control function to signal picture timing info in the bitstream, aom_timing_info_type_t paramet...
Definition: aomcx.h:1175
aom_scaling_mode_1d
aom 1-D scaling mode
Definition: aomcx.h:1590
Codec control function to turn on / off interintra wedge compound, int parameter. ...
Definition: aomcx.h:1025
Control to use default tx type only for intra modes, int parameter.
Definition: aomcx.h:1212
Codec control function to set chroma 4:2:0 sample position info, aom_chroma_sample_position_t paramet...
Definition: aomcx.h:586
Codec control function to turn on / off rectangular transforms, int parameter.
Definition: aomcx.h:919
Codec control function to set min partition size, int parameter.
Definition: aomcx.h:844
Codec control function to encode without trellis quantization, unsigned int parameter.
Definition: aomcx.h:714
Definition: aomcx.h:1725
Codec control function to set the max no of frames to create arf, unsigned int parameter.
Definition: aomcx.h:274
Codec control function to set constrained / constant quality level, unsigned int parameter.
Definition: aomcx.h:298
Control to set target sequence level index for a certain operating point (OP), int parameter Possible...
Definition: aomcx.h:642
struct aom_roi_map aom_roi_map_t
aom region of interest map
Provides controls common to both the AOM encoder and decoder.
Control to set average complexity of the corpus in the case of single pass vbr based on LAP...
Definition: aomcx.h:1333
Codec control function to set encoder scaling mode for the next frame to be coded, aom_scaling_mode_t* parameter.
Definition: aomcx.h:197
Codec control function to turn on/off intra block copy mode, int parameter.
Definition: aomcx.h:1120
Codec control function to turn on / off warped motion usage at sequence level, int parameter...
Definition: aomcx.h:1045
Codec control function to turn on / off interinter wedge compound, int parameter. ...
Definition: aomcx.h:1017
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:738
Codec control function to enable frame parallel decoding feature, unsigned int parameter.
Definition: aomcx.h:437
enum aom_scaling_mode_1d AOM_SCALING_MODE
aom 1-D scaling mode
int min_quantizers[32]
Definition: aomcx.h:1740
Control to use dct only for inter modes, int parameter.
Definition: aomcx.h:1208
Codec control function to enable/disable rectangular partitions, int parameter.
Definition: aomcx.h:817
Codec control function to set transfer function info, int parameter.
Definition: aomcx.h:579
struct aom_scaling_mode aom_scaling_mode_t
aom image scaling mode
Codec control function to set color range bit, int parameter.
Definition: aomcx.h:612
int refresh[8]
Definition: aomcx.h:1769
Codec control function to enable/disable AB partitions, int parameter.
Definition: aomcx.h:825
Codec control function to add film grain parameters (one of several preset types) info in the bitstre...
Definition: aomcx.h:1182
Codec control function to set max data rate for inter frames, unsigned int parameter.
Definition: aomcx.h:331
Control to select maximum height for the GF group pyramid structure, unsigned int parameter...
Definition: aomcx.h:1222
Control to set minimum compression ratio, unsigned int parameter Take integer values. If non-zero, encoder will try to keep the compression ratio of each frame to be higher than the given value divided by 100. E.g. 850 means minimum compression ratio of 8.5.
Definition: aomcx.h:1278
int reference[7]
Definition: aomcx.h:1766
#define AOM_MAX_TS_LAYERS
Definition: aomcx.h:1722
Codec control function to set number of tile columns. unsigned int parameter.
Definition: aomcx.h:386
Codec control function to set the reference frame config, aom_svc_ref_frame_config_t* parameter...
Definition: aomcx.h:1295
Control to select maximum reference frames allowed per frame, int parameter.
Definition: aomcx.h:1229
Sets the denoisers block size, unsigned int parameter.
Definition: aomcx.h:1193
const struct aom_codec_iface aom_codec_iface_t
Codec interface structure.
Definition: aom_codec.h:271
Codec control function to set the sharpness parameter, unsigned int parameter.
Definition: aomcx.h:247
Sets the noise level, int parameter.
Definition: aomcx.h:1190
int temporal_layer_id
Definition: aomcx.h:1727
Definition: aomcx.h:1773
Codec control function to turn on / off smooth inter-intra mode for a sequence, int parameter...
Definition: aomcx.h:1001
Codec control function to enable EXT_TILE_DEBUG in AV1 encoder, unsigned int parameter.
Definition: aomcx.h:1310
struct aom_svc_layer_id aom_svc_layer_id_t
int scaling_factor_num[4]
Definition: aomcx.h:1741
Codec control function to enable temporal filtering on key frame, unsigned int parameter.
Definition: aomcx.h:423
Codec control function to turn on/off loopfilter modulation when delta q modulation is enabled...
Definition: aomcx.h:1148
Codec control function to set minimum interval between GF/ARF frames, unsigned int parameter...
Definition: aomcx.h:593
unsigned int cols
Definition: aomcx.h:1639
Codec control function to turn on / off CFL uv intra mode usage, int parameter.
Definition: aomcx.h:1095
Codec control function to turn on / off flip and identity transforms, int parameter.
Definition: aomcx.h:907
Control to turn on / off transform size search. Note: it can not work with non RD pick mode in real-t...
Definition: aomcx.h:1395
unsigned int cols
Definition: aomcx.h:1622
Codec control function to enable error_resilient_mode, int parameter.
Definition: aomcx.h:448
Codec control function to encode with Loop Restoration Filter, unsigned int parameter.
Definition: aomcx.h:687
Codec control function to set visual tuning, aom_tune_metric (int) parameter.
Definition: aomcx.h:288
Control to get baseline gf interval.
Definition: aomcx.h:1337
Codec control function to set the path to the film grain parameters, const char* parameter.
Definition: aomcx.h:1187
struct aom_svc_params aom_svc_params_t
Codec control function to turn on / off global motion usage for a sequence, int parameter.
Definition: aomcx.h:1035
Codec control function to turn on / off masked compound usage (wedge and diff-wtd compound modes) for...
Definition: aomcx.h:977
Codec control to set auto tiling, unsigned int parameter. Value of 1 means encoder will set number of...
Definition: aomcx.h:1557
Codec control function to set minimum interval between GF/ARF frames, unsigned int parameter...
Definition: aomcx.h:600
Codec control function to set number of spatial layers, int parameter.
Definition: aomcx.h:317
aom_dist_metric
Distortion metric to use for RD optimization.
Definition: aomcx.h:1711
Sets the chroma subsampling y value, unsigned int parameter.
Definition: aomcx.h:1199
Codec control function to set SVC parameters, aom_svc_params_t* parameter.
Definition: aomcx.h:1290
int delta_lf[8]
Definition: aomcx.h:1624
Codec control function to turn on / off filter intra usage at sequence level, int parameter...
Definition: aomcx.h:1066
struct aom_svc_ref_frame_comp_pred aom_svc_ref_frame_comp_pred_t
struct aom_svc_ref_frame_config aom_svc_ref_frame_config_t
aom active region map
Definition: aomcx.h:1635
Codec control function to turn on / off interintra compound for a sequence, int parameter.
Definition: aomcx.h:993
Sets the chroma subsampling x value, unsigned int parameter.
Definition: aomcx.h:1196
Codec control function to turn on / off ref frame mvs (mfmv) usage at sequence level, int parameter.
Definition: aomcx.h:942
int use_comp_pred[3]
Definition: aomcx.h:1776
Codec control function to set encoder spatial layer id, int parameter.
Definition: aomcx.h:202
Definition: aomcx.h:1781
Codec control function to get last quantizer chosen by the encoder, int* parameter.
Definition: aomcx.h:269
#define AOM_MAX_LAYERS
Definition: aomcx.h:1720
Control to set frequency of the cost updates for intrabc motion vectors, unsigned int parameter...
Definition: aomcx.h:1366
int max_quantizers[32]
Definition: aomcx.h:1739
Codec control function to get an active map back from the encoder, aom_active_map_t* parameter...
Definition: aomcx.h:605
Codec control to enable post encode frame drop for RTC encoding, int parameter.
Definition: aomcx.h:1573
Codec control to enable the rate distribution guided delta quantization in all intra mode...
Definition: aomcx.h:1510
Control to set frequency of the cost updates for motion vectors, unsigned int parameter.
Definition: aomcx.h:1263
int number_temporal_layers
Definition: aomcx.h:1738
Codec control to enable actual frame parallel encode or simulation of frame parallel encode in FPMT u...
Definition: aomcx.h:1454
Control to set bit mask that specifies which tier each of the 32 possible operating points conforms t...
Definition: aomcx.h:1271
Codec control function to set lossless encoding mode, unsigned int parameter.
Definition: aomcx.h:359
Codec control function to turn on/off palette mode, int parameter.
Definition: aomcx.h:1116
Control to set frequency of the cost updates for mode, unsigned int parameter.
Definition: aomcx.h:1253
Codec control function to set intended rendering image size, int32_t[2] parameter.
Definition: aomcx.h:619
Codec control to control loop filter.
Definition: aomcx.h:1415
Codec control function to enable s_frame_mode, int parameter.
Definition: aomcx.h:459
Codec control function to pass an ROI map to encoder, aom_roi_map_t* parameter.
Definition: aomcx.h:185
AOM_SCALING_MODE v_scaling_mode
Definition: aomcx.h:1649
Codec control function to set encoder internal speed settings, int parameter.
Definition: aomcx.h:220
Codec control function to enable RDO modulated by frame temporal dependency, unsigned int parameter...
Definition: aomcx.h:414
Codec control function to enable the row based multi-threading of the encoder, unsigned int parameter...
Definition: aomcx.h:367
Codec control function to turn on / off dual interpolation filter for a sequence, int parameter...
Definition: aomcx.h:961
Codec control function to get sequence level index for each operating point. int* parameter...
Definition: aomcx.h:649
Codec control function to set the delta q mode, unsigned int parameter.
Definition: aomcx.h:1140
Codec control function to enable the extreme motion vector unit test, unsigned int parameter...
Definition: aomcx.h:1169
Codec control function to force video mode, unsigned int parameter.
Definition: aomcx.h:694
Codec control function to turn on / off dist-wtd compound mode at sequence level, int parameter...
Definition: aomcx.h:931
aom_codec_iface_t * aom_codec_av1_cx(void)
The interface to the AV1 encoder.
unsigned int static_threshold[8]
Definition: aomcx.h:1626
Codec control function to turn on / off 64-length transforms, int parameter.
Definition: aomcx.h:883
Codec control function to pass an Active map to encoder, aom_active_map_t* parameter.
Definition: aomcx.h:190
Codec control function to turn on / off one sided compound usage for a sequence, int parameter...
Definition: aomcx.h:985
aom_tune_content
Definition: aomcx.h:1653
Codec control function to set the filter strength for the arf, unsigned int parameter.
Definition: aomcx.h:279
unsigned char * roi_map
Definition: aomcx.h:1620
aom_codec_iface_t aom_codec_av1_cx_algo
A single instance of the AV1 encoder.
Control to use adaptive quantize_b, int parameter.
Definition: aomcx.h:1215
aome_enc_control_id
AVx encoder control functions.
Definition: aomcx.h:176
Codec control function to enable automatic set and use alf frames, unsigned int parameter.
Definition: aomcx.h:228
Codec control function to turn on / off intra edge filter at sequence level, int parameter.
Definition: aomcx.h:863
#define AOM_MAX_SEGMENTS
Max number of segments.
Definition: aomcx.h:1609
Control to use a reduced tx type set, int parameter.
Definition: aomcx.h:1202
aom region of interest map
Definition: aomcx.h:1618
Codec control function to set flag for rate control used by external encoders.
Definition: aomcx.h:1435
unsigned int rows
Definition: aomcx.h:1638
Codec control function to get the number of operating points. int* parameter.
Definition: aomcx.h:1468
Codec control function to set the path to the VMAF model used when tuning the encoder for VMAF...
Definition: aomcx.h:1300
Codec control function to turn on / off difference weighted compound, int parameter.
Definition: aomcx.h:1009
AOM_SVC_FRAME_DROP_MODE
Definition: aomcx.h:1780
Definition: aomcx.h:1736
Codec control function to turn on / off smooth intra modes usage, int parameter.
Definition: aomcx.h:1077
Codec control function to set reference frame compound prediction. aom_svc_ref_frame_comp_pred_t* par...
Definition: aomcx.h:1400
Codec control to get the high motion content flag, used for screen content realtime (RTC) encoding...
Definition: aomcx.h:1564
Codec control function to turn on / off overlay frames for filtered ALTREF frames, int parameter.
Definition: aomcx.h:1113
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:786
#define AOM_CTRL_USE_TYPE(id, typ)
Creates type checking mechanisms for aom_codec_control.
Definition: aom_codec.h:552
Codec control function to set number of tile rows, unsigned int parameter.
Definition: aomcx.h:404
Control to set frequency of the cost updates for coefficients, unsigned int parameter.
Definition: aomcx.h:1243
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:774
aom image scaling mode
Definition: aomcx.h:1647
Codec control to set quantizer for the next frame, int parameter.
Definition: aomcx.h:1498
struct aom_active_map aom_active_map_t
aom active region map
Codec control function to enable the superblock level qp sweep in AV1 to ensure that end-to-end test ...
Definition: aomcx.h:1490
Codec control function to turn on / off warped motion usage at frame level, int parameter.
Definition: aomcx.h:1058
int scaling_factor_den[4]
Definition: aomcx.h:1742
Codec control function to set content type, aom_tune_content parameter.
Definition: aomcx.h:503
Codec control function to set the max quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:750
int delta_q[8]
Definition: aomcx.h:1623
Codec control function to set color space info, int parameter.
Definition: aomcx.h:533
int framerate_factor[8]
Definition: aomcx.h:1746
Codec control function to set adaptive quantization mode, unsigned int parameter. ...
Definition: aomcx.h:474
Codec control to use an external partition model A set of callback functions is passed through this c...
Definition: aomcx.h:1377
Definition: aomcx.h:1782
Set –deltaq-mode strength.
Definition: aomcx.h:1406
Codec control to set the maximum number of consecutive frame drops, in units of frames, allowed for the frame dropper in 1 pass CBR mode, int parameter. Value of zero has no effect.
Definition: aomcx.h:1543
Control to select minimum height for the GF group pyramid structure, unsigned int parameter...
Definition: aomcx.h:1328
AOM_SCALING_MODE h_scaling_mode
Definition: aomcx.h:1648
Codec control function to predict with OBMC mode, unsigned int parameter.
Definition: aomcx.h:704
aom_timing_info_type_t
Definition: aomcx.h:1661
Codec control to set the path for partition stats read and write. const char * parameter.
Definition: aomcx.h:1371
Boost percentage for Golden Frame in CBR mode, unsigned int parameter.
Definition: aomcx.h:345
Codec control function to turn on / off D45 to D203 intra mode usage, int parameter.
Definition: aomcx.h:1356
Codec control function to enable/disable 1:4 and 4:1 partitions, int parameter.
Definition: aomcx.h:833
Codec control function to enable frame parallel multi-threading of the encoder, unsigned int paramete...
Definition: aomcx.h:1443
Codec control function to set CDF update mode, unsigned int parameter.
Definition: aomcx.h:512
unsigned int rows
Definition: aomcx.h:1621
Codec control function to set transfer function info, int parameter.
Definition: aomcx.h:558
Codec control function to turn on/off intra angle delta, int parameter.
Definition: aomcx.h:1124
Codec control function to set the single tile decoding mode, unsigned int parameter.
Definition: aomcx.h:1158
Codec control function to turn on / off frame superresolution, int parameter.
Definition: aomcx.h:1103
Codec control function to enable the superblock multipass unit test in AV1 to ensure that the encoder...
Definition: aomcx.h:1321
Codec control to get the CDEF strength for Y / luma plane, int * parameter. Returns an integer array ...
Definition: aomcx.h:1528
Codec control function to set temporal mv prediction enabling/disabling at frame level, int parameter.
Definition: aomcx.h:953
Definition: aomcx.h:1750
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:762
Codec control function to set the threshold for MBs treated static, unsigned int parameter.
Definition: aomcx.h:252
aom_tune_metric
Model tuning parameters.
Definition: aomcx.h:1684
Codec control function to set intended superblock size, unsigned int parameter.
Definition: aomcx.h:657
Codec control function to get the target sequence level index for each operating point. int* parameter. There can be at most 32 operating points. The results will be written into a provided integer array of sufficient size. If a target level is not set, the result will be 31. Please refer to https://aomediacodec.github.io/av1-spec/#levels for more details on level definitions and indices.
Definition: aomcx.h:1463
Codec control function to enable/disable periodic Q boost, unsigned int parameter.
Definition: aomcx.h:486
Codec control function to get last quantizer chosen by the encoder, int* parameter.
Definition: aomcx.h:261
Codec control function to set a maximum number of tile groups, unsigned int parameter.
Definition: aomcx.h:796
Codec control to set the input file for rate distribution used in all intra mode, const char * parame...
Definition: aomcx.h:1522
Codec control function to set the layer id, aom_svc_layer_id_t* parameter.
Definition: aomcx.h:1285
Codec control function to turn on / off delta quantization in chroma planes for a sequence...
Definition: aomcx.h:969
Codec control function to get the loopfilter chosen by the encoder, int* parameter.
Definition: aomcx.h:1420
Codec control function to enable automatic set and use of bwd-pred frames, unsigned int parameter...
Definition: aomcx.h:665
Codec control function to set which reference frame encoder can use, int parameter.
Definition: aomcx.h:180
Provides function pointer definitions for the external partition.
Control to use reduced set of single and compound references, int parameter.
Definition: aomcx.h:1233
int ref_idx[7]
Definition: aomcx.h:1768