AV1 Community

150 readers
1 users here now

All things relating to the AV1 video codec.

founded 1 year ago
MODERATORS
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

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: Donate Soon

BlueSwordM: Coming Soon

Clybius: Coming Soon

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

Thanks for using SVT-AV1-PSY! <3

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

2
6
SVT-AV1-PSY v2.3.0 (svt-av1-psy.com)
submitted 6 days ago by gianni@lemmy.ml to c/av1@lemmy.ml
3
 
 

Changes for 1.5.0 'Sonic':

1.5.0 is a major release of dav1d, that:

  • WARNING: we removed some of the SSE2 optimizations, so if you care about systems without SSSE3, you should be careful when updating!
  • Add Arm OpenBSD run-time CPU feature
  • Optimize index offset calculations for decode_coefs
  • picture: copy HDR10+ and T35 metadata only to visible frames
  • SSSE3 new optimizations for 6-tap (8bit and hbd)
  • AArch64/SVE: Add HBD subpel filters using 128-bit SVE2
  • AArch64: Add USMMLA implempentation for 6-tap H/HV
  • AArch64: Optimize Armv8.0 NEON for HBD horizontal filters and 6-tap filters
  • Power9: Optimized ITX till 16x4.
  • Loongarch: numerous optimizations
  • RISC-V optimizations for pal, cdef_filter, ipred, mc_blend, mc_bdir, itx
  • Allow playing videos in full-screen mode in dav1dplay
4
3
SVT-AV1-PSY v2.2.1-B (svt-av1-psy.com)
submitted 3 weeks ago by gianni@lemmy.ml to c/av1@lemmy.ml
5
4
SVT-AV1-PSY v2.2.1-A (svt-av1-psy.com)
submitted 1 month ago by gianni@lemmy.ml to c/av1@lemmy.ml
6
 
 

cross-posted from: https://lemmy.world/post/19262772

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.

7
 
 

Give the issue & upvote and comment to show your support - every like helps!

8
 
 

[2.2.0] - 2024-08-19

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 (!2253)
  • Improve the tradeoffs for the low-delay mode across presets (!2260)
  • 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 4k10bit

Cleanup Build and bug fixes and documentation

  • Profile-guided-optimized helper build overhaul
  • Major cleanup and fixing of Neon unit test suite
  • Address stylecheck dependence on public repositories
9
 
 

bdr-ssimu2

Encode, analyze, & plot SSIMULACRA2 scores using a source video file that is encoded with FFmpeg.

This Python script generates BD-Rate (Bjøntegaard-Delta Rate) graphs for comparing the performance of different encoding commands. It encodes a source video with various specified Constant Rate Factor (CRF) values, calculates SSIMULACRA2 scores, and plots the results via matplotlib.

Features

  • Encodes a source video using two user-configurable FFmpeg commands
  • Calculates SSIMULACRA2 scores (and soon XPSNR scores as well)
  • Generates BD-Rate curves comparing the two encoding commands
  • Outputs both average and harmonic mean SSIMULACRA2 plots
  • Allows for temporal metric analysis subsampling (sampling every nth frame)

Prerequisites

  • Python 3.x
  • FFmpeg
  • VapourSynth with:
  • Required Python packages:
    • vapoursynth
    • matplotlib
    • tqdm

See more in the linked Git repo's README!

10
 
 

Introducing SVT-AV1-PSY v2.1.0-A

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)

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

11
 
 

SVT-AV1 2.1.0 just released, how does it compare to SVT-AV1 2.0.0? Well-known encoder Trix attempts to answer this question with metrics, graphs, and detailed analysis.

12
 
 

[2.1.0] - 2024-05-17

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% (!2213)
  • Added ARM optimizations for functions with c_only equivalent

Cleanup Build and bug fixes and 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
13
 
 

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 qindex offset has been added to Tune 3 for more consistent quality across frames when encoding
  • Minor speed bump to Preset 8
  • 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

14
 
 

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

15
7
submitted 7 months ago* (last edited 7 months ago) by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml
 
 

[2.0.0] - 2024-03-13

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

Cleanup and bug fixes and documentation

  • Various cleanups and functional bug fixes
  • Update the documentation to reflect the rate control changes
16
 
 

It's official that Android will be rolling out dav1d to replace libgav1 as a system wide codec on Android 14 devices, though there is potential for it to be supported as far back as Android 10. Finally, libgav1 is no more!

17
 
 

Does anyone know how to determine the level of grain synth used in an encoded video? I have .webms that I've encoded with ffmpeg and svt-av1 but I don't have that grain synth information anymore.

In fact it would be nice if I could just see any other information about an encoded video (rate factor, preset used, etc). These details don't appear when using mediainfo so I presume they are lost and unknowable. But grain synth occurs at decode time, so that should still be something I can figure out, right?

18
 
 

