7
submitted 2 months ago by BlueSwordM2@lemmy.world to c/av1@lemmy.world

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 3 months ago* (last edited 3 months ago) by BlueSwordM2@lemmy.world to c/av1@lemmy.world

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

10
submitted 4 months ago by BlueSwordM2@lemmy.world to c/av1@lemmy.world

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

[-] BlueSwordM2@lemmy.world 1 points 7 months ago

They will be available for all presets.

13
submitted 7 months ago* (last edited 7 months ago) by BlueSwordM2@lemmy.world to c/av1@lemmy.world

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@lemmy.world 0 points 11 months ago

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@lemmy.world 2 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@lemmy.world 3 points 1 year ago

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

4
submitted 1 year ago by BlueSwordM2@lemmy.world to c/av1@lemmy.world

BlueSwordM2

joined 1 year ago