About Releases
SVT-AV1-PSY releases often feature the same version numbers as mainline releases, as our cadence is in line with theirs. However, this doesn't mean the codebases are identical; SVT-AV1-PSY releases always feature changes. We also have our own micro-release framework that enables us to publish releases outside of the mainline cadence; these will be marked by a letter starting at A, then B, etc. So, v2.1.0-A would succeed v2.1.0. The releases below are also enumerated on our GitHub Releases page.
SVT-AV1-PSY v2.2.1
Just a quick update with a couple of bug fixes & documentation adjustments 🐞
PSY Updates
Documentation
- Fix
--tf-strength
parameter information in the README - Add donation info
Bug Fixes
- Fix multiple-counting block bug in Tune 3 SSIM rdmult
Mainline Updates
Cleanup, bug fixes
- Fixed debug arm macOS builds by removing invalid assert
Support Us
See About PageThanks for using SVT-AV1-PSY! <3
Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.2.1
SVT-AV1-PSY v2.2.0
Long time no see! We're back with another exciting release: SVT-AV1-PSY v2.2.0! 🎉
PSY Updates
Features
--tf-strength
parameter for manually adjusting temporal filtering strength. By default, reduces temporal filtering strength by 4x--chroma-qm-min
&--chroma-qm-max
parameters for adjusting quantization matrix flatness for chroma planes--tune 4
- A new Tune called Still Picture has been introduced for AVIF encoding, with promising gains observed over aomenc, aomenc 4:4:4, and mainline SVT-AV1
Quality & Performance
- Enable 10-bit subpixel motion estimation processing for 10-bit inputs on Preset 3 & below
- Enable SUPERRES_AUTO_ALL for Tune 3 when superres-mode=4
- Disables ALT-REF superres for speed and quality
- Add unipred bias for SSIM full mode decision cost when using Tune 3
- New perceptual QM curve when using Tune 3
- Better chroma QM adjustment & better high fidelity performance
- Vastly improved screen content detection when
--scm 2
is set. Currently only enabled in Tune 4
Documentation
--help
menu correctly prints maximum CRF value (70)- Default Tune 2 is better reflected across documentation
- Updated build documentation
- Additional featured projects
Bug Fixes
- Scoped down QM disablement to only affect NEON-enabled systems
- Scoped down global sharpness features to
--sharpness 1
, as was the original intention
Mainline Updates
API updates
- No API changes on this release
Encoder
- Improve the tradeoffs for the random access mode across presets:
- Speedup of ~15% across presets M0 - M8 while maintaining similar quality levels
- Improve the tradeoffs for the low-delay mode across presets
- Increased temporal resolution setting to 6L for 4k resolutions by default
- Added ARM optimizations for functions with
c_only
equivalent yielding an average speedup of ~13% for 4k 10-bit
Cleanup Build & bug fixes & documentation
- Profile-guided-optimized helper build overhaul
- Major cleanup and fixing of Neon unit test suite
- Address stylecheck dependence on public repositories
Support Us
See About PageThanks for using SVT-AV1-PSY! <3
Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.2.0
SVT-AV1-PSY v2.1.0-A
Hi there! We're back with our micro-release format to announce some exciting changes in SVT-AV1-PSY v2.1.0-A! 🎉
PSY Updates
Features
- New parameter
--max-32-tx-size
, which restricts block transform sizes to a maximum of 32x32 pixels. This can be useful in very specific scenarios for improving overall efficiency - Added support for HDR10+ JSON files via a new
--hdr10plus-json
parameter (thanks @quietvoid!). In order to build a binary with support for HDR10+, see our PSY Development page. - New parameter
--adaptive-film-grain
, which helps remedy perceptually harmful grain patterns caused by extracting grain from blocks that are too large for a given video resolution. This parameter is enabled by default
Quality & Performance
- Disabled SSIM-cost transform decisions while keeping SSIM-cost mode decisions, generally improving Tune 3's efficiency & consistency
- Additional NEON optimizations for ARM platforms, providing a speed increase
Documentation
- All of the features present in this release have been documented, so associated documentation has been updated accordingly
- Build documentation updated to reflect the HDR10+ build option
Bug Fixes
- Disabled quantization matrices for presets 5 and higher due to a visual consistency bug (#56)
Thanks for using SVT-AV1-PSY! ♥️
Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.1.0-A
SVT-AV1-PSY v2.1.0
Hi again! We're just barely trailing mainline's recent release to announce some exciting new changes in SVT-AV1-PSY v2.1.0! 🎉
PSY Updates
Documentation
- Additional PNG images have been transcoded to WebP
- Variance boost docs feature AVIF & WebP images
- Added Staxrip to featured projects in README. Welcome aboard!
Bug Fixes
- Removed ANSI escape color sequences for Windows builds (#46)
Other
- This major release doesn't have a micro-release letter, & is just labelled
PSY Release: N/A
- if we're doing a release in line with mainline, PSY release lettering will start at N/A & progress to A, B, etc from there.
Mainline Updates
API updates
- One config parameter added within the padding size. Config param structure size remains unchanged
- Presets 6 and 12 are now pointing to presets 7 and 13 respectively due to the lack of spacing between the presets
- Further preset shuffling is being discussed in #2152
Encoder
- Added variance boost support to improve visual quality for the tune vq mode
- Improve the tradeoffs for the random access mode across presets:
- Speedup of 12-40% presets M0, M3, M5 and M6 while maintaining similar quality levels
- Improved the compression efficiency of presets M11-M13 by 1-2%
- Added ARM optimizations for functions with c-only equivalent
Cleanup, build, bug fixes & documentation
- Use nasm as a default assembler and yasm as a fallback
- Fix performance regression for systems with multiple processor groups
- Enable building SvtAv1ApiTests and SvtAv1E2ETests for ARM
- Added variance boost documentation
- Added a mailmap file to map duplicate git generated emails to the appropriate author
Thanks for using SVT-AV1-PSY! ♥️
Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.1.0
SVT-AV1-PSY v2.0.0-A
Hi there! We're back with a new micro-release format to announce some exciting changes in SVT-AV1-PSY v2.0.0-A! 🎉
PSY Updates
Features
- The CRF range, previously capped at 63, has been extended to a maximum value of 70. It can also be incremented in quarter increments of 0.25
- New option:
--enable-dlf 2
for a slower, more accurate deblocking loop filter - New option:
--qp-scale-compress-strength
(0 to 3) which sets a strength for the QP scale algorithm to compress values across all temporal layers. Higher values result in more consistent video quality - New option:
--frame-luma-bias
(0 to 100) enables experimental frame-level luma bias to improve quality in dark scenes by adjusting frame-level QP based on average luminance across each frame
Quality & Performance
- A temporal layer chroma qindex offset has been added to Tune 3 for more consistent quality across frames when encoding
- Minor speed bump to Preset 8
- Encoder innovation: Dynamic delta_q_res switching implemented to help reduce signaling overhead, which should improve quality especially at CRF ≥40!
- Other general improvements to Tune 3
Documentation
- PNG images have been replaced with smaller lossless WebP images, resulting in faster loading & repository cloning times.
- More consistent & thorough PSY Development page, including build instructions
Bug Fixes
- Help menu formatting adjusted for less frequent underlining
--progress 2
no longer reports the same information as--progress 3
Other
- Introducing PSY Micro-releases! Each micro-release will be marked with a letter, bringing a bundle of new features & improvements. The release letter will reset back to the initial
A
each time our mainline version is updated. More info can be found in this project's README & the PSY Development page
Thanks for using SVT-AV1-PSY! ♥️
Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.0.0-A
SVT-AV1-PSY v2.0.0
Hello, everyone! We've been hard at work improving SVT-AV1 with our additions to the encoder improving visual fidelity. Little by little, we are working on trying to bring many of them to mainline! For the time being, I want to note that major SVT-AV1-PSY releases & mainline releases are not the same, and the codebases differ due to our changes; the version numbers may be identical, but the versions themselves are not, which is disclosed within the encoder's version information.
With that, we're excited to announce SVT-AV1-PSY v2.0.0! 🎉
PSY Updates
Variance boost
- Moved varboost delta-q adjusting code to happen before TPL, giving TPL the opportunity to work with more accurate superblock delta-q priors, and produce better final rdmult lambda values
- Fixed rare cases of pulsing at high CRFs (>=40) and strengths (3-4)
- 2% avg. bitrate reduction for comparable image quality
- Added an alternative boosting curve (
--enable-alt-curve
), with different variance/strength tradeoffs - Refactored boost code so it internally works with native q-step ratios
- Removed legacy variance boosting method based on 64x64 values
- Parameter
--new-variance-octile
->--variance-octile
- Parameter
Excitingly, a var-boost mainline merge has been marked with the highest priority issue label by the mainline development team, so we may see this in mainline SVT-AV1 soon! Congrats @juliobbv! 🎉
Other
- Presets got faster, so in addition to Preset -2, we have an even slower Preset -3
--sharpness
now accepts negative values- The SVT-AV1-PSY encoder now supports Dolby Vision encoding via Dolby Vision RPUs. To build with Dolby Vision support, install libdovi & pass
--enable-libdovi
to./build.sh
on macOS/Linux (orenable-libdovi
to./build.bat
on Windows).
Mainline Updates
Major API updates
- Changed the API signaling the End Of Stream (EOS) with the last frame vs with an empty frame
OPT_LD_LATENCY2
making the change above is kept in the code to help devs with integration- The support of this API change has been merged to ffmpeg with a 2.0 version check
- Removed the 3-pass VBR mode which changed the calling mechanism of multi-pass VBR
- Moved to a new versioning scheme where the project major version will be updated every time API/ABI is changed
Encoder
- Improve the tradeoffs for the random access mode across presets:
- Speedup presets MR by ~100% and improved quality along with tradeoff improvements across the higher quality presets (!2179,#2158)
- Improved the compression efficiency of presets M9-M13 by 1-4% (!2179)
- Simplified VBR multi-pass to use 2 passes to allow integration with ffmpeg
- Continued adding ARM optimizations for functions with
c_only
equivalent - Replaced the 3-pass VBR with a 2-pass VBR to ease the multi-pass integration with ffmpeg
- Memory savings of 20-35% for LP 8 mode in preset M6 and below and 1-5% in other modes / presets
- Film grain table support via
--fgs-table
(already in SVT-AV1-PSY) (link) - Disable film grain denoise by default (already in SVT-AV1-PSY) (link)
Cleanup, bug fixes & documentation
- Various cleanups and functional bug fixes
- Update the documentation to reflect the rate control
Thanks for using SVT-AV1-PSY! ♥️
Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.0.0