Some big changes have been introduced in SVT-AV1-PSY, courtesy of Clybius, the author of aom-av1-lavish! Here is the changelog:

Feature Additions

  • Tune 3 A new tune based on Tune 2 (SSIM) called SSIM with Subjective Quality Tuning. Generally harms metric performance in exchange for better visual fidelity.
  • --sharpness A parameter for modifying loopfilter deblock sharpness and rate distortion to improve visual fidelity. The default is 0 (no sharpness).

Modified Defaults

  • Default 10-bit color depth. Might still produce 8-bit video when given an 8-bit input.
  • Disable film grain denoising by default, as it often harms visual fidelity.
  • Default to Tune 2 instead of Tune 1, as it reliably outperforms Tune 1 on most metrics.
  • Enable quantization matrices by default.
  • Set minimum QM level to 0 by default.

That's all, folks! Keep an eye on the master branch for more changes in the future!

19
 
 

Introduced in April 2021 was the initial Vulkan Video support for a new video encode/decode API built around Vulkan. That initial Vulkan Video support was catered to H.264 and H.265 while finally with today's Vulkan 1.3.277 release there is a new extension introduced for AV1 video decoding.

20
8
Aviator 0.5.0 (github.com)
submitted 9 months ago by gianni@lemmy.ml to c/av1@lemmy.ml
 
 

Today, we have a very exciting development - Aviator, the Linux GUI for AV1 encoding, has switched to an in-house custom fork of SVT-AV1 dubbed SVT-AV1-PSY!

Featuring development efforts from BlueSwordM (author of the previous custom fork), myself (Gianni), and others, this change will enable us to have much more control over the encoder's development so that it aligns most effectively with Aviator's number one priority: visual quality.

So far, SVT-AV1-PSY's most noteworthy feature is a variance boost patch that appreciably improves intra- and inter-frame fidelity consistency across wide range of content. Visual fidelity per bit is estimated to have increased by up to 5% with this patch, which currently isn't present in mainline SVT-AV1.

Even though this patch should inevitably make it to mainline, the gains from having more direct control are already being realized as we can implement features like this flexibly at a pace we decide.

Aside from that, FFmpeg has been updated to version 6.1, the SCM toggle has been replaced with a more useful Open GOP toggle, and the README has been modified to reflect some of these more recent changes with regard to SVT-AV1-PSY.

Thank you for using Aviator, and happy encoding!

Aviator can be downloaded on Flathub, where 0.5.0 will be available soon.

21
 
 

This blog post on the Codec Wiki by encoder Trix presents extensive benchmarking of SVT-AV1 1.8.0 on animated content using both objective metrics and subjective image comparisons (the subjective part is coming soon). Short high-quality anime clips were encoded directly with SVT-AV1 across a range of settings. SSIMULACRA2 visual quality scores and encoding speeds were measured for each encode, along with bits per pixel to calculate encoding efficiency. The results are presented through graphs showing metric scores and speed, alongside comparison images enabling subjective evaluation of visual quality (again, comparison images coming soon for subjective analysis). This rigorous testing methodology provides insightful analysis of how SVT-AV1 performs when encoding animation.

22
 
 

This program generates an AV1 video encoding command for use with Av1an, a chunked AV1 encoding tool for use with aomenc, SVT-AV1, and rav1e.

This tool takes in the video resolution, frame rate, desired encoder, speed preset, and target bitrate range as command line arguments. Based on these parameters, it calculates settings like tile columns/rows, lag-in-frames, CRF, and encoder speed preset. Then, it injects these into a generated encoding command string.

The output is a full Av1an command that can be run to encode a video based on the specified settings.

23
2
SVT-AV1 1.8.0 (gitlab.com)
submitted 10 months ago by gianni@lemmy.ml to c/av1@lemmy.ml
 
 

Encoder

Improve the tradeoffs for the random access mode across presets: Speedup CRF presets M6 to M0 by 17-53% while maintaining similar quality levels Re-adjust CRF presets M7 to M13 for better quality with BD-rate gains ranging from 1-4% Improve the quality and speed of the 1-pass VBR mode Improve Multi Pass VBR algorithm for better quality with BD-rate gains of ~3% on average More details on the per preset improvements can be found in MR !2143

Add API allowing to update bitrate / CRF and Key_frame placement during the encoding session for CBR lowdelay mode and CRF Random Access mode ARM Neon SIMD optimizations for most critical kernels allowing for a 4.5-8x fps speedup vs the c implementation

Cleanup and bug fixes and documentation

Various cleanups and functional bug fixes Update the documentation for preset options and individual features

24
 
 

Huge improvements for AV1 users over the last stable HandBrake release.

25
 
 

I think with the weight of Apple finally behind AV1 it is as blessed of a format as anything can be. Sisvel be damned.

And, a new media engine now includes support for AV1 decode, providing more efficient and high-quality video experiences from streaming services.

I do not see AV1 encode support on this chip's announcement, however.

view more: next ›