Avivo Decode to Display

The rest of the video pipeline, from video codec decode to the display, relate to the hardware capabilities of the graphics core as many of the video decode stages are shifted away from the CPU on to the graphics card and the graphics is responsible for driving the actual display. From this point in, the Avivo functionality discussed here pertains to ATI's next generation of graphics boards that are soon to be released.

Decode

Generally speaking there are multiple processing "blocks" to decoding an encoded video - initially, when PC's were beginning to be used as multimedia devices, each of these processing blocks were handled by the CPU, which resulted in high CPU utilisation and potentially frames dropped. Over the years, more of the processing blocks have moved across to the graphics card such that, coupled with today's processors, watching an MPEG-2 DVD will only have a few percent CPU utilisation. Current ATI graphics cards have the capabilities to accelerate decoding on MPEG-2, WMV9 (Microsoft's high definition codec), and DiVX, however with the impending release of newer, high density optical media, such as Blu-ray and HD-DVD, newer video compression formats will become important.

In relation to Blu-ray and HD-DVD specifically, an encoding method known as H.264 has been adopted. H.264 is importand because it increases the general quality of the encoded video, whilst simultaneously increasing the compression ratio by taking advantage of the greater computational processing available currently. Furthermore, High Definition Televisions (HDTV) are taking off around the world, especially in the US where they are being mandated soon, giving resolutions of 1280x720 progressive scan (720p) and 1920x1080 interlaced (1080i) [Note: an additional 1080p mode can be supported by some sets, but this is not an industry standard yet] which leaves the curious situation where there is now plenty of Television broadcast material available in high definition, while DVD movies are still at older, standard resolutions - Blu-ray and HD-DVD media along with H.264 encoding aim to redress this by storing movie content at native HDTV resolutions.


Simplified diagram of MPEG-2 processes vs H.264


The above block diagram indicates that many of the stages for H.264 exist in MPEG-2 encoding, however there are key differences even between those that exist in both video formats. Here is a quick overview of some of the differences:

  • Entropy Encoding: This function analyses the frequency of patterns within the movie data and then encodes them into a smaller form. The CABAC (Context-based Adaptive Binary Arithmetic Coding) can add between 5%-20% compression over MPEG-2's entropy coding, but is more computationally intensive.
  • Variable Block Sizes: Video encoding often relies on block based compression schemes (much like texture compression algorithms do), with MPEG-2 relying on a 16x16 pixel block size. With a fixed, large, block size, detail can be lost so H.264 allows a variable block compression scheme to be used. H.264 allows different block sizes to be mixed across the frame, from blocks of 16x16 pixels going down to 4x4 block sizes, meaning that areas of fine detail can utilise the smaller block compression ratio's, whilst large patches of of low detail can still use high compression.
  • In-loop Deblocking: Sometimes the boundaries between the compressed blocks can become visible in an MPEG-2 compressed video, so Deblocking can be used as an optional processes, if there is enough computational resource (current graphics boards enable this functionality), to smooth the edges of these boundaries. H.264 introduced In-loop deblocking meaning that the deblocking process is now part of the of the decoding process and is a requirement for playback.

With the increase computational requirements of H.264 there is the issue that current CPU's are not sufficient to cater with all of the processes required for high definition H.264 playback. The other issue is that currently it is reasonable to assume that most laptop battery life will at least last a whole DVD movie playback, in part due to the off-loading of video decode from the CPU by the graphics, but without reducing the CPU load for H.264 decoding this would not be the case for future laptops equipped with Blu-ray or HD-DVD drives.


ATI H.264 Hardware Acceleration


As ATI have been demonstrating over the previous months, their next generation of graphics chips will be providing hardware acceleration for much of the H.264 decode process, which should reduce the CPU overhead - ATI are suggesting that the CPU load is reduced to around 30% on a 3.2GHz Pentium. The Avivo decode engine will also assist in the acceleration of MPEG-4 and VC-1 codecs.