Encoder Comparison NVENC x264 Quicksync QSV VP9 and AV1

VP9

History

Back in 2012, Google released VP9 as royalty free. They believed that the patenting nature of the MPEG codecs was destined to burden video technology in the future. They were right, the issues with H.265 licensing caused considerable stagnation in the industry. VP9 is less well-known, but has gained some traction recently. The most popular YouTube videos have a VP9 copy to save bandwidth if the user can play them. You probably watch them all the time without even knowing. Now even Amazon/Twitch uses VP9 on their most popular streams since the bandwidth savings outweigh the cost of VP9 transcoding. Using VP9 is a great way to get better quality at the same bitrate as H.264 without any licensing issues. The current version of FFMPEG includes libvpx-vp9, the freely available software encoder for VP9.

For users that don’t have access to FPGA’s for live-encoding VP9, it is not a viable option for streaming. This may change in the medium-term since the encoder speed has been improving and may continue to do so. Also, CPUs are always getting better. QuickSync can assist somewhat with VP9 encoding through VAAPI. The process is extraordinarily complicated so it is not included in this article. I’ll do some live-streaming tests later this year to check on the progress. For now, considering 1440p 60 fps, this article will only consider VP9 using libvpx-vp9 for non-live purposes.

Results

VP9 VMAF Scores on 2560x1440 60 fps
VP9 VMAF Scores on 2560×1440 60 fps

Only one thing to note about VP9’s results:

  • At any tested bitrate, VP9 beat all tested H.265 and H.264 encoders, both hardware and software. The only codec that beats this setting of VP9 is AV1.

Conclusions for VP9

This is NOT a live-stream setting, this is offline only testing. x265 Slow encodes the test video on my stock i7-8086k using 100% at around 8 fps. x265 Slower encoded at 3 fps and the quality is often no better. This VP9 test encoded at only 1 fps and I’m using tile columns for muti-threading. There are FPGAs and ASICs for VP9 hardware encoding, but they are very specialised and I don’t know what their parameter configurations are. I used a straightforward FFMPEG command in 2-pass. I’m fairly sure that the first pass can be speed 4 with no difference, but I went with 3 anyway.

ffmpeg -y -i original.mkv -c:v libvpx-vp9 -pass 1 -b:v 8000K -deadline best -speed 3 -g 9999 -an -f matroska NUL && ^
ffmpeg -y -i original.mkv -c:v libvpx-vp9 -pass 2 -b:v 8000K -deadline best -speed 1 -g 9999 -an -f matroska VP9_8_b3-1.mkv

VP9 is compatible with most browsers which makes it particularly good for high-volume VOD services. YouTube makes use of it on all popular videos and Netflix is implementing a similar principle. Saving as much data as possible while retaining as much quality as possible is paramount. Which is why I’ve tested 2-pass speed 3-1. The results are simply EXCELLENT. It works well on 1440p and as resolutions increase it will last longer than older codecs. As CPU power increases and hardware acceleration develops it will only become more popular. Anybody who is considering massive amounts of archiving or a VOD business would be foolish to ignore VP9.

UNREAL AUSSIES ARE ALL OVER THE WEB

HELP SUPPORT
UNREAL AUSSIES

Unreal Aussies run many events over the year to help connect and build the Australian gaming community. If you are interested in helping out in any current or future planned events or wishing to offer some more ideas for us to explore - let us know!

About Us

Unreal Aussies is for passionate gamers from all walks of life. Games come and go, but the people still remain. From meetups to tournaments, hardcore teams to charity streams, Unreal Aussies core mission is to make gaming more fun as part of a community than it can ever be alone.