BlueSwordM2

joined 1 year ago
 

Good morning my fellow video encoding afficionados.

As usual, I was trying to find interesting stuff on the web, and I finally did!

Someone in our wonderful AV1 enthusiast community has spent a lot of time working on natively adding svt-av1-psy to Handbrake; this is done through specific patches that add the additional functionality of svt-av1-psy in Handbrake.

This allows for Windows, macOS, Linux (Flatpak) and native Linux builds of Handbrake to be built with nearly complete svt-av1-psy support.

It's truly a great addition as it allows many more people to be at the leading edge of high fidelity AV1 encoding.

Note that these are based on Nightly Handbrake, but this shouldn't pose a problem.

Head over to the "Releases" page to find the full builds, CLI versions and even dynamic library replacement: https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/releases

That'll be all from me. Thank you for your attention and have a great Saturday.

11
submitted 3 months ago* (last edited 3 months ago) by BlueSwordM2 to c/av1
 

Happy Wednesday to all of you wonderful readers.

We've updated, improved, and polished the latest svt-av1-psy release. I'll make it quick and will start with the changelog:

-> MAIN CHANGES:

  • New parameter: --tf-strength. This parameter is used for manually adjusting alt-ref frame temporal filtering strength. By default, this reduces temporal filtering strength by 4x.

  • New parameters: --chroma-qm-min & --chroma-qm-max. These parameters control quantization matrix flatness for chroma planes (higher number is flatter and introduces fewer quantization changes).

  • New parameter: --tune 4 - A new Tune called Still Picture has been introduced for AVIF encoding, with promising gains observed mainline SVT-AV1 and even over aomenc (libaom-av1) in some scenarios.

  • All the performance improvements from mainline SVT-AV1 from more advanced pruning, program optimizations and CPU optimizations.

-> TUNING:

  • Enable 10-bit subpixel motion estimation processing for 10-bit inputs on Preset 3 & below, for better motion clarity

  • Enable SUPERRES_AUTO_ALL for Tune 3 when superres-mode=4 for better visual quality when enabling "super-resolution"

  • Disables ALT-REF frame superres for speed and quality improvements

  • Add unipred bias for SSIM full mode decision cost when using Tune 3 for better visual quality

  • New perceptual QM curve when using Tune 3 for improved visual quality

  • Better chroma QM adjustment & better high fidelity performance

  • Vastly improved screen content detection when --scm 2 is set. Currently only enabled in Tune 4. May eventually be accessible globally for better adaptive encoding performance...

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

-> 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. If you appreciate the work that we do, you can support us monetarily via the links below:

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

Any support you can offer goes a long way, and we sincerely appreciate it. ♥️

PRs (Code Pull Requests), issue opening and general bug hunting are extremely appreciated as well as they make our work a whole lot easier.

 

Good day to you all folks.

We have another update to svt-av1-psy which has been cooking for a while now, and it's rather large for a letter change. You already know the way we roll from previous releases; I'll directly start with the changelog.

-> MAIN CHANGES:

  • New parameter: --max-32-tx-size. This restricts block transform sizes to a maximum of 32x32 pixels. This can be useful in very specific scenarios for improving overall visual quality where the AV1 spec can allow for bad decisions decided by SAD/SSD/PSNR.

  • New option: --hdr10plus-json. This parameter, added by quietvoid, allows for HDR10+ HDR support. In order to build a binary with support for HDR10+, see our PSY Development page

  • New option: --adaptive-film-grain. This parameter 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.

-> TUNING:

  • Disabled SSIM-cost transform decisions while keeping SSIM-cost mode decisions, generally improving Tune 3's efficiency & consistency. Future changes might contain additional tuning at this level.

-> PERFORMANCE:

  • Additional NEON optimizations for ARM platforms, providing a speed increase

-> BUG FIXES:

12
submitted 6 months ago* (last edited 6 months ago) by BlueSwordM2 to c/av1
 

We're here again with a new SVT-AV1-PSY release.

This time, we've decided to change the way we name these updates as they've been difficult to keep track of versioning against mainline SVT-AV1 and our own. We'll still follow the cadence of mainline SVT-AV1, but with letter releases added in between for additional clarity.

