collection: articles

title: Observing SVT-AV1 v2.1.0's improvements: A New Deep Dive

description: SVT-AV1 2.1.0 just released, how does it compare to the previous version?

status: needs-review

license: CC BY-SA 4.0

title: Original Codec Wiki article

text: Introduction

anchor: introduction

text: Feedback

anchor: feedback

text: Methodology

anchor: methodology

text: Samples

anchor: samples

text: Presets comparisons (-1 -> 13 12)

text: Efficiency

anchor: efficiency

text: Speed

anchor: speed

text: Interpretation

anchor: interpretation

text: TLDR

anchor: tldr

text: preset -1: v2.0.0 vs v2.1.0

text: preset 0: v2.0.0 vs v2.1.0

text: preset 1: v2.0.0 vs v2.1.0

text: preset 2: v2.0.0 vs v2.1.0

text: preset 3: v2.0.0 vs v2.1.0

text: preset 4: v2.0.0 vs v2.1.0

text: preset 5: v2.0.0 vs v2.1.0

text: preset 6: v2.0.0 vs v2.1.0

text: preset 7: v2.0.0 vs v2.1.0

text: preset 8: v2.0.0 vs v2.1.0

text: preset 9: v2.0.0 vs v2.1.0

text: preset 10: v2.0.0 vs v2.1.0

text: preset 11: v2.0.0 vs v2.1.0

text: preset 12: v2.0.0 vs v2.1.0

text: TLDR

text: Conclusion

anchor: conclusion

text: Future

contentFormat: markdown

markdown:
# Introduction

SVT-AV1, the most scalable AV1 encoder, has received a new update and one may wonder if the old presets recommendation still holds today. We will delve into that in this blog post, based on a series of speed and visual quality benchmarks with SSIMULACRA2 and XPSNR of SVT-AV1 2.1.0 on a corpus of varied animated clips.

## Feedback

I unfortunately never got to update the previous blog post with the image comparisons, and some people expressed concerns that this testing may not be representative of live action content. For the former, I will have to ask for your patience again, because this blog post won't contain image comparisons either, but they are being actively worked on. As for the latter, please be reassured that this testing in its entirety is perfectly representative of any modern content people typically encode: the diversity of japanese animation is rich and the content specifically chosen for this benchmark is relatively complex. From 3DCG to extremely noisy clips, we are far from the easy-to-compress static scenes of some slice-of-life show.

I have also decided to complement this benchmark of another psychovisually-driven metric (XPSNR) so that double-checking is made easier. Thus, each graph possesses a SSIMULACRA2 version and a XPSNR version. Don't hesitate to switch between one another!

## Methodology

The resources available will range from ***graphs*** to ~~**image comparisons**~~ (WIP). The ***former*** has the advantage of being easily understandable, showcasing pure efficiency comparisons between encoder parameters using metrics as the reference, while the **latter** are image samples from the files encoded during the tests that enable you to check quality for yourself, adding another layer of subjective interpretation to these comparisons.

