an open web media project
The latest news and updates from the WebM project

VP8 Codec SDK "Duclair" Released

Friday, January 27, 2012 | 6:31 PM

"Duclair," the fourth named release of the VP8 Codec SDK (libvpx), is now available. You can download the Duclair libvpx snapshot (version 1.0.0) from our Downloads page or clone it from our Git repository.

This release fixes a decoder crash bug introduced in Cayuga (v0.9.7), so we encourage all Cayuga users to upgrade.

Note that the VP8 format definition has not changed, only the SDK. Duclair is ABI incompatible with prior releases of libvpx, so the major version number has been increased to 1, and you must recompile your applications against the v1.0.0 libvpx headers. The API remains compatible, so code changes shouldn't be required in most applications.

New Features

This release introduces substantial new VP8 encoder features that are especially useful for real-time use cases such as live streaming and videoconferencing.
  • Temporal scalability produces a video stream that can be decimated to different frame rates, with independent rate targeting for each substream.
  • Multiframe postprocessing can make visual quality more consistent in the presence of frames that are of substantially different quality than the surrounding frames, as in the temporal scalability case and in some forced keyframe scenarios.
  • Multiple-resolution encoding enables simultaneous encoding of the same content at different resolutions, resulting in much faster encoding than processing them separately.
Performance Improvements

In this release we focused on optimizing VP8 decoder speed and the real-time modes of the encoder.
  • Decoder speed on x86 processors improved 10.5%. 
  • Encoder improvements followed a curve where speed settings 1-3 improved 4.0%-1.5%, speeds 4-8 improved <1%, and speeds 9-16 improved 1.5% to 10.5%, respectively.
See the CHANGELOG for a complete description.

Thanks to everyone who worked on Duclair, and welcome to our four new contributors:
  • Alpha Lam
  • Deb Mukherjee
  • Jeff Faust
  • Rafaël Carré 
John Luther is Product Manager of the WebM Project.


Picking the Right Driver

Friday, December 9, 2011 | 3:06 AM

We are very excited to announce the availability of the fourth generation G-Series 1 VP8 hardware decoder, internally codenamed “Driver”.

In this release, our focus has been on optimizing the VP8 bitstream decoder. The new architecture helps the IP run at 13% higher operating frequency allowing the decoder chips to reach higher frame rates or do multi-channel decoding more easily. At the same time, the new implementation has reduced the decoder’s logic gate count by 6% which directly cuts the production cost of each chip incorporating a WebM hardware decoder. Furthermore, the revamped design allows us to do even more optimizations for the next release. With future video requirements in mind, we designed Driver to decode up to 4k by 4k video resolutions.

To make the IP evaluation easier for a chip company, the deliverables now include a bit-exact decoder C-model. This allows partners to create their own test cases for thorough performance analysis.

Modern multi-core CPUs are getting powerful enough to decode HD video, so why is having hardware accelerators still useful? One good reason is battery life. We got our hands on one of the first commercial Android tablets based on the Rockchip RK2918 chip which uses our very own WebM hardware decoder and ran some tests. We charged the battery and looped a 480p video until the battery died. For the purpose of the experiment, we had to limit the resolution because the single-core CPU of the device could not run 720p @ 30fps in pure software. The battery test was done with the VP8 hardware acceleration enabled and disabled, and at two display brightness settings. The result: with the hardware offload the battery lasted up to 36% longer which gets us one extra movie to watch on that long flight! You can see the battery discharge vs. elapsed time plots below. Needless to say, using two or four CPU cores for HD video decoding in software uses even more power and widens the gap to hardware's benefit.


The G1 v4 VP8 decoder is now available for licensing at no cost at the WebM Project hardware page. The multiformat version of the IP and support services can be accessed through our partner Verisilicon.

Aki Kuusela is Engineering Manager of the WebM Project hardware team.


Video Codecs 101

Tuesday, November 15, 2011 | 2:53 PM


If you work in video compression, this has happened to you:

Someone asks what kind of work you do.  Maybe it's your aunt, or your dentist, or that nice girl you've started dating.  Now you're trapped.  Your only choices are (1) a long string of jargon that nobody wants to hear and makes folks sorry they asked, or (2) "I work with computers."

The problem is simple: most people don't know what video compression is, and you can't talk about it until they do.

What if you had a simple, three-minute animated video that explains the whole thing?  What if you could show it from your phone — right now, right there in the dentist's chair?  Now you can: Video Codecs 101.



