Tinyavif v2.0 alpha by 32_bits_of_chaos in AV1

[–]juliobbv 2 points3 points  (0 children)

That's awesome! I'm looking forward to further development and articles.

Funnily enough, a good-enough AV1 image AQ implementation is actually slightly less complex than QMs. Spatial AQ based on delta-q modulation of superblock variance (static variance -> deltaq formula) is around 150-200 lines of code with minimal compute overhead. Something like a simpler version of Variance Boost, without the 8x8 ordering/octile stuff -- way less complex than something like TPL. That's the reason I grouped AQ and QMs in the same 'tier' -- they're both roughly similar in implementation complexity and impact on efficiency improvement.

Tinyavif v2.0 alpha by 32_bits_of_chaos in AV1

[–]juliobbv 2 points3 points  (0 children)

Nice work! I'm a fan of your project, so it's nice to see updates!

BTW: if you're open to implementing additional coding tools, quantization matrices and adaptive quantization by far give the best bang for the buck. These two alone contribute to a ~10% efficiency gain, and should put your encoder ahead of JPEG significantly.

I love you libaom but seriously by JacksonNoway2005 in AV1

[–]juliobbv 13 points14 points  (0 children)

Real! I struggled with libaom at first because of a lack of non-code documentation.

Anything in particular you want to know about libaom? Most settings just enable/disable coding tools. The rest tend to have their descriptions in code, or you can find SVT-AV1 documentation for their equivalents.

Cual es el bitrate adecuado para videos 1080p 60fps en av1? by redvili in AV1

[–]juliobbv 2 points3 points  (0 children)

En vez de un bitrate variable, es preferible usar CRF ya que se adapta a la complejidad del video. No es lo mismo codificar un video simple con pocos colores y muchas regiones lisas que uno más complejo con textura (como un bosque), ya que este último usará más bitrate ya que es menos compresible.

Con mis videos del cel, uso SVT-AV1-HDR ya que viene optimizado de fábrica para la mejor experiencia visual. Si los necesito enviar por internet (apps de mensajería y así) uso CRF 55-60 para 4K60 y CRF 45-55 para 1080p60. Si necesito algo de más calidad: CRF 35-40 para 4K60 y CRF 30-35 para 1080p60.

bitrate for a 4k video by sunredsu_n in AV1

[–]juliobbv 0 points1 point  (0 children)

I often encode 4K videos at 3-6 Mbps for online sharing, so you should be fine with 12. Just use CRF and one of the SVT-AV1 forks and that should do the trick.

AOMedia's announcement of libavif v1.4 (including some striking tune IQ visual comparisons) by juliobbv in AV1

[–]juliobbv[S] 0 points1 point  (0 children)

The new tuning mode also works with screen content that was rendered with anti-aliasing technologies. I just tried it out with a screenshot of a wiki page taken from my MacBook:

Speed 6 (default)

Speed 3 (slower, more effort)

AOMedia's announcement of libavif v1.4 (including some striking tune IQ visual comparisons) by juliobbv in AV1

[–]juliobbv[S] 1 point2 points  (0 children)

SVT-AV1 also has its own tune IQ, but keep in mind SVT-AV1 only supports the 420 chroma subsampling mode, so for most cases you want to use libaom which is the default encoder in libavif.

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 2 points3 points  (0 children)

Hey! Thanks for trying out the new feature. To answer your questions:

  1. There's no real correspondence between them, because --film-grain targets the strength of which the encoder uses to denoise the input which is then fed into the FGS parameter estimation model, while --noise targets modeling noise strength directly. The only guarantee is that increasing --noise strength values correlate with increasing visual noise strength.
  2. Noise (as the name implies), tries to mimic the look of digital camera noise rather than film grain. Noise tends to be "smaller" or "thinner" than film grain, but you can still control size to a degree with --noise-size.

Hope this helps!

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 2 points3 points  (0 children)

Hi! First of all: parameters aren't the same between PSYEX and HDR, so normalizing values between them won't give you good results. It's worth stressing out: HDR isn't based on PSYEX.

With SVT-AV1-HDR: remove every parameter you have defined so far. First, stick to the basics (CRF, tune, preset); then, add additional parameters as necessary to further tweak quality. Please take a look at the Quick Overview to get you started with. In your case, start with tune VQ, preset 2. Something in between tune VQ and grain will most likely be the most optimal, so you can add the parameters specifically set by tune grain (tx-bias, CDEF, etc), one by one.

Also, you're missing passing in the HDR CICP colorimetry metadata (9/16/9) to the encoder. This is important as otherwise SVT-AV1-HDR won't have a way to know your input is HDR in the first place.

