Thursday, November 15, 2012

Using WebM to power the YouTube app for Nintendo Wii

When we began building the new YouTube app for Nintendo Wii, we wanted to make video playback smooth and beautiful. This meant squeezing the most available power from the console CPU and fitting the video decoding process within the tight bounds of available memory. After trying out several video encoding formats on Wii, we found that 360p WebM encoding performed the best. With the largest install base of current generation consoles, YouTube on Wii is the largest deployment of WebM video in the world today.

WebM is particularly well-suited to devices where available memory is limited, because of its technical approach to video encoding. VP8, the video codec in WebM, uses reference frames (called alternative reference frames, or "alt-ref") from which adjacent video frames are derived and compressed. This type of compression is commonly used in modern video encoding schemes, but VP8 uses the technique with particular efficiency, which results in a smaller memory footprint and smoother video playback on Wii.

We went one step further and performed low-level optimization of the VP8 decoder specifically tuned to the Wii’s processor. This included: using paired-single floating point operations to perform motion compensation, loop filtering, and idct; using the GPU to do color conversion and scaling; and dcbz instructions to copy buffers. This kind of
optimization is available to anyone, as the VP8 code is open source under a BSD license.

We’ll keep looking into other ways we can use WebM, so stay tuned on this blog to learn more.

Fritz Koenig, Engineer, recently watched Phantogram - "Don't Move", and Matt Darby, Product Manager, recently watched “JP Auclair Street Segment.”