Friday, December 9, 2011

Picking the Right Driver

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.

Tuesday, November 15, 2011

Video Codecs 101


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.

Friday, November 11, 2011

Time of Dragonflies

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.

Wednesday, September 14, 2011

VP8 Error Concealment in WebRTC

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.

Tuesday, September 6, 2011

WebM at the Open Video Conference

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?

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.

Thursday, June 16, 2011

Expanding VP8 Hardware Decoder for Full WebP Support

With the recent launch of WebP support in Chrome, Picasa and Gmail, we're happy to announce that the third generation G-Series 1 VP8 hardware decoder, called “Chip Shot,” now offers full 256 Megapixel support for WebP still images. The G-Series 1 is available for licensing at no cost through the WebM Project hardware page

Chip Shot is part of our new golf theme for VP8 hardware decoders, as we noticed that most of the engineers working on the G-Series decoder are very fond of the sport.

The G-Series 1 decoder offers both 1080p 30 frames per second WebM and 36.5 Megapixels per second WebP processing at around 100 MHz clock rate. It is a full hardware implementation, requiring a mere 2 MHz host CPU load even when processing 1080p video or any size WebP images. The decoder uses 380 kilogates of logic area and 52 kilobytes of embedded single-port memory. The logic consumes a negligible 27 mW of power at 1080p resolution, ensuring many hours of video playback time on battery-operated devices.

G-series 1 Block Diagram

Based on the previous releases of the silicon-proven G-Series 1 decoder IP, Chip Shot is a low-risk solution for anyone who wants to enable WebM and WebP support on their chipsets or SOCs. Including all G-Series 1 versions that support WebM, we have released over 50 decoders to our semiconductor partners worldwide to date.
Posted by Aki Kuusela, Engineering Manager of the WebM hardware team.

Thursday, May 26, 2011

Introducing 3D WebM Support with NVIDIA 3D Vision

Today's guest post is from Alok Ahuja, who is Technical Lead for 3D Vision at NVIDIA.

Spearheaded by Hollywood, there has been growing interest in the past year to provide immersive 3D movie-viewing experiences on the web. At the same time, the number and quality of 3D-capable video camcorders on the market is growing fast, resulting in more 3D content creation.  In parallel, adoption of WebM video in HTML5 has also increased. For NVIDIA, these trends highlighted the need for a solution that would enable users to watch 3D WebM videos on the web.

Today, we're happy to announce that users can enjoy 3D WebM videos on NVIDIA 3D Vision™ enabled desktop and notebooks PC. We're achieved 3D WebM support by adding stereo flags to the WebM file container, which is a subset of Matroska's stereo 3D support. You can encode 3D WebM videos using the sample VP8 encoder or FFmpeg.

NVIDIA collaborated with Mozilla to enable 3D WebM playback in HTML5 <video> in Firefox 4. Now, you can use a standard HTML5 video player to watch 3D content using NVIDIA 3D Vision PC, or even on your HDMI 1.4 3D TVs with NVIDIA 3DTV Play™ software. We've also worked closely with YouTube to support WebM versions of YouTube 3D videos. Starting today, if you select the HTML5 3D viewing option on YouTube, most of the 3D videos that play in Firefox 4 will be WebM. You can also serve these videos on your website. For example, a YouTube 3D feed is available on NVIDIA's 3D Vision streaming website, 3DVisionLive.com.

3D video production is poised to expand much more rapidly and with it the need arises for a robust ecosystem for 3D content encoding and high-quality playback. We're excited to be a part of this ecosystem through our support for 3D WebM.

Friday, May 20, 2011

Next Wave of WebP Improvements Announced

Congratulations to the WebP developers! Announced today on the Chromium Blog: WebP improvements in compression, playback, tools, quality, application support and more. Read the post.

Thursday, May 12, 2011

Technical Details of the Blueberry Release

The following text assumes the reader has prior knowledge about video codecs and hardware designs.

