Video coding and cloud computing ?

The announcement of OnLive's "on-demand gaming" platform has generated a lot of interest. The basic idea is that a video game runs on a central server, not on your PC or games platform. You interact with the game via a broadband connection. The key to making this work is response time - the time lag between your input reaching the server and the updated game screen reaching your display. The gameplay video is rendered on the server and so a critical question is whether a high-definition, high framerate game display can be streamed to your display in real time.

OnLive claim that this can be done using video compression; i.e. compression of the rendered scene, streaming, decompression and display in a fraction of a second. If the platform matches up to the claims, then this might be the start of a trend towards cloud computing, in which high-performance computing is done on a remote server and the results (a rendered screen in this case) are sent to your display using video compression. Are current video compression algorithms good enough to support the cloud computing model ? We'll soon find out...

The ideal video codec ?

What would the idea video codec look like ? Here's a list of suggestions:

Quantization - "flat" scaling factor.

JianFeng Zheng sent me a good question about H.264 inverse transform and quantization. In the H.264 standard, there is an extra division by 16 that occurs in section 8.5.8 (in the 2007 version of the document) that I don't mention in my tutorial on the inverse transform. It's not easy to see where this factor comes from.

In the Bay area

I will be in the SF Bay area in August (10-14 Aug 09). If your company is working in the video coding space and you're keen to talk to me, let me know and I'll see if I can arrange a visit. - Iain.

H.264 quantization parameter

Quantization in an H.264 encoder is controlled by a quantization parameter, QP, that ranges from 0 to 51. QP is an index used to derive a scaling matrix. It is possible to calculate the equivalent quantizer step size (Qstep) for each value of QP (see my tutorial on H.264 4x4 transform). As QP increases, Qstep increases; in fact, Qstep doubles for every increase of 6 in QP. The logarithmic relationship can be seen in this graph of QP (x-axis, linear) vs. Qstep (y-axis, logarithmic).

Guest lectures

I will be giving a number of guest lectures on video coding over the next few months, in Rochester (NY), Aberdeen (UK), France and Spain. You can find out about arranging a lecture on H.264/AVC, video codec design and optimization, or emerging video coding topics, by visiting this page.

Modified transform tutorial

I have modified the tutorial on the H.264 4x4 transform and quantization processes and corrected a minor error. The new tutorial is available here.

H.264 vs MJPEG2000 vs MJPEG

Here's an interesting article:

What does the "H" in H.264 stand for?

I was asked this question today and I think it's a really good question: what does the "H" stand for in H.264 ?

New tutorial on transform and quantization

New white paper / tutorial posted on the derivation of the 4x4 forward + inverse transforms. Comments welcome. - Iain.

Fully Configurable Video Coding

I gave a plenary talk at IEEE System on Chip Conference last week and used the opportunity to launch our new research topic, Fully Configurable Video Coding. The idea is to enable complete, dynamic reconfiguration of a video codec. The new concept is attracting a lot of interest from industry and researchers. Here's some more information.

Article on video compression patents

I've posted a new article on video compression patents and IPR. The article gives an overview of the IPR position related to video coding and video compression, with particular reference to video coding standards and patent licenses.

New version of H.264/AVC overview

I have posted a new version of my introductory overview, "What is H.264?". Visit the page and please contact me with any comments.

New overview of H.264/AVC

I have written a new white paper that gives an overview of the H.264/AVC standard (here). It's intended to be a (relatively) non-technical introduction to the standard. The new paper describes what H.264 is, how an H.264 video codec works and why H.264 is an important industry standard. I'd be happy to receive any comments.

Topics for new tutorials

I will be posting a number of new H.264 tutorials over the next few months. I plan to update the existing tutorials (here) and add further topics. The first will be an "easy" introduction to the H.264/AVC standard. I'd welcome requests for new tutorial topics, so please add a comment if you'd like to suggest a topic for a tutorial paper.
- Iain


Welcome to the newly-published Vcodex site. This site contains resources, links and information about video compression and about my work. I have kept the existing resources (including the popular H.264 tutorials) and added new material. I will continue to add resources to the site. Contact me if you'd like to suggest or request further resources, tutorial topics, etc, or to find out more about what I do.