diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /third_party/aom/av1/arg_defs.c | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/aom/av1/arg_defs.c')
-rw-r--r-- | third_party/aom/av1/arg_defs.c | 702 |
1 files changed, 702 insertions, 0 deletions
diff --git a/third_party/aom/av1/arg_defs.c b/third_party/aom/av1/arg_defs.c new file mode 100644 index 0000000000..057565411a --- /dev/null +++ b/third_party/aom/av1/arg_defs.c @@ -0,0 +1,702 @@ +/* + * Copyright (c) 2021, Alliance for Open Media. All rights reserved + * + * This source code is subject to the terms of the BSD 2 Clause License and + * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License + * was not distributed with this source code in the LICENSE file, you can + * obtain it at www.aomedia.org/license/software. 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 www.aomedia.org/license/patent. + */ + +#include "av1/arg_defs.h" + +static const struct arg_enum_list test_decode_enum[] = { + { "off", TEST_DECODE_OFF }, + { "fatal", TEST_DECODE_FATAL }, + { "warn", TEST_DECODE_WARN }, + { NULL, 0 } +}; + +static const struct arg_enum_list bitdepth_enum[] = { + { "8", AOM_BITS_8 }, { "10", AOM_BITS_10 }, { "12", AOM_BITS_12 }, { NULL, 0 } +}; + +#if CONFIG_WEBM_IO +static const struct arg_enum_list stereo_mode_enum[] = { + { "mono", STEREO_FORMAT_MONO }, + { "left-right", STEREO_FORMAT_LEFT_RIGHT }, + { "bottom-top", STEREO_FORMAT_BOTTOM_TOP }, + { "top-bottom", STEREO_FORMAT_TOP_BOTTOM }, + { "right-left", STEREO_FORMAT_RIGHT_LEFT }, + { NULL, 0 } +}; +#endif + +static const struct arg_enum_list end_usage_enum[] = { { "vbr", AOM_VBR }, + { "cbr", AOM_CBR }, + { "cq", AOM_CQ }, + { "q", AOM_Q }, + { NULL, 0 } }; + +static const struct arg_enum_list tuning_enum[] = { + { "psnr", AOM_TUNE_PSNR }, + { "ssim", AOM_TUNE_SSIM }, + { "vmaf_with_preprocessing", AOM_TUNE_VMAF_WITH_PREPROCESSING }, + { "vmaf_without_preprocessing", AOM_TUNE_VMAF_WITHOUT_PREPROCESSING }, + { "vmaf", AOM_TUNE_VMAF_MAX_GAIN }, + { "vmaf_neg", AOM_TUNE_VMAF_NEG_MAX_GAIN }, + { "butteraugli", AOM_TUNE_BUTTERAUGLI }, + { "vmaf_saliency_map", AOM_TUNE_VMAF_SALIENCY_MAP }, + { NULL, 0 } +}; + +static const struct arg_enum_list dist_metric_enum[] = { + { "psnr", AOM_DIST_METRIC_PSNR }, + { "qm-psnr", AOM_DIST_METRIC_QM_PSNR }, + { NULL, 0 } +}; + +#if CONFIG_AV1_ENCODER +static const struct arg_enum_list timing_info_enum[] = { + { "unspecified", AOM_TIMING_UNSPECIFIED }, + { "constant", AOM_TIMING_EQUAL }, + { "model", AOM_TIMING_DEC_MODEL }, + { NULL, 0 } +}; + +static const struct arg_enum_list superblock_size_enum[] = { + { "dynamic", AOM_SUPERBLOCK_SIZE_DYNAMIC }, + { "64", AOM_SUPERBLOCK_SIZE_64X64 }, + { "128", AOM_SUPERBLOCK_SIZE_128X128 }, + { NULL, 0 } +}; + +static const struct arg_enum_list matrix_coefficients_enum[] = { + { "identity", AOM_CICP_MC_IDENTITY }, + { "bt709", AOM_CICP_MC_BT_709 }, + { "unspecified", AOM_CICP_MC_UNSPECIFIED }, + { "fcc73", AOM_CICP_MC_FCC }, + { "bt470bg", AOM_CICP_MC_BT_470_B_G }, + { "bt601", AOM_CICP_MC_BT_601 }, + { "smpte240", AOM_CICP_CP_SMPTE_240 }, + { "ycgco", AOM_CICP_MC_SMPTE_YCGCO }, + { "bt2020ncl", AOM_CICP_MC_BT_2020_NCL }, + { "bt2020cl", AOM_CICP_MC_BT_2020_CL }, + { "smpte2085", AOM_CICP_MC_SMPTE_2085 }, + { "chromncl", AOM_CICP_MC_CHROMAT_NCL }, + { "chromcl", AOM_CICP_MC_CHROMAT_CL }, + { "ictcp", AOM_CICP_MC_ICTCP }, + { NULL, 0 } +}; + +static const struct arg_enum_list chroma_sample_position_enum[] = { + { "unknown", AOM_CSP_UNKNOWN }, + { "vertical", AOM_CSP_VERTICAL }, + { "colocated", AOM_CSP_COLOCATED }, + { NULL, 0 } +}; + +static const struct arg_enum_list tune_content_enum[] = { + { "default", AOM_CONTENT_DEFAULT }, + { "screen", AOM_CONTENT_SCREEN }, + { "film", AOM_CONTENT_FILM }, + { NULL, 0 } +}; + +static const struct arg_enum_list transfer_characteristics_enum[] = { + { "unspecified", AOM_CICP_CP_UNSPECIFIED }, + { "bt709", AOM_CICP_TC_BT_709 }, + { "bt470m", AOM_CICP_TC_BT_470_M }, + { "bt470bg", AOM_CICP_TC_BT_470_B_G }, + { "bt601", AOM_CICP_TC_BT_601 }, + { "smpte240", AOM_CICP_TC_SMPTE_240 }, + { "lin", AOM_CICP_TC_LINEAR }, + { "log100", AOM_CICP_TC_LOG_100 }, + { "log100sq10", AOM_CICP_TC_LOG_100_SQRT10 }, + { "iec61966", AOM_CICP_TC_IEC_61966 }, + { "bt1361", AOM_CICP_TC_BT_1361 }, + { "srgb", AOM_CICP_TC_SRGB }, + { "bt2020-10bit", AOM_CICP_TC_BT_2020_10_BIT }, + { "bt2020-12bit", AOM_CICP_TC_BT_2020_12_BIT }, + { "smpte2084", AOM_CICP_TC_SMPTE_2084 }, + { "hlg", AOM_CICP_TC_HLG }, + { "smpte428", AOM_CICP_TC_SMPTE_428 }, + { NULL, 0 } +}; + +static const struct arg_enum_list color_primaries_enum[] = { + { "bt709", AOM_CICP_CP_BT_709 }, + { "unspecified", AOM_CICP_CP_UNSPECIFIED }, + { "bt601", AOM_CICP_CP_BT_601 }, + { "bt470m", AOM_CICP_CP_BT_470_M }, + { "bt470bg", AOM_CICP_CP_BT_470_B_G }, + { "smpte240", AOM_CICP_CP_SMPTE_240 }, + { "film", AOM_CICP_CP_GENERIC_FILM }, + { "bt2020", AOM_CICP_CP_BT_2020 }, + { "xyz", AOM_CICP_CP_XYZ }, + { "smpte431", AOM_CICP_CP_SMPTE_431 }, + { "smpte432", AOM_CICP_CP_SMPTE_432 }, + { "ebu3213", AOM_CICP_CP_EBU_3213 }, + { NULL, 0 } +}; +#endif // CONFIG_AV1_ENCODER + +const av1_codec_arg_definitions_t g_av1_codec_arg_defs = { + .help = ARG_DEF(NULL, "help", 0, "Show usage options and exit"), + .debugmode = + ARG_DEF("D", "debug", 0, "Debug mode (makes output deterministic)"), + .outputfile = ARG_DEF("o", "output", 1, "Output filename"), + .use_nv12 = ARG_DEF(NULL, "nv12", 0, "Input file is NV12"), + .use_yv12 = ARG_DEF(NULL, "yv12", 0, "Input file is YV12"), + .use_i420 = ARG_DEF(NULL, "i420", 0, "Input file is I420 (default)"), + .use_i422 = ARG_DEF(NULL, "i422", 0, "Input file is I422"), + .use_i444 = ARG_DEF(NULL, "i444", 0, "Input file is I444"), + .codecarg = ARG_DEF(NULL, "codec", 1, "Codec to use"), + .passes = ARG_DEF("p", "passes", 1, "Number of passes (1/2/3)"), + .pass_arg = ARG_DEF(NULL, "pass", 1, "Pass to execute (1/2/3)"), + .fpf_name = ARG_DEF(NULL, "fpf", 1, "First pass statistics file name"), + .limit = ARG_DEF(NULL, "limit", 1, "Stop encoding after n input frames"), + .skip = ARG_DEF(NULL, "skip", 1, "Skip the first n input frames"), + .good_dl = ARG_DEF(NULL, "good", 0, "Use Good Quality Deadline"), + .rt_dl = ARG_DEF(NULL, "rt", 0, "Use Realtime Quality Deadline"), + .ai_dl = ARG_DEF(NULL, "allintra", 0, "Use all intra mode"), + .quietarg = ARG_DEF("q", "quiet", 0, "Do not print encode progress"), + .verbosearg = ARG_DEF("v", "verbose", 0, "Show encoder parameters"), + .psnrarg = ARG_DEF( + NULL, "psnr", -1, + "Show PSNR in status line " + "(0: Disable PSNR status line display, 1: PSNR calculated using input " + "bit-depth (default), 2: PSNR calculated using stream bit-depth); " + "takes default option when arguments are not specified"), + .use_cfg = ARG_DEF("c", "cfg", 1, "Config file to use"), + .recontest = ARG_DEF_ENUM(NULL, "test-decode", 1, + "Test encode/decode mismatch", test_decode_enum), + .framerate = ARG_DEF(NULL, "fps", 1, "Stream frame rate (rate/scale)"), + .use_webm = + ARG_DEF(NULL, "webm", 0, "Output WebM (default when WebM IO is enabled)"), + .use_ivf = ARG_DEF(NULL, "ivf", 0, "Output IVF"), + .use_obu = ARG_DEF(NULL, "obu", 0, "Output OBU"), + .q_hist_n = + ARG_DEF(NULL, "q-hist", 1, "Show quantizer histogram (n-buckets)"), + .rate_hist_n = + ARG_DEF(NULL, "rate-hist", 1, "Show rate histogram (n-buckets)"), + .disable_warnings = + ARG_DEF(NULL, "disable-warnings", 0, + "Disable warnings about potentially incorrect encode settings"), + .disable_warning_prompt = + ARG_DEF("y", "disable-warning-prompt", 0, + "Display warnings, but do not prompt user to continue"), + .bitdeptharg = + ARG_DEF_ENUM("b", "bit-depth", 1, "Bit depth for codec", bitdepth_enum), + .inbitdeptharg = ARG_DEF(NULL, "input-bit-depth", 1, "Bit depth of input"), + + .input_chroma_subsampling_x = ARG_DEF(NULL, "input-chroma-subsampling-x", 1, + "Chroma subsampling x value"), + .input_chroma_subsampling_y = ARG_DEF(NULL, "input-chroma-subsampling-y", 1, + "Chroma subsampling y value"), + + .usage = ARG_DEF("u", "usage", 1, + "Usage profile number to use (0: good, 1: rt, 2: allintra)"), + .threads = ARG_DEF("t", "threads", 1, "Max number of threads to use"), + .profile = ARG_DEF(NULL, "profile", 1, "Bitstream profile number to use"), + .width = ARG_DEF("w", "width", 1, "Frame width"), + .height = ARG_DEF("h", "height", 1, "Frame height"), + .forced_max_frame_width = ARG_DEF(NULL, "forced_max_frame_width", 1, + "Maximum frame width value to force"), + .forced_max_frame_height = ARG_DEF(NULL, "forced_max_frame_height", 1, + "Maximum frame height value to force"), +#if CONFIG_WEBM_IO + .stereo_mode = ARG_DEF_ENUM(NULL, "stereo-mode", 1, "Stereo 3D video format", + stereo_mode_enum), +#endif + .timebase = ARG_DEF(NULL, "timebase", 1, + "Output timestamp precision (fractional seconds)"), + .global_error_resilient = ARG_DEF(NULL, "global-error-resilient", 1, + "Enable global error resiliency features"), + .lag_in_frames = + ARG_DEF(NULL, "lag-in-frames", 1, "Max number of frames to lag"), + .large_scale_tile = ARG_DEF( + NULL, "large-scale-tile", 1, + "Large scale tile coding (0: off (default), 1: on (ivf output only))"), + .monochrome = + ARG_DEF(NULL, "monochrome", 0, "Monochrome video (no chroma planes)"), + .full_still_picture_hdr = ARG_DEF(NULL, "full-still-picture-hdr", 0, + "Use full header for still picture"), + .use_16bit_internal = + ARG_DEF(NULL, "use-16bit-internal", 0, "Force use of 16-bit pipeline"), + .dropframe_thresh = + ARG_DEF(NULL, "drop-frame", 1, "Temporal resampling threshold (buf %)"), + .resize_mode = ARG_DEF( + NULL, "resize-mode", 1, + "Frame resize mode (0: off (default), 1: fixed, 2: random, 3: dynamic)"), + .resize_denominator = + ARG_DEF(NULL, "resize-denominator", 1, "Frame resize denominator"), + .resize_kf_denominator = ARG_DEF(NULL, "resize-kf-denominator", 1, + "Frame resize keyframe denominator"), + .superres_mode = + ARG_DEF(NULL, "superres-mode", 1, + "Frame super-resolution mode (0: disabled (default), 1: fixed, " + "2: random, 3: qthresh, 4: auto)"), + .superres_denominator = ARG_DEF(NULL, "superres-denominator", 1, + "Frame super-resolution denominator"), + .superres_kf_denominator = + ARG_DEF(NULL, "superres-kf-denominator", 1, + "Frame super-resolution keyframe denominator"), + .superres_qthresh = ARG_DEF(NULL, "superres-qthresh", 1, + "Frame super-resolution qindex threshold"), + .superres_kf_qthresh = + ARG_DEF(NULL, "superres-kf-qthresh", 1, + "Frame super-resolution keyframe qindex threshold"), + .end_usage = + ARG_DEF_ENUM(NULL, "end-usage", 1, "Rate control mode", end_usage_enum), + .target_bitrate = ARG_DEF(NULL, "target-bitrate", 1, "Bitrate (kbps)"), + .min_quantizer = ARG_DEF(NULL, "min-q", 1, "Minimum (best) quantizer"), + .max_quantizer = ARG_DEF(NULL, "max-q", 1, "Maximum (worst) quantizer"), + .undershoot_pct = ARG_DEF(NULL, "undershoot-pct", 1, + "Datarate undershoot (min) target (%)"), + .overshoot_pct = + ARG_DEF(NULL, "overshoot-pct", 1, "Datarate overshoot (max) target (%)"), + .buf_sz = ARG_DEF(NULL, "buf-sz", 1, "Client buffer size (ms)"), + .buf_initial_sz = + ARG_DEF(NULL, "buf-initial-sz", 1, "Client initial buffer size (ms)"), + .buf_optimal_sz = + ARG_DEF(NULL, "buf-optimal-sz", 1, "Client optimal buffer size (ms)"), + .bias_pct = ARG_DEF(NULL, "bias-pct", 1, "CBR/VBR bias (0=CBR, 100=VBR)"), + .minsection_pct = + ARG_DEF(NULL, "minsection-pct", 1, "GOP min bitrate (% of target)"), + .maxsection_pct = + ARG_DEF(NULL, "maxsection-pct", 1, "GOP max bitrate (% of target)"), + .fwd_kf_enabled = + ARG_DEF(NULL, "enable-fwd-kf", 1, "Enable forward reference keyframes"), + .kf_min_dist = + ARG_DEF(NULL, "kf-min-dist", 1, "Minimum keyframe interval (frames)"), + .kf_max_dist = + ARG_DEF(NULL, "kf-max-dist", 1, "Maximum keyframe interval (frames)"), + .kf_disabled = ARG_DEF(NULL, "disable-kf", 0, "Disable keyframe placement"), + .sframe_dist = ARG_DEF(NULL, "sframe-dist", 1, "S-Frame interval (frames)"), + .sframe_mode = + ARG_DEF(NULL, "sframe-mode", 1, "S-Frame insertion mode (1..2)"), + .save_as_annexb = ARG_DEF(NULL, "annexb", 1, "Save as Annex-B"), + .noise_sens = ARG_DEF(NULL, "noise-sensitivity", 1, + "Noise sensitivity (frames to blur)"), + .sharpness = ARG_DEF(NULL, "sharpness", 1, + "Bias towards block sharpness in rate-distortion " + "optimization of transform coefficients " + "(0..7), default is 0"), + .static_thresh = + ARG_DEF(NULL, "static-thresh", 1, "Motion detection threshold"), + .auto_altref = + ARG_DEF(NULL, "auto-alt-ref", 1, "Enable automatic alt reference frames"), + .arnr_maxframes = + ARG_DEF(NULL, "arnr-maxframes", 1, "AltRef max frames (0..15)"), + .arnr_strength = + ARG_DEF(NULL, "arnr-strength", 1, "AltRef filter strength (0..6)"), + .tune_metric = ARG_DEF_ENUM(NULL, "tune", 1, "Distortion metric tuned with", + tuning_enum), + .dist_metric = ARG_DEF_ENUM( + NULL, "dist-metric", 1, + "Distortion metric to use for in-block optimization", dist_metric_enum), + .cq_level = + ARG_DEF(NULL, "cq-level", 1, "Constant/Constrained Quality level"), + .max_intra_rate_pct = + ARG_DEF(NULL, "max-intra-rate", 1, "Max I-frame bitrate (pct)"), +#if CONFIG_AV1_ENCODER + .cpu_used_av1 = ARG_DEF(NULL, "cpu-used", 1, + "Speed setting (0..6 in good mode, 5..11 in realtime " + "mode, 0..9 in all intra mode)"), + .rowmtarg = + ARG_DEF(NULL, "row-mt", 1, + "Enable row based multi-threading (0: off, 1: on (default))"), + .fpmtarg = ARG_DEF( + NULL, "fp-mt", 1, + "Enable frame parallel multi-threading (0: off (default), 1: on)"), + .tile_cols = + ARG_DEF(NULL, "tile-columns", 1, "Number of tile columns to use, log2"), + .tile_rows = + ARG_DEF(NULL, "tile-rows", 1, "Number of tile rows to use, log2"), + .enable_tpl_model = ARG_DEF(NULL, "enable-tpl-model", 1, + "RDO based on frame temporal dependency " + "(0: off, 1: backward source based); " + "required for deltaq mode"), + .enable_keyframe_filtering = ARG_DEF( + NULL, "enable-keyframe-filtering", 1, + "Apply temporal filtering on key frame " + "(0: no filter, 1: filter without overlay (default), " + "2: filter with overlay - experimental, may break random access in " + "players)"), + .tile_width = ARG_DEF(NULL, "tile-width", 1, "Tile widths (comma separated)"), + .tile_height = + ARG_DEF(NULL, "tile-height", 1, "Tile heights (command separated)"), + .lossless = ARG_DEF(NULL, "lossless", 1, + "Lossless mode (0: false (default), 1: true)"), + .enable_cdef = ARG_DEF( + NULL, "enable-cdef", 1, + "Enable the constrained directional enhancement filter (0: false, " + "1: true (default), 2: disable for non-reference frames)"), + .enable_restoration = ARG_DEF(NULL, "enable-restoration", 1, + "Enable the loop restoration filter (0: false " + "(default in realtime mode), " + "1: true (default in non-realtime mode))"), + .enable_rect_partitions = ARG_DEF(NULL, "enable-rect-partitions", 1, + "Enable rectangular partitions " + "(0: false, 1: true (default))"), + .enable_ab_partitions = + ARG_DEF(NULL, "enable-ab-partitions", 1, + "Enable ab partitions (0: false, 1: true (default))"), + .enable_1to4_partitions = ARG_DEF(NULL, "enable-1to4-partitions", 1, + "Enable 1:4 and 4:1 partitions " + "(0: false, 1: true (default))"), + .min_partition_size = + ARG_DEF(NULL, "min-partition-size", 1, + "Set min partition size " + "(4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128); " + "with 4k+ resolutions or higher speed settings, min " + "partition size will have a minimum of 8"), + .max_partition_size = + ARG_DEF(NULL, "max-partition-size", 1, + "Set max partition size " + "(4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128)"), + .enable_dual_filter = ARG_DEF(NULL, "enable-dual-filter", 1, + "Enable dual filter " + "(0: false, 1: true (default))"), + .enable_chroma_deltaq = ARG_DEF(NULL, "enable-chroma-deltaq", 1, + "Enable chroma delta quant " + "(0: false (default), 1: true)"), + .enable_intra_edge_filter = ARG_DEF(NULL, "enable-intra-edge-filter", 1, + "Enable intra edge filtering " + "(0: false, 1: true (default))"), + .enable_order_hint = ARG_DEF(NULL, "enable-order-hint", 1, + "Enable order hint " + "(0: false, 1: true (default))"), + .enable_tx64 = + ARG_DEF(NULL, "enable-tx64", 1, + "Enable 64-pt transform (0: false, 1: true (default))"), + .enable_flip_idtx = + ARG_DEF(NULL, "enable-flip-idtx", 1, + "Enable extended transform type (0: false, 1: true (default)) " + "including FLIPADST_DCT, DCT_FLIPADST, FLIPADST_FLIPADST, " + "ADST_FLIPADST, FLIPADST_ADST, IDTX, V_DCT, H_DCT, V_ADST, " + "H_ADST, V_FLIPADST, H_FLIPADST"), + .enable_rect_tx = + ARG_DEF(NULL, "enable-rect-tx", 1, + "Enable rectangular transform (0: false, 1: true (default))"), + .enable_dist_wtd_comp = ARG_DEF(NULL, "enable-dist-wtd-comp", 1, + "Enable distance-weighted compound " + "(0: false, 1: true (default))"), + .enable_masked_comp = ARG_DEF(NULL, "enable-masked-comp", 1, + "Enable masked (wedge/diff-wtd) compound " + "(0: false, 1: true (default))"), + .enable_onesided_comp = ARG_DEF(NULL, "enable-onesided-comp", 1, + "Enable one sided compound " + "(0: false, 1: true (default))"), + .enable_interintra_comp = ARG_DEF(NULL, "enable-interintra-comp", 1, + "Enable interintra compound " + "(0: false, 1: true (default))"), + .enable_smooth_interintra = ARG_DEF(NULL, "enable-smooth-interintra", 1, + "Enable smooth interintra mode " + "(0: false, 1: true (default))"), + .enable_diff_wtd_comp = ARG_DEF(NULL, "enable-diff-wtd-comp", 1, + "Enable difference-weighted compound " + "(0: false, 1: true (default))"), + .enable_interinter_wedge = ARG_DEF(NULL, "enable-interinter-wedge", 1, + "Enable interinter wedge compound " + "(0: false, 1: true (default))"), + .enable_interintra_wedge = ARG_DEF(NULL, "enable-interintra-wedge", 1, + "Enable interintra wedge compound " + "(0: false, 1: true (default))"), + .enable_global_motion = ARG_DEF(NULL, "enable-global-motion", 1, + "Enable global motion " + "(0: false, 1: true (default))"), + .enable_warped_motion = ARG_DEF(NULL, "enable-warped-motion", 1, + "Enable local warped motion " + "(0: false, 1: true (default))"), + .enable_filter_intra = ARG_DEF(NULL, "enable-filter-intra", 1, + "Enable filter intra prediction mode " + "(0: false, 1: true (default))"), + .enable_smooth_intra = ARG_DEF(NULL, "enable-smooth-intra", 1, + "Enable smooth intra prediction modes " + "(0: false, 1: true (default))"), + .enable_paeth_intra = ARG_DEF( + NULL, "enable-paeth-intra", 1, + "Enable Paeth intra prediction mode (0: false, 1: true (default))"), + .enable_cfl_intra = ARG_DEF(NULL, "enable-cfl-intra", 1, + "Enable chroma from luma intra prediction mode " + "(0: false, 1: true (default))"), + .enable_directional_intra = + ARG_DEF(NULL, "enable-directional-intra", 1, + "Enable directional intra prediction modes " + "(0: false, 1: true (default))"), + .enable_diagonal_intra = + ARG_DEF(NULL, "enable-diagonal-intra", 1, + "Enable diagonal (D45 to D203) intra prediction modes, which are " + "a subset of directional modes; has no effect if " + "enable-directional-intra is 0 (0: false, 1: true (default))"), + .force_video_mode = ARG_DEF( + NULL, "force-video-mode", 1, + "Force video mode even for a single frame (0: false (default), 1: true)"), + .enable_obmc = ARG_DEF(NULL, "enable-obmc", 1, + "Enable OBMC (0: false, 1: true (default))"), + .enable_overlay = + ARG_DEF(NULL, "enable-overlay", 1, + "Enable coding overlay frames (0: false, 1: true (default))"), + .enable_palette = + ARG_DEF(NULL, "enable-palette", 1, + "Enable palette prediction mode (0: false, 1: true (default))"), + .enable_intrabc = ARG_DEF(NULL, "enable-intrabc", 1, + "Enable intra block copy prediction mode " + "(0: false, 1: true (default))"), + .enable_angle_delta = + ARG_DEF(NULL, "enable-angle-delta", 1, + "Enable intra angle delta (0: false, 1: true (default))"), + .disable_trellis_quant = ARG_DEF( + NULL, "disable-trellis-quant", 1, + "Disable trellis optimization of quantized coefficients (0: false " + "1: true 2: true for rd search 3: true for estimate yrd search " + "(default))"), + .enable_qm = + ARG_DEF(NULL, "enable-qm", 1, + "Enable quantisation matrices (0: false (default), 1: true)"), + .qm_min = ARG_DEF(NULL, "qm-min", 1, + "Min quant matrix flatness (0..15), default is 8"), + .qm_max = ARG_DEF(NULL, "qm-max", 1, + "Max quant matrix flatness (0..15), default is 15"), + .reduced_tx_type_set = ARG_DEF(NULL, "reduced-tx-type-set", 1, + "Use reduced set of transform types"), + .use_intra_dct_only = + ARG_DEF(NULL, "use-intra-dct-only", 1, "Use DCT only for INTRA modes"), + .use_inter_dct_only = + ARG_DEF(NULL, "use-inter-dct-only", 1, "Use DCT only for INTER modes"), + .use_intra_default_tx_only = + ARG_DEF(NULL, "use-intra-default-tx-only", 1, + "Use Default-transform only for INTRA modes"), + .quant_b_adapt = ARG_DEF(NULL, "quant-b-adapt", 1, "Use adaptive quantize_b"), + .coeff_cost_upd_freq = ARG_DEF(NULL, "coeff-cost-upd-freq", 1, + "Update freq for coeff costs. " + "0: SB, 1: SB Row per Tile, 2: Tile, 3: Off"), + .mode_cost_upd_freq = ARG_DEF(NULL, "mode-cost-upd-freq", 1, + "Update freq for mode costs. " + "0: SB, 1: SB Row per Tile, 2: Tile, 3: Off"), + .mv_cost_upd_freq = ARG_DEF(NULL, "mv-cost-upd-freq", 1, + "Update freq for mv costs. " + "0: SB, 1: SB Row per Tile, 2: Tile, 3: Off"), + .dv_cost_upd_freq = ARG_DEF(NULL, "dv-cost-upd-freq", 1, + "Update freq for dv costs. " + "0: SB, 1: SB Row per Tile, 2: Tile, 3: Off"), + .num_tg = ARG_DEF(NULL, "num-tile-groups", 1, + "Maximum number of tile groups, default is 1"), + .mtu_size = + ARG_DEF(NULL, "mtu-size", 1, + "MTU size for a tile group, default is 0 (no MTU targeting), " + "overrides maximum number of tile groups"), + .timing_info = ARG_DEF_ENUM( + NULL, "timing-info", 1, + "Signal timing info in the bitstream (model only works for no " + "hidden frames, no super-res yet):", + timing_info_enum), +#if CONFIG_TUNE_VMAF + .vmaf_model_path = + ARG_DEF(NULL, "vmaf-model-path", 1, "Path to the VMAF model file"), +#endif + .partition_info_path = ARG_DEF(NULL, "partition-info-path", 1, + "Partition information read and write path"), + .enable_rate_guide_deltaq = + ARG_DEF(NULL, "enable-rate-guide-deltaq", 1, + "Enable rate guide deltaq (1), by default off (0). " + "It requires --deltaq-mode=3. " + "If turned on, it requires an input file specified " + "by --rate-distribution-info."), + .rate_distribution_info = + ARG_DEF(NULL, "rate-distribution-info", 1, + "Rate distribution information input." + "It requires --enable-rate-guide-deltaq=1."), + .film_grain_test = ARG_DEF( + NULL, "film-grain-test", 1, + "Film grain test vectors (0: none (default), 1: test-1 2: test-2, " + "... 16: test-16)"), + .film_grain_table = ARG_DEF(NULL, "film-grain-table", 1, + "Path to file containing film grain parameters"), +#if CONFIG_DENOISE + .denoise_noise_level = + ARG_DEF(NULL, "denoise-noise-level", 1, + "Amount of noise (from 0 = don't denoise, to 50)"), + .denoise_block_size = ARG_DEF(NULL, "denoise-block-size", 1, + "Denoise block size (default = 32)"), + .enable_dnl_denoising = ARG_DEF(NULL, "enable-dnl-denoising", 1, + "Apply denoising to the frame " + "being encoded when denoise-noise-level is " + "enabled (0: false, 1: true (default))"), +#endif + .enable_ref_frame_mvs = + ARG_DEF(NULL, "enable-ref-frame-mvs", 1, + "Enable temporal mv prediction (default is 1)"), + .frame_parallel_decoding = + ARG_DEF(NULL, "frame-parallel", 1, + "Enable frame parallel decodability features " + "(0: false (default), 1: true)"), + .error_resilient_mode = ARG_DEF(NULL, "error-resilient", 1, + "Enable error resilient features " + "(0: false (default), 1: true)"), + .aq_mode = ARG_DEF(NULL, "aq-mode", 1, + "Adaptive quantization mode (0: off (default), 1: " + "variance 2: complexity, " + "3: cyclic refresh)"), + .deltaq_mode = + ARG_DEF(NULL, "deltaq-mode", 1, + "Delta qindex mode (0: off, 1: deltaq objective (default), " + "2: deltaq placeholder, 3: key frame visual quality, 4: user " + "rating based visual quality optimization); " + "requires --enable-tpl-model=1"), + .deltaq_strength = ARG_DEF(NULL, "deltaq-strength", 1, + "Deltaq strength for" + " --deltaq-mode=4 (%)"), + .deltalf_mode = ARG_DEF(NULL, "delta-lf-mode", 1, + "Enable delta-lf-mode (0: off (default), 1: on)"), + .frame_periodic_boost = + ARG_DEF(NULL, "frame-boost", 1, + "Enable frame periodic boost (0: off (default), 1: on)"), + .gf_cbr_boost_pct = ARG_DEF(NULL, "gf-cbr-boost", 1, + "Boost for Golden Frame in CBR mode (pct)"), + .max_inter_rate_pct = + ARG_DEF(NULL, "max-inter-rate", 1, "Max P-frame bitrate (pct)"), + .min_gf_interval = ARG_DEF( + NULL, "min-gf-interval", 1, + "Min gf/arf frame interval (default 0, indicating in-built behavior)"), + .max_gf_interval = ARG_DEF( + NULL, "max-gf-interval", 1, + "Max gf/arf frame interval (default 0, indicating in-built behavior)"), + .gf_min_pyr_height = + ARG_DEF(NULL, "gf-min-pyr-height", 1, + "Min height for GF group pyramid structure (0 (default) to 5)"), + .gf_max_pyr_height = ARG_DEF( + NULL, "gf-max-pyr-height", 1, + "Maximum height for GF group pyramid structure (0 to 5 (default))"), + .max_reference_frames = ARG_DEF(NULL, "max-reference-frames", 1, + "Maximum number of reference frames allowed " + "per frame (3 to 7 (default))"), + .reduced_reference_set = + ARG_DEF(NULL, "reduced-reference-set", 1, + "Use reduced set of single and compound references (0: off " + "(default), 1: on)"), + .target_seq_level_idx = + ARG_DEF(NULL, "target-seq-level-idx", 1, + "Target sequence level index. " + "Possible values are in the form of \"ABxy\". " + "AB: Operating point (OP) index, " + "xy: Target level index for the OP. " + "E.g. \"0\" means target level index 0 (2.0) for the 0th OP, " + "\"1019\" means target level index 19 (6.3) for the 10th OP."), + .set_min_cr = ARG_DEF( + NULL, "min-cr", 1, + "Set minimum compression ratio. Take integer values. Default is 0. " + "If non-zero, encoder will try to keep the compression ratio of " + "each frame to be higher than the given value divided by 100."), + + .input_color_primaries = ARG_DEF_ENUM( + NULL, "color-primaries", 1, + "Color primaries (CICP) of input content:", color_primaries_enum), + + .input_transfer_characteristics = + ARG_DEF_ENUM(NULL, "transfer-characteristics", 1, + "Transfer characteristics (CICP) of input content:", + transfer_characteristics_enum), + + .input_matrix_coefficients = ARG_DEF_ENUM( + NULL, "matrix-coefficients", 1, + "Matrix coefficients (CICP) of input content:", matrix_coefficients_enum), + + .input_chroma_sample_position = + ARG_DEF_ENUM(NULL, "chroma-sample-position", 1, + "The chroma sample position when chroma 4:2:0 is signaled:", + chroma_sample_position_enum), + + .tune_content = ARG_DEF_ENUM(NULL, "tune-content", 1, "Tune content type", + tune_content_enum), + + .cdf_update_mode = + ARG_DEF(NULL, "cdf-update-mode", 1, + "CDF update mode for entropy coding " + "(0: no CDF update, 1: update CDF on all frames (default), " + "2: selectively update CDF on some frames)"), + + .superblock_size = ARG_DEF_ENUM(NULL, "sb-size", 1, "Superblock size to use", + superblock_size_enum), + + .set_tier_mask = + ARG_DEF(NULL, "set-tier-mask", 1, + "Set bit mask to specify which tier each of the 32 possible " + "operating points conforms to. " + "Bit value 0 (default): Main Tier, 1: High Tier."), + + .use_fixed_qp_offsets = + ARG_DEF(NULL, "use-fixed-qp-offsets", 1, + "Enable fixed QP offsets for frames at different levels of the " + "pyramid. Selected automatically from --cq-level if " + "--fixed-qp-offsets is not provided. If this option is not " + "specified (default), offsets are adaptively chosen by the " + "encoder."), + + .fixed_qp_offsets = ARG_DEF( + NULL, "fixed-qp-offsets", 1, + "Set fixed QP offsets for frames at different levels of the " + "pyramid. Comma-separated list of 5 offsets for keyframe, ALTREF, " + "and 3 levels of internal alt-refs. If this option is not " + "specified (default), offsets are adaptively chosen by the " + "encoder."), + + .vbr_corpus_complexity_lap = ARG_DEF( + NULL, "vbr-corpus-complexity-lap", 1, + "Set average corpus complexity per mb for single pass VBR using lap. " + "(0..10000), default is 0"), + + .fwd_kf_dist = ARG_DEF(NULL, "fwd-kf-dist", -1, + "Set distance between forward keyframes. A value of " + "-1 (default) means no repetitive forward keyframes."), + + .enable_tx_size_search = ARG_DEF( + NULL, "enable-tx-size-search", 1, + "Enable transform size search to find the best size for each block. " + "If false, transforms always have the largest possible size " + "(0: false, 1: true (default)). Ignored in non rd pick mode in " + "real-time coding."), + + .loopfilter_control = ARG_DEF( + NULL, "loopfilter-control", 1, + "Control loop filtering " + "(0: Loopfilter disabled for all frames, 1: Enable loopfilter for all " + "frames (default), 2: Disable loopfilter for non-reference frames, 3: " + "Disable loopfilter for frames with low motion)"), + + .auto_intra_tools_off = ARG_DEF( + NULL, "auto-intra-tools-off", 1, + "Automatically turn off several intra coding tools for allintra mode; " + "only in effect if --deltaq-mode=3"), + + .two_pass_input = + ARG_DEF(NULL, "two-pass-input", 1, + "The input file for the second pass for three-pass encoding"), + .two_pass_output = ARG_DEF( + NULL, "two-pass-output", 1, + "The output file for the first two passes for three-pass encoding"), + .two_pass_width = + ARG_DEF(NULL, "two-pass-width", 1, "The width of two-pass-input"), + .two_pass_height = + ARG_DEF(NULL, "two-pass-height", 1, "The height of two-pass-input"), + .second_pass_log = + ARG_DEF("spf", "second-pass-log", 1, "Log file from second pass"), + .strict_level_conformance = + ARG_DEF(NULL, "strict-level-conformance", 1, + "When set to 1, exit the encoder when it fails to encode " + "to a given target level"), + .kf_max_pyr_height = ARG_DEF( + NULL, "kf-max-pyr-height", 1, + "Maximum height of pyramid structure used for the GOP starting with a " + "key frame (-1 to 5). When set to -1 (default), it does not have any " + "effect. The actual maximum pyramid height will be the minimum of this " + "value and the value of gf_max_pyr_height."), + .sb_qp_sweep = + ARG_DEF(NULL, "sb-qp-sweep", 1, + "When set to 1, enable the superblock level qp sweep for a " + "given lambda to minimize the rdcost."), +#endif // CONFIG_AV1_ENCODER +}; |