H.264 Advanced Video Compression (also known as MPEG-4 Part 10) is widely accepted as a leading video compression standard. Other formats such as VC-1 and AVS can (arguably) offer similar performance but H.264 is definitely a front runner in terms of coding efficiency. First standardized in 2003, H.264/AVC is now a mature technology. So what is next ?
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...
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.
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).
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.
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.
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.
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.
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.