AOMedia AV1 is a Royalty-free, Open Source Video Codec Aiming to Replace VP9 and Compete with H.265

Orange Pi Development Boards

The Alliance for Open Media, or AOMedia, is a new non-profit organization founded in 2015 by Amazon, Cisco, Google, Intel Corporation, Microsoft, Mozilla, and Netflix, and more recently joined by AMD, ARM, and NVIDIA, whose first project is to develop AV1 royalty-free and open video codec and format to provide an alternative to H.265 / HEVC, and a successor to VP9.

Alliance_For_Open_Media_AOMedia

The project is a team effort combining teams working on Daala, Thor, and VP10 video codecs, and while AFAIK, AV1 specifications have not been released yet (target: Q1 2017), the organization has already released an early implementation of AV1 video decoder and encoder under the combination of an BSD-2 clause license and the Alliance for Open Media Patent License 1.0 , which can be found on googlesource.com.

So I’ve had a quick my myself following the instructions, by first downloading one uncompressed YUV4MPEG sample:


and the source code:


before building it:


The last command will install the headers, and aomdec video decoder and aomenc encoder.

We also need some scripts to be placed in the path:


Now we can run the script in the directory for the sample(s):


The command will encode all y4m files in the directory at 200 kbps up to 500 kbps at a 50 kbps increment. Encoding only uses one core, my machine is powered by AMD FX8350 processor, and you can see encoding is currently very slow well under 0.5 fps for a CIF video (352 x 288 resolution), but that should be expected because VP9 encoding is already slow (its successor is expected to require even more processing power), and first software implementations are usually not optimized for speed, they are just meant to show the encoding works.

The test scripts will create a bunch of AV1 video files in baseline directory: husky_cif.y4m-200.av1.webm, husky_cif.y4m-250.av1.webm, etc… as well as husky_cif.y4m.stt with some statistics.

Decoding is much faster as it should be:

You can play back the videos with mpv using aomdec for decoding. For example:


AOmedia_AV1_Video_MPV

New video codecs normally take years to replace old ones, but if it gains traction AV1 will likely be used along side VP9, H.265 and H.264 for several years. Considering software and silicon vendors, and content providers (Google/YouTube, Amazon, and Netflix) are involved in the project, I’m quite confident the AOMedia AV1 codec will become popular, and hardware decoder are likely to be implemented in ARM, Intel and  AMD SoCs in a few years.

Thanks to Ohmohm for the tip.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

21
Leave a Reply

avatar
21 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
16 Comment authors
joeguestEasyfabPaulR Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Dan
Guest
Dan

AV1 is a good thing and long overdue.

HEVC is dead in the context of internet streaming video, no-one is ever going to use it because the patent pool split from 1 group (MPEG LA) into 3 different ones, one of which made extraordinary demands on licensees, they have since tried to tone down their demands but the damage has been done and nobody trusts the HEVC Advance group or HEVC in general as a viable replacement for H.264.

AV1 will eventually get better at home PC encoding, thats just a very low priority, it’s main efforts will be into data center encoding as thats were all the action will happen (Youtube etc).

Apple is the one noticeable missing partner, they are sitting on the fence waiting to see how it plays out, they were initially in favor of HEVC but support was removed in beta versions of iOS which shows just how much damage the patent pool split did to it. Once AV1 gets traction they wont be able to ignore it, especially if it starts to displace H.264 as well.

TC
Guest
TC

not another codec… it took ages until vp9 got hw-decoded

should we replace our tv boxes every year now?

kadajawi
Guest
kadajawi

@TC
With the companies behind AV1 it shouldn’t take too long to get HW decoded everywhere… I mean… all major processor/video decoder makers are involved. AMD, Intel and Nvidia have the PC side covered. ARM and Intel have the mobile market covered. Google, Microsoft and Mozilla will make sure all major browsers support it too. Google, Netflix and Amazon will make sure that there’ll be plenty of AV1 content demanding hardware decoders.

Plus, if I read it correctly AV1 is based on VP9?

TLS
Guest
TLS

More than decoders, we need hardware encoders, as even “consumer grade” quad core processors from Intel are super slow at encoding H.265.
GPU encoding has helped to a degree, but the quality is suffering compared to CPU encoding.

