Visit the Downloads page to get the latest release now! →

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.

GitHub Logo

SVT-AV1-PSY v2.3.0

We made a lot of progress in v2.2.1-A & v2.2.1-B, but we still have more for you on the heels of mainline's release with SVT-AV1-PSY v2.3.0! 🌠

PSY Updates

Features

  • New parameter --kf-tf-strength for controlling alternate reference frame temporal filtering on keyframes. This should enable users to more finely control temporal filtering, specifically in scenarios where the benefits of lower --tf-strength are desired without the accompanying bitrate increase. The default value for this new parameter is 1.

Quality & Performance

  • Tune 4 now considers user-selected min & max QM values
  • Tune 4's chroma boost curve has been modified to be more compression efficient
  • The deblocking loop filter has been disabled at medium-high to high fidelity when using Tune 4

Documentation

  • Removed deprecated no-dec build option from build.sh example command list

Bug Fixes

  • Reverted optimized 32 and wider AVX2 block subtract due to a suspect memory issue causing crashing according to some users
  • Corrected noise normalization strength not being printed correctly when set to 0 with Tune 3
  • Fixed user-specified disablement of temporal filtering being ignored

Mainline Updates

API updates

  • Preset shift: M12/M13 mapped to M11, M7-M11 shifted one position down. API does not change, all presets from MR-M13 will still be accepted
  • svt_av1_enc_get_packet API is now a blocking call for low-delay enforcing a picture in, picture out model
  • --fast-decode range changed from 0-1 to 0-2 available on all presets
  • Introducing a new definition of --lp being levels of parallelism with a new field in the config structure level_of_parallelism
  • logical_processors will be deprecated in the 3.0 release

Encoder

  • NEW FAST DECODE MODE
  • New fast-decode (2) to allow for an average AV1 software cycle reduction of 25-50% vs fast-decode 0 with a 1-3% BD-Rate loss across the presets
  • Improved fast-decode (1) option to increase its AV1 software cycle reduction by ~10% while maintaining the same quality levels
  • Improved --lp settings for high resolutions, with CRF gaining a ~4% improvement in speed and VBR gaining ~15%
  • Further Arm-based optimizations improving the efficiency of previously written Arm-neon implementations by an average of 30%. See below for more information on specific presets
  • Address speed regressions for high resolutions first pass encode by tuning the threading parameters, with 1080p showing the biggest gains
  • Enabled AVX512 by default in cmake allowing for ~2-4% speedup
  • Enabled LTO by default if using a new enough compiler
  • If LTO is a problem or causes one, it can be disabled by adding - DSVT_AV1_LTO=OFF to cmake to force it off.
  • Please report any issues that occur when using it.

Cleanup Build & Bug Fixes & Documentation

  • third_party: update safestringlib with applicable upstream changes
  • Improved the unit test coverage for Arm-neon code
  • Updated documentation

Arm Improvements

  • Speed comparison was done against v2.2 on AWS Graviton4 instances with Clang 19.1.1
  • --lp 1 was used for all tests

Standard bitdepth (Bosphorus 1080p):

Mainline 2.3.0 ARM Gains (8-bit, 1080p)

High bitdepth (Bosphorus 2160p):

Mainline 2.3.0 ARM Gains (10-bit, 2160p)

Huge thanks to the mainline devs for these incredible improvements!

Support Us

See About Page

Thanks for using SVT-AV1-PSY! <3

Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.3.0

SVT-AV1-PSY v2.2.1-B

Our first ever B release is here with SVT-AV1-PSY v2.2.1-B! 🕺

PSY Updates

Features

  • New parameter --noise-norm-strength for controlling noise normalization. It is configurable with values 0 through 4, with a default value of 0. Noise normalization intelligently boosts higher frequency details in parts of the video where these details may otherwise be erased, helping preserve visual consistency in some scenarios.

Quality & Performance

  • Tune 4 variance boost scaling is now a bit flatter
  • Adjusted Tune 4 lambda weights
  • Limited the maximum available transform size available to Tune 4 to 32x32
  • Adjusted the default sharpness parameter used by Tune 4
  • New custom Variance Boost curve for Tune 4
  • Ported speedups for AVX2 hardware from aomenc

Documentation

  • DLF 2 option is now properly reflected in the help menu

Bug Fixes

  • Fixed a bug where on certain devices under specific circumstances, encoding extremely small images resulted in a floating point exception

Support Us

See About Page

Thanks for using SVT-AV1-PSY! <3

Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.2.1-B

SVT-AV1-PSY v2.2.1-A

Our most significant PSY micro-release is here with SVT-AV1-PSY v2.2.1-A!!! 🏆

PSY Updates

Features

  • Encoding with odd (non-mod2) dimensions is now possible
  • Encoding at resolutions lower than 64x64 is now possible, down to as small as 4x4

Quality & Performance

  • A new variance boost curve for Tune 4 has been introduced, optimized for still image encoding performance
  • Improved color reproduction & overall picture quality in Tune 4 & Tune 2 through chroma qindex scaling (similar functionality is already present in Tune 3)
  • Higher quality presets are available when encoding 16K
  • Default --chroma-qm-min has been updated to 8 (from 0)

Documentation

  • Updated Handbrake link to new, cross-platform Handbrake PSY builds

Bug Fixes

  • The version number should now be correct when building from an archive instead of cloning with git
  • AVIFs with dimensions exceeding 4K resolution should decode correctly in applications that previously refused to decode these images when they were produced by SVT-AV1(-PSY)

Other

  • The enable-libdovi & enable-libhdr10plus flags in build.sh have been updated to enable-dovi & enable-hdr10plus. The old flags will still work, but are no longer documented & will be considered deprecated from this point forward.

Support Us

See About Page

Thanks for using SVT-AV1-PSY! <3

Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.2.1-A

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 Page

Thanks 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 Page

Thanks 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

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