Google Wants a New Widely-Adopted Video Standard Based on the VP8 Codec [Updated]
Google has open-sourced WebM, a royalty free media file format for compressing and encoding video. While this is good news for many industry players which have shown their support for the new standard, some of the questions which have been raised so far have included concerns around licensing and code quality.
Google disclosed their plan to purchase On2 Technologies for approximately $100M in August last year, a plan that was approved in February 2010 for $133M. The purpose was the acquiring of On2’s video compressing and encoding technology known as VP8. VP3, an earlier version, was open sourced in 2002 and represents the basis for the open-source Theora codec.
Google has recently announced WebM, an open source, royalty free media file format consisting of the following components: VP8 video codec, Vorbis audio codec, and the Matroska media container. WebM is currently supported in Chromium nightly builds, Mozilla Firefox nightly builds, Opera Labs, and support will be added to Chrome Dev on May 24th. Google has announced support for WebM in Android in the Gingerbread release scheduled for Q4/2010, and it is expected other Google products to support WebM in time. YouTube has started delivering video using VP8 for those experimenting with HTML 5.
Microsoft has announced that Internet Explorer 9 and Silverlight will have the ability to play WebM video if the PC has a VP8 codec installed, but whether it will be included directly in Windows remains an open question. Many other companies have indicated support for WebM including software providers such as Skype, Adobe and Oracle, and hardware providers such as AMD, ARM, Logitech, NVIDIA, Qualcomm, MIPS and Texas Instruments. Google has announced it “is working with hardware manufacturers to bring WebM support to a wide range of devices” and it is “working closely with many video card and silicon vendors to add VP8 hardware acceleration to their chips.” So far, there is no news from Apple regarding adding support for WebM in Safari.
A free, open source video codec may increase the pace of HTML5 adoption and has the potential to become the de-facto video standard on the Internet. However, since Google's announcement, questions have been raised around the licensing and the performance of the VP8 codec.
Google has licensed VP8 using a modified BSD license, one for the bit-stream specification and another for the source code. This means that both the code and the codec are available for practically any use, with the exception that if you sue Google, you immediately lose your VP8 license.
Jason Garrett-Glaser, an independent developer working on X264, an open source library for encoding video based on H.264, said he looked at the VP8 specifications and code and remarked:
VP8 is simply way too similar to H.264: a pithy, if slightly inaccurate, description of VP8 would be “H.264 Baseline Profile with a better entropy coder”. Though I am not a lawyer, I simply cannot believe that they will be able to get away with this, especially in today’s overly litigious day and age. Even VC-1 differed more from H.264 than VP8 does, and even VC-1 didn’t manage to escape the clutches of software patents. Until we get some hard evidence that VP8 is safe, I would be extremely cautious. Since Google is not indemnifying users of VP8 from patent lawsuits, this is even more of a potential problem.
It appears that there is currently potential risk of patent lawsuits, in particular from MPEG LA, the entity behind H.264, and this uncertainty may hinder initial adoption of VP8. One potential solution to this would be for Google to offer indemnifications to any WebM adopters protecting them from lawsuits, however there has been no indication at this point of whether that will be done.
The other problem is code quality. Garrett-Glaser concluded the codec is far behind H.264:
VP8, as a spec, should be a bit better than H.264 Baseline Profile and VC-1. It’s not even close to competitive with H.264 Main or High Profile. …
VP8, as an encoder, is somewhere between Xvid and Microsoft’s VC-1 in terms of visual quality. This can definitely be improved a lot, but not via conventional means. …
VP8, as a decoder, decodes even slower than ffmpeg’s H.264. This probably can’t be improved that much. …
VP8 is not ready for prime-time; the spec is a pile of copy-pasted C code and the encoder’s interface is lacking in features and buggy. They aren’t even ready to finalize the bitstream format, let alone switch the world over to VP8.
Garrett-Glaser’s remarks need to be taken with a bit of salt. He is an H.264 developer after all, not an independent party. On the other hand, Google has acknowledged that the specs are final but the implementation needs improvement:
While we’re proud of our quality and performance today, there is more work to be done. The VP8 bitstream is final, but some features of the WebM format are not yet complete. We expect to achieve better visual quality and performance in an official release soon while also doing a lot more testing. You can help us get there by helping us tackle our roadmap.
The presence of an open-source, royalty-free license has the potential to change the current online video landscape dramatically, but it may also take months if not years for adoption to rise to the point that VP8 can be reliably assumed to be on web client. What is your opinion on this debate? What do you think this means for application development on the web, both now and in the future?