H.264 AVC HD Decoding
Until today, ATI haven't had a supported H.264 AVC decoder that used Avivo hardware, that's publically available. Partnering with Cyberlink, a decoder has been developed that lets Avivo-supporting Radeon X1K graphics boards decode H.264 AVC, a format that's to be used in HD-DVD, Sony PSP, iPod Video, Sony Playstation 3, HD digital TV broadcasts worldwide. Clearly a large amount of AVC content is to be authored over the coming years, so it's vital that video products for the PC accelerate the decoding of AVC video, especially in hi-def resolutions.H.264 AVC, and to some extent the simpler ASP version, is massively computationally expensive to decode, to the point where even the fastest commercially available x86 processors, costing $1000 or more, can't decode a 1080p HD AVC stream in real-time without dropping frames all over the place. We outlined the GPU support Avivo hardware supposedly has in our technical overview, here.
So given a few hundred quids worth of CPU, you might be able to do mainline/ASP decoding of H.264 720p in real-time, but with AVC you really need to give your CPU a hand. NVIDIA have a display driver available that implements a H.264 decoder for GeForce 7800 boards, while ATI are relying on Cyberlink's decoder to do much the same thing for their X1K hardware.
ATI are clear in their message that the various X1K SKUs are different in their ability to help the decode process and process H.264 AVC at HD resolutions in real-time, with only the Radeon X1800 XL or XT officially supported for decoding 1080p without a problem, the X1600 series limited to 720p and X1300 stuck doing SD resolution AVC at 480p. We can therefore conclude that the Avivo technology block in X1K-series boards does rely on the GPU's shader hardware to decode this video format with suitable help from a decoder, and that help scales with the GPU's general 3D ability.
That's quite the shame, since a passively cooled X1300 that could do 1080p AVC would be quite the cheap, forward-looking piece of MCE hardware, especially given the interlaced video processing performance that's now available from CATALYST 5.13.
To test, we took the beta release of the Cyberlink/ATI H.264 decoder and a Radeon X1800 XL, and a GeForce 7800 GTX with 81.95, and fed each H.264 AVC content at 1080p using Windows Media Player 10 on Windows XP Pro. Each decoder uses a DXVA interface for video acceleration. The test CPU was an Athlon 64 4000+ (2.4GHz, 1MiB L2) and the system had 2GiB of DDR400 memory, an nForce4 SLI mainboard and a 300GB Maxtor DiamondMax 10 SATA drive with which the video was streamed from, connected to the nForce4's native SATA controller.
With H.264 AVC decoding pretty much scaling with the video bitrate and therefore the work done to decode at that given volume of data, it's worth noting that our video has a very modest 9Mbit/sec bitrate.
H.264 AVC Decoder Performance
Both video boards can play it back without dropping frames, although the ATI hardware has the significantly lower CPU usage while doing so, showing that it offloads more of the decoding process from the CPU. Interestingly, despite wanting to lock down the X1600 series to 720p video, an X1600 XT has no issues decoding our 9Mbit/sec AVC HD stream at 1080p, too, with much the same CPU usage as the 7800 GTX. However, with HD streams for broadcast using H.264 AVC up in the 20Mbit/sec range or more for 1080p, to maintain video quality, it remains to be seen how any available consumer hardware, GPU and CPU combined, will cope with that.
We'll come back to that in the new year. We'll update you on how soon the Cyberlink decoder will be available to Radeon X1K owners as soon as we're aware.