All the way back in December 2020, I decided it was time to try out how far AV1 had progressed. At the time, SVT AV1 was the only encoder that produced reasonable results with near realtime performance, however that has changed now. A lot of work went into AOM AV1, and it is now capable of encoding in the “frames per second” realm instead of “frames per minute”. So why not take another look at things?
I've written this article during a time where all tested encoders were still in development and the quality has drastically changed since then. Take everything you read here with a mountain of salt, as the field has drastically changed, and most things written here are no longer true.
⚠️ This Article is outdated! ⚠️
For the tests I used footage I captured myself, as that way I have no problems figuring out who actually owns the distribution rights. As for versions of the encoder, NVIDIA NVENC was run with Driver version 471.41 on a RTX 3090, AOM AV1 was compiled at v3.1.2, and SVT AV1 was on compiled at v0.8.6-76-g44486d23. The tests were run with the following settings:
- NVIDIA NVENC H.264:
-preset p7 -tune hq -rc cbr -rc-lookahead 32 -g 120 -2pass 0 -multipass 2 -no-scenecut 0 -forced-idr 1 -spatial-aq 1 -aq-strength 7 -temporal-aq 1 -bf 4 -b_ref_mode middle -bufsize 0 -qmin 0 -qmax 51 -refs 16
- AOM AV1:
--rt --cpu-used=9 --row-mt=1 --tile-columns=3 --tile-rows=2 --threads=32 --target-bitrate=10000 --overshoot-pct=10 --undershoot-pct=10 --end-usage=cbr --kf-max-dist=120 --kf-min-dist=120
- SVT AV1:
-rc cvbr -g 120 -preset 8 -tile_columns 3 -tile_rows 2 --threads=24
Update (2021-08-30): According to testing, it appears that in the current versions of AOM AV1, CBR encoding ends up with much lower potential quality. Nearly identical file sizes can be produced with VBR when both over and undershoot are set to <=10.
Unfortunately, due to some people needing to prove that their IQ is below the average temperature of a working fridge, I’ve decided against including including H.265/HEVC this time, and also opted against including additional commentary. Instead, I will talk about performance and how resolution and framerate affected the performance of each encoder. I will skip NVIDIA NVENC as it’s pretty much obvious how it scales.
As for the AV1 encoders, both of them were unaffected by framerate, only showing some minor effects with resolution. Compared to H.264/AVC encoding, where modifying either results in drastic encoding performance changes, neither of the encoder was bothered by anything I threw at it. This is a bit weird, but I will take it as a sign that both encoder have been optimized to hell and back.
Anyway, with the wall of text out of the way, here’s videos: