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
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
- 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
The fact that iPhones are getting this before Android phones without Google Play Services tells you all you need to know about the nature of RCS. Android has lost all of its intrigue and fun in favor of becoming GoogleOS