Video Codecs 101



One video didn't seem like enough, so we made a second one that picks up where Video Codecs 101 leaves off.  After all, now that your dentist and your 10-year old niece are so smart about codecs, they'll want to know more.  So, how about another two minutes or so about what the WebM Project is doing to make video on the web faster, simpler and easier?



WebM: A Video Codec for the Web



We hope you find these videos fun and useful — and that they make your life a little easier, now that your friends finally know what you do. Enjoy.

You can learn more about WebM and even contribute to its success at webmproject.org.

Lou Quillio is Webmaster for the WebM Project.


Time of Dragonflies

Friday, November 11, 2011 | 12:11 PM

Today, we are releasing the fourth generation of the Hantro H-Series 1 VP8 Hardware Encoder, developed under working title Dragonfly.

With the H1 v4 release we are offering the world’s best real-time VP8 video encoding of up to 1080p in mobile. It delivers an average PSNR improvement of 0.27 dB over the previous generation and produces higher quality video than any of our previous RTL designs.

The fourth version’s major improvements reducing the bitrate required for great video quality include:
- the usage of bicubic filter in motion estimation and reconstruction phases
- additional candidates in macroblock mode selection
- improved rate-distortion optimization in macroblock mode selection

The following figure compares the Dragonfly SSIM performance with the previous VP8 releases. One of our previous products, the 8290 H.264 hardware encoder, is also shown as a reference.


H1 Encoder SSIM comparison, Foreman CIF sequence at 200 kbps.


The visual comparison below shows how the level of preserved details increases with each new encoder release.



Foreman CIF sequence at 200 kbps.

Top-left: H1 v1, top-right: H1 v2, bottom-left: H1 v3, bottom-right: H1 v4.


H1 encoder helps users enjoy more hours1 of high-definition WebM video applications, such as those utilizing the open source WebRTC framework that allows free browser to browser video chat capability. For example, in battery operated devices like tablets, smartphones or netbooks, 1080p 30fps encoding with H1 requires less than 3 MHz of CPU cycles and 76 mW of power, while such a feat using the quad-core ARM Cortex A9 would take 2.3 GHz per core draining your battery at a rate of 3700 milliwatts 2.

H-Series 1 VP8 encoder as well as the silicon-proven G-Series 1 VP8 decoder, are available at no cost to chip manufacturers from the WebM Project’s hardware page. Our reseller partner Verisilicon also licenses the VP8 encoder as a part of the multi-format (VP8/H.264/MVC/JPEG) Hantro H1 encoder and offers support and maintenance service for the free VP8 cores.

In total, over 50 semiconductor companies have licensed the VP8 technology today. The first devices with 1080p VP8 decoding are today in the consumer market from nearly a dozen different brands (see example here), and the first chips capable of VP8 encoding will ship in 2012.

In our next release, we are focusing on speed improvements and silicon cost reduction, as well as adding new pre-processing and error resilience functionality to the encoder. We intend to implement new software and hardware algorithms to allow both objective and visual quality optimizations. The next release is planned for early Q1 next year.

Aki Kuusela is Engineering Manager of the WebM Project hardware team.


1 Using a typical smartphone battery of 1500 mAh at the operating voltage of 3.5V, the H1 v4 encoder can theoretically encode 1080p video for 69 hours without charging the device.
2 Power consumption of the H1 encoder logic measured with the TSMC65nm LP process. SRAM or external RAM not included. ARM Cortex A9 CPU load measured using the libvpx Cayuga release on a quad-core ARM CA9 development board. Power consumption figure based on a 0.4 mW / MHz / core estimate.


VP8 Error Concealment in WebRTC

Wednesday, September 14, 2011 | 1:36 PM

The WebRTC project has posted a demo of their implementation of VP8 error concealment in libvpx. The visual improvement is pretty striking. Check it out at the WebRTC blog.


WebM at the Open Video Conference

Tuesday, September 6, 2011 | 3:00 PM

Members of the WebM team will be at the Open Video Conference (OVC) September 10th-12th in New York City. There are a number of sessions related to WebM and VP8 on the agenda (as well as an Open Media Developer's Working Group). If you're not registered to attend OVC already, what are you waiting for?


Third Generation VP8 Hardware Encoder IP “Cloudberry” Released

Tuesday, August 9, 2011 | 3:34 PM

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.