Tuesday, August 9, 2011

Third Generation VP8 Hardware Encoder IP “Cloudberry” Released

Starting today, “Cloudberry”, the third release of the Hantro H1 VP8 hardware encoder, is available at no cost through the WebM Project hardware page. Partners having already signed the online licensing agreement will receive an automatic update.

Moving along with our mission statement - creating the world’s best real-time video encoder - we’re again one step closer to our goal thanks to Cloudberry’s substantial quality gains. In PSNR comparisons, Cloudberry performs on average 1.27 dB better than our initial Anthill release, which we launched less than five months ago. It also beats the previous Blueberry release by 0.45 dB, with comparable increases using the SSIM quality metric.

We’ve also bridged an important milestone: Cloudberry is able to encode high-quality 720p video (video teleconference use cases) at well under 1 Mbps, as shown in the following chart.

The optimized Cloudberry control software is backwards compatible and will also benefit chips with the Blueberry hardware inside them, providing 0.08 dB average PSNR increase without any hardware changes required.

In our next release, we are focusing on further software-based quality improvements especially related to multipass encoding and optimal usage of VP8 Golden frames - both of which will benefit SoCs that use either Blueberry or Cloudberry. On the hardware side, we also have numerous improvements in mind, such as further optimizing the macroblock mode selection. This fourth release is planned to be available at the end of Q3.

The VP8 H1 encoder IP has been licensed already to nearly 40 semiconductor companies through the WebM Project, and more requests are pouring in. For licensing details about the H1, see our hardware page. Our reseller partner Verisilicon also licenses Cloudberry as a part of the multiformat Hantro H1 encoder.

For more technical readers, here is the list of new features in Cloudberry:

- RD-optimized quantization
- Improved intra/inter macroblock mode selection
- Improved inter macroblock RD functions
- Improved intra macroblock mode selection
- More macroblock level coding information returned to software (enables effective multipass optimizations)

The following curves show PSNR quality metrics for a 720p video call, comparing the H1 Cloudberry release to previous H1 releases and to the libvpx Bali software SDK release. As a point of interest, the Cloudberry encoder performs similarly to libvpx’s “-rt -cpu-used=-5” setting, which is equivalent to what a WebRTC based application can achieve on the fastest PCs.

Aki Kuusela is Engineering Manager of the WebM Project hardware team in Oulu, Finland.

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.

Wednesday, August 3, 2011

One-to-One VP8 Video Calling Now Supported in Skype

Our friends at Skype have added support for one-to-one VP8 video calling in Skype 5.5 for Windows. If both users in a Skype video call are using Skype 5.5, the call will use VP8 to encode the video streams for optimum transmission across the Internet. Skype also uses VP8 for group video calling.

In addition to being a great codec for web video, VP8 performs exceptionally well in real-time applications like Skype, and is only getting better as we add features like error concealment (produces high visual quality video frames even under conditions of substantial packet loss) and improved datarate control. To learn more, check out our previous post on VP8 for real-time video.

Skype was one of the earliest supporters of VP8, and we're really excited that millions more of their users will experience the superior quality and performance of VP8 video calling. Download Skype 5.5 for Windows to see VP8 quality for yourself!

John Luther is Product Manager of the WebM Project.