SVT-AV1-Tritium is a fork of SVT-AV1-HDR aiming to incorporate features from SVT-AV1-PSYEX and SVT-AV1-Essential. Most notably, SVT-AV1-Tritium has scene detection and auto tiling from Essential.
SVT-AV1-Tritium (and SVT-AV1-HDR) is the Scalable Video Technology for AV1 (SVT-AV1 Encoder) with perceptual enhancements for psychovisually optimal SDR and HDR AV1 encoding. The goal is to create the best encoding implementation for perceptual quality with AV1, with additional optimizations for HDR encoding and content with film grain.
Expect diverged history when running git pull due to rebasing against SVT-AV1-HDR. If you encounter errors or conflicts, run git fetch && git reset --hard origin/main to update instead.
Currently, there is HandBrake build with SVT-AV1-Tritium available.
Additionally, standalone EncApp builds optimized with LTO + PGO can be found here, provided by @Akatmks's GitHub Action.
SVT-AV1-Tritium inherits SVT-AV1-HDR's defaults, which were chosen to strike a good balance between detail retention and artifact prevention across a wide variety of content (e.g. live action, animation and screen recordings).
For the majority of use cases, only three parameters are required to be adjusted: tuning mode, CRF and preset.
Some popular use case examples:
--tune 0 --crf xx (any, start with 35) --preset x (2 to 6 recommended)--tune 5 --crf xx (20 to 40 recommended, start with 30) --preset x (2 *HIGHLY* recommended)--tune 3 --crf xx (any, start with 30) --preset x (2 to 6 recommended) --avif 1If desired, additional parameters (described down below) are available for further tweaking and hypertuning of the encoding process.
Note: SVT-AV1-Tritium allocates bits in a very different way than (mainline) SVT-AV1, so adjusting the CRF value is expected to match a certain bitrate or file size target.
Unlike its predecessor (SVT-AV1-PSY), SVT-AV1-HDR features a more relaxed development cycle, and so are its expectations:
For additional docs (build instructions, documentation, usage, etc.), see the SVT-AV1 README.
--enable-daala 0 to 4Enables the Daala perceptual distortion metric, which uses frequency-domain masking to better preserve fine textures and grain.
1: CDEF
2: 1 + TX Search + MDS3 Selection
3: 2 + DCT TX
4: 3 + MDS0 + IFS RD
--enable-daala-rd 0 to 1
Enables the Daala distortion metric in model RD curvfit decisions (inter-intra mode search and rate-distortion costs), independent of --enable-daala.
--enable-daala-filtering 0 to 3Uses the Daala distortion metric for in-loop filtering decisions: 1 loop restoration, 2 + temporal filtering, 3 + deblocking.
--enable-dlf 33 forces the most accurate loop filter for every encoding scenario, with important consequences in compute time at faster presets.
--scd 0 and 1(Re-)introduce keyframes on scene changes, for more accurate seeking and lowered quality inconsistencies. The feature was tuned for the highest accuracy following a testing round.
--min-keyint -1 to keyintThe minimum amount of frames before a new keyframe can be introduced by the SCD feature, which helps prevent cases of keyframes spamming. -1 sets an automatic minimum keyframes placement of a multiple of the mini-gop length. 0 disables all limitations on SCD and is not recommended.
--auto-tiling 0 and 1Automatically sets tiles appropriate for the source input resolution, which in turn improves decoding performance with minimal effect on efficiency. The feature was tuned following a testing round
FFMS2 support (discussion)You can now feed the standalone encoder regular video files like MP4s, MKVs, M2TSs and many others without having to rely on piping with FFmpeg or VSPipe. Though you need to compile the encoder with FFMS2 support enabled.
--zonesIn CRF/CQP mode, allows setting different quality levels for the specified frame ranges.
For example, --zones 0,100,20;101,200,40 applies a CRF/CQP value of 20 to frames 0-100, a CRF/CQP value of 40 to frames 101-200, while maintaining the original quality level for all other frames.
--enable-alt-cdef 0 to 3Proposes different CDEF trade-offs, typically resulting in weaker deringing but improved fidelity. May gradually cause higher distortion, especially at high presets.
2 and 3 force the best CDEF quality level which can improve results, at the cost of speed.
--enable-alt-dlf 0 to 3Proposes different DLF trade-offs, typically resulting in weaker deblocking but improved fidelity. May gradually cause higher distortion, especially at high presets.
It is recommended to pair it with --enable-dlf 3 to force the best DLF quality level, which can improve results at the cost of speed.
--low-memory 0 and 1This parameter sets options that reduce RAM usage of the encoding instance significantly. Enabling low-memory can have some impact on encoding speeds and perceptual quality. It is most effective in CRF/CQP Random Access mode.
--hide-banner 0 and 1Hides the encoder parameters banner that is normally printed at the start of an encode. This helps keep the console output cleaner if you are scripting or wrapping the encoder.
--enable-tf 3The setting enables a more powerful, user-controllable, temporal filter on all frames, which can serve as an effective fast built-in temporal denoiser.
The strength can still be adjusted up or down using --tf-strength.
PQ-optimized Variance Boost curveA custom curve specifically designed for HDR video and images with a Perceptual Quantizer (PQ) transfer. It can manually be turned on by setting --variance-boost-curve 3, or automatically by setting the corresponding CICP value --transfer-characteristics 16.
Film Grain tune (tune 5)An opinionated tune optimized for film grain retention and temporal consistency. The recommended CRF range to use tune 5 is 20 to 40.
Tune 5 is equivalent to setting these parameters: --tune 0 --enable-tf 0 --enable-restoration 0 --enable-cdef 0 --complex-hvs 1 --tx-bias 1 --ac-bias 4.00.
--cdef-scaling 1 (0.06x) to 30 (2x)Controls how 'strongly' the CDEF (Constrained Directional Enhancement Filter) is applied to the output. Lower values make output sharper, at the expense of ringing artifacts. Higher values make output smoother, with fewer ringing artifacts. Values of 10-12 have been reported to be useful by multiple people.
--noise 0 to 200Generates and adds noise table with specified strength value to be used as fgs-table during the encode. 50 is roughly equivalent to --film-grain 50.
--noise-chroma -1 to 200Adds chroma noise with strength based on --noise setting (-1) or sets a strength value independently (0-100), default is -1 (chroma strength is ~60% of --noise).
--noise-chroma-from-luma 0 and 1Apply noise to chroma planes based on the luma plane. When enabled, chroma noise will appear on grayscale content, default is 0.
--noise-size -1 to 13Set grain size for generated noise table, default is -1 (auto, based on input resolution).
--variance-boost-strength 1 to 4 (Merged to Mainline)Provides control over our augmented AQ Modes 0 and 2 which can utilize variance information in each frame for more consistent quality under high/low contrast scenes. Four curve options are provided, and the default is curve 2. 1: mild, 2: gentle, 3: medium, 4: aggressive.
--variance-octile 1 to 8 (Merged to Mainline)Controls how "selective" the algorithm is when boosting superblocks, based on their low/high 8x8 variance ratio. A value of 1 is the least selective, and will readily boost a superblock if only 1/8th of the superblock is low variance. Conversely, a value of 8 will only boost if the entire superblock is low variance. Lower values increase bitrate. The default value is 5.
--variance-boost-curve 0 to 3 (Merged to Mainline)Enables different kinds of Variance Boost curves, with different bit allocation and visual characteristics. The default is 0.
--ac-bias 0.0 to 8.0 (Merged to Mainline)Configures psychovisual rate distortion strength to improve perceived quality by measuring and attempting to preserve the visual energy distribution of high-frequency details and textures. The default is 1.0.
--tx-bias 0 to 3Configure psychovisually-oriented pathways that bias towards sharpness and detail retention, at the possible expense of increased blocking and banding.
--tf-strength 0 to 4 (Merged to Mainline)Manually adjust temporal filtering strength to adjust the trade-off between fewer artifacts in motion and fine detail retention. Each increment is a 2x increase in temporal filtering strength; the default value of 1 is 4x weaker than mainline SVT-AV1's default temporal filter (which would be equivalent to 3 here).
--kf-tf-strength 0 to 4Manually adjust temporal filtering strength specifically on keyframes. Each increment is a 2x increase in temporal filtering strength; a value of 1 is 4x weaker than mainline SVT-AV1's default temporal filter (which would be equivalent to 3 here). The default value is 1, which reduces alt-ref temporal filtering strength by 4x on keyframes.
--noise-norm-strength 0 to 4In a scenario where a video frame contains areas with fine textures or flat regions, noise normalization helps maintain visual quality by boosting certain AC coefficients. The default value is 1.
--qp-scale-compress-strength 0.0 to 8.0 (Merged to Mainline (strengths 0 to 3))Increases video quality temporal consistency, especially with clips that contain film grain and/or contain fast-moving objects.
--chroma-qm-min & --chroma-qm-max 0 to 15 (Merged to Mainline)Set the minimum & maximum quantization matrices for chroma planes. The defaults are 8 and 15, respectively. These options decouple chroma quantization matrix control from the luma quantization matrix options currently available, allowing for more control over chroma quality.
Tune IQ (Ported to libaom, Merged to Mainline)A new tune, optimized for still images based on SSIMULACRA2 performance on the CID22 Validation test set. Not recommended for use outside of all-intra encoding.
Extended CRF (Merged to Mainline: quarter-step, extension to 70)Provides a more versatile and granular way to set CRF. Range has been extended to 70 (from 63) to help with ultra-low bitrate encodes, and can now be set in quarter-step (0.25) increments.
--hbd-mds 0 to 2This setting is short for High Bit Depth - Mode DecisionS. It controls the bit-depth at which internal operations are performed at.
0 follows the default preset behavior, 1 forces 10-bit mode decision for everything, 2 is adaptive 8/10-bit mode decision based on the scenario. Default is 0, following default preset behavior.
Presets -2 & -3Terrifically slow encoding modes for research purposes.
--sharpness 0 to 7 (Merged to Mainline)A parameter for modifying loopfilter deblock sharpness and rate distortion to improve visual fidelity. The default is 1.
--dolby-vision-rpu path to fileSet the path to a Dolby Vision RPU for encoding Dolby Vision video. SVT-AV1-Tritium needs to be built with the enable-libdovi flag enabled in build.sh (see ./Build/linux/build.sh --help for more info) (Thank you @quietvoid !)
--hdr10plus-json path to fileSet the path to an HDR10+ JSON file for encoding HDR10+ video. SVT-AV1-Tritium needs to be built with the enable-hdr10plus flag enabled in build.sh (see ./Build/linux/build.sh --help for more info) (Thank you @quietvoid !)
Detailed progress (Merged to Mainline)A new progress mode that provides more detailed information about the encoding process.
--fgs-table path to file (Merged to Mainline)Argument for providing a film grain table for synthetic film grain (similar to aomenc's '--film-grain-table=' argument).
--enable-dlf 2 (Merged to Mainline)Enables a more accurate loop filter that prevents blocking, for a modest increase in compute time (most noticeable at presets 7 to 9).
Higher-quality presets for 8K and 16KLowers the minimum available preset from 5 to 2 for higher-quality 8K and 16K encoding (64 GB of RAM recommended per encoding instance).
--luminance-qp-bias 0 to 100 (Merged to Mainline)Enables frame-level luminance bias to improve quality in dark scenes by adjusting frame-level QP based on average luminance across each frame.
--max-tx-size 32 and 64 (Merged to Mainline)Restricts available transform sizes to a maximum of 32x32 or 64x64 pixels. Can help slightly improve detail retention at high fidelity CRFs.
--adaptive-film-grain 0 and 1 (Merged to Mainline)Adaptively varies the film grain blocksize based on the resolution of the input video. Often greatly improves the consistency of film grain in the output video, reducing grain patterns.
Odd dimension encoding support (Merged to Mainline)Allows the encoder to accept content with odd width and/or height (e.g. 1920x817px). Gone are the "Source Width/Height must be even for YUV_420 colorspace" messages.
Reduced minimum width/height requirements (Merged to Mainline)Allows the encoder to accept content with width and/or height as small as 4 pixels (e.g. 32x18px).
--enable-tf 2 (Merged to Mainline)Adaptively varies temporal filtering strength based on 64x64 block error. This can slightly improve visual fidelity in scenes with fast motion or fine detail. Setting this to 2 will override --tf-strength and --kf-tf-strength, as their values will be automatically determined by the encoder.
--alt-ssim-tuning 0 and 1Enables VQ psychovisual optimizations from tune 0, as well as changing SSIM rate-distortion calculations by utilizing an alternative per-pixel variance function across 4X4, 8X8, and 16X16 blocks in addition to superblock-level SSIM rate-distortion tuning. Currently only operates on tune 2. The default is 0.
Enhanced Content Detection (Merged to Mainline)A smarter content detection algorithm to optimize the encoder for either screen or photographic content based on the image. This helps Tune IQ achieve better visual fidelity on still images.
--noise-adaptive-filtering 0 to 4Controls noise detection which disables CDEF/restoration when noise level is high enough. [0: off, 1: both CDEF and restoration noise-adaptive filtering are on, 2: default tune behavior, 3: noise-adaptive CDEF only, 4: noise-adaptive restoration only] The default is 2.
While SVT-AV1-HDR has questionable defaults that I'd like to change, I don't want to make the fork situation worse by yet introducing another fork with different defaults that you'd have to learn and remember. Instead, I opted to keep SVT-AV1-HDR defaults, but enable Scene Change Detection and Auto Tiling on top of that
SVT-AV1-Tritium includes SVT-AV1-HDR's Modified Defaults:
--enable-variance-boost enabled by default.--keyint -2 (the default) uses a ~10s GOP size instead of ~5s.--sharpness 1 by default to prioritize encoder sharpness.--sharp-tx 1) are enabled by default to supercharge SVT-AV1-HDR ac-bias optimizations. It is recommended to disable it if you don't use --ac-bias, which is set to 1.0 by default.--tf-strength 1 by default for much lower alt-ref temporal filtering to decrease blur for cleaner encoding.--kf-tf-strength 1 controls are available to the user and are set to 1 by default to remove KF artifacts.SVT-AV1-Tritium Defaults:
--scd 1 by default.--auto-tiling 1 by default.--color-help (Merged to Mainline)Prints the information found in Appendix A.2 of the user guide in order to help users more easily understand the Color Description Options in SvtAv1EncApp.
Up to v0.8.7, SVT-AV1 is licensed under the BSD-2-clause license and the Alliance for Open Media Patent License 1.0. See LICENSE and PATENTS for details. Starting from v0.9, SVT-AV1 is licensed under the BSD-3-clause clear license and the Alliance for Open Media Patent License 1.0. See LICENSE and PATENTS for details.
SVT-AV1-Tritium does not feature license modifications from mainline SVT-AV1.
(top 30 of 157)
Hacker News (1)
C
88.2%
C++
6.3%
Assembly
4.2%
SVT-AV1-Tritium is a fork of SVT-AV1-HDR aiming to incorporate features from SVT-AV1-PSYEX and SVT-AV1-Essential. Most notably, SVT-AV1-Tritium has scene detection and auto tiling from Essential.
SVT-AV1-Tritium (and SVT-AV1-HDR) is the Scalable Video Technology for AV1 (SVT-AV1 Encoder) with perceptual enhancements for psychovisually optimal SDR and HDR AV1 encoding. The goal is to create the best encoding implementation for perceptual quality with AV1, with additional optimizations for HDR encoding and content with film grain.
Expect diverged history when running git pull due to rebasing against SVT-AV1-HDR. If you encounter errors or conflicts, run git fetch && git reset --hard origin/main to update instead.
Currently, there is HandBrake build with SVT-AV1-Tritium available.
Additionally, standalone EncApp builds optimized with LTO + PGO can be found here, provided by @Akatmks's GitHub Action.
SVT-AV1-Tritium inherits SVT-AV1-HDR's defaults, which were chosen to strike a good balance between detail retention and artifact prevention across a wide variety of content (e.g. live action, animation and screen recordings).
For the majority of use cases, only three parameters are required to be adjusted: tuning mode, CRF and preset.
Some popular use case examples:
--tune 0 --crf xx (any, start with 35) --preset x (2 to 6 recommended)--tune 5 --crf xx (20 to 40 recommended, start with 30) --preset x (2 *HIGHLY* recommended)--tune 3 --crf xx (any, start with 30) --preset x (2 to 6 recommended) --avif 1If desired, additional parameters (described down below) are available for further tweaking and hypertuning of the encoding process.
Note: SVT-AV1-Tritium allocates bits in a very different way than (mainline) SVT-AV1, so adjusting the CRF value is expected to match a certain bitrate or file size target.
Unlike its predecessor (SVT-AV1-PSY), SVT-AV1-HDR features a more relaxed development cycle, and so are its expectations:
For additional docs (build instructions, documentation, usage, etc.), see the SVT-AV1 README.
--enable-daala 0 to 4Enables the Daala perceptual distortion metric, which uses frequency-domain masking to better preserve fine textures and grain.
1: CDEF
2: 1 + TX Search + MDS3 Selection
3: 2 + DCT TX
4: 3 + MDS0 + IFS RD
--enable-daala-rd 0 to 1
Enables the Daala distortion metric in model RD curvfit decisions (inter-intra mode search and rate-distortion costs), independent of --enable-daala.
--enable-daala-filtering 0 to 3Uses the Daala distortion metric for in-loop filtering decisions: 1 loop restoration, 2 + temporal filtering, 3 + deblocking.
--enable-dlf 33 forces the most accurate loop filter for every encoding scenario, with important consequences in compute time at faster presets.
--scd 0 and 1(Re-)introduce keyframes on scene changes, for more accurate seeking and lowered quality inconsistencies. The feature was tuned for the highest accuracy following a testing round.
--min-keyint -1 to keyintThe minimum amount of frames before a new keyframe can be introduced by the SCD feature, which helps prevent cases of keyframes spamming. -1 sets an automatic minimum keyframes placement of a multiple of the mini-gop length. 0 disables all limitations on SCD and is not recommended.
--auto-tiling 0 and 1Automatically sets tiles appropriate for the source input resolution, which in turn improves decoding performance with minimal effect on efficiency. The feature was tuned following a testing round
FFMS2 support (discussion)You can now feed the standalone encoder regular video files like MP4s, MKVs, M2TSs and many others without having to rely on piping with FFmpeg or VSPipe. Though you need to compile the encoder with FFMS2 support enabled.
--zonesIn CRF/CQP mode, allows setting different quality levels for the specified frame ranges.
For example, --zones 0,100,20;101,200,40 applies a CRF/CQP value of 20 to frames 0-100, a CRF/CQP value of 40 to frames 101-200, while maintaining the original quality level for all other frames.
--enable-alt-cdef 0 to 3Proposes different CDEF trade-offs, typically resulting in weaker deringing but improved fidelity. May gradually cause higher distortion, especially at high presets.
2 and 3 force the best CDEF quality level which can improve results, at the cost of speed.
--enable-alt-dlf 0 to 3Proposes different DLF trade-offs, typically resulting in weaker deblocking but improved fidelity. May gradually cause higher distortion, especially at high presets.
It is recommended to pair it with --enable-dlf 3 to force the best DLF quality level, which can improve results at the cost of speed.
--low-memory 0 and 1This parameter sets options that reduce RAM usage of the encoding instance significantly. Enabling low-memory can have some impact on encoding speeds and perceptual quality. It is most effective in CRF/CQP Random Access mode.
--hide-banner 0 and 1Hides the encoder parameters banner that is normally printed at the start of an encode. This helps keep the console output cleaner if you are scripting or wrapping the encoder.
--enable-tf 3The setting enables a more powerful, user-controllable, temporal filter on all frames, which can serve as an effective fast built-in temporal denoiser.
The strength can still be adjusted up or down using --tf-strength.
PQ-optimized Variance Boost curveA custom curve specifically designed for HDR video and images with a Perceptual Quantizer (PQ) transfer. It can manually be turned on by setting --variance-boost-curve 3, or automatically by setting the corresponding CICP value --transfer-characteristics 16.
Film Grain tune (tune 5)An opinionated tune optimized for film grain retention and temporal consistency. The recommended CRF range to use tune 5 is 20 to 40.
Tune 5 is equivalent to setting these parameters: --tune 0 --enable-tf 0 --enable-restoration 0 --enable-cdef 0 --complex-hvs 1 --tx-bias 1 --ac-bias 4.00.
--cdef-scaling 1 (0.06x) to 30 (2x)Controls how 'strongly' the CDEF (Constrained Directional Enhancement Filter) is applied to the output. Lower values make output sharper, at the expense of ringing artifacts. Higher values make output smoother, with fewer ringing artifacts. Values of 10-12 have been reported to be useful by multiple people.
--noise 0 to 200Generates and adds noise table with specified strength value to be used as fgs-table during the encode. 50 is roughly equivalent to --film-grain 50.
--noise-chroma -1 to 200Adds chroma noise with strength based on --noise setting (-1) or sets a strength value independently (0-100), default is -1 (chroma strength is ~60% of --noise).
--noise-chroma-from-luma 0 and 1Apply noise to chroma planes based on the luma plane. When enabled, chroma noise will appear on grayscale content, default is 0.
--noise-size -1 to 13Set grain size for generated noise table, default is -1 (auto, based on input resolution).
--variance-boost-strength 1 to 4 (Merged to Mainline)Provides control over our augmented AQ Modes 0 and 2 which can utilize variance information in each frame for more consistent quality under high/low contrast scenes. Four curve options are provided, and the default is curve 2. 1: mild, 2: gentle, 3: medium, 4: aggressive.
--variance-octile 1 to 8 (Merged to Mainline)Controls how "selective" the algorithm is when boosting superblocks, based on their low/high 8x8 variance ratio. A value of 1 is the least selective, and will readily boost a superblock if only 1/8th of the superblock is low variance. Conversely, a value of 8 will only boost if the entire superblock is low variance. Lower values increase bitrate. The default value is 5.
--variance-boost-curve 0 to 3 (Merged to Mainline)Enables different kinds of Variance Boost curves, with different bit allocation and visual characteristics. The default is 0.
--ac-bias 0.0 to 8.0 (Merged to Mainline)Configures psychovisual rate distortion strength to improve perceived quality by measuring and attempting to preserve the visual energy distribution of high-frequency details and textures. The default is 1.0.
--tx-bias 0 to 3Configure psychovisually-oriented pathways that bias towards sharpness and detail retention, at the possible expense of increased blocking and banding.
--tf-strength 0 to 4 (Merged to Mainline)Manually adjust temporal filtering strength to adjust the trade-off between fewer artifacts in motion and fine detail retention. Each increment is a 2x increase in temporal filtering strength; the default value of 1 is 4x weaker than mainline SVT-AV1's default temporal filter (which would be equivalent to 3 here).
--kf-tf-strength 0 to 4Manually adjust temporal filtering strength specifically on keyframes. Each increment is a 2x increase in temporal filtering strength; a value of 1 is 4x weaker than mainline SVT-AV1's default temporal filter (which would be equivalent to 3 here). The default value is 1, which reduces alt-ref temporal filtering strength by 4x on keyframes.
--noise-norm-strength 0 to 4In a scenario where a video frame contains areas with fine textures or flat regions, noise normalization helps maintain visual quality by boosting certain AC coefficients. The default value is 1.
--qp-scale-compress-strength 0.0 to 8.0 (Merged to Mainline (strengths 0 to 3))Increases video quality temporal consistency, especially with clips that contain film grain and/or contain fast-moving objects.
--chroma-qm-min & --chroma-qm-max 0 to 15 (Merged to Mainline)Set the minimum & maximum quantization matrices for chroma planes. The defaults are 8 and 15, respectively. These options decouple chroma quantization matrix control from the luma quantization matrix options currently available, allowing for more control over chroma quality.
Tune IQ (Ported to libaom, Merged to Mainline)A new tune, optimized for still images based on SSIMULACRA2 performance on the CID22 Validation test set. Not recommended for use outside of all-intra encoding.
Extended CRF (Merged to Mainline: quarter-step, extension to 70)Provides a more versatile and granular way to set CRF. Range has been extended to 70 (from 63) to help with ultra-low bitrate encodes, and can now be set in quarter-step (0.25) increments.
--hbd-mds 0 to 2This setting is short for High Bit Depth - Mode DecisionS. It controls the bit-depth at which internal operations are performed at.
0 follows the default preset behavior, 1 forces 10-bit mode decision for everything, 2 is adaptive 8/10-bit mode decision based on the scenario. Default is 0, following default preset behavior.
Presets -2 & -3Terrifically slow encoding modes for research purposes.
--sharpness 0 to 7 (Merged to Mainline)A parameter for modifying loopfilter deblock sharpness and rate distortion to improve visual fidelity. The default is 1.
--dolby-vision-rpu path to fileSet the path to a Dolby Vision RPU for encoding Dolby Vision video. SVT-AV1-Tritium needs to be built with the enable-libdovi flag enabled in build.sh (see ./Build/linux/build.sh --help for more info) (Thank you @quietvoid !)
--hdr10plus-json path to fileSet the path to an HDR10+ JSON file for encoding HDR10+ video. SVT-AV1-Tritium needs to be built with the enable-hdr10plus flag enabled in build.sh (see ./Build/linux/build.sh --help for more info) (Thank you @quietvoid !)
Detailed progress (Merged to Mainline)A new progress mode that provides more detailed information about the encoding process.
--fgs-table path to file (Merged to Mainline)Argument for providing a film grain table for synthetic film grain (similar to aomenc's '--film-grain-table=' argument).
--enable-dlf 2 (Merged to Mainline)Enables a more accurate loop filter that prevents blocking, for a modest increase in compute time (most noticeable at presets 7 to 9).
Higher-quality presets for 8K and 16KLowers the minimum available preset from 5 to 2 for higher-quality 8K and 16K encoding (64 GB of RAM recommended per encoding instance).
--luminance-qp-bias 0 to 100 (Merged to Mainline)Enables frame-level luminance bias to improve quality in dark scenes by adjusting frame-level QP based on average luminance across each frame.
--max-tx-size 32 and 64 (Merged to Mainline)Restricts available transform sizes to a maximum of 32x32 or 64x64 pixels. Can help slightly improve detail retention at high fidelity CRFs.
--adaptive-film-grain 0 and 1 (Merged to Mainline)Adaptively varies the film grain blocksize based on the resolution of the input video. Often greatly improves the consistency of film grain in the output video, reducing grain patterns.
Odd dimension encoding support (Merged to Mainline)Allows the encoder to accept content with odd width and/or height (e.g. 1920x817px). Gone are the "Source Width/Height must be even for YUV_420 colorspace" messages.
Reduced minimum width/height requirements (Merged to Mainline)Allows the encoder to accept content with width and/or height as small as 4 pixels (e.g. 32x18px).
--enable-tf 2 (Merged to Mainline)Adaptively varies temporal filtering strength based on 64x64 block error. This can slightly improve visual fidelity in scenes with fast motion or fine detail. Setting this to 2 will override --tf-strength and --kf-tf-strength, as their values will be automatically determined by the encoder.
--alt-ssim-tuning 0 and 1Enables VQ psychovisual optimizations from tune 0, as well as changing SSIM rate-distortion calculations by utilizing an alternative per-pixel variance function across 4X4, 8X8, and 16X16 blocks in addition to superblock-level SSIM rate-distortion tuning. Currently only operates on tune 2. The default is 0.
Enhanced Content Detection (Merged to Mainline)A smarter content detection algorithm to optimize the encoder for either screen or photographic content based on the image. This helps Tune IQ achieve better visual fidelity on still images.
--noise-adaptive-filtering 0 to 4Controls noise detection which disables CDEF/restoration when noise level is high enough. [0: off, 1: both CDEF and restoration noise-adaptive filtering are on, 2: default tune behavior, 3: noise-adaptive CDEF only, 4: noise-adaptive restoration only] The default is 2.
While SVT-AV1-HDR has questionable defaults that I'd like to change, I don't want to make the fork situation worse by yet introducing another fork with different defaults that you'd have to learn and remember. Instead, I opted to keep SVT-AV1-HDR defaults, but enable Scene Change Detection and Auto Tiling on top of that
SVT-AV1-Tritium includes SVT-AV1-HDR's Modified Defaults:
--enable-variance-boost enabled by default.--keyint -2 (the default) uses a ~10s GOP size instead of ~5s.--sharpness 1 by default to prioritize encoder sharpness.--sharp-tx 1) are enabled by default to supercharge SVT-AV1-HDR ac-bias optimizations. It is recommended to disable it if you don't use --ac-bias, which is set to 1.0 by default.--tf-strength 1 by default for much lower alt-ref temporal filtering to decrease blur for cleaner encoding.--kf-tf-strength 1 controls are available to the user and are set to 1 by default to remove KF artifacts.SVT-AV1-Tritium Defaults:
--scd 1 by default.--auto-tiling 1 by default.--color-help (Merged to Mainline)Prints the information found in Appendix A.2 of the user guide in order to help users more easily understand the Color Description Options in SvtAv1EncApp.
Up to v0.8.7, SVT-AV1 is licensed under the BSD-2-clause license and the Alliance for Open Media Patent License 1.0. See LICENSE and PATENTS for details. Starting from v0.9, SVT-AV1 is licensed under the BSD-3-clause clear license and the Alliance for Open Media Patent License 1.0. See LICENSE and PATENTS for details.
SVT-AV1-Tritium does not feature license modifications from mainline SVT-AV1.
Hacker News (1)
(top 30 of 157)
C
88.2%
C++
6.3%
Assembly
4.2%