We reached the aforementioned +0.82 dB PSNR gains by adding the following features to the encoder:
  • Improved encoding decisions and added more coding options at macroblock level
  • Enabled multiple motion vectors per macroblock (Split MV mode)
  • Added preference of “nearest”, “near” and “zero” type macroblocks that are less expensive to code than others
  • Added support for up to two reference frames in motion search (immediately previous and Golden frame)
  • Added deblocking filter macroblock mode adaptivity support
  • Added ¼ pixel precision motion estimation at 1080p resolution (previously supported only up to 720p)
  • Increased the amount of token probability tracking counters (enables more efficient entropy coding)
In addition, we added support for a programmable segment map, which enables psychovisual quality optimizations and defining region-of-interests. This means we can for example code the foreground objects (i.e. people) with a better quality (smaller quantizer) than the static background. We also added new hooks to the hardware that allows us to improve the quality of the encoder by later firmware upgrades that optmize our cost function algorithms - even after the chip has been manufactured.
Read more »

“Blueberry” VP8 Hardware Encoder IP Released

"Blueberry," the second release of the H1 VP8 hardware encoder, is now available through the WebM Project hardware page. Due to the short growing season and abundant light during the summer, Nordic blueberries are exceptionally sweet and rich with vitamins. The Blueberry encoder is not too bad either!

In Blueberry we focused primarily on improving the encoder for video calling use, as many of the semiconductor companies that have licensed the H1 encoder plan to use it in these use cases. Compared to Anthill, the average measured PSNR improvement was 0.82 dB, while SSIM figures were improved by 0.011. This is also shown in the following chart for 720p video call content, where Blueberry achieves the same quality as Anthill with 25% less bits!



In the next release, we plan to further improve the compression rate at the low bitrate range, as well as focus on new features such as two-pass encoding and visual optimization using segmentation maps. The third release is planned to be available at the end of Q2 2011.

The H1 IP has been licensed already to over twenty semiconductor companies, and we are looking forward to sharing the technology with new partners.

For licensing details about the H1, see our hardware page. For those interested in technical details, please keep reading here.

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

Thursday, May 5, 2011

Convert to HTML5 and WebM with Zencoder

Today's guest post is from Jon Dahl, CEO and co-founder of Zencoder.

Zencoder is a cloud service for video encoding. Through a simple API, we provide high-performance, high-quality video encoding for web and mobile, at any scale, small or large. Our customers range from broadcast media to online video publishers to UGC websites.

At Zencoder, we encourage our content publishers to support HTML5 video. Though HTML5 video is relatively new, it's now playable by more than 50% of Internet users, and that number is growing quickly.

We are committed to open technology and believe that WebM is the way forward for open video. Our open-source HTML 5 video player, VideoJS, makes it easy to play WebM content in web browsers and mobile devices--but WebM encoding is needed too.

That's why, starting today, Zencoder is offering promotional pricing on WebM encoding. Until June 5th, 2011, all WebM encoding will be billed at 50% off of our published prices ($0.02-$0.05 per minute of video).

We also want to make it easy for publishers to convert large content collections to WebM, so we're also launching a new batch video encoder. This service makes it easy to transcode entire content libraries to WebM, but also to HD or for HTTP adaptive streaming.

In the coming year, more publishers will want to offer WebM support, and we hope Zencoder can help them make a seamless entry into the world of open video.

Monday, April 25, 2011

Introducing the WebM Community Cross-License Initiative

It's been almost a year since Mozilla, Opera, Xiph.Org, Matroska, Google and over 40 other partners launched the WebM Project with the goal of developing a world-class, open source media format for the web. The open development model has led to rapid quality improvements in WebM, and the format is now supported in HTML5-capable browsers including Firefox, Opera, Chrome and Internet Explorer. Leading silicon vendors are adding WebM support to their chipsets,and some hardware implementations are already on the market.

A key measure of success for WebM is a diverse range of contributors. For example, we are already seeing a growing number of code contributions from independent developers as well as independent implementations.

We are pleased to now offer another way to contribute, through a licensing initiative that allows the community to help further support the WebM Project. Google, Matroska and the Xiph.Org Foundation make the components of WebM openly available on royalty-free terms. Today we're announcing the formation of the WebM Community Cross-License (CCL) initiative with 17 founding members. Organizations that join the CCL agree to license patents they may have that are essential to WebM technologies to other members of the CCL.

