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
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 (or enable-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