I plan on releasing Linux optimized binaries soon and someone else will step up to provide the all important Windows builds and ideally, an ffmpeg build.

The Linux optimized binaries have been added. They are packaged under a single archive with a generic build, an x86-64-v3 build, an x86-64-v4 build (AVX512 capable CPU required) and an x86-64-v4-AVX512 build that utilizes the native SVT-AV1 AVX512 SIMD assembly code for maximum speed.

Let's get on to the main course, which is discussing the new options.

-> MAIN CHANGES:

  • CRF range: previously capped at 63, it has been extended to a maximum value of 70. It can also be incremented in quarter increments of 0.25. This change allows for greater control of the base quantizer through CRF and as you increase CRF beyond 63, gradually reducing the effect of quantizer scaling.

  • New option: --enable-dlf 2 for a slower, more accurate deblocking loop filter based on scaling deblocker preset pruning by 3 levels (P7 with --enable-dlf 2 = P4 deblocking)

  • 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, especially with lots of motion or moving features (grain...). Default is 1, SVT-AV1 default is 0.

  • 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. Future improvements will revolve around making it more accurate and based on proper lightness to make it work across color spaces. Other general improvements to Tune 3

-> INNOVATIONS:

  • Dynamic delta_q_res switching implemented to help reduce signaling overhead, which should improve quality especially at CRF ≥40! This is a big move considering it's a free efficiency increase

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

 

Yes, it's finally been released after cooking for so long in the svt-av1-psy fork!

[–] BlueSwordM2 1 points 10 months ago

They will be available for all presets.

 

Hello everyone. It's certainly been a while.

It may seem like there hasn't been a lot of movvement in the AV1 encoder world... but there's actually been a lot in this regard.

As you've already read from the title, this patchset adds in deltaq guided variance adaptive quantization. It's been made by our comrade u/juliobbv : https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/2105

It helps to improve coding performance and visual quality in harder to encode scenarios, where low entropy/frequency areas tend to be ignored by the encoder at multiple levels (RD metric, skip modes); this helps it tremendously in this area.

  • Pure BD-rate increases for harder content range from 3.75-10%+!

It manages to finally eclipse the harshest aom-av1-psy-101/lavish settings that even I could muster up.

At this point, SVT-AV1-PSY is the best public AV1 video encoder we have today.

  • Until it's avif of course. aomenc still wins there.

Yet, it's not done yet as there are still improvements to be had to improve the encoder performance through some more advanced (but more compute intensive) opts.

This feature is available at all speed presets.

It hasn't been integrated into mainline SVT-AV1 obviously; you'll need to build them from source for now using either of these two fork repositories¹:

https://github.com/gianni-rosato/svt-av1-psy

https://github.com/BlueSwordM/SVT-AV1

Any of these repositories are fine. Mine just has an extra "psy" opts patch that reigns in alt-ref frame temporal filtering strength a bit. Watch out for updates as they're updated as quickly with new working patches!

Here are the actual user settings:

--variance-boost-strength Variance boost strength, default is 3 [0-5]

--new-variance-octile Octile for new 8x8 variance algorithm. Set to 0 to use 64x64 variance algorithm, default is 4 (median) [0-8]

More detail can be found in the respective patchsets.

That'll be all from me for today. Questions and comments are appreciated.

¹ More links might be added to binary releases.

[–] BlueSwordM2 2 points 1 year ago (1 children)

I'm surprised nobody here has recommend the usage of the 2 main aomenc forks (aom-av1-psy and aom-av1-lavish) and my fork of SVT-AV1: https://github.com/BlueSwordM/SVT-AV1/commits/master

It can make quite the difference in terms of fidelity.

[–] BlueSwordM2 3 points 1 year ago

The results are decent. I've personally tested it on my "psy" fork of SVT-AV1, and it usually looks a bit better than the VQ tune, and it is somewhat more competent at higher fidelity levels.

[–] BlueSwordM2 4 points 1 year ago (2 children)

So this is my first post here. After about 1 month of work, the experimental SSIM RD tune has been added to the mainline branch.

We've already experimented on my fork of the branch, and have seen good results over the other tunes in the encoder: https://github.com/BlueSwordM/SVT-AV1