CCL members are joining this effort because they realize that the entire web ecosystem--users, developers, publishers, and device makers--benefits from a high-quality, community developed, open-source media format. We look forward to working with CCL members and the web standards community to advance WebM's role in HTML5 video.

The founding members of the CCL initiative are:
To get more information about the WebM CCL, visit www.webm-ccl.org.

Matt Frost is Senior Business Product Manager for the WebM Project.

Tuesday, March 22, 2011

Firefox 4, bringing WebM support to the web

Today we released Firefox 4, the latest browser from Mozilla. There's a lot to love in Firefox 4 - better performance, hardware acceleration and a streamlined interface. All of that is great, but I'm here to talk about WebM support.

This is our first release to include support for WebM. We've been involved with WebM since it was launched and have contributed to its development. It's been in our Mozilla Nightly builds for many months. As part of that, you'll find WebM all over our sites. For example, the Firefox 4 What's New video is in WebM. WebM Video is part of many of our awesome Firefox 4 demos. And if you're part of the Youtube HTML5 beta, a large percentage of the videos you view will be delivered with WebM.

To understand why this is really important you need to understand global market share numbers for browsers. According to StatCounter, Firefox accounts for about 30% market share - or nearly a third of all browser users. When you combine that with Chrome and Opera it means that about 50% of internet users will have access to the high-quality WebM codec over the next few months, following the Firefox 4 adoption curve.

We've supported HTML5 and standards-based video since Firefox 3.5 with Theora and Vorbis support, and we're happy to add WebM to that mix since it offers an even higher-quality option for the web.

--Chris Blizzard, on behalf of Mozilla

Labels:

Thursday, March 17, 2011

VP8 "Constrained Quality" (CQ) Encoding Explained

In the Bali release post, we mentioned a that we've added a new encoding mode called "constrained quality" (CQ) to the VP8 Codec SDK (libvpx).

The idea for CQ mode arose as we began testing approaches for encoding WebM versions, in multiple resolutions, of every file in the YouTube corpus. Approaching video encoding on such an immense scale sets one to thinking very carefully about how every bit is used; wasting even small amounts of data across many millions of files adds up very quickly, translating to higher storage and bandwidth costs.

After trying a few approaches it became apparent that we needed not a better way to allocate bits within each WebM file, but rather a better way to distribute them across all the WebM files. The result was CQ mode.

I presented the slides below at the February WebM Summit to explain CQ in general terms and summarize its benefits to content publishers when applied across large collections of WebM files. I hope you find it informative and welcome your feedback in the comments.

Paul Wilkins is a Senior Software Engineer for the WebM Project.

Wednesday, March 16, 2011

Introducing WebM in Internet Explorer 9

Today we're making available a preview release of Microsoft Media Foundation (MF) components for WebM. Microsoft has also announced the components on the IE Blog and posted a demo page.

As Internet Explorer General Manager Dean Hachamovitch wrote last year on the Windows Blog, when these components are installed in Windows they enable rendering of WebM media in Microsoft Internet Explorer 9. Because the components are installed directly in Windows, the components can also render WebM in other applications that support MF, such as Windows Media Player 12 on Windows 7.

To download the component installer package, visit the IE9 page on the WebM Project site. After installing the components, IE9 will be able to render HTML5 pages that include WebM video or audio media, such as the YouTube HTML5 experiment (see the YouTube instructions on the WebM Project site).

Microsoft Media Foundation is a powerful and flexible API that allowed us to seamlessly integrate WebM with Windows, providing a great HTML5 user experience in IE9. Microsoft collaborated closely with us to make the components fully compatible with HTML5 in IE9, so features such as the <video> tag and its canPlayType method are fully enabled for WebM. Our thanks go out to the Microsoft engineers who provided technical assistance and hosted our team in Redmond last month.

We hope you enjoy watching WebM in IE9! We value your comments and feedback and, as always, developers are welcome to contribute to the code.

