Skip to content

v2.3.0

Latest
Compare
Choose a tag to compare
@gianni-rosato gianni-rosato released this 30 Oct 04:17
· 1 commit to master since this release
0fb626b

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):

Preset Uplift
0 1.15x
1 1.24x
2 1.29x
3 1.17x
4 1.22x
5 1.31x
6 1.40x
7 (against 2.2 preset 8) 1.50x
8 (against 2.2 preset 9) 1.61x
9 (against 2.2 preset 10 1.31x
10 (against 2.2 preset 11 ) 1.29x
11 (against 2.2 preset 12/13) 1.24x

High bitdepth (Bosphorus 2160p):

Preset Uplift
0 1.18x
1 1.19x
2 1.16x
3 1.27x
4 1.33x
5 1.27x
6 1.33x
7 (against 2.2 preset 8) 1.35x
8 (against 2.2 preset 9) 1.82x
9 (against 2.2 preset 10) 1.95x
10 (against 2.2 preset 11) 1.40x
11 (against 2.2 preset 12/13) 1.35x

Huge thanks to the mainline devs for these incredible improvements!

Support Us

As SVT-AV1-PSY's codebase has become more complex and the encoder's capabilities have increased dramatically, our efforts have scaled in kind. We have poured hours into coding, testing, distributing, and supporting this piece of open-source software entirely for free, and our work isn't stopping any time soon.

If you appreciate the work that we do and you'd like to support us, we are always excited to see code contributions from outside of the core development team. Otherwise, you can support us monetarily via the links below.

Gianni Rosato: Donate
Julio Barba: Coming Soon
BlueSwordM: Coming Soon
Clybius: Coming Soon

You can also visit our website at svt-av1-psy.com. Any support you can offer goes a long way, and we sincerely appreciate it. ♥️

Binaries

Linux builds: (MD5: fd3174b3fb83bf2b7c9212080d0e424c)

  • AVX2 (x86-64-v3)

macOS builds: (MD5: 5a44e0e98bcd91fe7a0cf89fd2a5e5aa)

  • AArch64 (Apple Silicon)

Other builds: Community Builds Thread (Unofficial)

Thanks for using SVT-AV1-PSY! <3

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