Playing video on the PC used to be a non-trivial task in the past. A hardware decoder was required even to play such a simple (by today’s measures) format as MPEG-1 at a resolution of 352x288 pixels. It is only after some considerable growth in the computing capacity of CPUs and after the release of graphics cards capable of hardware scaling and YUV/RGB color space conversion that the playback task could be transferred to the CPU and graphics card.
The problem emerged anew with the expansion of the DVD standard that utilized the MPEG-2 video format. A MPEG-2 stream consists of three kinds of frames: I(ntra-coded)-frames, P(redictive-coded)-frames, and B(idirectionally predictive-coded)-frames. An I-frame is created by compressing a frame from the original video material and inserted into the encoded stream with a certain frequency, usually one I-frame per fifteen P- and B-frames. P- and B-frames are created using reconstructed frames and a so-called motion vector which is assigned to each 16x16 pixel block of the reconstructed frame.
The use of information from previous (for P-frames) and from previous and next frames (for B-frames) helps increase the compression degree, but requires more computing power from the decoder. Besides, the decoder has to perform an inverse discrete cosine transform (iDTC) to uncompress I-frames which are compressed using this algorithm. Thus, the graphics card must support hardware motion compensation and iDCT, besides hardware scaling and color space transformation, for the computer to be able to reproduce MPEG-2 at an acceptable CPU load.
Eventually, all graphics cards acquired features necessary to play MPEG-2/DVD easily. But now there have appeared new compression methods that ensure better quality but also require more hardware resources. Coupled with the advancement of HD video content, the ability of the graphics card to decode and play high-definition formats becomes an issue again since software playback of such video may get even the strongest CPU to its knees. So we decided to carry out a comprehensive test of graphics cards from AMD/ATI and Nvidia to check out how much they offload the CPU while playing various video formats, including high-definition ones. We’ll start out with a brief review of technologies implemented in those cards.