@TC – Well, sometimes that’s the price of progress, but I wouldn’t expect this to be “mainstream” for at least a couple of years if the spec isn’t being released until early 2017. It’ll take another year until there will be hardware implementations and another year until you can readily buy hardware based on said hardware. I wouldn’t worry too much about it at this point. You should be glad about this kind of development, as it’ll allow higher quality video at lower bandwidth usage, so it’s a win win…

ben
Guest
ben

What’s wrong with Google’s royalty free and open source, VP9.. and when released, VP10?

I mean if, VP9’s quality is already on-par with H.265, why drop the presumably better VP10 effort to start a whole new collaboration?

Tired8281
Guest
Tired8281

nvidia’s on board, wonder if hw support for this will be in the next Shield TV update?

TLS
Guest
TLS

@ben
No-one said there was anything wrong with it, but we’re going to need something that more companies than Google back and what we have here is clearly the potential of being such a solution.

Also, nothing is being dropped, this is a continuation if anything, just like VP9 replaced VP8 and so on…

Phils
Guest
Phils

It would be great if one day there was only one video standard that encompassed all formats.

rasz_pl
Guest
rasz_pl

>VP9’s quality is already on-par with H.265

on paper, in real life YT VP9 is ~10% smaller while being visibly lower quality compared to h264

Harley
Guest
Harley

Cool, but what about a matching audio codec then? Will this AOMedia alliance also offer an acompaning audio codec too?

Usually when they deliver a video codec they at least recommend a audio codec for reference too.

I am as well wondering what will happen to VP10 and if they will still release that as planned?

Harley
Guest
Harley

@Phils
Without competition there is no or at least slow insentive for technology to move foward.

Kelly
Guest
Kelly

Pay attention guys, AV1 is largely based on VP10, with additions from Daala and Thor.

And we already have a superior audio codec, in the form of Opus, which pretty much outperforms everything, from high quality all the way down to narrow band voice.

anonymous
Guest
anonymous

@Harley
we don’t really need a new audio codec, auido doesn’t take significant bitrate and as such the gains from better codec are fairly saturated.

—————————————————

Problem with AV1 will be the same as with VP9 – the encoder is made by Google and it is rubbish (AV1 is built on libpvx and VP10 codebase with tweaks from others). Libvpx has been seriously neglected for the several years that VP9 is available.

It has worthless support for encoder multithreading (the decoder is lousy too, but there they were saved by ffmpeg making a better alternative – for free. Honestly, Google has too little money for that or what?). You can only use tiling which lowers quality and limits you to 1 thread for every whole 512 pixels of width. Yeah, you can’t use more than 3 threads for 1920×1080. One and half a core on an Intel CPU.

It has worthless rat econtrol – the main user which is Youtube even has their own ad-hoc hack to bypass the terrible rate control of libvpx. Which tells you something. It is unbelievable that Google with its resources is not able to fund some decent project development there. They should just have outsourced it to Multicoreware, their china/india-based developers to way better job on x265.

PaulR
Guest
PaulR

>It is unbelievable that Google with its resources is not able to fund some decent project development there.

Just like Hooli in Silicon Valley? 😉

Easyfab
Guest
Easyfab

with run_tests it use the best/slowest settings ( like placebo for x264/x265 )

you should try aomenc directly with more standard settings, for example :

Easyfab
Guest
Easyfab

aomenc yourfile.y4m -p 2 -t 4 –cpu-used=2 -o youroutput.webm

Its “- -cpu-used=2” 2x – without space.
It doesn’t take it correctly in my first message

anonymous
Guest
anonymous

@cnxsoft
DTS and Dolby is mainly about various not that critical metadata and other silly stuff. For most practical purposes, you can just take the 7.1/5.1 audio and encode it as opus/vorbis (or flac for lossless), I don’t see nothing important about dolby/dts. I think the only thing that matters about them these days is that av receivers support them as input. Making a new format wouldn’t help there, as it would be as unsupported by those boxes as opus/vorbis is.

DTS/AC3 compression isn’t even good or anything.

guest
Guest
guest

Is the development mainly in these two:
https://chromium.googlesource.com/webm/libvpx/+log/nextgenv2
https://aomedia.googlesource.com/aom/
Which of them will become AV1?

joe
Guest
joe

@rasz_pl
But VP9 it’s much slower.