Thursday, August 4, 2011

VP8 Codec SDK "Cayuga" Released

Today we're making available "Cayuga," the third named release of the VP8 Codec SDK (libvpx). Note that the VP8 format definition has not changed, only the SDK. You can download the Cayuga libvpx snapshot (version 0.9.7) from the WebM Project Downloads page or clone it from our Git repository.

As promised, for Cayuga we targeted more areas for encoder speed improvements. Using our previous release ("Bali") as a benchmark, we’ve seen the following VP8 encoder improvements on x86 processors.
  • +11.5% "Best" mode (at speed 0)
  • +21.5% "Good" mode (at speed 0) 
  • +22.5% "Real-time" mode (at speed 6, a typical speed for videoconferencing applications)
We also compared the encoder performance of "Cayuga" to our first named release ("Aylesbury") release and got the following results:
  • +35% "Best" mode (at speed 0)
  • +75% "Good" mode (at speed 0) 
  • +52% "Real-time" mode (at speed 6)
These improvements are summarized in the following chart:

We saw the following improvements on ARM processors:
  • On ARM Cortex A9 with Neon extensions, real-time encoding of video telephony content is 35% faster than Bali on single core and 48% faster on multi-core.
  • On the NVIDIA Tegra2 platform, real time encoding is 40% faster than Bali.
For more technical readers, here are some detailed improvements we made in the libvpx Cayuga encoder:
  • Improved the datarate control in one-pass realtime compression. 
  • Improved one-pass variable bitrate (VBR) visual quality by average ~7% across a large collection of videos.
  • Improved video conferencing user experience through error concealment, a feature that produces high visual quality frames even under conditions of substantial packet loss. 
  • Improved the ARM v6 and v7 encoders and decoders through greater use of SIMD features and strong use of cache prefetching.
Thanks to everyone who worked on Cayuga, and welcome to our eleven new contributors:
  • Alok Ahuja
  • Alexis Ballier 
  • Ronald Bultje
  • Rafael Ávila de Espíndola
  • Ralph Giles
  • Stefan Holmer
  • Mike Hommey
  • Taekhyun Kim
  • Aron Rosenberg
  • Joshua Bleecher Snyder
  • Thijs Vermeir
John Luther is Product Manager of the WebM Project.

Polite, on-topic comments are welcomed on the webm-discuss mailing list. Please link to this post when commenting.