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 
242 
247 
248  /* NOTE: enum 18 unused */
249 
256 
264 
269 
274 
275  /* NOTE: enum 23 unused */
276 
283 
293 
307 
312 
326 
340 
341  /* NOTE: enum 30 unused */
342 
354 
362 
381 
399 
409 
418 
432 
443 
454 
469 
481 
489 
498 
507 
528 
553 
574 
581 
588 
595 
600 
607 
614 
637 
644 
652 
660 
671 
681 
688 
698 
708 
719 
732 
744 
756 
768 
780 
781  /* NOTE: enum 69 unused */
782 
790 
801 
802  /* NOTE: enum 72 unused */
803 
811 
819 
827 
838 
849 
857 
866 
877 
901 
913 
925 
936 
947 
955 
963 
971 
979 
987 
995 
1003 
1011 
1019 
1029 
1039 
1052 
1060 
1071 
1079 
1089 
1097 
1107 
1110 
1114 
1118 
1132 
1140 
1150 
1161 
1167 
1174 
1179 
1182 
1185 
1188 
1191 
1194 
1197 
1200 
1204 
1207 
1214 
1221 
1225 
1235 
1245 
1255 
1263 
1270 
1271  /* NOTE: enums 145-149 unused */
1272 
1277 
1282 
1287 
1292 
1302 
1313 
1320 
1325 
1329 
1330  /*\brief Control to set encoding the denoised frame from denoise-noise-level
1331  *
1332  * - 0 = disabled/encode the original frame
1333  * - 1 = enabled/encode the denoised frame (default)
1334  */
1335  AV1E_SET_ENABLE_DNL_DENOISING = 140,
1336 
1348 
1358 
1363 
1369 
1377 
1387 
1392 
1398 
1407 
1412 
1419 
1427 
1435 
1446 
1455 
1460 
1471 
1482 
1490 
1502 
1514 
1520 
1528 
1535 
1541 
1549 
1556 
1565 
1571 
1572  // Any new encoder control IDs should be added above.
1573  // Maximum allowed encoder control ID is 229.
1574  // No encoder control ID should be added below.
1575 };
1576 
1581 typedef enum aom_scaling_mode_1d {
1582  AOME_NORMAL = 0,
1583  AOME_FOURFIVE = 1,
1584  AOME_THREEFIVE = 2,
1585  AOME_THREEFOUR = 3,
1586  AOME_ONEFOUR = 4,
1587  AOME_ONEEIGHT = 5,
1588  AOME_ONETWO = 6,
1589  AOME_TWOTHREE = 7,
1590  AOME_ONETHREE = 8
1592 
1600 #define AOM_MAX_SEGMENTS 8
1601 
1609 typedef struct aom_roi_map {
1611  unsigned char *roi_map;
1612  unsigned int rows;
1613  unsigned int cols;
1618 } aom_roi_map_t;
1619 
1626 typedef struct aom_active_map {
1628  unsigned char *active_map;
1629  unsigned int rows;
1630  unsigned int cols;
1632 
1638 typedef struct aom_scaling_mode {
1642 
1644 typedef enum {
1645  AOM_CONTENT_DEFAULT,
1646  AOM_CONTENT_SCREEN,
1647  AOM_CONTENT_FILM,
1648  AOM_CONTENT_INVALID
1650 
1652 typedef enum {
1653  AOM_TIMING_UNSPECIFIED,
1654  AOM_TIMING_EQUAL,
1655  AOM_TIMING_DEC_MODEL
1657 
1663 typedef enum {
1664  AOM_TUNE_PSNR = 0,
1665  AOM_TUNE_SSIM = 1,
1666  /* NOTE: enums 2 and 3 unused */
1667  AOM_TUNE_VMAF_WITH_PREPROCESSING = 4,
1668  AOM_TUNE_VMAF_WITHOUT_PREPROCESSING = 5,
1669  AOM_TUNE_VMAF_MAX_GAIN = 6,
1670  AOM_TUNE_VMAF_NEG_MAX_GAIN = 7,
1671  AOM_TUNE_BUTTERAUGLI = 8,
1672  AOM_TUNE_VMAF_SALIENCY_MAP = 9,
1673 } aom_tune_metric;
1674 
1683 typedef enum {
1684  // Use PSNR for in-block rate-distortion optimization.
1685  AOM_DIST_METRIC_PSNR,
1686  // Use quantization matrix-weighted PSNR for in-block rate-distortion
1687  // optimization. If --enable-qm=1 is not specified, this falls back to
1688  // behaving in the same way as AOM_DIST_METRIC_PSNR.
1689  AOM_DIST_METRIC_QM_PSNR,
1690 } aom_dist_metric;
1691 
1692 #define AOM_MAX_LAYERS 32
1693 #define AOM_MAX_SS_LAYERS 4
1694 #define AOM_MAX_TS_LAYERS 8
1697 typedef struct aom_svc_layer_id {
1701 
1708 typedef struct aom_svc_params {
1720 
1723  // Three arrays need to be set: reference[], ref_id[], refresh[].
1724  // reference[i]: is a boolean flag to indicate which of the 7 possible
1725  // references are used for prediction. Values are 0 (not used as reference)
1726  // or 1 (use as reference). The index 0 - 6 refers to the references:
1727  // last(0), last2(1), last3(2), golden(3), bwdref(4), altref2(5), altref(6).
1728  // ref_idx[i]: maps a reference to one of the 8 buffers slots, values are
1729  // 0 - 7. The ref_idx for a unused reference (reference[i] = 1, and not used
1730  // for refresh, see below) can be set to the ref_idx of the first reference
1731  // used (usually LAST).
1732  // refresh[i] is a boolean flag to indicate if a buffer is updated/refreshed
1733  // with the current encoded frame. Values are 0 (no refresh) or 1 (refresh).
1734  // The refresh is done internally by looking at the ref_idx[j], for j = 0 - 6,
1735  // so to refresh a buffer slot (i) a reference must be mapped to that slot
1736  // (i = ref_idx[j]).
1737  // Examples for usage (for RTC encoding) are in: examples/svc_encoder_rtc.c.
1738  int reference[7];
1740  int ref_idx[7];
1741  int refresh[8];
1743 
1746  // Use compound prediction for the ref_frame pairs GOLDEN_LAST (0),
1747  // LAST2_LAST (1), and ALTREF_LAST (2).
1748  int use_comp_pred[3];
1750 
1752 typedef enum {
1756 
1770 #define AOM_CTRL_AOME_USE_REFERENCE
1771 
1773 #define AOM_CTRL_AOME_SET_ROI_MAP
1774 
1776 #define AOM_CTRL_AOME_SET_ACTIVEMAP
1777 
1779 #define AOM_CTRL_AOME_SET_SCALEMODE
1780 
1782 #define AOM_CTRL_AOME_SET_SPATIAL_LAYER_ID
1783 
1785 #define AOM_CTRL_AOME_SET_CPUUSED
1786 
1788 #define AOM_CTRL_AOME_SET_ENABLEAUTOALTREF
1789 
1791 #define AOM_CTRL_AOME_SET_SHARPNESS
1792 
1794 #define AOM_CTRL_AOME_SET_STATIC_THRESHOLD
1795 
1797 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER
1798 
1800 #define AOM_CTRL_AOME_GET_LAST_QUANTIZER_64
1801 
1803 #define AOM_CTRL_AOME_SET_ARNR_MAXFRAMES
1804 
1806 #define AOM_CTRL_AOME_SET_ARNR_STRENGTH
1807 
1808 AOM_CTRL_USE_TYPE(AOME_SET_TUNING, int) /* aom_tune_metric */
1809 #define AOM_CTRL_AOME_SET_TUNING
1810 
1811 AOM_CTRL_USE_TYPE(AOME_SET_CQ_LEVEL, unsigned int)
1812 #define AOM_CTRL_AOME_SET_CQ_LEVEL
1813 
1815 #define AOM_CTRL_AOME_SET_MAX_INTRA_BITRATE_PCT
1816 
1818 #define AOM_CTRL_AOME_SET_NUMBER_SPATIAL_LAYERS
1819 // TODO(aomedia:3231): Deprecated. Remove it.
1820 #define AOME_CTRL_AOME_SET_NUMBER_SPATIAL_LAYERS
1821 
1822 AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTER_BITRATE_PCT, unsigned int)
1823 #define AOM_CTRL_AV1E_SET_MAX_INTER_BITRATE_PCT
1824 // TODO(aomedia:3231): Deprecated. Remove it.
1825 #define AOM_CTRL_AOME_SET_MAX_INTER_BITRATE_PCT
1826 
1828 #define AOM_CTRL_AV1E_SET_GF_CBR_BOOST_PCT
1829 
1830 AOM_CTRL_USE_TYPE(AV1E_SET_LOSSLESS, unsigned int)
1831 #define AOM_CTRL_AV1E_SET_LOSSLESS
1832 
1833 AOM_CTRL_USE_TYPE(AV1E_SET_ROW_MT, unsigned int)
1834 #define AOM_CTRL_AV1E_SET_ROW_MT
1835 
1837 #define AOM_CTRL_AV1E_SET_TILE_COLUMNS
1838 
1840 #define AOM_CTRL_AV1E_SET_TILE_ROWS
1841 
1843 #define AOM_CTRL_AV1E_SET_ENABLE_TPL_MODEL
1844 
1846 #define AOM_CTRL_AV1E_SET_ENABLE_KEYFRAME_FILTERING
1847 
1849 #define AOM_CTRL_AV1E_SET_FRAME_PARALLEL_DECODING
1850 
1852 #define AOM_CTRL_AV1E_SET_ERROR_RESILIENT_MODE
1853 
1855 #define AOM_CTRL_AV1E_SET_S_FRAME_MODE
1856 
1857 AOM_CTRL_USE_TYPE(AV1E_SET_AQ_MODE, unsigned int)
1858 #define AOM_CTRL_AV1E_SET_AQ_MODE
1859 
1861 #define AOM_CTRL_AV1E_SET_FRAME_PERIODIC_BOOST
1862 
1864 #define AOM_CTRL_AV1E_SET_NOISE_SENSITIVITY
1865 
1866 AOM_CTRL_USE_TYPE(AV1E_SET_TUNE_CONTENT, int) /* aom_tune_content */
1867 #define AOM_CTRL_AV1E_SET_TUNE_CONTENT
1868 
1870 #define AOM_CTRL_AV1E_SET_CDF_UPDATE_MODE
1871 
1873 #define AOM_CTRL_AV1E_SET_COLOR_PRIMARIES
1874 
1876 #define AOM_CTRL_AV1E_SET_TRANSFER_CHARACTERISTICS
1877 
1879 #define AOM_CTRL_AV1E_SET_MATRIX_COEFFICIENTS
1880 
1882 #define AOM_CTRL_AV1E_SET_CHROMA_SAMPLE_POSITION
1883 
1885 #define AOM_CTRL_AV1E_SET_MIN_GF_INTERVAL
1886 
1888 #define AOM_CTRL_AV1E_SET_MAX_GF_INTERVAL
1889 
1891 #define AOM_CTRL_AV1E_GET_ACTIVEMAP
1892 
1894 #define AOM_CTRL_AV1E_SET_COLOR_RANGE
1895 
1897 #define AOM_CTRL_AV1E_SET_RENDER_SIZE
1898 
1900 #define AOM_CTRL_AV1E_SET_TARGET_SEQ_LEVEL_IDX
1901 
1903 #define AOM_CTRL_AV1E_GET_SEQ_LEVEL_IDX
1904 
1906 #define AOM_CTRL_AV1E_SET_SUPERBLOCK_SIZE
1907 
1909 #define AOM_CTRL_AOME_SET_ENABLEAUTOBWDREF
1910 
1912 #define AOM_CTRL_AV1E_SET_ENABLE_CDEF
1913 
1915 #define AOM_CTRL_AV1E_SET_ENABLE_RESTORATION
1916 
1918 #define AOM_CTRL_AV1E_SET_FORCE_VIDEO_MODE
1919 
1921 #define AOM_CTRL_AV1E_SET_ENABLE_OBMC
1922 
1924 #define AOM_CTRL_AV1E_SET_DISABLE_TRELLIS_QUANT
1925 
1927 #define AOM_CTRL_AV1E_SET_ENABLE_QM
1928 
1929 // TODO(aomedia:3231): Remove these two lines.
1930 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DIST_8X8, unsigned int)
1931 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_8X8
1932 
1933 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MIN, unsigned int)
1934 #define AOM_CTRL_AV1E_SET_QM_MIN
1935 
1936 AOM_CTRL_USE_TYPE(AV1E_SET_QM_MAX, unsigned int)
1937 #define AOM_CTRL_AV1E_SET_QM_MAX
1938 
1939 AOM_CTRL_USE_TYPE(AV1E_SET_QM_Y, unsigned int)
1940 #define AOM_CTRL_AV1E_SET_QM_Y
1941 
1942 AOM_CTRL_USE_TYPE(AV1E_SET_QM_U, unsigned int)
1943 #define AOM_CTRL_AV1E_SET_QM_U
1944 
1945 AOM_CTRL_USE_TYPE(AV1E_SET_QM_V, unsigned int)
1946 #define AOM_CTRL_AV1E_SET_QM_V
1947 
1948 AOM_CTRL_USE_TYPE(AV1E_SET_NUM_TG, unsigned int)
1949 #define AOM_CTRL_AV1E_SET_NUM_TG
1950 
1951 AOM_CTRL_USE_TYPE(AV1E_SET_MTU, unsigned int)
1952 #define AOM_CTRL_AV1E_SET_MTU
1953 
1955 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_PARTITIONS
1956 
1958 #define AOM_CTRL_AV1E_SET_ENABLE_AB_PARTITIONS
1959 
1961 #define AOM_CTRL_AV1E_SET_ENABLE_1TO4_PARTITIONS
1962 
1964 #define AOM_CTRL_AV1E_SET_MIN_PARTITION_SIZE
1965 
1967 #define AOM_CTRL_AV1E_SET_MAX_PARTITION_SIZE
1968 
1970 #define AOM_CTRL_AV1E_SET_ENABLE_INTRA_EDGE_FILTER
1971 
1973 #define AOM_CTRL_AV1E_SET_ENABLE_ORDER_HINT
1974 
1976 #define AOM_CTRL_AV1E_SET_ENABLE_TX64
1977 
1979 #define AOM_CTRL_AV1E_SET_ENABLE_FLIP_IDTX
1980 
1982 #define AOM_CTRL_AV1E_SET_ENABLE_RECT_TX
1983 
1985 #define AOM_CTRL_AV1E_SET_ENABLE_DIST_WTD_COMP
1986 
1988 #define AOM_CTRL_AV1E_SET_ENABLE_REF_FRAME_MVS
1989 
1991 #define AOM_CTRL_AV1E_SET_ALLOW_REF_FRAME_MVS
1992 
1994 #define AOM_CTRL_AV1E_SET_ENABLE_DUAL_FILTER
1995 
1997 #define AOM_CTRL_AV1E_SET_ENABLE_CHROMA_DELTAQ
1998 
2000 #define AOM_CTRL_AV1E_SET_ENABLE_MASKED_COMP
2001 
2003 #define AOM_CTRL_AV1E_SET_ENABLE_ONESIDED_COMP
2004 
2006 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_COMP
2007 
2009 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTERINTRA
2010 
2012 #define AOM_CTRL_AV1E_SET_ENABLE_DIFF_WTD_COMP
2013 
2015 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTER_WEDGE
2016 
2018 #define AOM_CTRL_AV1E_SET_ENABLE_INTERINTRA_WEDGE
2019 
2021 #define AOM_CTRL_AV1E_SET_ENABLE_GLOBAL_MOTION
2022 
2024 #define AOM_CTRL_AV1E_SET_ENABLE_WARPED_MOTION
2025 
2027 #define AOM_CTRL_AV1E_SET_ALLOW_WARPED_MOTION
2028 
2030 #define AOM_CTRL_AV1E_SET_ENABLE_FILTER_INTRA
2031 
2033 #define AOM_CTRL_AV1E_SET_ENABLE_SMOOTH_INTRA
2034 
2036 #define AOM_CTRL_AV1E_SET_ENABLE_PAETH_INTRA
2037 
2039 #define AOM_CTRL_AV1E_SET_ENABLE_CFL_INTRA
2040 
2042 #define AOM_CTRL_AV1E_SET_ENABLE_SUPERRES
2043 
2045 #define AOM_CTRL_AV1E_SET_ENABLE_OVERLAY
2046 
2048 #define AOM_CTRL_AV1E_SET_ENABLE_PALETTE
2049 
2051 #define AOM_CTRL_AV1E_SET_ENABLE_INTRABC
2052 
2054 #define AOM_CTRL_AV1E_SET_ENABLE_ANGLE_DELTA
2055 
2057 #define AOM_CTRL_AV1E_SET_DELTAQ_MODE
2058 
2060 #define AOM_CTRL_AV1E_SET_DELTALF_MODE
2061 
2063 #define AOM_CTRL_AV1E_SET_SINGLE_TILE_DECODING
2064 
2066 #define AOM_CTRL_AV1E_ENABLE_MOTION_VECTOR_UNIT_TEST
2067 
2068 AOM_CTRL_USE_TYPE(AV1E_SET_TIMING_INFO_TYPE, int) /* aom_timing_info_type_t */
2069 #define AOM_CTRL_AV1E_SET_TIMING_INFO_TYPE
2070 
2072 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TEST_VECTOR
2073 
2075 #define AOM_CTRL_AV1E_SET_FILM_GRAIN_TABLE
2076 
2078 #define AOM_CTRL_AV1E_SET_DENOISE_NOISE_LEVEL
2079 
2081 #define AOM_CTRL_AV1E_SET_DENOISE_BLOCK_SIZE
2082 
2084 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_X
2085 
2087 #define AOM_CTRL_AV1E_SET_CHROMA_SUBSAMPLING_Y
2088 
2090 #define AOM_CTRL_AV1E_SET_REDUCED_TX_TYPE_SET
2091 
2093 #define AOM_CTRL_AV1E_SET_INTRA_DCT_ONLY
2094 
2096 #define AOM_CTRL_AV1E_SET_INTER_DCT_ONLY
2097 
2099 #define AOM_CTRL_AV1E_SET_INTRA_DEFAULT_TX_ONLY
2100 
2102 #define AOM_CTRL_AV1E_SET_QUANT_B_ADAPT
2103 
2105 #define AOM_CTRL_AV1E_SET_GF_MAX_PYRAMID_HEIGHT
2106 
2108 #define AOM_CTRL_AV1E_SET_MAX_REFERENCE_FRAMES
2109 
2111 #define AOM_CTRL_AV1E_SET_REDUCED_REFERENCE_SET
2112 
2114 #define AOM_CTRL_AV1E_SET_COEFF_COST_UPD_FREQ
2115 
2117 #define AOM_CTRL_AV1E_SET_MODE_COST_UPD_FREQ
2118 
2120 #define AOM_CTRL_AV1E_SET_MV_COST_UPD_FREQ
2121 
2123 #define AOM_CTRL_AV1E_SET_TIER_MASK
2124 
2125 AOM_CTRL_USE_TYPE(AV1E_SET_MIN_CR, unsigned int)
2126 #define AOM_CTRL_AV1E_SET_MIN_CR
2127 
2129 #define AOM_CTRL_AV1E_SET_SVC_LAYER_ID
2130 // TODO(aomedia:3231): Deprecated. Remove it.
2131 #define AOME_CTRL_AV1E_SET_SVC_LAYER_ID
2132 
2134 #define AOM_CTRL_AV1E_SET_SVC_PARAMS
2135 // TODO(aomedia:3231): Deprecated. Remove it.
2136 #define AOME_CTRL_AV1E_SET_SVC_PARAMS
2137 
2139 #define AOM_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG
2140 // TODO(aomedia:3231): Deprecated. Remove it.
2141 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_CONFIG
2142 
2144 #define AOM_CTRL_AV1E_SET_VMAF_MODEL_PATH
2145 
2147 #define AOM_CTRL_AV1E_ENABLE_EXT_TILE_DEBUG
2148 
2150 #define AOM_CTRL_AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST
2151 
2153 #define AOM_CTRL_AV1E_SET_GF_MIN_PYRAMID_HEIGHT
2154 
2156 #define AOM_CTRL_AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
2157 
2159 #define AOM_CTRL_AV1E_GET_BASELINE_GF_INTERVAL
2160 
2161 AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DNL_DENOISING, int)
2162 #define AOM_CTRL_AV1E_SET_ENABLE_DNL_DENOISING
2163 
2165 #define AOM_CTRL_AV1E_SET_ENABLE_DIAGONAL_INTRA
2166 
2168 #define AOM_CTRL_AV1E_SET_DV_COST_UPD_FREQ
2169 
2171 #define AOM_CTRL_AV1E_SET_PARTITION_INFO_PATH
2172 
2174 #define AOM_CTRL_AV1E_SET_EXTERNAL_PARTITION
2175 
2177 #define AOM_CTRL_AV1E_SET_ENABLE_DIRECTIONAL_INTRA
2178 
2180 #define AOM_CTRL_AV1E_SET_ENABLE_TX_SIZE_SEARCH
2181 
2184 #define AOM_CTRL_AV1E_SET_SVC_REF_FRAME_COMP_PRED
2185 // TODO(aomedia:3231): Deprecated. Remove it.
2186 #define AOME_CTRL_AV1E_SET_SVC_REF_FRAME_COMP_PRED
2187 
2189 #define AOM_CTRL_AV1E_SET_DELTAQ_STRENGTH
2190 
2192 #define AOM_CTRL_AV1E_SET_LOOPFILTER_CONTROL
2193 
2195 #define AOM_CTRL_AOME_GET_LOOPFILTER_LEVEL
2196 
2198 #define AOM_CTRL_AV1E_SET_AUTO_INTRA_TOOLS_OFF
2199 
2201 #define AOM_CTRL_AV1E_SET_RTC_EXTERNAL_RC
2202 
2203 AOM_CTRL_USE_TYPE(AV1E_SET_FP_MT, unsigned int)
2204 #define AOM_CTRL_AV1E_SET_FP_MT
2205 
2207 #define AOM_CTRL_AV1E_SET_FP_MT_UNIT_TEST
2208 
2210 #define AOM_CTRL_AV1E_GET_TARGET_SEQ_LEVEL_IDX
2211 
2213 #define AOM_CTRL_AV1E_GET_NUM_OPERATING_POINTS
2214 
2216 #define AOM_CTRL_AV1E_SET_SKIP_POSTPROC_FILTERING
2217 
2219 #define AOM_CTRL_AV1E_ENABLE_SB_QP_SWEEP
2220 
2222 #define AOM_CTRL_AV1E_SET_QUANTIZER_ONE_PASS
2223 
2225 #define AOM_CTRL_AV1E_ENABLE_RATE_GUIDE_DELTAQ
2226 
2228 #define AOM_CTRL_AV1E_SET_RATE_DISTRIBUTION_INFO
2229 
2231 #define AOM_CTRL_AV1E_GET_LUMA_CDEF_STRENGTH
2232 
2234 #define AOM_CTRL_AV1E_SET_BITRATE_ONE_PASS_CBR
2235 
2237 #define AOM_CTRL_AV1E_SET_SVC_FRAME_DROP_MODE
2238 
2240 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR
2241 
2243 #define AOM_CTRL_AV1E_SET_AUTO_TILES
2244 
2246 #define AOM_CTRL_AV1E_GET_HIGH_MOTION_CONTENT_SCREEN_RTC
2247 
2249 #define AOM_CTRL_AV1E_SET_POSTENCODE_DROP_RTC
2250 
2252 #define AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR
2253 
2256 #ifdef __cplusplus
2257 } // extern "C"
2258 #endif
2259 
2260 #endif // AOM_AOM_AOMCX_H_
Control to use dct only for intra modes, int parameter.
Definition: aomcx.h:1196
Codec control function to set max data rate for intra frames, unsigned int parameter.
Definition: aomcx.h:306
int number_spatial_layers
Definition: aomcx.h:1709
Codec control function to turn on / off Paeth intra mode usage, int parameter.
Definition: aomcx.h:1078
Codec control function to set an MTU size for a tile group, unsigned int parameter.
Definition: aomcx.h:800
Codec control function to encode with CDEF, unsigned int parameter.
Definition: aomcx.h:670
Codec control to set the frame drop mode for SVC, unsigned int parameter. The valid values are consta...
Definition: aomcx.h:1540
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:1527
Codec control function to turn on / off directional intra mode usage, int parameter.
Definition: aomcx.h:1376
Codec control to set the maximum number of consecutive frame drops, in units of time (milliseconds)...
Definition: aomcx.h:1570
unsigned char * active_map
specify an on (1) or off (0) each 16x16 region within a frame
Definition: aomcx.h:1628
Codec control function to turn on / off frame order hint (int parameter). Affects: joint compound mod...
Definition: aomcx.h:865
Describes the encoder algorithm interface to applications.
int spatial_layer_id
Definition: aomcx.h:1698
Codec control function to set max partition size, int parameter.
Definition: aomcx.h:848
Codec control function to skip the application of post-processing filters on reconstructed frame...
Definition: aomcx.h:1470
Codec control to automatically turn off several intra coding tools, unsigned int parameter.
Definition: aomcx.h:1418
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:488
Codec control function to encode with quantisation matrices, unsigned int parameter.
Definition: aomcx.h:718
#define AOM_MAX_SS_LAYERS
Definition: aomcx.h:1693
Codec control function to signal picture timing info in the bitstream, aom_timing_info_type_t paramet...
Definition: aomcx.h:1166
aom_scaling_mode_1d
aom 1-D scaling mode
Definition: aomcx.h:1581
int framerate_factor[8]
Definition: aomcx.h:1718
Codec control function to turn on / off interintra wedge compound, int parameter. ...
Definition: aomcx.h:1018
Control to use default tx type only for intra modes, int parameter.
Definition: aomcx.h:1203
Codec control function to set chroma 4:2:0 sample position info, aom_chroma_sample_position_t paramet...
Definition: aomcx.h:580
Codec control function to turn on / off rectangular transforms, int parameter.
Definition: aomcx.h:912
Codec control function to set min partition size, int parameter.
Definition: aomcx.h:837
Codec control function to encode without trellis quantization, unsigned int parameter.
Definition: aomcx.h:707
Definition: aomcx.h:1697
Codec control function to set the max no of frames to create arf, unsigned int parameter.
Definition: aomcx.h:268
Codec control function to set constrained / constant quality level, unsigned int parameter.
Definition: aomcx.h:292
Control to set target sequence level index for a certain operating point (OP), int parameter Possible...
Definition: aomcx.h:636
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:1324
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:1113
Codec control function to turn on / off warped motion usage at sequence level, int parameter...
Definition: aomcx.h:1038
Codec control function to turn on / off interinter wedge compound, int parameter. ...
Definition: aomcx.h:1010
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:731
Codec control function to enable frame parallel decoding feature, unsigned int parameter.
Definition: aomcx.h:431
enum aom_scaling_mode_1d AOM_SCALING_MODE
aom 1-D scaling mode
Control to use dct only for inter modes, int parameter.
Definition: aomcx.h:1199
Codec control function to enable/disable rectangular partitions, int parameter.
Definition: aomcx.h:810
Codec control function to set transfer function info, int parameter.
Definition: aomcx.h:573
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:606
int refresh[8]
Definition: aomcx.h:1741
Codec control function to enable/disable AB partitions, int parameter.
Definition: aomcx.h:818
Codec control function to add film grain parameters (one of several preset types) info in the bitstre...
Definition: aomcx.h:1173
Codec control function to set max data rate for inter frames, unsigned int parameter.
Definition: aomcx.h:325
Control to select maximum height for the GF group pyramid structure, unsigned int parameter...
Definition: aomcx.h:1213
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:1269
int reference[7]
Definition: aomcx.h:1738
#define AOM_MAX_TS_LAYERS
Definition: aomcx.h:1694
Codec control function to set number of tile columns. unsigned int parameter.
Definition: aomcx.h:380
Codec control function to set the reference frame config, aom_svc_ref_frame_config_t* parameter...
Definition: aomcx.h:1286
Control to select maximum reference frames allowed per frame, int parameter.
Definition: aomcx.h:1220
Sets the denoisers block size, unsigned int parameter.
Definition: aomcx.h:1184
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:241
Sets the noise level, int parameter.
Definition: aomcx.h:1181
int temporal_layer_id
Definition: aomcx.h:1699
Definition: aomcx.h:1745
Codec control function to turn on / off smooth inter-intra mode for a sequence, int parameter...
Definition: aomcx.h:994
Codec control function to enable EXT_TILE_DEBUG in AV1 encoder, unsigned int parameter.
Definition: aomcx.h:1301
struct aom_svc_layer_id aom_svc_layer_id_t
Codec control function to enable temporal filtering on key frame, unsigned int parameter.
Definition: aomcx.h:417
Codec control function to turn on/off loopfilter modulation when delta q modulation is enabled...
Definition: aomcx.h:1139
Codec control function to set minimum interval between GF/ARF frames, unsigned int parameter...
Definition: aomcx.h:587
unsigned int cols
Definition: aomcx.h:1630
Codec control function to turn on / off CFL uv intra mode usage, int parameter.
Definition: aomcx.h:1088
Codec control function to turn on / off flip and identity transforms, int parameter.
Definition: aomcx.h:900
Control to turn on / off transform size search. Note: it can not work with non RD pick mode in real-t...
Definition: aomcx.h:1386
unsigned int cols
Definition: aomcx.h:1613
int layer_target_bitrate[32]
Definition: aomcx.h:1716
#define AOM_CTRL_USE_TYPE(id, typ)
Creates type checking mechanisms for aom_codec_control.
Definition: aom_codec.h:552
Codec control function to enable error_resilient_mode, int parameter.
Definition: aomcx.h:442
Codec control function to encode with Loop Restoration Filter, unsigned int parameter.
Definition: aomcx.h:680
Codec control function to set visual tuning, aom_tune_metric (int) parameter.
Definition: aomcx.h:282
Control to get baseline gf interval.
Definition: aomcx.h:1328
Codec control function to set the path to the film grain parameters, const char* parameter.
Definition: aomcx.h:1178
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:1028
Codec control function to turn on / off masked compound usage (wedge and diff-wtd compound modes) for...
Definition: aomcx.h:970
Codec control to set auto tiling, unsigned int parameter. Value of 1 means encoder will set number of...
Definition: aomcx.h:1548
Codec control function to set minimum interval between GF/ARF frames, unsigned int parameter...
Definition: aomcx.h:594
int scaling_factor_num[4]
Definition: aomcx.h:1713
Codec control function to set number of spatial layers, int parameter.
Definition: aomcx.h:311
aom_dist_metric
Distortion metric to use for RD optimization.
Definition: aomcx.h:1683
Sets the chroma subsampling y value, unsigned int parameter.
Definition: aomcx.h:1190
int max_quantizers[32]
Definition: aomcx.h:1711
Codec control function to set SVC parameters, aom_svc_params_t* parameter.
Definition: aomcx.h:1281
int delta_lf[8]
Definition: aomcx.h:1615
Codec control function to turn on / off filter intra usage at sequence level, int parameter...
Definition: aomcx.h:1059
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:1626
int min_quantizers[32]
Definition: aomcx.h:1712
Codec control function to turn on / off interintra compound for a sequence, int parameter.
Definition: aomcx.h:986
Sets the chroma subsampling x value, unsigned int parameter.
Definition: aomcx.h:1187
Codec control function to turn on / off ref frame mvs (mfmv) usage at sequence level, int parameter.
Definition: aomcx.h:935
int use_comp_pred[3]
Definition: aomcx.h:1748
Codec control function to set encoder spatial layer id, int parameter.
Definition: aomcx.h:202
Definition: aomcx.h:1753
Codec control function to get last quantizer chosen by the encoder, int* parameter.
Definition: aomcx.h:263
#define AOM_MAX_LAYERS
Definition: aomcx.h:1692
Control to set frequency of the cost updates for intrabc motion vectors, unsigned int parameter...
Definition: aomcx.h:1357
Codec control function to get an active map back from the encoder, aom_active_map_t* parameter...
Definition: aomcx.h:599
Codec control to enable post encode frame drop for RTC encoding, int parameter.
Definition: aomcx.h:1564
Codec control to enable the rate distribution guided delta quantization in all intra mode...
Definition: aomcx.h:1501
Control to set frequency of the cost updates for motion vectors, unsigned int parameter.
Definition: aomcx.h:1254
int number_temporal_layers
Definition: aomcx.h:1710
Codec control to enable actual frame parallel encode or simulation of frame parallel encode in FPMT u...
Definition: aomcx.h:1445
Control to set bit mask that specifies which tier each of the 32 possible operating points conforms t...
Definition: aomcx.h:1262
Codec control function to set lossless encoding mode, unsigned int parameter.
Definition: aomcx.h:353
Codec control function to turn on/off palette mode, int parameter.
Definition: aomcx.h:1109
Control to set frequency of the cost updates for mode, unsigned int parameter.
Definition: aomcx.h:1244
Codec control function to set intended rendering image size, int32_t[2] parameter.
Definition: aomcx.h:613
Codec control to control loop filter.
Definition: aomcx.h:1406
Codec control function to enable s_frame_mode, int parameter.
Definition: aomcx.h:453
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:1640
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:408
Codec control function to enable the row based multi-threading of the encoder, unsigned int parameter...
Definition: aomcx.h:361
Codec control function to turn on / off dual interpolation filter for a sequence, int parameter...
Definition: aomcx.h:954
Codec control function to get sequence level index for each operating point. int* parameter...
Definition: aomcx.h:643
Codec control function to set the delta q mode, unsigned int parameter.
Definition: aomcx.h:1131
Codec control function to enable the extreme motion vector unit test, unsigned int parameter...
Definition: aomcx.h:1160
Codec control function to force video mode, unsigned int parameter.
Definition: aomcx.h:687
Codec control function to turn on / off dist-wtd compound mode at sequence level, int parameter...
Definition: aomcx.h:924
aom_codec_iface_t * aom_codec_av1_cx(void)
The interface to the AV1 encoder.
unsigned int static_threshold[8]
Definition: aomcx.h:1617
Codec control function to turn on / off 64-length transforms, int parameter.
Definition: aomcx.h:876
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:978
aom_tune_content
Definition: aomcx.h:1644
Codec control function to set the filter strength for the arf, unsigned int parameter.
Definition: aomcx.h:273
unsigned char * roi_map
Definition: aomcx.h:1611
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:1206
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:856
#define AOM_MAX_SEGMENTS
Max number of segments.
Definition: aomcx.h:1600
Control to use a reduced tx type set, int parameter.
Definition: aomcx.h:1193
aom region of interest map
Definition: aomcx.h:1609
Codec control function to set flag for rate control used by external encoders.
Definition: aomcx.h:1426
unsigned int rows
Definition: aomcx.h:1629
Codec control function to get the number of operating points. int* parameter.
Definition: aomcx.h:1459
Codec control function to set the path to the VMAF model used when tuning the encoder for VMAF...
Definition: aomcx.h:1291
Codec control function to turn on / off difference weighted compound, int parameter.
Definition: aomcx.h:1002
AOM_SVC_FRAME_DROP_MODE
Definition: aomcx.h:1752
Definition: aomcx.h:1708
Codec control function to turn on / off smooth intra modes usage, int parameter.
Definition: aomcx.h:1070
Codec control function to set reference frame compound prediction. aom_svc_ref_frame_comp_pred_t* par...
Definition: aomcx.h:1391
Codec control to get the high motion content flag, used for screen content realtime (RTC) encoding...
Definition: aomcx.h:1555
Codec control function to turn on / off overlay frames for filtered ALTREF frames, int parameter.
Definition: aomcx.h:1106
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:779
Codec control function to set number of tile rows, unsigned int parameter.
Definition: aomcx.h:398
Control to set frequency of the cost updates for coefficients, unsigned int parameter.
Definition: aomcx.h:1234
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:767
aom image scaling mode
Definition: aomcx.h:1638
Codec control to set quantizer for the next frame, int parameter.
Definition: aomcx.h:1489
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:1481
Codec control function to turn on / off warped motion usage at frame level, int parameter.
Definition: aomcx.h:1051
Codec control function to set content type, aom_tune_content parameter.
Definition: aomcx.h:497
int scaling_factor_den[4]
Definition: aomcx.h:1714
Codec control function to set the max quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:743
int delta_q[8]
Definition: aomcx.h:1614
Codec control function to set color space info, int parameter.
Definition: aomcx.h:527
Codec control function to set adaptive quantization mode, unsigned int parameter. ...
Definition: aomcx.h:468
Codec control to use an external partition model A set of callback functions is passed through this c...
Definition: aomcx.h:1368
Definition: aomcx.h:1754
Set –deltaq-mode strength.
Definition: aomcx.h:1397
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:1534
Control to select minimum height for the GF group pyramid structure, unsigned int parameter...
Definition: aomcx.h:1319
AOM_SCALING_MODE h_scaling_mode
Definition: aomcx.h:1639
Codec control function to predict with OBMC mode, unsigned int parameter.
Definition: aomcx.h:697
aom_timing_info_type_t
Definition: aomcx.h:1652
Codec control to set the path for partition stats read and write. const char * parameter.
Definition: aomcx.h:1362
Boost percentage for Golden Frame in CBR mode, unsigned int parameter.
Definition: aomcx.h:339
Codec control function to turn on / off D45 to D203 intra mode usage, int parameter.
Definition: aomcx.h:1347
Codec control function to enable/disable 1:4 and 4:1 partitions, int parameter.
Definition: aomcx.h:826
Codec control function to enable frame parallel multi-threading of the encoder, unsigned int paramete...
Definition: aomcx.h:1434
Codec control function to set CDF update mode, unsigned int parameter.
Definition: aomcx.h:506
unsigned int rows
Definition: aomcx.h:1612
Codec control function to set transfer function info, int parameter.
Definition: aomcx.h:552
Codec control function to turn on/off intra angle delta, int parameter.
Definition: aomcx.h:1117
Codec control function to set the single tile decoding mode, unsigned int parameter.
Definition: aomcx.h:1149
Codec control function to turn on / off frame superresolution, int parameter.
Definition: aomcx.h:1096
Codec control function to enable the superblock multipass unit test in AV1 to ensure that the encoder...
Definition: aomcx.h:1312
Codec control to get the CDEF strength for Y / luma plane, int * parameter. Returns an integer array ...
Definition: aomcx.h:1519
Codec control function to set temporal mv prediction enabling/disabling at frame level, int parameter.
Definition: aomcx.h:946
Definition: aomcx.h:1722
Codec control function to set the min quant matrix flatness, unsigned int parameter.
Definition: aomcx.h:755
Codec control function to set the threshold for MBs treated static, unsigned int parameter.
Definition: aomcx.h:246
aom_tune_metric
Model tuning parameters.
Definition: aomcx.h:1663
Codec control function to set intended superblock size, unsigned int parameter.
Definition: aomcx.h:651
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:1454
Codec control function to enable/disable periodic Q boost, unsigned int parameter.
Definition: aomcx.h:480
Codec control function to get last quantizer chosen by the encoder, int* parameter.
Definition: aomcx.h:255
Codec control function to set a maximum number of tile groups, unsigned int parameter.
Definition: aomcx.h:789
Codec control to set the input file for rate distribution used in all intra mode, const char * parame...
Definition: aomcx.h:1513
Codec control function to set the layer id, aom_svc_layer_id_t* parameter.
Definition: aomcx.h:1276
Codec control function to turn on / off delta quantization in chroma planes for a sequence...
Definition: aomcx.h:962
Codec control function to get the loopfilter chosen by the encoder, int* parameter.
Definition: aomcx.h:1411
Codec control function to enable automatic set and use of bwd-pred frames, unsigned int parameter...
Definition: aomcx.h:659
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:1224
int ref_idx[7]
Definition: aomcx.h:1740