Matthew Heaney is a Software Engineer for the WebM Project.

Monday, March 14, 2011

Introducing "Anthill," the First VP8 Hardware Encoder IP Release

Last week the WebM Finland team finalized our H1 hardware RTL design. The H1 is the world’s first VP8 hardware encoder. This initial release, which we're calling "Anthill," is now available through the WebM Project hardware page. Google does not require payment of any license fee or royalty in connection with use of the H1 encoder RTL.

Why "Anthill"? 77% of Finland is covered by forests, and the Finns are very fond of them. The Finnish freedom to roam rights allow anyone to wander in the woods, and pick wild berries, flowers and mushrooms. We thought it would be fitting to alphabetically name each VP8 hardware release with things that can be found amidst our Finnish evergreens.

The H1 encoder offloads the entire VP8 video encoding process from the host CPU to a separate accelerator block on the SOC. It significantly reduces power consumption and enables encoding of 1080p resolution video at full 30 FPS, or 720p at 60 FPS. Without a hardware accelerator like the H1, modern multi-core mobile devices can only encode video at around VGA 25 FPS, and are not able to do much else while doing that.

To provide an idea of our hardware's capabilities we compared it to the WebM Project's VP8 software encoder* (libvpx). The figures below show the required processor cycles for VGA resolution video at 30 frames per second, and are scaled from the FPS speed reached when running the Tegra2 at 1 GHz#.

Note: Power consumption measurements are for the ARM core vs. H1 encoder core in TSMC 65nm technology. ARM power consumption is estimated using the 65nm figure given at http://www.arm.com/products/processors/cortex-a/cortex-a9.php. H1 encoder core is measured using RTL netlist and Synopsys Power Compiler.

In terms of quality, hardware implementations of real-time encoders are typically behind those running on software, as adaptive algorithms related to motion search and mode selection (or exact rate-distortion optimizations) are often not feasible options in hardware. The following graph shows PSNR quality metrics for a 720p video conferencing use case, comparing the H1 Anthill release to the libvpx Bali release in different complexity modes (higher PSNR is better).



These graphs show that the H1 hardware encoder can produce good quality with very low power consumption using almost no clock cycles from the CPU. In the next release, we are planning to narrow the quality gap between the libvpx "Best" mode and the hardware implementation, while cutting down the required power even further. The next release is planned to be out in early Q2.

Several top-tier semiconductor partners have already started to integrate the H1 IP into their next chipsets, and we’re eager to share the technology with new partners.

For technical and licensing details about the H1, see our hardware page.

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

*libvpx Aylesbury and Bali software encoder releases running NVidia Tegra2 development board with dual-core ARM Cortex A9 processors. In the test, libvpx was using both cores with the slowest and fastest real-time settings (-cpu-used=-5 and -cpu-used=-16).

#For example, if the Tegra2 ran at 1000 MHz to achieve 6 FPS, 30 FPS requires 5000 MHz (30/6=5).

Tuesday, March 8, 2011

Next Up, libvpx "Cayuga"

We're targeting late Q2, 2011 for our next named release of the VP8 Codec SDK (libvpx). We're calling this release "Cayuga" in honor of our project's roots in New York state. Also because it's fun to say. Go ahead, say it: Cayuga.

We will continue to focus on encoder speed in Cayuga. Though our Bali encoder is up to 4.5x faster than the initial VP8 release (at "Best" quality mode), there are more speed improvements to be had. As always, we'll continue to improve video quality in the encoder.

We welcome contributions from developers, so if you have ideas for improving libvpx speed or quality, get coding!

John Luther is Product Manager of the WebM Project.

VP8 Codec SDK "Bali" Released

Today we're making available "Bali," our second named release of the VP8 Codec SDK (libvpx). Note that the VP8 format definition has not changed, only the SDK.

You can download the Bali libvpx snapshot (version 0.9.6) from the WebM Project Downloads page or clone it from our Git repository.

