One month after releasing its open-source, royalty-free VP8 video compression technology, the company already is working on significant revisions to the technology.
VP8, combined with the Vorbis audio technology, form the WebM codec with which Google is trying to unfetter Web video from the patent and royalty encumbrances of rival codec H.264. To make WebM a stronger competitor, Google is beginning work not just on ways to speed up encoding and decoding of the VP8, but also deeper changes to the format itself.
"Like every codec, WebM is not immune to change; the difference in our project is that the improvements are publicly visible, and compatibility and implementation issues can be worked through in an open forum," said Google codec engineering manager Jim Bankoski in a blog post Thursday. "To maintain codec stability while also allowing for quality and performance improvements in VP8, we have added an experimental branch to the VP8 source tree."
The experimental work will affect the bitstream--the exact sequence of encoded information that represents the video stream. Changing its design means a decoder essentially would see gibberish, so decoders won't play the video unless they're compatible and set specifically to show the experimental format.
Software decoders can be updated relatively easily, but part of the promise of VP8 is hardware support that can improve video performance characteristics such as frame rate and resolution and can lower power consumption. And hardware takes longer to change.
"Many hardware vendors have committed to shipping VP8-accelerated products based on our current bitstream in 2011," Bankoski said. "Devices that use hardware acceleration for video are a very small percentage of overall Web traffic today, but they are a rapidly growing segment of the market and our project must be mindful of these vendors' needs."
But Google and its allies also must be mindful of competition. VP8 faces quality issues in its competition with H.264, especially if the codec is to match H.264 in use not just for Web video streaming but also for building it into cameras that record the video in the first place.
Just how fixed VP8 is remains a bit muddy. It was released as "developer preview" technology, and Google clearly is trying to strike the right balance between a fixed format that can be baked into hardware and the ever-changing software philosophy deeply embedded in the Google engineering culture.
"The VP8 bitstream is final, but some features of the WebM format are not yet complete," the WebM FAQ says. "The VP8 and WebM specifications as released on May 19th, 2010 are final. We believe that the code and tools can evolve and improve for many years without requiring changes to the core specifications. We'll maintain a separate branch of the code, however, for bold new ideas that could alter the specifications. If there are significant improvements to warrant a new revision we might adopt them, but only after careful consideration and after discussing suggested changes with the WebM community."
Google didn't respond to a request for comment about how fixed VP8 is.
The version of VP8 that now exists could be better, too. Google pointed to some VP8 improvement work under way now, including work to translate VP8 into low-level programming instructions for faster performance.
In addition, Google's John Koleszar has begun Project Dixie to rework the VP8 decoder design by, for example, improving how it deals with multicore processors and with processors' cache memory.
WebM is open-source software, meaning that anyone can see, change, and distribute the underlying source code. One of Google's biggest allies, Mozilla, has begun contributing to the project, such as Jeff Muizelaar's work to increase memory efficiency.