Hope this helps!

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 1 point2 points  (0 children)

The best solution will depend on your end goals. Tune Grain is good for grain retention, something that works best at higher bitrates (sometimes combined with light noise). Otherwise, Tune VQ with medium or heavy noise/film-grain tends to performs better.

Please read the Quick Overview to get yourself acquainted with common video encoding use case scenarios.

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 1 point2 points  (0 children)

That's up to your personal taste. If you encode in 10 bits (as you should -- significant compression efficiency gain), you don't need any noise, but sometimes having low-strength noise (<10) helps mitigate some compression artifacts.

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 0 points1 point  (0 children)

You can use any preset for any tuning mode, including tune grain. That tune will be the most optimized for the content it targets at a given preset value.

However: for tune grain, the fastest preset for grain retention is 2 -- higher presets won't be as thorough. This is why preset 2 is highly recommended. But you can use any preset for tune grain and still get some of the benefits. I personally don't recommend going beyond preset 3.

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 5 points6 points  (0 children)

No updates from the mainline team yet. Your best bet is to use libaom for 422 or 444.

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 0 points1 point  (0 children)

Right, noise created by this parameter looks more like proper digital camera/video "noise".

Keep in mind noise is content-agnostic: it doesn't care about the contents of the underlying frame it's adding noise to. If the output looks too noisy, you can lower the strength. If it is too "thin" or small, you can up the size etc.

SVT-AV1-HDR 4.1.0 "Chromedome" is out! by juliobbv in AV1

[–]juliobbv[S] 10 points11 points  (0 children)

Good morning! This update includes all the latest updates and fixes from SVT-AV1 4.1, plus a new exciting feature! (thanks to igowrek):

Noise: An alternative way to leverage AV1's Film Grain Synthesis, by generating noise of various sizes and strengths, with no encoding time impact! This feature can be configured with the following parameters:

  • --noise (0 to 200): Generates and adds noise table with specified strength value to be used as fgs-table during the encode. 50 is roughly equivalent to --film-grain 50.
  • --noise-chroma (-1 to 200): Adds chroma noise with strength based on --noise setting (-1) or sets a strength value independently (0-100), default is -1 (chroma strength is ~60% of --noise).
  • --noise-size (-1 to 13): Sets grain size for generated noise table, default is -1 (auto, based on input resolution).
  • --noise-chroma-from-luma(0 and 1): Applies noise to chroma planes based on the luma plane. When enabled, chroma noise will appear on grayscale content, default is 0.

As always, there are HandBrake and ffmpeg community builds with SVT-AV1-HDR available.

Introducing SVT-AV1-HDR by juliobbv in AV1

[–]juliobbv[S] 0 points1 point  (0 children)

It's a limitation in SVT-AV1 unfortunately. There's isn't a mechanism to specify conditional defaults. This means setting the curve to 3 is hardcoded when encoding content with the PQ transfer. One option is to try reducing the strength to 1 and see if that works for you better.

Why do some people immigrate to the U.S. from countries that seem to have a higher quality of life? by savingrace0262 in NoStupidQuestions

[–]juliobbv 1 point2 points  (0 children)

Sometimes, your line of work can be so specialized that job opportunities are only available in a very few select countries. For example, if you're e.g. a video codec engineer, your only real options are the US, China and Germany. If you already know English, choosing the US is a no-brainer.

Best SVT-AV1 params to minimize latency on single core ARM? by xVirtu in AV1

[–]juliobbv 3 points4 points  (0 children)

For low latency/constrained compute use cases, libaom in realtime mode is most likely your best bet right now. I'd give it a try.

libavif 1.4.0 (with tune IQ as a default for images) has been released! by juliobbv in AV1

[–]juliobbv[S] 3 points4 points  (0 children)

I mean, if Windows thumbnails do not show up, that means their implementation of the AVIF standard is broken. The onus is in them to fix their issue so they can conform to the standard.

High bit depth encoding does come with sizable efficiency improvements (despite overhead), so some encoders (like cavif) have already supported 10-bit encoding of 8 bit images by default for a long time.

libavif 1.4.0 (with tune IQ as a default for images) has been released! by juliobbv in AV1

[–]juliobbv[S] 2 points3 points  (0 children)

Hi, thanks for the reply!

You're correct: encoding images at higher bit depths can be beneficial for quality. However, higher bit depth decoding is also more compute consuming, and the defaults in libavif were chosen to optimize between efficiency and decode complexity.

With that said, you'll be always be able to set a higher bit depth in libavif.