aboutsummaryrefslogtreecommitdiff
path: root/third_party/libaom/source/libaom/aom/aomcx.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libaom/source/libaom/aom/aomcx.h')
-rw-r--r--third_party/libaom/source/libaom/aom/aomcx.h79
1 files changed, 58 insertions, 21 deletions
diff --git a/third_party/libaom/source/libaom/aom/aomcx.h b/third_party/libaom/source/libaom/aom/aomcx.h
index 87f0b5db9b..8345911abd 100644
--- a/third_party/libaom/source/libaom/aom/aomcx.h
+++ b/third_party/libaom/source/libaom/aom/aomcx.h
@@ -18,6 +18,7 @@
*/
#include "aom/aom.h"
#include "aom/aom_encoder.h"
+#include "aom/aom_external_partition.h"
/*!\file
* \brief Provides definitions for using AOM or AV1 encoder algorithm within the
@@ -167,6 +168,7 @@ extern aom_codec_iface_t *aom_codec_av1_cx(void);
*
* This set of macros define the control functions available for AVx
* encoder interface.
+ * The range of encode control ID is 7-229(max).
*
* \sa #aom_codec_control(aom_codec_ctx_t *ctx, int ctrl_id, ...)
*/
@@ -221,10 +223,14 @@ enum aome_enc_control_id {
/* NOTE: enum 15 unused */
- /*!\brief Codec control function to set loop filter sharpness,
+ /*!\brief Codec control function to set the sharpness parameter,
* unsigned int parameter.
*
- * Valid range: 0..7. The default is 0.
+ * This parameter controls the level at which rate-distortion optimization of
+ * transform coefficients favours sharpness in the block.
+ *
+ * Valid range: 0..7. The default is 0. Values 1-7 will avoid eob and skip
+ * block optimization and will change rdmult in favour of block sharpness.
*/
AOME_SET_SHARPNESS = AOME_SET_ENABLEAUTOALTREF + 2, // 16
@@ -1204,9 +1210,6 @@ enum aome_enc_control_id {
parameter */
AV1E_SET_REDUCED_REFERENCE_SET = 125,
- /* NOTE: enums 126-139 unused */
- /* NOTE: Need a gap in enum values to avoud conflict with 128, 129, 130 */
-
/*!\brief Control to set frequency of the cost updates for coefficients,
* unsigned int parameter
*
@@ -1215,7 +1218,7 @@ enum aome_enc_control_id {
* - 2 = update at tile level
* - 3 = turn off
*/
- AV1E_SET_COEFF_COST_UPD_FREQ = 140,
+ AV1E_SET_COEFF_COST_UPD_FREQ = 126,
/*!\brief Control to set frequency of the cost updates for mode, unsigned int
* parameter
@@ -1225,7 +1228,7 @@ enum aome_enc_control_id {
* - 2 = update at tile level
* - 3 = turn off
*/
- AV1E_SET_MODE_COST_UPD_FREQ = 141,
+ AV1E_SET_MODE_COST_UPD_FREQ = 127,
/*!\brief Control to set frequency of the cost updates for motion vectors,
* unsigned int parameter
@@ -1235,7 +1238,7 @@ enum aome_enc_control_id {
* - 2 = update at tile level
* - 3 = turn off
*/
- AV1E_SET_MV_COST_UPD_FREQ = 142,
+ AV1E_SET_MV_COST_UPD_FREQ = 128,
/*!\brief Control to set bit mask that specifies which tier each of the 32
* possible operating points conforms to, unsigned int parameter
@@ -1243,37 +1246,37 @@ enum aome_enc_control_id {
* - 0 = main tier (default)
* - 1 = high tier
*/
- AV1E_SET_TIER_MASK = 143,
+ AV1E_SET_TIER_MASK = 129,
/*!\brief Control to set minimum compression ratio, unsigned int parameter
* Take integer values. If non-zero, encoder will try to keep the compression
* ratio of each frame to be higher than the given value divided by 100.
* E.g. 850 means minimum compression ratio of 8.5.
*/
- AV1E_SET_MIN_CR = 144,
+ AV1E_SET_MIN_CR = 130,
/* NOTE: enums 145-149 unused */
/*!\brief Codec control function to set the layer id, aom_svc_layer_id_t*
* parameter
*/
- AV1E_SET_SVC_LAYER_ID = 150,
+ AV1E_SET_SVC_LAYER_ID = 131,
/*!\brief Codec control function to set SVC paramaeters, aom_svc_params_t*
* parameter
*/
- AV1E_SET_SVC_PARAMS = 151,
+ AV1E_SET_SVC_PARAMS = 132,
/*!\brief Codec control function to set reference frame config:
* the ref_idx and the refresh flags for each buffer slot.
* aom_svc_ref_frame_config_t* parameter
*/
- AV1E_SET_SVC_REF_FRAME_CONFIG = 152,
+ AV1E_SET_SVC_REF_FRAME_CONFIG = 133,
/*!\brief Codec control function to set the path to the VMAF model used when
* tuning the encoder for VMAF, const char* parameter
*/
- AV1E_SET_VMAF_MODEL_PATH = 153,
+ AV1E_SET_VMAF_MODEL_PATH = 134,
/*!\brief Codec control function to enable EXT_TILE_DEBUG in AV1 encoder,
* unsigned int parameter
@@ -1283,7 +1286,7 @@ enum aome_enc_control_id {
*
* \note This is only used in lightfield example test.
*/
- AV1E_ENABLE_EXT_TILE_DEBUG = 154,
+ AV1E_ENABLE_EXT_TILE_DEBUG = 135,
/*!\brief Codec control function to enable the superblock multipass unit test
* in AV1 to ensure that the encoder does not leak state between different
@@ -1294,30 +1297,30 @@ enum aome_enc_control_id {
*
* \note This is only used in sb_multipass unit test.
*/
- AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST = 155,
+ AV1E_ENABLE_SB_MULTIPASS_UNIT_TEST = 136,
/*!\brief Control to select minimum height for the GF group pyramid structure,
* unsigned int parameter
*
* Valid values: 0..5
*/
- AV1E_SET_GF_MIN_PYRAMID_HEIGHT = 156,
+ AV1E_SET_GF_MIN_PYRAMID_HEIGHT = 137,
/*!\brief Control to set average complexity of the corpus in the case of
* single pass vbr based on LAP, unsigned int parameter
*/
- AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP = 157,
+ AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP = 138,
/*!\brief Control to get baseline gf interval
*/
- AV1E_GET_BASELINE_GF_INTERVAL = 158,
+ AV1E_GET_BASELINE_GF_INTERVAL = 139,
/*\brief Control to set encoding the denoised frame from denoise-noise-level
*
* - 0 = disabled/encode the original frame
* - 1 = enabled/encode the denoised frame (default)
*/
- AV1E_SET_ENABLE_DNL_DENOISING = 159,
+ AV1E_SET_ENABLE_DNL_DENOISING = 140,
/*!\brief Codec control function to turn on / off D45 to D203 intra mode
* usage, int parameter
@@ -1327,7 +1330,32 @@ enum aome_enc_control_id {
* - 0 = disable
* - 1 = enable (default)
*/
- AV1E_SET_ENABLE_DIAGONAL_INTRA = 160,
+ AV1E_SET_ENABLE_DIAGONAL_INTRA = 141,
+
+ /*!\brief Control to set frequency of the cost updates for intrabc motion
+ * vectors, unsigned int parameter
+ *
+ * - 0 = update at SB level (default)
+ * - 1 = update at SB row level in tile
+ * - 2 = update at tile level
+ * - 3 = turn off
+ */
+ AV1E_SET_DV_COST_UPD_FREQ = 142,
+
+ /*!\brief Codec control to set the path for partition stats read and write.
+ * const char * parameter.
+ */
+ AV1E_SET_PARTITION_INFO_PATH = 143,
+
+ /*!\brief Codec control to use an external partition model
+ * A set of callback functions is passed through this control
+ * to let the encoder encode with given partitions.
+ */
+ AV1E_SET_EXTERNAL_PARTITION = 144,
+
+ // Any new encoder control IDs should be added above.
+ // Maximum allowed encoder control ID is 229.
+ // No encoder control ID should be added below.
};
/*!\brief aom 1-D scaling mode
@@ -1858,6 +1886,15 @@ AOM_CTRL_USE_TYPE(AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP, unsigned int)
AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_DNL_DENOISING, int)
#define AOM_CTRL_AV1E_SET_ENABLE_DNL_DENOISING
+AOM_CTRL_USE_TYPE(AV1E_SET_DV_COST_UPD_FREQ, unsigned int)
+#define AOM_CTRL_AV1E_SET_DV_COST_UPD_FREQ
+
+AOM_CTRL_USE_TYPE(AV1E_SET_PARTITION_INFO_PATH, const char *)
+#define AOM_CTRL_AV1E_SET_PARTITION_INFO_PATH
+
+AOM_CTRL_USE_TYPE(AV1E_SET_EXTERNAL_PARTITION, aom_ext_part_funcs_t *)
+#define AOM_CTRL_AV1E_SET_ENABLE_DNL_DENOISING
+
/*!\endcond */
/*! @} - end defgroup aom_encoder */
#ifdef __cplusplus