AV1: The current future of Video

It has been a while since I last checked out AV1, but even then AV1 was still dominating in quality and compression. Now it's time to revisit the tests I've done back then, so grab a coffee, take a seat, cause this is going to be one long ride.

Setup

Today we'll test H264 via x264 veryslow as well as NVENC, HEVC via NVENC, and AV1 via libsvtav1. x265 was excluded due to unclear licensing and patent situation, and VP9 was excluded because none of the current encoders reach any reasonable encoding performance. The settings used for each encoder are:

  • x264: -preset veryslow
  • NVENC H264 uses these plus: -preset p7 -tune hq -refs 32 -rc vbr
  • NVENC HEVC is similar to H264, except that -refs is only set to 4 (driver/hardware limitation).
  • libsvtav1: -rc vbr -preset 8

Settings were intentionally set up for VBR encodes instead of CBR, as CBR streaming should no longer be used in the modern day - VBR is superior with a proper streaming protocol.

Note: If your browser does not use hardware decoders and the developers have refused to do so, you might have to opt for the classic right click and download method. If you don't know how to do that, perhaps now is the time to experiment a little - or use Google.

Videos

If you're not yet familiar with my Video Encoding Samples, it is my attempt at making a reproducable video encoding and testing environment, producing results in a few hours with as many tests performed as possible. For this test, I'm using footage from the sample videos provided here.

Bitrates

Of interest to me are how well each codec handles extremes, whether it is the content being extremely difficult to encode, or the bitrate being extremely low. Multiple examples will be provided at different bitrates, each annotated to show which bitrate it is. The bitrates used are: 1mbit, 2mbit, 3.5mbit, 6.0mbit.

To noones surprise, AV1 is on top in every single test. The distance between H.264, HEVC and AV1 only increases with reduced bitrates, but don't let me tell you what to think, instead look at the results themselves:

ARMA 3 002: "Short walking section through heavy foliage"

6mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

H.264 is fighting with all it's got, but it's not enough. HEVC and AV1 dominate here in quality, with AV1 having the advantage of being a software encoder.

3.5mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

H.264 is already waving the white flag, but HEVC is still holding up. AV1 is ready for us to actually begin the fight, as it has yet to actually give it 10% of what it's capable of.

2.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

H264 has been reduced to nothing more than its bones, but HEVC is still fighting but struggling to maintain composure. AV1 however is now sweating, regretting its earlier to decision to ask us to turn up the heat.

1.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Every encoder is now waving the white flag. I wouldn't want to watch this.

Black Mesa 001: "Fighting Section in Labs"

6.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

H.264 manages to be watchable here, only lacking in detail and sharpness, and occasionally becoming noisy/blocky. HEVC is much sharper and detailed, but has issues in combat. AV1 is apparently unfazed by what's going on.

3.5mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

It is clear that this is taxing on H.264 encodes already, but they still remain watchable despite the obvious lack of quality. HEVC is also now struggling to maintain overall quality, having dropped in detail and sharpness. AV1 is laughing at us.

2.0mbit

Both H.264 encoders are now unable to maintain watchable quality, and even HEVC is barely making ends meet. AV1 still has stopped laughing.

1.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

HEVC and H.264 are giving up, waving the white flag. AV1 is now taunting us with the classic "Is that all you got? Pathetic." line, while visibly sweating.

Final Fantasy XIV 002: "The Singularity Reactor - King Thordan Phase Transition"

6.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Both H.264 and HEVC struggle to maintain quality, while AV1 is still really watchable.

3.5mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

The trend continues, with AV1 being the only really watchable one.

2.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

NVENC H.264 has given up, and is encoding at 3.1mbit, x264 is unwatchable and HEVC is getting close to its limit. AV1 is still watchable, but definitely would not meet my quality standards.

1.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Every encode is practically trash now, AV1 is watchable, but not by a lot.

Forza 4 Horizon 001: "Racing at Dusk"

6.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Straight from the start, HEVC and AV1 set themselves apart from H.264 with sharpness and detail. AV1 one ups HEVC here even.

3.5mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

The ancient H.264 codec is now bordering on unwatchable, with much blocking and noise. HEVC is starting to come apart at the seams, but still maintaining reasonable quality. AV1 is still flexing on the other codecs here.

2.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

The heap of bones you can see here is called H.264, which has reverted to its most basic form - the bitstream. H265 is also struggling hard with this bitrate, with nearly all of the foliage having lost any detail and visible blocking all over the place. AV1 maintains smoothness, but also starts to have issues with foliage.

1.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

There's still a pile of bones called H264, and H265 is currently burning at the stake. AV1 is avoiding most of the fire, but is still hurting and not in perfect condition anymore.

GRIP 001: "Racing on Space Station"

6.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Only HEVC and AV1 manage to encode this at a reasonable quality, due to the post-processing grain this game adds by default. HEVC is definitely struggling with motion however, and AV1 is visibly better than HEVC

3.5mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

The white flag has been raised by both H264 encoders, and HEVC is fighting with all its got. AV1 is not impressed so far.

2.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Again both H264 encoders are waving the white flag (🏳), and HEVC is no longer watchable. AV1 is still strong, but definitely hitting its limits as well.

1.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Once again, NVENC H264 is cheating and using more bitrate than allowed, but even then it's still not enough for anything watchable. HEVC has given up and even AV1 is having issues - but they might be resolved at higher presets, as this preset doesn't enable grain synthesis.

GRIP 002: "Race through orange desert"

6.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

HEVC is visibly better than H264 already, with increased detail and clarity. AV1 doesn't differ much from HEVC at this bitrate.

3.5mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

HEVC and AV1 are the only codecs I'd consider watchable here, with AV1 keeping slightly more clarity in the image than HEVC.

2.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

You already know the deal, H264 is not capable of anything at this bitrate. AV1 and HEVC are definitely struggling here, but AV1 wins in pure clarity again.

1.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Everything is pretty much just a mess of blocks at this point. HEVC and AV1 maintain some level of clarity, enough to see what's going on at least. AV1 is better than HEVC only in some areas, falling behind or equalling it in others.

Satisfactory 001: "Exploration at Night"

6.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Pretty much all encoders are having issues, with HEVC and AV1 still maintaining watchable quality.

3.5mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

Still a similar situation with only HEVC and AV1 maintaining watchable quality. AV1 seems to be slightly faster in recovery, but that's most likely due to software encoding being used.

2.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

AV1 is starting to show its strengths again, with significantly reduced blocking in motion. H264 and H265 here is not that great anymore.

1.0mbit

x264
h264_nvenc
libsvtav1
hevc_nvenc

At 1mbit, none of the codecs are reasonable quality. Though I'd still call AV1 much better than any of the other ones.

Ending Words

From the results here, it seems like AV1 will take over as the one codec to rule them all. While we do not yet have real-time capable encoding at high resolution and framerates on consumer-grade computers yet, this will most likely change with one GPU generation. Hardware decoding for AV1 is already confirmed to be available in the NVIDIA 30xx Series, AMD 6xxx Series, and seemingly the new Intel iGPUs

That's all for now.

Comments for: AV1: The current future of Video