The testing methodology involves using relatively short video samples from a wide range of modern anime genre, which have been either losslessly encoded with `x264 --qp 0` for ease of use or losslessly cut from their source. These lossless files are then pipped into SvtAv1EncApp *directly*, meaning we are measuring the performance of a single encoder instance and not leveraging chunked encoding like any actual final AV1 encoding pipeline should. Once an encode is done, SSIMULACRA2 scores are calculated using the [Zig implementation](https://github.com/dnjulek/vapoursynth-ssimulacra2), XPSNR scores on the other hand are calculated using a [ffmpeg filter](https://github.com/fraunhoferhhi/xpsnr), and lots of useful data are aggregated to make the graphs for this benchmark, including encoding time, encode size (bitrate), and metrics scores. Bits per pixel scores (BPP) are calculated so that the `Metric / BPP` graphs may represent the closest we have to real efficiency.

The clips used in this test were acquired legally. The Codec Wiki and its contributors do not endorse media piracy.

SvtAv1EncApp was compiled directly from the [v2.0.0 and v2.1.0 source code](https://gitlab.com/AOMediaCodec/SVT-AV1/-/releases/) using the provided `Build/linux/build.sh` script, Clang 16.0.6, and Profile-Guided Optimization (PGO). The testing machine is comprised of an i3 12100 with 16GB of 3200MHz CL14 DDR4 RAM in Arch Linux with kernel 6.7.7 and the performance governor enabled. All encodes have been made in the same session without rebooting.

## Samples

The samples are as follows:
- 11s `Blame!` clip which sports 3DCG action with lots of grain, effects and high-contrast elements.
- 13s `Blue Lock` clip which sports rapid camera movements, complex geometry and high-contrast elements.
- 5s `Spy x Family` first ending sequence with an extremely high amount of dynamic noise. New most complex source of this set.
- 12s `Jigokuraku (Hell's Paradise)` flashback clip with huge static grain in a very dark scenery and some action.
- 5s `The Garden of Sinners` clean but fast-paced 3DCG scene with explosions.

The resolution of every clip is 1080p, except for the first one which is 1920x804.

> **All clips have been encoded in a wide quality range, from `--crf 6` to `--crf 46`, by increments of 4.**

Without further ado, let's start with the first comparisons!

## Presets comparisons (-1 -> ~~13~~ 12)

**In the following graphs, you may find comparisons between all SVT-AV1 presets, ranging from the slowest `--preset -1` to the fastest `--preset 12`.**
> Yes, you heard that right. Preset 7 and 13 are no more in __v2.1.0__. This new update, like the previous one, mostly consisted of optimizing the presets trade-offs. The devs have made the choice to map `preset 7` to `preset 6` and `preset 13` to `preset 12` due to the lack of spacing between the new presets. We will discuss the implications of this further ahead.

`--preset X` is the only parameter used here, in conjunction with the CRF values. That means everything else is default. The defaults worth mentioning are:
- `--tune 1`: tune PSNR
- `--aq-mode 2`: variance deltaq
- `--enable-qm 0`: quantisation matrices disabled
- `--irefresh-type 2`: closed GOP
- `--enable-tf 1`: temporal filtering enabled

And more, like CDEF and restoration enabled, overlays and film-grain disabled...

### Efficiency

- First of all, here are the full efficiency graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

This is all very cool, but visually bloated.

- Now the same graphs but focusing on the "high quality" range (CRF6 -> 22):

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Same, but now focusing on the "low quality" range (CRF26 -> 46):

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- If we now focus on __presets 4__ and below, where it's more difficult to discern the differences between presets, we get this at "high quality":

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- And the following at "low quality":

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

### Speed

- **Let's now see speed comparisons between all presets:**

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Once is not custom, __preset -1__ is so abysmally slow it makes the graph unusable.

- Same, but without the placebo __preset -1__:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Lastly, here is what it looks like with a logarithmic scale:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

### Interpretation

As for interpreting the results, it would seem like **preset 2** and **preset 4** remain all-around very balanced presets, with **preset 3** being in a nice in-between spot, an improvement over v2.0.0's **preset 3** in a way. We will better understand the reasons for this when we'll compare the new version to the last, a bit after.

The quality gap between **preset 2** and **preset 1** is usually pretty narrow, however the speed penalty from going to **preset 1** is ~2x, when the penalty of going from **preset 3** to **preset 2** is closer to ~1.5x. As such, **preset 1** enters placebo territory, and considering the very little benefits of going any lower than it, compared to the huge performance loss of even lower presets, I advise you not to waste encoding resources on **preset 0** and **preset -1**. This applies especially at medium to high quality, however at extremely low quality like the CRF40 range, we can still see some small gains from these placebo presets.

When we start talking about faster presets though, things are pretty different from previous versions: **presets 5 to 9** behave similarly on the graphs and seem to stand apart from their slower counterparts by just a bit. If you can bear the speed of **preset 4**, you should definitely be going for it, however if fast encoding is a necessity, for example in the case of realtime transcoding or streaming, **presets 5 through 9** will serve you right with great efficiency/speed trade-offs between one another. No preset in that range particularly stands out from the others, so simply pick one depending on your performance needs.

**Presets 10 to 12** are pretty inefficient, and to be avoided if possible. They can still be of use in a convex-hull scenario, but in the case of realtime transcoding, you may be better off with a hardware encoder like the ones found in RTX 4000 or Arc GPUs, especially since SVT-AV1's target bitrate mode is even less efficient than CRF mode.

### TLDR

The same conclusions as the previous blog post can be made:
**clear quality gains can be observed as we decrease presets, until __preset 2__, however the effectiveness of dropping presets is noticeably less and less important as quality is increased.**

In the next part, we will evaluate the differences in efficiency and speed of every presets when updating from SVT-AV1 2.0.0 to 2.1.0, which should enable an increase of nuance from the previous results alone.

## SVT-AV1 v2.0.0 vs v2.1.0 presets comparisons:

Two months ago, I conducted a similar test to this one to compare the presets evolution between versions __1.8.0__ and __2.0.0__. The results were pretty unsatisfying: I noticed that **presets -1 to 8** in __v2.0.0__ performed like the old **presets 0 to 9** did in __v1.8.0__. We basically saw an efficiency regression at a given preset, and speedups did not follow suit as well as we would have anticipated. All in all, it wasn't all that bad, it suffice to say you could simply drop a preset from before and you were good to go again. What was more concerning however is that the release note claimed important speedups that did not impact efficiency and my testing proved otherwise. My theory is that due to the dev team testing methodology, which consist of mostly pretty low resolution clips and non-psychovisual metrics like PSNR, SSIM or bad psychovisual metrics like VMAF, it's very well possible they were tricked into thinking they introduced improvements as they tweaked the presets when in reality the metrics simply didn't notice the quality degradation. Such issue is an additional reason why the industry should adopt more competent metrics, ones that better correlate with the human vision, to improve encoders in more impactful ways and better avoid pointless regressions.

So the question for today's testing is: have the SVT-AV1 devs redeemed themselves and actually improved the presets trade-offs this time around? Let's find out!

### `preset -1`: v2.0.0 vs v2.1.0

- **Let's start off with a battle of the placebos, with the efficiency at "high quality":**

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- And the efficiency at "low quality":

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Yes, this is a bit underwhelming, but you can't just improve the best an encoder has to offer with just tweaking right?

- Now, let's compare their respective speeds:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Let's be grateful it became ever so slightly faster, I guess.

### `preset 0`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Overall, efficiency wise, this new **preset 0** places itself in-between old **preset -1** and **0**

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Interestingly enough, its speed is much closer to the old **preset 0** than to the old **preset -1**. This means **preset 0** was genuinely improved over v2.0.0!

### `preset 1`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

In efficiency, this new **preset 1** is often equal to old **preset 0**, else in-between old **preset 0 and 1**.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

We observe that the new preset is a bit closer to old **preset 1** speeds than it is to old **preset 0** speeds. Good news!

### `preset 2`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Oh well, that's awkward.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Speed was left untouched too, meaning **preset 2** is unchanged in v2.1.0.

### `preset 3`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

The new **preset 3**'s efficiency is the same as the old one.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

However, the preset got slightly faster, so this is a speedup!

### `preset 4`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

We can observe that **preset 4** got slightly to moderately worse efficiency wise.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Fortunately, the consequence of that slight efficiency decrease is a big performance improvement!

### `preset 5`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

**Preset 5** seems to have gotten ever so slightly worse efficiency wise.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Yet it became slightly faster, this is overall a good trade-off.

### `preset 6`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

The new **preset 6** has a huge responsibility: being able to compensate in the absence of its **preset 7** sibling. It seems to performs in-between old **preset 6 and 7**, usually closer to old **7**.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

**Preset 6** is now ever so slightly slower to old **7**, this is an interesting trade-off, overall a win over old **7**.

### `preset 7`: v2.0.0 vs v2.1.0

Again, there is no preset 7. Actually, it's preset 6 that disappeared but I'm not remaking the graphs just for fun. If you select preset 6, you will be granted the following message: `Svt[warn]: Preset M6 is mapped to M7.`

![always_has_been](/img/preset_7_meme.webp)

### `preset 8`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

In efficiency, this new **preset 8** is sometimes equal or slightly worse to the old **8**, and sometimes equal or slightly worse than old **7**...

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Overall, the speed is pretty much unchanged from old **8**. It looks like a slight regression, that's pretty disappointing.

### `preset 9`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

The new **preset 9** is the same as ever, ever so slightly better in some scenario but nothing groundbreaking.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Its speed remains the same, sometimes ever so slightly slower. Basically the preset is pretty much unchanged, which may as well be a relief, as the last usable preset of the encoder.

### `preset 10`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

**Preset 10** is slightly to moderately worse efficiency wise.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Its speed is mostly the same, sometimes ever so slightly faster. It's a wash, avoid this preset at all costs!

### `preset 11`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

**Preset 11**'s efficiency is untouched.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

**Preset 11**'s speed is unchanged as well.

### `preset 12`: v2.0.0 vs v2.1.0

- Efficiency graphs, high quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

- Efficiency graphs, low quality:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

Just as **preset 6**, **preset 12** is now mapped to **13**, and unsurprisingly, its efficiency is equal to old **13**.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-second-deep-dive.json).

The speeds seem to be in-between old 12 and 13, so potentially a slight speedup. Still, nothing to get excited at.

### TLDR

From these extensive comparisons, it appears that some presets have received genuine improvements in their respective efficiency/speed trade-off.
Some presets, like **-1**, **0**, **1** and **3**, received the most significant improvements, followed by **4**, **5** and **6** with overall beneficial new trade-offs. **Preset 12** got slightly faster too. On the other hand, **presets 8 and 10** seemed to have regressed slightly, and **presets 2 and 9** are perfectly unchanged from v2.0.0.

## Conclusion

SVT-AV1 2.1.0 introduced some welcomed improvements. **Presets 2 through 4** remain the king of optimal AV1 encoding, while **presets 5 through 9** stand as good options for the people that find **2-4** to be too slow for their liking.

Let's be honest a second, not much as changed in SVT-AV1 since the first blog post. There was no need to redo all the parameter testing for the simple reason that their behavior remained the same, as did the conclusions drawn from them. I hope this article wasn't disappointing in a sense... Still, be reassured, this was just an appetizer, there will be more in the near future!

By the way, did you know that the **[SVT-AV1-PSY project](https://github.com/gianni-rosato/svt-av1-psy/)** was initiated a few months ago? Its defaults were tailored according to the testing done in the last blog post, allowing a free efficiency boost for anyone not keen to tweak their encoders. Furthermore, SVT-AV1-PSY introduced a sharpness parameter to control distortion, a quarter-step quantizer for more CRF precision, a new subjective SSIM tune, Dolby Vision support, frame luma bias, and some other knobs to improve the appeal and consistency of your encodes. It is actively maintained by a group of talented people, including the main dev of the aom-av1-lavish fork of aomenc. Some of the changes are being backported to mainline SVT-AV1 due to the increased interest of the mainline devs. Please check it out!

Hopefully, this comprehensive second deep dive should give you a helpful new starting point for choosing settings when encoding with the latest SVT-AV1(-PSY) 2.1.0.

## Future

My plans for the future regarding the blog post include:
- polishing this blog post.
- a follow-up article in the relatively near future about giving you encoding tips and explaining common AV1 encoding knowlegde, for instance showcasing why film grain synthesis is a game-changer or why chunked encoding can prove beneficial to your encoding pipeline.
- an article focused on observing the evolution of SVT-AV1 since the beginning of its development, as well as comparisons with current aomenc, rav1e and SVT-AV1-PSY, including a quick look at the current state of AVM (development ground for AV2) in comparison to VVC's state.

Thanks for reading!

{}


title: Better late than never: SVT-AV1 v2.2.x Deep Dive

description: How does SVT-AV1 2.2.x stack up against the encoder previous version?

title: Original Codec Wiki article

text: Introduction

text: Feedback

text: Methodology

text: Samples & Encoding Settings

anchor: samples-encoding-settings

text: Visual comparisons

anchor: visual-comparisons

text: Presets comparisons (-1 -> 12)

text: Efficiency

text: Speed

text: Interpretation

text: TLDR

text: preset -1: v2.1.x vs v2.2.x

text: preset 0: v2.1.x vs v2.2.x

text: preset 1: v2.1.x vs v2.2.x

text: preset 2: v2.1.x vs v2.2.x

text: preset 3: v2.1.x vs v2.2.x

text: preset 4: v2.1.x vs v2.2.x

text: preset 5: v2.1.x vs v2.2.x

text: preset 6: v2.1.x vs v2.2.x

text: preset 7: v2.1.x vs v2.2.x

text: preset 8: v2.1.x vs v2.2.x

text: preset 9: v2.1.x vs v2.2.x

text: preset 10: v2.1.x vs v2.2.x

text: preset 11: v2.1.x vs v2.2.x

text: preset 12: v2.1.x vs v2.2.x

text: preset 13: v2.1.x vs v2.2.x

text: TLDR

text: Conclusion

text: Future

anchor: future

markdown:
# Introduction

SVT-AV1 v2.2.0 was released in late August and a minor version v2.2.1 followed suit to adress some bugs. This blog post will focus on comparing this new encoder version to the last, on the basis of benchmarks and visual comparisons. We will quantify the new trade-offs between compression efficiency and encoding speed, so you can choose the right balance for your projects. Our metrics of choice today will be SSIMULACRA2 and XPSNR, used in conjonction with a revised methodology.

## Feedback

The biggest missed opportunity of the previous SVT-AV1 deep dives was the absence of visual comparisons. Indeed, metrics may be convenient for easily quantifying differences between encoder versions or encoding parameters, but they fail to give the information of how much these differences matter for your eyes. However, making properly useful visual comparisons isn't an easy task. Comparing two encodes of varying bitrates will bias the result against one or the other, which is not desirable. Figuring out the best way to present these comparisons and making the appropriate scripts took me weeks. Gathering all the necessary data, crafting the comparisons and proceeding to a double-checking pass took me another few weeks. These reasons explain why this blog post took so long to release, but I hope it will have been worth the wait! On that note though, I have been uploading thousands of png screenshots to *slow.pics* and I ended up rate-limited. This has prevented me from uploading the visual comparisons for preset 11, 12 and some of 10. I'm actively trying to fix this situation, so please understand.

Another reason for this taking so long was my decision to increase the amount of video samples while increasing the amount of CRF values tested. A grand total of 3682 encodes were done for this blog post alone, in the span of around two weeks, where my PC would be exclusively encoding 24/7. Send help.

Also, the graphs will now be using the harmonic mean instead of the arithmetic mean. Indeed, arithmetic mean scores fail to account for deviations and outliers. Using the harmonic mean implies low-scoring frames have more weight towards the final score, which adds a consistency component to the picture. That's not it though! Consistency is capital in an enjoyable watching experience. As such, each graph now possesses a SSIMULACRA2 (Harmonic) version, a XPSNR (Harmonic) version and a SSIMULACRA2 (Standard Deviation) version, in order to closely monitor variations in consistency between presets.

Lastly, the biggest complaint I have received is me exclusively using anime clips. The reason for that is pretty simple: I mostly encode anime content on my free time and am myself very little interested in other types of media. However, these blog posts have grown in exposure and I understand a majority of people is more concerned about the performance of encoders on live action content or gaming clips. Thus, this new blog post is comprised of 3 live action clips, 2 gaming clips and 2 anime clips! See the sacrifices I'm making for y'all?

## Methodology

The resources provided will include both graphs and image comparisons. Graphs offer a straightforward, objective look at efficiency across encoder parameters, using metrics as benchmarks for performance. In contrast, image comparisons display actual samples from encoded files, allowing you to assess quality firsthand. This adds a subjective dimension to the comparisons, giving you a more nuanced understanding of each preset's impact on visual quality.

The testing methodology involves using relatively short video samples with a wide range of content types, uncompressed to the y4m file format for ease of use. These lossless files are *directly* fed to SvtAv1EncApp, implying the performance of a single encoder instance is what's being measured here. A more serious AV1 encoding pipeline should probably be leveraging a chunked encoding approach, especially on higher core count systems. Once an encode is done, SSIMULACRA2 scores are calculated using the [Zig implementation](https://github.com/dnjulek/vapoursynth-ssimulacra2), XPSNR scores on the other hand are calculated using a [ffmpeg filter](https://github.com/fraunhoferhhi/xpsnr), and the data is then aggregated into a final Harmonic or Standard Deviation score to create the graphs for this benchmark. The Constant Rate Factor (CRF) is plotted against encoding time, and the metrics scores against encode size (bitrate). The former may represent the efficiency as defined by the speed achieved at a certain quality target. For the latter, Bits Per Pixel scores (BPP) are calculated so that the `Metric / BPP` graphs may represent the compression efficiency, normalized by resolution.

How to read the graphs? For the compression efficiency ones, the closer to the top left the better. For the encoding speed ones, the closer to the left the faster. For the standard deviation ones, the closer to the bottom left the better.

The clips used in this test were acquired legally. The Codec Wiki and its contributors do not endorse media piracy.

SvtAv1EncApp was compiled directly from the [v2.1.2 and v2.2.1 source code](https://gitlab.com/AOMediaCodec/SVT-AV1/-/releases/) using Clang 18.1.8 and the provided `Build/linux/build.sh` script with the following command: `build.sh cc=clang cxx=clang++ jobs=$(nproc) enable-lto static native release`. The testing machine is comprised of an i3 12100 in its stock configuration, with 2x8GB of 3200MHz CL14 DDR4 RAM, in Arch Linux with kernel 6.9.12 and the performance governor enabled. All encodes have been made in the same session without rebooting.

I want to give a disclaimer concerning encoding speeds. Contrary to the efficiency results which should be reproducible independantly of the machine, measuring speed is a pretty difficult endeavor, with increased risks for errors. The performance numbers I mention may differ for you depending on the hardware configuration at hand.

## Samples & Encoding Settings

The samples are as follows:
- 17s `Avatar The Way Of Water (trailer 3)` clip sourced from [thedigitaltheater.com](https://thedigitaltheater.com/category/movie-trailers/lossless-movie-trailers/) (1916x804p, 23.976fps).
- 6s `Ducks Take Off` clip sourced from [xiph.org](https://media.xiph.org/video/derf/) (1280x720p, 50fps).
- 3s `Fallout 4` clip sourced from another encoder fellow (1920x1080p, 60fps).
- 8s `Minecraft` clip sourced from [xiph.org](https://media.xiph.org/video/derf/) (1920x1080p, 60fps).
- 8s `Sol Levante` HDR clip sourced from [opencontent.netflix.com](http://download.opencontent.netflix.com/?prefix=SolLevante/) (3840x2160p, 24fps). This one is pretty educative as SVT-AV1's behavior isn't influenced by the existence (or lack thereof) of HDR metadata in a source.
- 21s `Suzume (trailer 2)` clip sourced from [thedigitaltheater.com](https://thedigitaltheater.com/category/movie-trailers/lossless-movie-trailers/) (1920x808p, 23.976fps).
- 13s `The Mandalorian (trailer 2)` clip sourced from [thedigitaltheater.com](https://thedigitaltheater.com/category/movie-trailers/lossless-movie-trailers/) (1920x800p, 23.976fps).

> **All clips have been encoded in a wide quality range, from `--crf 10` to `--crf 50`, by increments of 2, with the exception of preset -1 that uses increments of 4.**

`--preset X --hierarchical-levels 4` are the only parameter used here, in conjunction with the CRF values. I have been asked to use `--hierarchical-levels 4` by fellow SVT-AV1-PSY developers to force smaller mini GOPs, more appropriate for testing.

Else, the SVT-AV1 defaults were used. The ones worth mentioning are:
- `--tune 1`: tune PSNR
- `--aq-mode 2`: variance deltaq
- `--enable-qm 0`: quantisation matrices disabled
- `--irefresh-type 2`: closed GOP
- `--enable-tf 1`: temporal filtering enabled
And more, like CDEF and restoration enabled, overlays and film-grain disabled...

## Visual comparisons

![comp_showcase](/img/comp_showcase.webp)

Throughout this blog post, you’ll find *slow.pics* links that provide various visual comparisons between presets.

- The “full” links offer comparisons across the entire quality range for each source.
- The HQ (High Quality), MQ (Medium Quality), and LQ (Low Quality) links showcase more targeted comparisons. These have been carefully handcrafted to be as size-normalized as possible, given the available encodes. We want to be focusing on encodes with minimal bitrate deviation for a fair comparison.

Feel free to double-check the bitrate of each frame or scene to make a more informed observation, keeping the size difference in mind when comparing the encodes.

Use the arrow keys and numpad to navigate between screenshots. Alternatively, you can click on "Slider comparison" and select two sources if you prefer comparing this way.

Without further ado, let's start with the first comparisons!

## Presets comparisons (-1 -> 12)

**In the following graphs, you may find comparisons between all SVT-AV1 presets, ranging from the slowest `--preset -1` to the fastest `--preset 12`.**
> Just like in __v2.1.x__, preset 6 and 13 do not exist in __v2.2.x__ and are instead mapped to preset 7 and 12 respectively.

### Efficiency

- First of all, the complete efficiency graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

You may notice something odd going on with the Avatar results using XPSNR. I have tried to understand the cause, without success. For the remainder of this blog post, the Avatar XPSNR results will be omitted. I will continue investigating and aim to have a workaround in place for next time.

Anyway, this graph may be impressive, but difficult to read. So let's analyse different quality targets.

- The same graphs but focusing on the "high quality" range (CRF10 -> 22):

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Same, but now focusing on the "medium quality" range (CRF24 -> 36):

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- And lastly, focusing on the "low quality" range (CRF38 -> 50):

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- If we now focus on __presets 4__ and below, where it's more difficult to discern the differences between presets, we get this at "high quality":

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- This at "medium quality":

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- And the following at "low quality":

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

### Speed

- **Let's now compare the speed of all presets:**

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Unusable, right?

- Then, here is what it looks like with a logarithmic scale:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

### Interpretation

It appears as if once again **preset 2** through **preset 4** remain the most balanced presets all-around in an efficient encoding scenario, with **preset 3** not offering much improvements over **preset 4** in average scores but nicely improving on consistency instead, and **preset 2** offering a nice efficiency and consistency uplift on top.

In this release again, the quality gap between **preset 2** and **preset 1** is pretty narrow, and the speed penalty from **preset 1** onward continuously increases, ending up close to ~2x. In comparison, the penalty of going from **preset 3** to **preset 2** is closer to ~1.5x. As such, using **preset 1** is entering placebo territory and it is usually not recommended to waste precious encoding resources on **preset 0** and **preset -1**. This especially applies at medium to high quality, though at extremely low quality targets, like the CRF40-50 range, we can still see appreciable gains from these placebo presets in some clips.

As for the faster presets, **presets 5 to 10** are usually grouped on the graphs focusing on average scores and the ones focusing on consistency. They tend to stand apart from their slower counterparts by just a bit. Though **preset 10** can be worryingly close to **preset 11** on some occasions. They are all viable for your real-time needs. The rule is the same as usual: **go the slowest you can bear that still achieves your goal!**

**Presets 11 and 12** are especially inefficient and inconsistent, and to be avoided at all costs. If possible, forget they even exist, as it's probably better to use a comparably fast (or faster) competing codec. They could still be of use in a convex-hull scenario, but in the case of realtime transcoding, you will be better off with some hardware solution like the ones found in RTX 4000 or Arc GPUs.

### TLDR

The same conclusions as the previous blog posts can be made:
**clear quality gains can be observed as we decrease presets, until __preset 2__, however the effectiveness of dropping presets is noticeably less and less important as quality is increased.**

## SVT-AV1 v2.1.x vs v2.2.x presets comparisons:

In this section, we’ll examine the efficiency and speed differences across presets when upgrading from SVT-AV1 2.1.x to 2.2.x. This comparison should bring a new level of nuance to our results, highlighting both incremental improvements and any notable shifts in performance.

SVT-AV1 __v2.1.x__ brought some nice improvements over __v2.0.0__, but does __v2.2.x__ bring appreciable improvements in the presets trade-offs this time around as well? Let's find out!

### `preset -1`: v2.1.x vs v2.2.x

- **Let's start things off with the battle of the placebos, with the Compression efficiency & consistency at "high to medium-ish quality" (CRF10 -> 30):**

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Along with the Compression efficiency & consistency at "medium-ish to low quality" (CRF34 -> 50):

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Basically no changes at all, except a slight regression on Minecraft.

- What about their speeds though?:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Well **preset -1** basically became 15 to 25% faster, not bad at all!

- Preset -1 visual comparisons:

[Avatar (full)](https://slow.pics/c/LdIsYSua), [Avatar (HQ)](https://slow.pics/c/2a4aILcQ), [Avatar (LQ)](https://slow.pics/c/zT82h9rX)

[Ducks (full)](https://slow.pics/c/BpxD7oZd), [Ducks (HQ)](https://slow.pics/c/vQfwqoid), [Ducks (LQ)](https://slow.pics/c/1hSeoXlp)

[Fallout (full)](https://slow.pics/c/EOIoOoAQ), [Fallout (HQ)](https://slow.pics/c/GAfLlWLl), [Fallout (LQ)](https://slow.pics/c/nXGUeEyI)

[Minecraft (full)](https://slow.pics/c/XRHmsQOw), [Minecraft (HQ)](https://slow.pics/c/UpCRq43R), [Minecraft (LQ)](https://slow.pics/c/835PVO4r)

[Sol Levante (full)](https://slow.pics/c/AQC1xzLS), [Sol Levante (HQ)](https://slow.pics/c/tLv4zf68), [Sol Levante (LQ)](https://slow.pics/c/x8r8YUvF)

[Suzume (full)](https://slow.pics/c/Ab6bkcpS), [Suzume (HQ)](https://slow.pics/c/lsGgf2pL), [Suzume (LQ)](https://slow.pics/c/KPNiucZk)

[The Mandalorian (full)](https://slow.pics/c/BAF89tjA), [The Mandalorian (HQ)](https://slow.pics/c/tI50zGYS), [The Mandalorian (LQ)](https://slow.pics/c/V2q6DHYT)

### `preset 0`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Efficiency wise, this new **preset 0** is close to unchanged from the old **preset 0**, but its consistency improved slightly in a few clips at high quality and decreased in one clip at low quality.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

**Preset 0**'s speed sees an improvement of about 20% at best. Overall, **preset 0** got a proper upgrade!

- Preset 0 visual comparisons:

[Avatar (full)](https://slow.pics/c/7n5bAB2d), [Avatar (HQ)](https://slow.pics/c/AHmNT8Pw), [Avatar (MQ)](https://slow.pics/c/VC6lZr6D), [Avatar (LQ)](https://slow.pics/c/97SAuLaO)

[Ducks (full)](https://slow.pics/c/m9iPnqqW), [Ducks (HQ)](https://slow.pics/c/gBXawmpH), [Ducks (MQ)](https://slow.pics/c/7dRVJzXD), [Ducks (LQ)](https://slow.pics/c/qshRSgnZ)

[Fallout (full)](https://slow.pics/c/aq9eTZf5), [Fallout (HQ)](https://slow.pics/c/xu99HM0j), [Fallout (MQ)](https://slow.pics/c/eC0gzO7y), [Fallout (LQ)](https://slow.pics/c/pB9Ps3a6)

[Minecraft (full)](https://slow.pics/c/aWbIxmgr), [Minecraft (HQ)](https://slow.pics/c/3jVGagWZ), [Minecraft (MQ)](https://slow.pics/c/MlYl7i4e), [Minecraft (LQ)](https://slow.pics/c/7MImyYc0)

[Sol Levante (full)](https://slow.pics/c/SmDGEAPx), [Sol Levante (HQ)](https://slow.pics/c/ZiCgjlxE), [Sol Levante (MQ)](https://slow.pics/c/4GbaSzv6), [Sol Levante (LQ)](https://slow.pics/c/EPTFWHQI)

[Suzume (full)](https://slow.pics/c/oVZqCWsl), [Suzume (HQ)](https://slow.pics/c/LqadqVGG), [Suzume (MQ)](https://slow.pics/c/TnD6CAyF), [Suzume (LQ)](https://slow.pics/c/CDuu3SOK)

[The Mandalorian (full)](https://slow.pics/c/x8Sot0wg), [The Mandalorian (HQ)](https://slow.pics/c/idbPz3uh), [The Mandalorian (MQ)](https://slow.pics/c/OpFzXtjr), [The Mandalorian (LQ)](https://slow.pics/c/3d8gpuoo)

### `preset 1`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

**Preset 1** is mostly unchanged but sees another slight regression in Minecraft at high quality.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Depending on the clip, speed is mostly unchanged or ever so slighty improved. **Preset 1** is a bit stagnant this release.

- Preset 1 visual comparisons:

[Avatar (full)](https://slow.pics/c/BnOX37oJ), [Avatar (HQ)](https://slow.pics/c/bWjBtTyR), [Avatar (MQ)](https://slow.pics/c/6UQKyNac), [Avatar (LQ)](https://slow.pics/c/NpyxU3uF)

[Ducks (full)](https://slow.pics/c/KVX4piAj), [Ducks (HQ)](https://slow.pics/c/EsEpbKVY), [Ducks (MQ)](https://slow.pics/c/8AxTTvKw), [Ducks (LQ)](https://slow.pics/c/ZgW8715d)

[Fallout (full)](https://slow.pics/c/xQprIMbB), [Fallout (HQ)](https://slow.pics/c/qRvBez7k), [Fallout (MQ)](https://slow.pics/c/taXnNGUx), [Fallout (LQ)](https://slow.pics/c/s6fbIqvr)

[Minecraft (full)](https://slow.pics/c/cE86n2Gb), [Minecraft (HQ)](https://slow.pics/c/eOyUxHhq), [Minecraft (MQ)](https://slow.pics/c/tKPYsd9K), [Minecraft (LQ)](https://slow.pics/c/evfzJDjc)

[Sol Levante (full)](https://slow.pics/c/BSzecR9N), [Sol Levante (HQ)](https://slow.pics/c/mWIoU45b), [Sol Levante (MQ)](https://slow.pics/c/geYXLoIY), [Sol Levante (LQ)](https://slow.pics/c/QzSjaYXF)

[Suzume (full)](https://slow.pics/c/pBVidgiB), [Suzume (HQ)](https://slow.pics/c/5KtTXd3q), [Suzume (MQ)](https://slow.pics/c/lb0yMDhZ), [Suzume (LQ)](https://slow.pics/c/TipcRRJr)

[The Mandalorian (full)](https://slow.pics/c/4ouGFV9s), [The Mandalorian (HQ)](https://slow.pics/c/oxPNsHdU), [The Mandalorian (MQ)](https://slow.pics/c/EPju5ULC), [The Mandalorian (LQ)](https://slow.pics/c/e58LmgFm)

### `preset 2`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

**Preset 2**'s efficiency has regressed at high quality on some clips, improved in some and stayed the same in others. Except in one clip, consistency seems to have improved all around. At low to medium quality targets, efficiency is mostly unchanged, same for consistency. Not exactly noteworthy.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Speed was improved by about 10-20%. Not a bad showcase, for sure.

- Preset 2 visual comparisons:

[Avatar (full)](https://slow.pics/c/CJg3dsFg), [Avatar (HQ)](https://slow.pics/c/71wpH5eB), [Avatar (MQ)](https://slow.pics/c/AN0syhNv), [Avatar (LQ)](https://slow.pics/c/NRocyEay)

[Ducks (full)](https://slow.pics/c/NyGfMRpQ), [Ducks (HQ)](https://slow.pics/c/OAqs5b8k), [Ducks (MQ)](https://slow.pics/c/tQSF50Ro), [Ducks (LQ)](https://slow.pics/c/gJjm3BGl)

[Fallout (full)](https://slow.pics/c/snQuTi1f), [Fallout (HQ)](https://slow.pics/c/0rLG3TUT), [Fallout (MQ)](https://slow.pics/c/MMX6DgNz), [Fallout (LQ)](https://slow.pics/c/lwoIkLfm)

[Minecraft (full)](https://slow.pics/c/5OYsrhGY), [Minecraft (HQ)](https://slow.pics/c/kCwbA7Ir), [Minecraft (MQ)](https://slow.pics/c/1nnyrvjD), [Minecraft (LQ)](https://slow.pics/c/F1RTfQf7)

[Sol Levante (full)](https://slow.pics/c/xduJGoTU), [Sol Levante (HQ)](https://slow.pics/c/8SdKLegQ), [Sol Levante (MQ)](https://slow.pics/c/uHNR7DNz), [Sol Levante (LQ)](https://slow.pics/c/wgZgH7w6)

[Suzume (full)](https://slow.pics/c/zC4AEMLt), [Suzume (HQ)](https://slow.pics/c/kGip9wuY), [Suzume (MQ)](https://slow.pics/c/aoQ0m9ms), [Suzume (LQ)](https://slow.pics/c/7ZMT3inc)

[The Mandalorian (full)](https://slow.pics/c/8BKkJ4du), [The Mandalorian (HQ)](https://slow.pics/c/XQeD7vfY), [The Mandalorian (MQ)](https://slow.pics/c/6rQMASQR), [The Mandalorian (LQ)](https://slow.pics/c/Jl2Fh5wE)

### `preset 3`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Practically, it's a wash.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Still, **preset 3** got slightly faster, I'm happy to report this is a speedup!

- Preset 3 visual comparisons:

[Avatar (full)](https://slow.pics/c/Vql4MJWQ), [Avatar (HQ)](https://slow.pics/c/Iuqp0Zbz), [Avatar (MQ)](https://slow.pics/c/MuTOEHE9), [Avatar (LQ)](https://slow.pics/c/poiDDJRQ)

[Ducks (full)](https://slow.pics/c/mqWOgsYF), [Ducks (HQ)](https://slow.pics/c/16L6HyaH), [Ducks (MQ)](https://slow.pics/c/KaoPy7ae), [Ducks (LQ)](https://slow.pics/c/0L84OWnI)

[Fallout (full)](https://slow.pics/c/JuXAjSY6), [Fallout (HQ)](https://slow.pics/c/mR5rJfsU), [Fallout (MQ)](https://slow.pics/c/Zpy7Hzds), [Fallout (LQ)](https://slow.pics/c/GeQrpfhp)

[Minecraft (full)](https://slow.pics/c/rBCbaJkx), Minecraft (HQ comparison unavailable), [Minecraft (MQ)](https://slow.pics/c/MYLA8KPH), [Minecraft (LQ)](https://slow.pics/c/aEMnRk7D)

[Sol Levante (full)](https://slow.pics/c/F7rmPiaW), [Sol Levante (HQ)](https://slow.pics/c/PYO4K4sy), [Sol Levante (MQ)](https://slow.pics/c/viWYsgX7), [Sol Levante (LQ)](https://slow.pics/c/4NBaUoEX)

[Suzume (full)](https://slow.pics/c/d15XbowQ), [Suzume (HQ)](https://slow.pics/c/eS6EQKng), [Suzume (MQ)](https://slow.pics/c/IJtLW35Z), [Suzume (LQ)](https://slow.pics/c/zf352iox)

[The Mandalorian (full)](https://slow.pics/c/UrAekqg6), [The Mandalorian (HQ)](https://slow.pics/c/WWgygRS4), [The Mandalorian (MQ)](https://slow.pics/c/ry5sPqmB), [The Mandalorian (LQ)](https://slow.pics/c/6wI4wexZ)

### `preset 4`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

**Preset 4** sees a consistent though small improvement in average scores and standard deviation across the entire quality range on basically all clips.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Unfortunately, it got slower as a result. If you remember, **v2.1.0** did the exact contrary over **v2.0.0**, I wonder if **preset 4** simply took back the place it previously had...

- Preset 4 visual comparisons:

[Avatar (full)](https://slow.pics/c/ArdO4K7R), [Avatar (HQ)](https://slow.pics/c/88ikqaZn), [Avatar (MQ)](https://slow.pics/c/rM6LRBg0), [Avatar (LQ)](https://slow.pics/c/ofmHWCkv)

[Ducks (full)](https://slow.pics/c/HVkqo5G3), [Ducks (HQ)](https://slow.pics/c/w44DNiqe), [Ducks (MQ)](https://slow.pics/c/GlRLCaBt), [Ducks (LQ)](https://slow.pics/c/Lkzi1VBU)

[Fallout (full)](https://slow.pics/c/44jtBEqw), [Fallout (HQ)](https://slow.pics/c/G9YPifBb), [Fallout (MQ)](https://slow.pics/c/86m4exaw), [Fallout (LQ)](https://slow.pics/c/m4KHBihZ)

[Minecraft (full)](https://slow.pics/c/n9OP2sht), [Minecraft (HQ)](https://slow.pics/c/JohJ3MzJ), [Minecraft (MQ)](https://slow.pics/c/e6b8R24h), [Minecraft (LQ)](https://slow.pics/c/xNwNlmAG)

[Sol Levante (full)](https://slow.pics/c/vB7ndGZI), [Sol Levante (HQ)](https://slow.pics/c/R5uENbD5), [Sol Levante (MQ)](https://slow.pics/c/i7eV72sl), [Sol Levante (LQ)](https://slow.pics/c/zUMYarNf)

[Suzume (full)](https://slow.pics/c/rgmuB5xB), [Suzume (HQ)](https://slow.pics/c/y9rxWVre), [Suzume (MQ)](https://slow.pics/c/4GhRL8gZ), [Suzume (LQ)](https://slow.pics/c/F3Hq8V9z)

[The Mandalorian (full)](https://slow.pics/c/3BAR5P80), [The Mandalorian (HQ)](https://slow.pics/c/s2xzApJd), [The Mandalorian (MQ)](https://slow.pics/c/Ihjks1JO), [The Mandalorian (LQ)](https://slow.pics/c/JjGKUO1r)

### `preset 5`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Both metrics say **preset 5** regressed slightly to moderately, though surprisingly its consistency is basically unchanged.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

The result of this regression is an impressive speedup of up to 25%.

- Preset 5 visual comparisons:

[Avatar (full)](https://slow.pics/c/Lc8HjJBK), [Avatar (HQ)](https://slow.pics/c/r3gJkCv3), [Avatar (MQ)](https://slow.pics/c/k2TwNLHN), [Avatar (LQ)](https://slow.pics/c/cMlNo17a)

[Ducks (full)](https://slow.pics/c/X4EZFJcM), [Ducks (HQ)](https://slow.pics/c/zKLphp19), [Ducks (MQ)](https://slow.pics/c/dYs1snV3), [Ducks (LQ)](https://slow.pics/c/JFtne5WV)

[Fallout (full)](https://slow.pics/c/9ye1q9Rm), [Fallout (HQ)](https://slow.pics/c/zhEuOjRc), [Fallout (MQ)](https://slow.pics/c/YmZ3aRLO), [Fallout (LQ)](https://slow.pics/c/9ye1q9Rm)

[Minecraft (full)](https://slow.pics/c/kyjcJWxt), [Minecraft (HQ)](https://slow.pics/c/UTWgYc3P), [Minecraft (MQ)](https://slow.pics/c/FtOxX3RH), [Minecraft (LQ)](https://slow.pics/c/jNyqLPgP)

[Sol Levante (full)](https://slow.pics/c/ipyfREjA), [Sol Levante (HQ)](https://slow.pics/c/73V8CGKk), [Sol Levante (MQ)](https://slow.pics/c/z8P9UokS), [Sol Levante (LQ)](https://slow.pics/c/OPwerF86)

[Suzume (full)](https://slow.pics/c/xfsYGM5C), [Suzume (HQ)](https://slow.pics/c/dL2J923D), [Suzume (MQ)](https://slow.pics/c/OhZNMzjx), [Suzume (LQ)](https://slow.pics/c/XFCnEebJ)

[The Mandalorian (full)](https://slow.pics/c/xrO227rQ), [The Mandalorian (HQ)](https://slow.pics/c/m7Yky6EK), [The Mandalorian (MQ)](https://slow.pics/c/pN0cH6Yn), [The Mandalorian (LQ)](https://slow.pics/c/vB9zK9iz)

### ~~`preset 6`: v2.1.x vs v2.2.x~~

**Preset 6** is mapped to **preset 7** in **v2.2.x**.

### `preset 7`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

**Preset 7** is close to unchanged in **v2.2.x**.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

It still got some slight to moderate speedups though, which can be appreciated.

- Preset 7 visual comparisons:

[Avatar (full)](https://slow.pics/c/YtvMG9X6), [Avatar (HQ)](https://slow.pics/c/P0gF7nbQ), [Avatar (MQ)](https://slow.pics/c/syT6uiVt), [Avatar (LQ)](https://slow.pics/c/zkkv1ePp)

[Ducks (full)](https://slow.pics/c/pyVQmAWj), [Ducks (HQ)](https://slow.pics/c/eXSNnqV7), [Ducks (MQ)](https://slow.pics/c/ja7d0sFU), [Ducks (LQ)](https://slow.pics/c/JCTFfcMu)

[Fallout (full)](https://slow.pics/c/S6SbCW8x), [Fallout (HQ)](https://slow.pics/c/bWCLQWwV), [Fallout (MQ)](https://slow.pics/c/hvauusst), [Fallout (LQ)](https://slow.pics/c/04LVSbGD)

[Minecraft (full)](https://slow.pics/c/mh8VUfrO), [Minecraft (HQ)](https://slow.pics/c/P0pIx6XP), [Minecraft (MQ)](https://slow.pics/c/vnrXVajs), [Minecraft (LQ)](https://slow.pics/c/8WKQdw2N)

[Sol Levante (full)](https://slow.pics/c/kH9LcEzG), [Sol Levante (HQ)](https://slow.pics/c/1DWCNq2B), [Sol Levante (MQ)](https://slow.pics/c/clxjB7Uw), [Sol Levante (LQ)](https://slow.pics/c/52wLF7NR)

[Suzume (full)](https://slow.pics/c/3VlVk3O9), [Suzume (HQ)](https://slow.pics/c/FKel5bhI), [Suzume (MQ)](https://slow.pics/c/XXiyyCNN), [Suzume (LQ)](https://slow.pics/c/rrBoua68)

[The Mandalorian (full)](https://slow.pics/c/unxuKHEK), [The Mandalorian (HQ)](https://slow.pics/c/GMXnxSdA), [The Mandalorian (MQ)](https://slow.pics/c/v8wSN90W), [The Mandalorian (LQ)](https://slow.pics/c/fswh5kCT)

### `preset 8`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

The efficiency and consistency of **preset 8** has improved at high quality.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

And we can observe a speed increase of around 10%. Some crazy speed deviations can be noticed in Sol Levante.

- Preset 8 visual comparisons:

[Avatar (full)](https://slow.pics/c/8tKOAvGN), [Avatar (HQ)](https://slow.pics/c/YLWgqmxU), [Avatar (MQ)](https://slow.pics/c/pDg4gLry), [Avatar (LQ)](https://slow.pics/c/ADFSsXmP)

[Ducks (full)](https://slow.pics/c/ug0TVcoF), [Ducks (HQ)](https://slow.pics/c/WiDmtcVZ), [Ducks (MQ)](https://slow.pics/c/ERVfuYHH), [Ducks (LQ)](https://slow.pics/c/I0N97rQw)

[Fallout (full)](https://slow.pics/c/MqVzmFIi), [Fallout (HQ)](https://slow.pics/c/jUoB0PGo), [Fallout (MQ)](https://slow.pics/c/hXGIfwVj), [Fallout (LQ)](https://slow.pics/c/QUy3iX2H)

[Minecraft (full)](https://slow.pics/c/frkuJR97), [Minecraft (HQ)](https://slow.pics/c/GayEkyrn), [Minecraft (MQ)](https://slow.pics/c/S36Ha8LP), [Minecraft (LQ)](https://slow.pics/c/lxoYsv8k)

[Sol Levante (full)](https://slow.pics/c/YupMFGeu), [Sol Levante (HQ)](https://slow.pics/c/evfWqxZ9), [Sol Levante (MQ)](https://slow.pics/c/Juh027Eq), [Sol Levante (LQ)](https://slow.pics/c/ETPf9ppU)

[Suzume (full)](https://slow.pics/c/oeFUWMHd), [Suzume (HQ)](https://slow.pics/c/01vzYfnq), [Suzume (MQ)](https://slow.pics/c/BIL4g7zk), [Suzume (LQ)](https://slow.pics/c/boxyyeZN)

[The Mandalorian (full)](https://slow.pics/c/57M6RHM0), [The Mandalorian (HQ)](https://slow.pics/c/8WJcnZfU), [The Mandalorian (MQ)](https://slow.pics/c/M7q5PYz8), [The Mandalorian (LQ)](https://slow.pics/c/ctoke6p1)

### `preset 9`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Efficiency and consistency stayed mostly the same.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Speed improved by a few percents at most. **Preset 9** has stagnated over **v2.1.x**.

- Preset 9 visual comparisons:

[Avatar (full)](https://slow.pics/c/P3zZKVF0), [Avatar (HQ)](https://slow.pics/c/sL4HPZLa), [Avatar (MQ)](https://slow.pics/c/QOxyI9h0), [Avatar (LQ)](https://slow.pics/c/RfLKIRjj)

[Ducks (full)](https://slow.pics/c/aj6SVcIZ), [Ducks (HQ)](https://slow.pics/c/UpnejngN), [Ducks (MQ)](https://slow.pics/c/KJRzl3FY), [Ducks (LQ)](https://slow.pics/c/4mMq9sz3)

[Fallout (full)](https://slow.pics/c/vHqlIJBK), [Fallout (HQ)](https://slow.pics/c/XHoe9Udp), [Fallout (MQ)](https://slow.pics/c/tukibDud), [Fallout (LQ)](https://slow.pics/c/cV57jRF9)

[Minecraft (full)](https://slow.pics/c/XRT1OYnX), [Minecraft (HQ)](https://slow.pics/c/HqtoRlvV), [Minecraft (MQ)](https://slow.pics/c/Ml2rLjvO), [Minecraft (LQ)](https://slow.pics/c/EGCsqcSl)

[Sol Levante (full)](https://slow.pics/c/8URvlnba), [Sol Levante (HQ)](https://slow.pics/c/jPFT5hMG), [Sol Levante (MQ)](https://slow.pics/c/92EZO3U3), [Sol Levante (LQ)](https://slow.pics/c/bWgcvUtj)

[Suzume (full)](https://slow.pics/c/yA2y0v92), [Suzume (HQ)](https://slow.pics/c/pAPBbl7r), [Suzume (MQ)](https://slow.pics/c/7hTvbMy1), [Suzume (LQ)](https://slow.pics/c/arrDGAd9)

[The Mandalorian (full)](https://slow.pics/c/KQHqkAVZ), [The Mandalorian (HQ)](https://slow.pics/c/UzdN0rSC), [The Mandalorian (MQ)](https://slow.pics/c/dxKpfcvs), [The Mandalorian (LQ)](https://slow.pics/c/FPJAf74J)

### `preset 10`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

**Preset 10** received the most efficiency and consistency improvements out of all presets in this release. What will be the cost of such drastic change though?

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Well, not that much all things considered! **Preset 10**'s speed did decrease from barely anything to 20% in the most extreme situation, but its improvements well outshine its speed regression. Overall, **preset 11** went from borderline unusable to becoming an interesting new fast real-time preset. This is pretty huge in my opinion, as it offers a new kind of trade-off no other AV1 encoder or prior SVT-AV1 versions did.

- Preset 10 visual comparisons:

[Avatar (full)](https://slow.pics/c/8GjtQQAm), [Avatar (HQ)](https://slow.pics/c/FriwG6rw), [Avatar (MQ)](https://slow.pics/c/vqau9jk1), [Avatar (LQ)](https://slow.pics/c/WQTbcWvH)

[Ducks (full)](https://slow.pics/c/xYotraaP), [Ducks (HQ)](https://slow.pics/c/HHlwCvwc), [Ducks (MQ)](https://slow.pics/c/bgV6MoQz), [Ducks (LQ)](https://slow.pics/c/bOAyMVUk)

[Fallout (full)](https://slow.pics/c/MrYTMHoQ), [Fallout (HQ)](https://slow.pics/c/qL9xmCfI), [Fallout (MQ)](https://slow.pics/c/dwdE0pWt), [Fallout (LQ)](https://slow.pics/c/uo7Ztb5f)

[Minecraft (full)](https://slow.pics/c/fICToF3E), [Minecraft (HQ)](https://slow.pics/c/cGBhBsaS), [Minecraft (MQ)](https://slow.pics/c/w1P4LAu5), [Minecraft (LQ)](https://slow.pics/c/rNqRWd61)

[Sol Levante (full)](https://slow.pics/c/UyMpDhx0), [Sol Levante (HQ)](https://slow.pics/c/b0B7ndsZ), [Sol Levante (MQ)](https://slow.pics/c/3H4ewpMI), [Sol Levante (LQ)](https://slow.pics/c/wpCnz72u)

[Suzume (full)](https://slow.pics/c/ZYoFdtdS), [Suzume (HQ)](https://slow.pics/c/L2z8yEd5), [Suzume (MQ)](https://slow.pics/c/DEphKnbY), [Suzume (LQ)](https://slow.pics/c/Dm3OP4xO)

[The Mandalorian (full)](https://slow.pics/c/NhYFWBzc), [The Mandalorian (HQ)](https://slow.pics/c/MFMQjVRD), [The Mandalorian (MQ)](https://slow.pics/c/pTt74iCi), [The Mandalorian (LQ)](https://slow.pics/c/e6VwtFfU)

### `preset 11`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

The new **preset 11** places itself between the old **preset 11** and the old **preset 12** efficiency and consistency wise.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Unsurprisingly, its speed is also in-between the old **preset 11** and the old **preset 12**. I'm unsure this new trade-off helps in anything.

### `preset 12`: v2.1.x vs v2.2.x

- Compression efficiency & consistency graphs, high quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, medium quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

- Compression efficiency & consistency graphs, low quality range:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

**Preset 12** is almost unchanged from the previous release.

- Speed graphs:

> **Interactive comparison:** [Open the complete media manifest](/media/articles/svt-av1-third-deep-dive.json).

Same speed wise. So, no improvements at all for the two fastest presets. They remain all around very bad performers. In hindsight, it doesn't matter that I couldn't upload the **preset 11 & 12** visual comparisons, because there is literally nothing to see.

### ~~`preset 13`: v2.1.x vs v2.2.x~~

**Preset 13** is mapped to **preset 12** in **v2.2.x**.

### TLDR

With **v2.2.x**, we observed new efficiency/speed trade-offs for a good amount of presets.
Some presets, like **-1** and **0**, received significant speed improvements at no efficiency cost. **Presets  3 and 7** received more reasonable speedups. **Presets 2, 8 and 11** have seen new trade-offs that are mostly beneficial. **Preset 10** was deeply revamped and replaces **preset 9** in my book as the fastest, still viable, real-time preset. **Preset 4** seems to have returned to the state it was in **v2.0.0**. On the other hand, **preset 5** seemed to have regressed slightly, and **presets 1, 9 and 12** are basically unchanged from **v2.1.x**.

## Conclusion

The release of SVT-AV1 **v2.2.x** brings some welcome speed improvements. **Presets 2 through 4** continue to lead in efficiency for AV1 encoding, delivering top-tier quality and compression. Meanwhile, **presets 5 through 10** offer solid alternatives for those who find **presets 2 through 4** too slow, balancing quality with noticeably faster encoding times.

Hopefully, this comprehensive third deep dive has given you a helpful starting point for choosing settings when encoding with ~~the latest~~ SVT-AV1(-PSY) v2.2.x.

## Future

Once more, this testing focused on establishing the new presets dynamics, however I haven't revisited the different SVT-AV1 parameters since **v1.8.0**. A few meaningful features have been added since, like variance boost, and with this overhauled methodology, the conclusion made in that blog post may be different now. I think it will be worth to revisit this in the future, maybe in the next blog post for **v2.3.0**?
Yes, I'm fully aware I'm late because **v2.3.0** has already been out for two whole weeks. Even if the frontend of this blog post doesn't seem to have radically changed, my entire workflow has tremendously evolved since last time. It may have taken me since mid-August to manage to complete this blog post, but my efforts should allow me to produce a follow-up faster.

I am conscious of this blog post's limitations. First of all, I observed some odd behaviors from XPSNR on certain clips which I haven't been able to pinpoint yet. It would also give me nonsensical standard deviation results, which is the reason why only the standard deviation in SSIMU2 scores was given. Second of all, SVT-AV1's own behavior starts to get messy when you approach the SSIMULACRA2 0 score, rendering all the data in that region pretty much useless. Plus, aggregating these metrics scores take forever, so I'm looking into ways to accelerate the process, for instance by offloading the work to my GPU using [turbo-metrics](https://github.com/Gui-Yom/turbo-metrics). Also, I'm stuck between wanting to increase the amount of data points in each graphs to get more detailed results and having to keep everything readable. This time around I had to seperate each graph into three quality levels, but that's already too much for my liking. I will look into improving myself on the data presentation front. I feel like I have to streamline this formula to make it more digestible for everyone.

Please, I'm open to **your** remarks and suggestions to improve on this blog post formula.

That said, here are my plans for future blog posts:
- a follow-up v2.3.0 article that also revisits the useful SVT-AV1 parameters. *__I'm planning for this to release before 2025.__*
- an article focused on giving you encoding tips and explaining common AV1 encoding knowlegde is still planned for *someday*.
- a *future* article focused on observing the evolution of all software AV1 encoders since the beginning of their development, as well as comparisons with vpxenc, AVM (development ground for AV2) and VVenC.
- and many more...

Thanks for reading!

*Support me by making a donation on [my Ko-Fi page](https://ko-fi.com/nekotrix), as a reward for my efforts and to compensate for the electricity bills of two whole weeks of non-stop encoding.*

{}