For Bali we focused on making the encoder faster while continuing to improve its video quality. Using our previous releases (our initial 0.9.0 launch release and "Aylesbury") as benchmarks, we’ve seen the following high-level encoder improvements:
  • "Best" mode average encoding speed: On x86 processors, Bali runs 4.5x as fast than our initial release and 1.35x faster than Aylesbury.
  • "Good" mode average encoding speed: Bali is 2.7x faster than our initial release and 1.4x faster than Aylesbury.
  • On ARM platforms with Neon extensions, real-time encoding of video telephony content is 7% faster than Aylesbury on single core ARM Cortex A9, 15% on dual-core and 26% on quad core.
  • On the NVidia Tegra2 platform, real time encoding is 21-36% faster than Aylesbury, depending on encoding parameters.
  • "Best" mode average quality improved 6.3% over Aylesbury using the PSNR metric.
  • "Best" mode average quality improved 6.1% over Aylesbury using the SSIM metric.



    For readers curious about the technical details, here are some detailed improvements we made in the Bali encoder:
    • Implemented a new "constrained quality" (CQ) data rate control mode. Within a large set of videos, this mode better allocates bits from videos where they can't provide significant visual benefit to videos where they can.
    • Achieved more consistent high video quality across entire video clips. We now use a better two-pass rate control option that no longer favors early sections of videos.
    • Greatly improved quality on "noisy" source videos through temporal filtering of alternate reference frames.
    • Improved visual quality of scene transitions by allocating fewer bits to the transition itself and more to the frame immediately after the transition occurs.
    • Achieved much faster encoding by better predicting motion vectors, improving algorithms for selecting predictors for small blocks.
    • Added or rewrote assembly code for functions related to alternate reference (alt-ref) frame, noise reduction, quantization and sum absolute difference to improve performance.
    • Improved usage of multiple processor cores by cutting the overhead related to thread synchronization.
    • Made multi-threading optimizations on ARM platforms to improve real-time encoding speed.
    Thanks to everyone who contributed to Bali, and welcome to our newest authors, Andoni Morales Alastruey and Gaute Strokkenes.

    John Luther is Product Manager of the WebM Project.

    Monday, February 14, 2011

    VP8 for Real-time Video Applications

    With the growing interest in videoconferencing on the web platform, it's a good time to explore the features of VP8 that make it an exceptionally good codec for real-time applications like videoconferencing.

    VP8 Design History & Features

    Real-time applications were a primary use case when VP8 was designed. The VP8 encoder has features specifically engineered to overcome the challenges inherent in compressing and transmitting real-time video data.
    • Processor-adaptive encoding. 16 encoder complexity levels automatically (or manually) adjust encoder features such as motion search strategy, quantizer optimizations, and loop filtering strength.
    • Encoder can be configured to use a target percentage of the host CPU.
      Ability to measure the time taken to encode each frame and adjust encoder complexity dynamically to keep the encoding time per frame constant
    • Robust error recovery (packet retransmission, forward error correction, recovery frame/new keyframe requests)
    • Temporal scalability (i.e., a single video bitstream that can degrade as needed depending on a participant's available bandwidth)
    • Highly efficient decoding performance on low-power devices. Conventional video technology has grown to a state of complexity where dedicated hardware chips are needed to make it work well. With VP8, software-based solutions have proven to meet customer needs without requiring specialized hardware.
    For a more information about real-time video features in VP8, see the slide presentation by WebM Project engineer Paul Wilkins (PDF file).

    Commercially Available Products

    Millions of people around the world have been using VP7/8 for video chat for years. VP8 is deployed in some of today's most popular consumer videoconferencing applications, including Skype (group video calling), Sightspeed, ooVoo and Logitech Vid. All of these vendors are active WebM project supporters. VP8's predecessor, VP7, has been used in Skype video calling since 2005 and is supported in the new Skype app for iPhone. Other real-time VP8 implementations are coming soon, including ooVoo, and VP8 will play a leading role in Google's plans for real-time applications on the web platform.

    Real-time applications will be extremely important as the web platform matures. The WebM community has made significant improvements in VP8 for real-time use cases since our launch and will continue to do so in the future.

    John Luther is Product Manager of the WebM Project.

    Monday, January 24, 2011

    VeriSilicon and WebM Support

    Guest blogger Tomi Jalonen is Director of Product Marketing for Hantro video IP at VeriSilicon

    2011 is shaping up to be an exciting year at VeriSilicon Holdings in terms of WebM support. With the new year upon us, I want to share some updates about the work we are doing at VeriSilicon to move the WebM platform forward.

    VeriSilicon has been a longtime partner of On2/Hantro (Hantro is the video IP brand that Google acquired with On2 Technologies) and we were among the first hardware partners to commit to WebM video when the codec was open-sourced last year. After promoting WebM to the semiconductor industry during 2010, we're excited that at CES 2011 the first tablet supporting WebM with full 1080p resolution was demonstrated. VeriSilicon licensed the WebM IP to this tablet manufacturer and provided engineering support to bring the technology to the showroom floor.

    In addition to licensing IPs, this year we'll be taking the WebM experience a step further by taping out several application processor chips--including the WebM video IP for Android phones, xPad, and Google TV--to accelerate the deployment of WebM and HTML5 video playback into the market.

    The entire VeriSilicon team is very excited about the future of WebM. We believe that the availability of high-quality, optimized WebM hardware video IP, combined with other VeriSilicon audio and multimedia IP, will be a key ingredient for semiconductor companies to create competitive consumer products. After the launch of WebM, the interest in hardware-accelerated WebM video has been immense and we will continue working with the WebM Project to enable WebM and VP8 in many more chips in 2011.

    Wednesday, January 19, 2011

    Free Software Foundation Supports WebM

    We're excited that the Free Software Foundation (FSF) has joined the growing community of WebM supporters. You can read the FSF's announcement "No double standards: supporting Google's push for WebM" at their web site.

    Monday, January 10, 2011

    Availability of WebM (VP8) Video Hardware IP Designs

    Hello from the frigid city of Oulu, in the far north of Finland. Our WebM hardware development team, formerly part of On2 Technologies, is now up-to-speed and working hard on a number of video efforts for WebM.
    • VP8 (the video codec used in WebM) hardware decoder IP is available from Google for semiconductor companies who want to support high-quality WebM playback in their chipsets.
    • The Oulu team will release the first VP8 video hardware encoder IP in the first quarter of 2011. We have the IP running in an FPGA environment, and rigorous testing is underway. Once all features have been tested and implemented, the encoder will be launched as well.
    WebM video hardware IPs are implemented and delivered as RTL (VHDL/Verilog) source code, which is a register-level hardware description language for creating digital circuit designs. The code is based on the Hantro brand video IP from On2, which has been successfully deployed by numerous chipset companies around the world. Our designs support VP8 up to 1080p resolution and can run 30 or 60fps, depending on the foundry process and hardware clock frequency.

    The WebM/VP8 hardware decoder implementation has already been licensed to over twenty partners and is proven in silicon. We expect the first commercial chips to integrate our VP8 decoder IP to be available in the first quarter of 2011. For example, Chinese semiconductor maker Rockchip last week demonstrated full WebM hardware playback on their new RK29xx series processor at CES in Las Vegas (video below).

    Note: To view the video in WebM format, ensure that you've enrolled in the YouTube HTML5 trial and are using a WebM-compatible browser. You can also view the video on YouTube.



    Hardware implementations of the VP8 encoder also bring exciting possibilities for WebM in portable devices. Not only can hardware-accelerated devices play high-quality WebM content, but hardware encoding also enables high-resolution, real-time video communications apps on the same devices. For example, when VP8 video encoding is fully off-loaded to a hardware accelerator, you can run 720p or even 1080p video conferencing at full framerate on a portable device with minimal battery use.

    The WebM hardware video IP team will be focusing on further developing the VP8 hardware designs while also helping our semiconductor partners to implement WebM video compression in their chipsets. If you have any questions, please visit our Hardware page.

    Happy New Year to the WebM community!

    Jani Huoponen, Product Manager
    Aki Kuusela, Engineering Manager