Microsoft has been granted a key patent that defines one of the primary uses of graphics processors in the future: Video encoding. Since the dawn of GPU-accelerated computing in the consumer space, it has been video encoding that was almost exclusively used to demonstrate the computing horsepower that is hiding in graphics processors. By using GPUs, which often integrate hundreds of individual processors, video tasks can be run massively parallel, while only two, four or eight streams can be run on a CPU, depending on the number of cores.
Microsoft applied for the patent titled “Accelerated video encoding using a graphics processing unit” in October 2004 and was granted a patent to its invention today. It outlines a concept where the GPU is used, among others, to perform motion estimation in videos, the use of the depth buffer of the GPU, to determine comprising, collocating video frames, mapping pixels to texels, frame processing using the GPU and output of data to the CPU.
The patent appears to cover all bases of GPU-accelerated video encoding, which hands Microsoft the rights to a major technology that already impacts prosumer applications and is making its way into the mainstream as we are moving into HD and beyond. Especially with the arrival of 3D, video encoders will depend on GPU acceleration to achieve reasonable video rendering times.
The beginnings of this technology and availability to the consumer dates back to the availability of DirectX 10 and Windows Vista in 2007. Nvidia began supporting what is generally described as GPGPU (general purpose GPU) computing or stream computing back in 2008 with the release of its Geforce 8800GTX graphics card and underlying CUDA architecture. AMD’s ATI unit followed a few months later and began offering GPU acceleration with its HD 2000, 3000 and 4000 graphics cards. The first GPU-accelerated video-encoder we know of was Elemental’s Badaboom, which is now potentially infringing Microsoft’s patent.
Microsoft has embraced the technology in its products as well, even if the company is not talking much about it. Windows 7 integrates native support for GPU-accelerated video transcoding via the DirectX Compute API.