From the GitHub releases:
Hello, everyone! We’ve been hard at work enhancing 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