Google just announced that the upcoming release of its Chrome browser, version 48, will have VP9 support for WebRTC. This is an important milestone for WebRTC and Chrome for a number of reasons. To appreciate why, it is useful to look a little bit at the history of video codec support in WebRTC as well as Google+ Hangouts, Google’s popular videoconferencing app.
When Google+ Hangouts was originally launched, it used H.264 SVC, the scalable video coding extension of H.264 that Vidyo co-developed. The use of scalability in the video codec is essential for implementing a radically different server design for multipoint video, able to deliver an unprecedented range of features: error resilience and localization, rate adaptation, personalized layout, cascading, etc. More significantly, all this is done with extremely low delay (an order of magnitude less than a typical transcoding MCU), at a massive scale, and without any signal processing at the server. Vidyo introduced this server design in 2008 in its patented VidyoRouter™ product.
Hangouts moved to use the open-source VP8 video codec in August 2013 so that, among other things, the client could eventually run over WebRTC as explained in interviews by senior Google management. As VP8 does not offer spatial scalability, a simpler version of it called simulcasting was used. With this technique an endpoint produces multiple video streams at different bit rates and resolutions. The server receives both, and selects which one to forward to receiving participants. (We later on coined the term “Selective Forwarding Unit”, or SFU, to describe the operation of these servers in a generic way.)
At the same time the transition to VP8 was being made, Vidyo and Google announced that Vidyo would be collaborating with Google to develop a scalable extension for the VP9 video codec as part of the WebRTC client open source project. The goal is to combine the power of WebRTC with the benefits of scalability to be able to deliver the best possible experience for the end users.
The inclusion of VP9 in WebRTC in Chrome 48 marks an important milestone in this collaboration. It is the first widely available software release of this new codec (outside a flag, across all Chrome platforms). The release incorporates the proposed standard RTP packetization for VP9, which was co-designed and developed with Vidyo and Google, and which supports the new scalability features. Spatial and temporal scalability features in the codec itself are already in the WebM and WebRTC code repositories.
As additional experience in deployed applications is obtained, and appropriate API support is made available at the WebRTC layer, we expect they will find their way into future versions of the Chrome browser in a backwards-compatible way.
Vidyo has utilized scalable coding to built a new server architecture for large-scale, very high quality video communication, on virtually any network and device. This architecture excels in environments that require large scale and/or are hosted in the cloud. It is also inherently codec-agnostic: the choice of the codec, from an infrastructure point of view, is purely a business decision. As long as scalability is available, then the infrastructure can perform its magic.
We are very excited that we will soon be able to bring the proven benefits of this design to the WebRTC world. While this release is the first step, as the saying goes, the first step is half the journey.