blob: 69c2101add6cee16c5bc26951eb35353af78f1f2 [file] [log] [blame] [edit]
#
# Copyright (c) 2021, Alliance for Open Media. All rights reserved
#
# This source code is subject to the terms of the BSD 3-Clause Clear License and
# the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear
# License was not distributed with this source code in the LICENSE file, you can
# obtain it at aomedia.org/license/software-license/bsd-3-c-c/. If the Alliance
# for Open Media Patent License 1.0 was not distributed with this source code in
# the PATENTS file, you can obtain it at aomedia.org/license/patent-license/.
include("${AOM_ROOT}/build/cmake/util.cmake")
# This file sets default values for libaom configuration variables. All libaom
# config variables are added to the CMake variable cache via the macros provided
# in util.cmake.
#
# The variables in this section of the file are detected at configuration time,
# but can be overridden via the use of CONFIG_* and ENABLE_* values also defined
# in this file.
#
set_aom_detect_var(INLINE "" "Sets INLINE value for current target.")
# CPUs.
set_aom_detect_var(AOM_ARCH_AARCH64 0 "Enables AArch64 architecture.")
set_aom_detect_var(ARCH_ARM 0 "Enables ARM architecture.")
set_aom_detect_var(ARCH_MIPS 0 "Enables MIPS architecture.")
set_aom_detect_var(ARCH_PPC 0 "Enables PPC architecture.")
set_aom_detect_var(ARCH_X86 0 "Enables X86 architecture.")
set_aom_detect_var(ARCH_X86_64 0 "Enables X86_64 architecture.")
# ARM feature flags.
set_aom_detect_var(HAVE_NEON 0 "Enables NEON intrinsics optimizations.")
# MIPS feature flags.
set_aom_detect_var(HAVE_DSPR2 0 "Enables DSPR2 optimizations.")
set_aom_detect_var(HAVE_MIPS32 0 "Enables MIPS32 optimizations.")
set_aom_detect_var(HAVE_MIPS64 0 "Enables MIPS64 optimizations. ")
set_aom_detect_var(HAVE_MSA 0 "Enables MSA optimizations.")
# PPC feature flags.
set_aom_detect_var(HAVE_VSX 0 "Enables VSX optimizations.")
# x86/x86_64 feature flags.
set_aom_detect_var(HAVE_AVX 0 "Enables AVX optimizations.")
set_aom_detect_var(HAVE_AVX2 0 "Enables AVX2 optimizations.")
set_aom_detect_var(HAVE_MMX 0 "Enables MMX optimizations. ")
set_aom_detect_var(HAVE_SSE 0 "Enables SSE optimizations.")
set_aom_detect_var(HAVE_SSE2 0 "Enables SSE2 optimizations.")
set_aom_detect_var(HAVE_SSE3 0 "Enables SSE3 optimizations.")
set_aom_detect_var(HAVE_SSE4_1 0 "Enables SSE 4.1 optimizations.")
set_aom_detect_var(HAVE_SSE4_2 0 "Enables SSE 4.2 optimizations.")
set_aom_detect_var(HAVE_SSSE3 0 "Enables SSSE3 optimizations.")
# Flags describing the build environment.
set_aom_detect_var(HAVE_FEXCEPT 0
"Internal flag, GNU fenv.h present for target.")
set_aom_detect_var(HAVE_PTHREAD_H 0 "Internal flag, target pthread support.")
set_aom_detect_var(HAVE_UNISTD_H 0
"Internal flag, unistd.h present for target.")
set_aom_detect_var(HAVE_WXWIDGETS 0 "WxWidgets present.")
#
# Variables in this section can be set from the CMake command line or from
# within the CMake GUI. The variables control libaom features.
#
# Build configuration flags.
set_aom_config_var(AOM_RTCD_FLAGS ""
"Arguments to pass to rtcd.pl. Separate with ';'")
set_aom_config_var(CONFIG_AV1_DECODER 1 "Enable AV1 decoder.")
set_aom_config_var(CONFIG_AV1_ENCODER 1 "Enable AV1 encoder.")
set_aom_config_var(CONFIG_BIG_ENDIAN 0 "Internal flag.")
set_aom_config_var(CONFIG_GCC 0 "Building with GCC (detect).")
set_aom_config_var(CONFIG_GCOV 0 "Enable gcov support.")
set_aom_config_var(CONFIG_GPROF 0 "Enable gprof support.")
set_aom_config_var(CONFIG_LIBYUV 1 "Enables libyuv scaling/conversion support.")
set_aom_config_var(CONFIG_LANCZOS_RESAMPLE 1 "Enables lanczos resize support.")
set_aom_config_var(CONFIG_MULTITHREAD 1 "Multithread support.")
set_aom_config_var(CONFIG_OS_SUPPORT 0 "Internal flag.")
set_aom_config_var(CONFIG_PIC 0 "Build with PIC enabled.")
set_aom_config_var(CONFIG_RUNTIME_CPU_DETECT 1 "Runtime CPU detection support.")
set_aom_config_var(CONFIG_SHARED 0 "Build shared libs.")
set_aom_config_var(CONFIG_WEBM_IO 1 "Enables WebM support.")
set_aom_config_var(CONFIG_ENABLE_IBC_NAT 1 "Enables IBC for natural content")
set_aom_config_var(CONFIG_ENABLE_INLOOP_FILTER_GIBC 1
"Enables In-loop filters for key-frames with GIBC enabled")
set_aom_config_var(CONFIG_IBC_SUBPEL_PRECISION 1
"Allow sub-pel precision for intraBC block vector.")
# Debugging flags.
set_aom_config_var(CONFIG_DEBUG 0 "Enable debug-only code.")
set_aom_config_var(CONFIG_MISMATCH_DEBUG 0 "Mismatch debugging flag.")
set_aom_config_var(CONFIG_EXCLUDE_SIMD_MISMATCH 1
"Exclude mismatch in SIMD functions for testing/debugging.")
# AV1 feature flags.
set_aom_config_var(CONFIG_ACCOUNTING 0 "Enables bit accounting.")
set_aom_config_var(CONFIG_ANALYZER 0 "Enables bit stream analyzer.")
set_aom_config_var(CONFIG_EXTRACT_PROTO 0
"Enables protobuf-based inspection tool.")
set_aom_config_var(CONFIG_COEFFICIENT_RANGE_CHECKING 0
"Coefficient range check.")
set_aom_config_var(CONFIG_DENOISE 1
"Denoise/noise modeling support in encoder.")
set_aom_config_var(CONFIG_INSPECTION 0 "Enables bitstream inspection.")
set_aom_config_var(CONFIG_INTERNAL_STATS 0 "Enables internal encoder stats.")
set_aom_config_var(CONFIG_MAX_DECODE_PROFILE 2
"Max profile to support decoding.")
set_aom_config_var(CONFIG_NORMAL_TILE_MODE 0 "Only enables normal tile mode.")
set_aom_config_var(CONFIG_SIZE_LIMIT 0 "Limit max decode width/height.")
set_aom_config_var(CONFIG_SPATIAL_RESAMPLING 1 "Spatial resampling.")
set_aom_config_var(DECODE_HEIGHT_LIMIT 0 "Set limit for decode height.")
set_aom_config_var(DECODE_WIDTH_LIMIT 0 "Set limit for decode width.")
set_aom_config_var(CONFIG_TUNE_VMAF 0 "Enable encoding tuning for VMAF.")
set_aom_config_var(CONFIG_USE_VMAF_RC 0 "Use libvmaf_rc tune for VMAF_NEG.")
# AV1 experiment flags.
set_aom_config_var(CONFIG_SPEED_STATS 0 "AV1 experiment flag.")
set_aom_config_var(CONFIG_COLLECT_RD_STATS 0 "AV1 experiment flag.")
set_aom_config_var(CONFIG_DIST_8X8 0 "AV1 experiment flag.")
set_aom_config_var(CONFIG_ENTROPY_STATS 0 "AV1 experiment flag.")
set_aom_config_var(CONFIG_INTER_STATS_ONLY 0 "AV1 experiment flag.")
set_aom_config_var(CONFIG_BITSTREAM_DEBUG 0
"AV1 experiment flag for bitstream debugging.")
set_aom_config_var(CONFIG_RD_DEBUG 0 "AV1 experiment flag.")
set_aom_config_var(CONFIG_SHARP_SETTINGS 0 "AV1 experiment flag.")
set_aom_config_var(CONFIG_DISABLE_FULL_PIXEL_SPLIT_8X8 1
"Disable full_pixel_motion_search_based_split on BLOCK_8X8.")
set_aom_config_var(CONFIG_COLLECT_PARTITION_STATS 0
"Collect stats on partition decisions.")
set_aom_config_var(CONFIG_COLLECT_COMPONENT_TIMING 0
"Collect encoding component timing information.")
set_aom_config_var(CONFIG_AV1_TEMPORAL_DENOISING 0
"Build with temporal denoising support.")
set_aom_config_var(CONFIG_NN_V2 0 "Fully-connected neural nets ver.2.")
set_aom_config_var(CONFIG_OPTICAL_FLOW_API 0
"AV1 experiment flag for optical flow API.")
set_aom_config_var(CONFIG_AV2CTC_PSNR_PEAK 1
"Use AV2 CTC type PSNR peak for 10- and 12-bit")
set_aom_config_var(CONFIG_ZERO_OFFSET_BITUPSHIFT 1
"Use zero offset for non-normative bit upshift")
set_aom_config_var(CONFIG_PARAKIT_COLLECT_DATA 0
"enables data collection for ParaKit training.")
# FG8 context simplification tests
set_aom_config_var(CONFIG_CTX_V_AC_SIGN 1 "FG8-Test1.")
set_aom_config_var(CONFIG_EOB_PT_CTX_REDUCTION 1 "FG8-Test4.")
set_aom_config_var(CONFIG_COEFF_BR_LF_UV_BYPASS 1
"AV2 experiment flag to bypass UV LF syntax. FG8-Test9.")
set_aom_config_var(CONFIG_COEFF_BR_PH_BYPASS 1
"AV2 experiment flag to bypass BR PH syntax. FG8-Test10.")
set_aom_config_var(CONFIG_BY_PASS_V_SIGN 1 "FG8-Test11.")
set_aom_config_var(CONFIG_CTX_BYPASS_DC_SIGN 1 "bypass coding FG8-Test8")
set_aom_config_var(CONFIG_CTX_BYPASS_CB_DC_SIGN 1
"bypass coding FG8-Test8-chroma-only")
set_aom_config_var(CONFIG_CTX_MV_SHELL_OFFSET_OTHER 0 "FG8-Test3.")
set_aom_config_var(CONFIG_CTX_WARP_REFIDX_REDUCTION 7
"FG8-Test19, Test20, Test21")
set_aom_config_var(CONFIG_BYPASS_WARP_PARAM_HIGH 0 "bypass coding FG8-Test22")
set_aom_config_var(CONFIG_BYPASS_WARP_PARAM_SIGN 0 "bypass coding FG8-Test23")
set_aom_config_var(CONFIG_PLT_DIR_CTX 0 "by-pass PLT dir coding. FG8-Test24")
set_aom_config_var(CONFIG_BYPASS_INTRABC_DRL_IDX 0 "bypass coding FG8-Test25")
set_aom_config_var(CONFIG_MERGE_PARA_CTX 0
"by-pass merge para coding. FG8-Test26")
set_aom_config_var(CONFIG_CTX_Y_SECOND_MODE 0 "bypass coding FG8-Test27")
# AV2 experiment flags.
set_aom_config_var(
CONFIG_WIENERNS_9x9 1
"AV2 non-separable 16-tap Wiener filter with enlarged 9x9 diamond shape")
set_aom_config_var(CONFIG_EXT_QUANT_UPD 1 "AV2 updated ext-quant.")
set_aom_config_var(CONFIG_COEFF_HR_LR1 1
"AV2 enable coding 1 LR in coefficient coding.")
set_aom_config_var(CONFIG_PARA_BD_REDUCE 1 "AV2 bitdepth reduction for PARA.")
set_aom_config_var(CONFIG_BYPASS_IMPROVEMENT 1
"AV2 enable entropy bypass improvement.")
set_aom_config_var(CONFIG_CDF_SCALE 1
"AV2 enable entropy cdf scaling improvement.")
set_aom_config_var(CONFIG_EOB_POS_LUMA 1 "EOB position coding for luma.")
set_aom_config_var(CONFIG_DIP 1 "AV2 intra data-driven prediction.")
set_aom_config_var(CONFIG_DIP_EXT 1 "AV2 DIP Improvements.")
set_aom_config_var(CONFIG_DIP_EXT_PRUNING 1 "AV2 DIP TFLite pruning.")
set_aom_config_var(CONFIG_ERP_TFLITE 0 NUMBER "Build ERP with TFLite")
set_aom_config_var(CONFIG_TCQ 1 "AV2 trellis coded quantization flag")
set_aom_config_var(CONFIG_TCQ_IMP 1 "AV2 TCQ improvement")
set_aom_config_var(CONFIG_COMPOUND_WARP_SAMPLES 1 NUMBER
"AV2 compound warped motion samples experiment flag")
set_aom_config_var(CONFIG_RELAX_AFFINE_CONSTRAINTS 1
"AV2 relax affine constraints")
set_aom_config_var(CONFIG_NEW_TX_PARTITION 1
"AV2 new transform partitions experiment flag.")
set_aom_config_var(CONFIG_4WAY_5WAY_TX_PARTITION 1
"AV2 4way+5way txfm partitions experiment flag.")
set_aom_config_var(CONFIG_INTER_COMPOUND_BY_JOINT 1
"AV2 inter compound mode by joint.")
set_aom_config_var(CONFIG_NO_JOINTMODE_WHEN_SAME_REFINDEX 1
"AV2 no joint mode when same ref index.")
set_aom_config_var(CONFIG_DISABLE_4X4_INTER 1 "Disable 4x4 inter blocks")
set_aom_config_var(
CONFIG_16_FULL_SEARCH_DMVR
1
"AV2 remove 2-stage search and early termination in neighbors for DMVR with 16-neighbor full search"
)
set_aom_config_var(CONFIG_24_FULL_SEARCH_DMVR 1
"AV2 DMVR with 24-neighbor full search")
set_aom_config_var(
CONFIG_IDIF 1
"AV2 experiment flag to enable Intra Directional Interpolation Filter.")
set_aom_config_var(CONFIG_ORIP_DC_DISABLED 0
"AV2 experiment flag to disable ORIP for DC mode.")
set_aom_config_var(CONFIG_ORIP_NONDC_DISABLED 0
"AV2 experiment flag to disable ORIP for non-DC modes.")
set_aom_config_var(CONFIG_MVP_IMPROVEMENT 1 "Enable MVP improvement")
set_aom_config_var(
CONFIG_IBP_DC 1
"AV2 experiment flag to enable intra bi-prediction for DC mode.")
set_aom_config_var(CONFIG_WAIP 1 "AV2 wide angular intra prediction flag.")
set_aom_config_var(CONFIG_MORPH_PRED 1 "AV2 intra prediction mode flag.")
set_aom_config_var(CONFIG_IMPROVED_MORPH_PRED 1
"Improvement of AV2 linear intra prediction mode.")
set_aom_config_var(
CONFIG_CONTEXT_DERIVATION 1
"AV2 experiment flag to enable modified context derivation : CWG-B065.")
# End: CWG-C016
set_aom_config_var(
CONFIG_COMBINE_PC_NS_WIENER 1 NUMBER
"AV2 pixel-classified, frame-level, nonsep Wiener filter experiment flag")
set_aom_config_var(
CONFIG_TEMP_LR 1
"AV2 experiment flag to use temporal LR when frame-level filter is on")
set_aom_config_var(
CONFIG_COMBINE_PC_NS_WIENER_ADD 1 NUMBER
"Frame-level, nonsep Wiener filter for chroma experiment flag")
set_aom_config_var(
CONFIG_RETRAIN_PC_WIENER 1 NUMBER
"Precision Adjustment and Retraining for RESTORE_PC_WIENER flag")
set_aom_config_var(
CONFIG_IMPROVED_DS_CC_WIENER 1
"AV2 improved luma downsampling for cross-plane non-sep wiener filter")
set_aom_config_var(
CONFIG_REMOVE_SIX_TAP_DS_CROSS_LR
1
"Replace the six-tap luma downsampling filter with a two-tap filter for cross-plane non-sep wiener filter"
)
# CWG-D178
set_aom_config_var(CONFIG_LOSSLESS_DPCM 1
"AV2 enable DPCM and FSC for lossless coding mode")
set_aom_config_var(
CONFIG_IMPROVE_LOSSLESS_TXM
1
"AV2 enable 4x4 IDTX for inter blocks and 8x8 IDTX for all blocks in lossless mode (luma only)"
)
set_aom_config_var(
CONFIG_ACROSS_SCALE_TPL_MVS 0 NUMBER
"AV2 experiment flag to enable across scale temporal mv projection")
set_aom_config_var(CONFIG_ACROSS_SCALE_WARP 0 NUMBER
"AV2 experiment flag to enable across scale warp modes.")
set_aom_config_var(CONFIG_ACROSS_SCALE_REFINEMV 0 NUMBER
"AV2 experiment flag to enable across scale refinemv modes.")
# CWG-E210
set_aom_config_var(CONFIG_RECT_CTX 1
"AV2 enable Context Reduction for Rectangle Partition Type")
# Source of throughput analysis : CWG-B065
set_aom_config_var(CONFIG_THROUGHPUT_ANALYSIS 0
"AV2 experiment flag to measure throughput.")
set_aom_config_var(CONFIG_IBC_SR_EXT 2 "Enables IntraBC search range extension")
set_aom_config_var(CONFIG_IBC_BV_IMPROVEMENT 1
"Enables BV improvements for IBC")
set_aom_config_var(CONFIG_IBC_MAX_DRL 1
"Enables Max DRL index signaling for IntraBC")
set_aom_config_var(
CONFIG_PALETTE_IMPROVEMENTS
1
"AV2 experiment flag for palette parsing independency and improved palette color map coding."
)
set_aom_config_var(
CONFIG_PALETTE_LINE_COPY
1
"AV2 experiment flag to enable palette line copy and transverse coding, CWG-D114."
)
set_aom_config_var(CONFIG_SKIP_MODE_SSE_BUG_FIX 1
"AV2 experiment flag to fix the SSE calc bug for skip mode.")
set_aom_config_var(CONFIG_SKIP_MODE_ENHANCEMENT 1
"AV2 experiment flag to enable skip mode enhancement.")
set_aom_config_var(
CONFIG_SKIP_MODE_PARSING_DEPENDENCY_REMOVAL 1
"AV2 experiment flag to remove parsing dependency of skip mode.")
set_aom_config_var(CONFIG_OUTPUT_FRAME_BASED_ON_ORDER_HINT_ENHANCEMENT 1
"Enable enhanced frame output order derivation")
set_aom_config_var(CONFIG_REF_LIST_DERIVATION_FOR_TEMPORAL_SCALABILITY 1
"Enable temporal scalability")
set_aom_config_var(CONFIG_SAME_REF_COMPOUND 1
"Allow compound mode to refer to the same reference frame")
set_aom_config_var(CONFIG_DISPLAY_ORDER_HINT_FIX 1
"Bug fix on display order hints of key frames")
set_aom_config_var(
CONFIG_BAWP_FIX_DIVISION_16x16_MC
1
"Fix BAWP from CWG-E245, only use up to 16 samples from left and above and remove division using 8, 16 , or 32 samples"
)
set_aom_config_var(CONFIG_BAWP_ACROSS_SCALES 0 NUMBER
"Enable BAWP across scales prediction")
set_aom_config_var(CONFIG_IMPROVED_INTRA_DIR_PRED 1 "Improved intra prediction")
set_aom_config_var(CONFIG_D071_IMP_MSK_BLD 1
"Enable single reference mode for frame boundary")
set_aom_config_var(CONFIG_SKIP_TXFM_OPT 1
"Enable to optimize the signaling of skip_txfm")
set_aom_config_var(CONFIG_REFINEMV 1 "Enable refinemv modes")
set_aom_config_var(CONFIG_EXPLICIT_TEMPORAL_DIST_CALC 1
"Enable to explicit temporal distance calculation")
set_aom_config_var(CONFIG_PRIMARY_REF_FRAME_OPT 1
"Enable the primary reference frame improvement")
set_aom_config_var(CONFIG_IMPROVED_GLOBAL_MOTION 1
"New global motion syntax for AV2")
set_aom_config_var(CONFIG_SEP_COMP_DRL 1
"Use separate drl list for compound modes")
set_aom_config_var(CONFIG_SKIP_ME_FOR_OPFL_MODES 1
"Reuse the mvs of compound mode from non-opfl path")
set_aom_config_var(CONFIG_E191_OFS_PRED_RES_HANDLE 1
"Enable outside frame boundary block handling")
set_aom_config_var(CONFIG_EXT_WARP_FILTER 1 "Enable extended warp filter")
set_aom_config_var(CONFIG_IMPROVE_EXT_WARP 1
"Enable ext warp filter for chroma blocks with bw=4 or bh=4")
set_aom_config_var(CONFIG_ADST_TUNED 1
"AV2 experiment to replace the ADST 4, 8 and 16 basis")
# CWG-F082: Extended DPB mode for AV2 in RTC
set_aom_config_var(CONFIG_EXTRA_DPB 1 "Use extra dpb")
# CWG-E230: On core transform for AV2
set_aom_config_var(CONFIG_CORE_TX 1 "AV2 core transform")
set_aom_config_var(CONFIG_TX_PARTITION_CTX 1
"Enable to optimize txfm partition context")
set_aom_config_var(CONFIG_BUGFIX_TX_PARTITION_TYPE_SIGNALING 1
"TX partition type signalling bugfix")
set_aom_config_var(CONFIG_INTERINTRA_IMPROVEMENT 1
"Enable additional inter-intra block sizes")
set_aom_config_var(CONFIG_REFRESH_FLAG 0
"Experiment flag to Signal refresh frame flag with 3 bits")
set_aom_config_var(CONFIG_D149_CTX_MODELING_OPT 1
"Enable to optimize block size dependent context modeling")
set_aom_config_var(
CONFIG_COMPOUND_WARP_CAUSAL 0
"AV2 experiment flag to enable compound new_newmv warp_causal mode")
set_aom_config_var(CONFIG_DSMVP_REFBANK_MV_SWAP 1
"Swap ref bank mv and derived smvp in DRL generation")
set_aom_config_var(CONFIG_D072_SKIP_MODE_IMPROVE 1
"Enable to improve skip mode")
set_aom_config_var(CONFIG_SKIP_MODE_NO_REFINEMENTS 1
"Disable refinement algorithms for the skip mode")
set_aom_config_var(CONFIG_MF_HOLE_FILL_ALWAYS_ENABLE 1
"Always enable motion field hole filling")
set_aom_config_var(
CONFIG_TX_TYPE_FLEX_IMPROVE 1
"Enable transform type flexbility improvement for large transform blocks")
set_aom_config_var(CONFIG_CWG_E099_DRL_WRL_SIMPLIFY 1
"Enable the simplification of DRL and WRL")
set_aom_config_var(CONFIG_BANK_IMPROVE 1
"Enable to improve refmv bank and warp parameter bank")
set_aom_config_var(CONFIG_PARTITION_CONTEXT_REDUCE 1
"Enable to reduce partition contexts")
set_aom_config_var(CONFIG_CCSO_FU_BUGFIX 1 "Bugfix to CCSO FU size")
set_aom_config_var(CONFIG_OPT_INTER_MODE_CTX 1
"Improvement of all inter mode related contexts")
set_aom_config_var(CONFIG_WRL_PRUNE_FOUR_PARAMETERS 1
"Enable WRL only prune four non-translational parameters")
set_aom_config_var(CONFIG_KEY_OVERLAY 1
"Enable to support the key overlay frame")
set_aom_config_var(CONFIG_DRL_REORDER_CONTROL 1
"Enable to have a flag to turn on and off DRL reorder")
set_aom_config_var(CONFIG_OPFL_CTX_OPT 1
"Enable optimization of the CDFs for use optflow flag")
set_aom_config_var(CONFIG_CDEF_ENHANCEMENTS 1
"Enable the optimization of CDEF strengths")
set_aom_config_var(CONFIG_MVD_CDF_REDUCTION 1
"Enable reduction of the CDFs for MVD related sybmols")
set_aom_config_var(CONFIG_TMVP_SIMPLIFICATIONS_F085 1
"Improvements to TMVP & MV trajectory")
set_aom_config_var(CONFIG_TMVP_SIMPLIFICATION 1
"Enable to reduce the number of TMVP candidates")
set_aom_config_var(CONFIG_IMPROVE_TIP_SMVP 1 "Improve SMVP with TIP (F043)")
set_aom_config_var(
CONFIG_MRLS_IMPROVE 1
"Enable MRLS improvement to enable two reference lines for intra prediction")
set_aom_config_var(CONFIG_TMVP_MV_COMPRESSION 1 "Enable to compress TMVP MV")
set_aom_config_var(
CONFIG_DRL_WRL_LINE_BUFFER_REDUCTION
1
"Reduce the line buffer size for DRL and WRL. The access unit is changed from 4x4 to 8x8"
)
set_aom_config_var(CONFIG_ENABLE_SR 0 "Enable super resolution mode")
set_aom_config_var(CONFIG_TIP_MV_SIMPLIFICATION 1
"Enable to address the motion field range issue in TIP")
# This is an encode-only change.
set_aom_config_var(CONFIG_MV_SEARCH_RANGE 1
"Enable a sufficient MV search range.")
# This is an encode-only change.
set_aom_config_var(CONFIG_LARGE_TF_BLOCK 1
"Enable large adaptively selected temporal filter blocks.")
set_aom_config_var(CONFIG_FIX_CDEF_SYNTAX 1
"AV2 experiment flag to fix CDEF syntax.")
set_aom_config_var(CONFIG_IMPROVED_CFL 1
"Enable improved CfL mode from CWG-C044")
set_aom_config_var(
CONFIG_CFL_64x64 1
"Enable cross-component prediction modes up to luma size 64x64")
set_aom_config_var(CONFIG_CFL_SIMPLIFICATION 1 "Fix issues of CfL")
set_aom_config_var(CONFIG_BLEND_MODE 1
"Enable improved intra blend mode from CWG-D046")
set_aom_config_var(CONFIG_ENABLE_MHCCP 1
"Enable multi hypothesis cross component prediction")
set_aom_config_var(CONFIG_E125_MHCCP_SIMPLIFY 1
"Simplify the parameter derivation for MHCCP")
set_aom_config_var(CONFIG_MHCCP_CONVOLVE_SIMPLIFY 1
"Simplify the convolve for MHCCP")
set_aom_config_var(CONFIG_E149_MHCCP_4PARA 1 "Using 4 parameters in MHCCP")
set_aom_config_var(
CONFIG_MHCCP_SB_BOUNDARY 1
"Using only 1 lines when MHCCP block at the superblock top boundary")
set_aom_config_var(MHCCP_BUFFER_4LINES 1
"Using 2 lines for the chroma reference region in MHCCP")
set_aom_config_var(CONFIG_MHCCP_GAUSSIAN 1
"Fix gaussian elimination precision for MHCCP")
set_aom_config_var(MHCCP_3_PARAMETERS 1 "Using 3 parameters in MHCCP")
set_aom_config_var(CONFIG_C071_SUBBLK_WARPMV 1
"AV2 experiment flag to use subblock warp MV for SMVP")
set_aom_config_var(CONFIG_C076_INTER_MOD_CTX 1
"AV2 experiment flag to simplify inter mode contexts")
set_aom_config_var(CONFIG_NEW_CONTEXT_MODELING 1
"Enable to improve the context modeling")
set_aom_config_var(CONFIG_WEDGE_MOD_EXT 1 "AV2 wedge modes extensions.")
set_aom_config_var(CONFIG_INTER_DDT 1
"Use data driven transform to replace ADST for inter.")
set_aom_config_var(CONFIG_MF_IMPROVEMENT 1
"Enable to improve temporal motion projection")
set_aom_config_var(CONFIG_MVP_SIMPLIFY 1
"Enable to simplify MVP list construction")
set_aom_config_var(CONFIG_BRU 1 "enable BRU update")
# IST for sub-TU partitions from CWG-E151
set_aom_config_var(CONFIG_IST_NON_ZERO_DEPTH 1
"Enable IST non zero depth TUs from CWG-E151.")
# IST set reduction (non-normative)
set_aom_config_var(
CONFIG_IST_REDUCTION 1
"Non-normatively use 4 sets for IST encoder search from CWG-E142.")
set_aom_config_var(CONFIG_TMVP_IMPROVE 1
"Enable to improve TMVP candidate selection in DRL list")
set_aom_config_var(CONFIG_COMPOUND_4XN 1
"Enable compound modes for 4XN/Nx4 blocks")
set_aom_config_var(CONFIG_TILE_CDFS_AVG_TO_FRAME 1
"Average the CDFs from tiles for frame CDF")
set_aom_config_var(CONFIG_LC_REF_MV_BANK 1
"Enable low complexity refmv bank design")
set_aom_config_var(
CONFIG_FRAME_HEADER_SIGNAL_OPT 1
"Enable the signaling optimization for certain frame header syntax elements")
set_aom_config_var(CONFIG_TIP_LD 1 "Enable TIP for low delay")
set_aom_config_var(CONFIG_TIP_ENHANCEMENT 1
"Enable different weighted prediction for TIP")
set_aom_config_var(CONFIG_REDESIGN_WARP_MODES_SIGNALING_FLOW 1
"Enable the redesign of warp modes signaling flow")
set_aom_config_var(CONFIG_PALETTE_THREE_NEIGHBOR 1
"Derive palette context using three neighbors")
# This is an encode-only change.
set_aom_config_var(CONFIG_FIX_RESIZE_PSNR 1
"Fix PSNR computation of resize mode in coded resolution")
set_aom_config_var(CONFIG_MOTION_MODE_RD_PRUNE 1
"Enable fast motion mode search")
set_aom_config_var(CONFIG_OPFL_MV_SEARCH 1 "Optical flow based MV search")
set_aom_config_var(CONFIG_MRSSE 0 "Enable MRSSE")
set_aom_config_var(CONFIG_IST_SET_FLAG 1
"AV2 experiment flag to signal Secondary Tx set ID.")
set_aom_config_var(CONFIG_SCC_DETERMINATION 1
"Enable the screen content tools determination improvement.")
set_aom_config_var(CONFIG_IST_ANY_SET 1
"Enable R-D Optimized IST set selection from CWG-D159.")
set_aom_config_var(CONFIG_CCSO_BO_REDUCE 1 "Reduce band only 128 case.")
set_aom_config_var(
CONFIG_TX_SKIP_FLAG_MODE_DEP_CTX 1
"CWG-D086: Context modeling for transform block zero flag signaling")
set_aom_config_var(
CONFIG_TIP_IMPLICIT_QUANT 1
"Enable implicit quantization derivation for TIP direct mode")
set_aom_config_var(CONFIG_REFINED_MVS_IN_TMVP 1
"Keep optical flow refined MVs in TMVP list.")
set_aom_config_var(CONFIG_IMPROVE_REFINED_MV 1
"Keep refined MVs in TMVP list for TIP modes.")
set_aom_config_var(CONFIG_IMPROVE_TMVP_LIST 1 "Improve TMVP list population.")
set_aom_config_var(CONFIG_AFFINE_REFINEMENT 1
"Decoder side affine motion refinement.")
set_aom_config_var(CONFIG_AFFINE_REFINEMENT_SB 1
"Subblock based affine refinement")
set_aom_config_var(CONFIG_LF_SUB_PU 1 "AV2 enable LF on sub blocks")
set_aom_config_var(CONFIG_ASYM_DF 1 "Enable asymmetric DF")
set_aom_config_var(CONFIG_DERIVED_MVD_SIGN 1 "Enable MVD sign derivations")
set_aom_config_var(CONFIG_VQ_MVD_CODING 1 "Enable VQ based MVD coding")
set_aom_config_var(CONFIG_QM_SIMPLIFY 1
"Enable new QMs based on 8x8, 8x4, and 4x8 sizes.")
set_aom_config_var(CONFIG_OPFL_BI 1 "Enable bilinear for initial opfl.")
set_aom_config_var(CONFIG_SUBBLK_REF_EXT 1
"Enable extension for subblock MV refinement.")
set_aom_config_var(CONFIG_SUBBLK_REF_DS 1
"Enable sad downsampling for subblock MV refinement.")
set_aom_config_var(CONFIG_CHROMA_TX 1
"Sequence-level flag to use only DCT for chroma.")
set_aom_config_var(CONFIG_SUBBLK_PAD 1
"Enable subblock padding for subblock mv refinement.")
set_aom_config_var(CONFIG_ML_PART_SPLIT 1
"Partition SPLIT pruning/forcing as predicted by ML.")
set_aom_config_var(CONFIG_F105_IST_MEM_REDUCE 1
"Prune ADST_ADST IST sets for 8x8 intra blocks")
set_aom_config_var(CONFIG_E124_IST_REDUCE_METHOD1 0 "AV2 IST reduction.")
set_aom_config_var(CONFIG_E124_IST_REDUCE_METHOD4 1
"AV2 remove worst-case multiplications.")
set_aom_config_var(CONFIG_COEFF_HR_ADAPTIVE 1
"AV2 enable adaptive coding of HR coefficients.")
set_aom_config_var(CONFIG_IBP_WEIGHT 1 "Reduce IBP weights memory.")
set_aom_config_var(CONFIG_FIX_IBP_DC 1 "Simplify prediction of IBP DC mode.")
set_aom_config_var(CONFIG_WEDGE_TMVP 1
"Improvements to tmvp MV storing for wedge mode.")
set_aom_config_var(
CONFIG_TMVP_MEM_OPT 1
"Enables directional storage and adaptive sampling for TMVP MVs.")
set_aom_config_var(CONFIG_MV_TRAJECTORY 1
"Enables TMVP MV trajectory tracking.")
set_aom_config_var(CONFIG_ADAPTATION_RATE_IMPROVE 1
"Enables adaptation rate improvement with CDF propagation.")
set_aom_config_var(
CONFIG_ENHANCED_FRAME_CONTEXT_INIT 1
"Enables improved frame context initialization with frame averaging.")
set_aom_config_var(
CONFIG_PRIMARY_QP_FIRST 1
"Improvements to the primary reference frame by selecting the closet QP.")
set_aom_config_var(
CONFIG_IMPROVED_SECONDARY_REFERENCE
1
"Enables improved secondary reference frame derivation for frame context initialization."
)
set_aom_config_var(CONFIG_FIX_INTER_DDT_PRECISION 1
"Fix precision of inter DDT.")
set_aom_config_var(CONFIG_WEDGE_SIMPL 1 "Wedge mode simplificaitons.")
set_aom_config_var(CONFIG_WARP_PRECISION 1 "Enable precisions of warp models.")
set_aom_config_var(CONFIG_SIX_PARAM_WARP_DELTA 1
"Enable six parameter warp models.")
set_aom_config_var(
CONFIG_REORDER_SIX_PARAM_DELTA 1
"Enable to six parameter warp models signal when warp_ref_idx is 1.")
set_aom_config_var(CONFIG_WARP_INTER_INTRA 1
"Enable inter-intra mode for warp block.")
set_aom_config_var(CONFIG_OPFL_MEMBW_REDUCTION 1
"Reduce memory bandwith for OPFL/subblk ref/DAMR to 15x15.")
set_aom_config_var(CONFIG_WARP_BD_BOX 1 "4x4 warp constraints.")
set_aom_config_var(CONFIG_DISABLE_4X4_IBP_ORIP 1 "Disable 4x4 for IBP/ORIP.")
set_aom_config_var(CONFIG_DF_PAR_BITS 1
"Flexible control of deblocking parameter bits.")
set_aom_config_var(CONFIG_NEW_PART_CTX 1 "New partition context models")
set_aom_config_var(CONFIG_EXT_SEG 1
"Extend the maximum number of segments to 16, CWG-F069.")
set_aom_config_var(CONFIG_DELTAQ_OPT 1
"Enable delta-q entropy coding optimization.")
set_aom_config_var(CONFIG_TX_PARTITION_RESTRICT 1
"Disallow transform partition for large coding blocks.")
set_aom_config_var(CONFIG_INTER_MODE_CONSOLIDATION 1
"Inter modes redesign and consolidation.")
set_aom_config_var(
CONFIG_F054_PIC_BOUNDARY
1
"Alignment of ref picture to be integer multiples of 8 for loop filter and inter prediction"
)
set_aom_config_var(CONFIG_GDF 1 "Enable guided detail filter.")
set_aom_config_var(CONFIG_REDUCE_SYMBOL_SIZE 1
"Symbol size reduction from 16 to 8.")
set_aom_config_var(CONFIG_DAMR_CLEAN_UP 1
"Clean up DAMR memory bandwith issue.")
set_aom_config_var(CONFIG_ADJ_Q_OFFSET 1
"Encoder-only config to adjust qp offsets.")
#
# Variables in this section control optional features of the build system.
#
set_aom_option_var(ENABLE_CCACHE "Enable ccache support." OFF)
set_aom_option_var(ENABLE_DECODE_PERF_TESTS "Enables decoder performance tests"
OFF)
set_aom_option_var(ENABLE_DISTCC "Enable distcc support." OFF)
set_aom_option_var(ENABLE_DOCS
"Enable documentation generation (doxygen required)." ON)
set_aom_option_var(ENABLE_ENCODE_PERF_TESTS "Enables encoder performance tests"
OFF)
set_aom_option_var(ENABLE_EXAMPLES "Enables build of example code." ON)
set_aom_option_var(ENABLE_GOMA "Enable goma support." OFF)
set_aom_option_var(
ENABLE_IDE_TEST_HOSTING
"Enables running tests within IDEs like Visual Studio and Xcode." OFF)
set_aom_option_var(ENABLE_NASM "Use nasm instead of yasm for x86 assembly." OFF)
set_aom_option_var(ENABLE_TESTDATA "Enables unit test data download targets."
ON)
set_aom_option_var(ENABLE_TESTS "Enables unit tests." ON)
set_aom_option_var(ENABLE_TOOLS "Enable applications in tools sub directory."
ON)
set_aom_option_var(ENABLE_WERROR "Converts warnings to errors at compile time."
OFF)
# ARM assembly/intrinsics flags.
set_aom_option_var(ENABLE_NEON "Enables NEON optimizations on ARM targets." ON)
# MIPS assembly/intrinsics flags.
set_aom_option_var(ENABLE_DSPR2 "Enables DSPR2 optimizations on MIPS targets."
OFF)
set_aom_option_var(ENABLE_MSA "Enables MSA optimizations on MIPS targets." OFF)
# VSX intrinsics flags.
set_aom_option_var(ENABLE_VSX "Enables VSX optimizations on PowerPC targets."
ON)
# x86/x86_64 assembly/intrinsics flags.
set_aom_option_var(ENABLE_MMX
"Enables MMX optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_SSE
"Enables SSE optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_SSE2
"Enables SSE2 optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_SSE3
"Enables SSE3 optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_SSSE3
"Enables SSSE3 optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_SSE4_1
"Enables SSE4_1 optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_SSE4_2
"Enables SSE4_2 optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_AVX
"Enables AVX optimizations on x86/x86_64 targets." ON)
set_aom_option_var(ENABLE_AVX2
"Enables AVX2 optimizations on x86/x86_64 targets." ON)