The workstation world may be full of CUDA-friendly visualization apps, but so far in the consumer world, transcoding is king for CUDA. Aside from Folding@home and SETI@home, every single application on Nvidia’s consumer CUDA list involves video editing and/or transcoding. Dig into Nvidia’s CUDA Zone site and you’ll discover other projects that promise good things for CUDA’s future in speech recognition, digital surveillance, audio editing/mixing, and gaming (see the UT3 PhysX mod pack with three CUDA-accelerated levels—Lighthouse, Tornado, and HeatRay). Today, though, we have video. Hopefully, we can extrapolate from the early results seen with these apps a similar sort of benefit waiting for a wider diversity of apps in the future.
I say that with some reservation. CUDA isn’t a magic wand that can accelerate everything. Even within the specific field of transcoding, only certain types of operations, such as motion compensation and discrete cosine transform (DCT), lend themselves to rampant parallelization. Many functions don’t. Developers don’t simply say, “hey, let’s coda for CUDA,” have a good chuckle over their wit, and get a 20x performance boost two or three weeks later. The application must contain functions that can leverage parallelism in a way that jibes with CUDA’s architecture.
CyberLink’s PowerDirector 7 was the first application to use the CUDA Video Encoder Library. Today, that library only supports H.264 encoding—an important point, as we’ll see in a minute. The excellence of H.264 as a codec has been amply documented, easily trouncing the likes of MPEG-2 for efficiency and image quality. The trade-off is that encoding and decoding with H.264 takes a crushing amount of processing power. This is why you haven’t seen integrated graphics chipsets try to tackle H.264 until very recently. The decoding load shoved onto the CPU in order to play a Blu-ray disc more or less redlined the system. Is it any wonder that encoding a Blu-ray rip into MPEG-4/H.264 can consume a modern PC for an entire day?
In the end, of course, H.264 is only useful if you can play back files in MPEG-4/H.264 format, such as on an iPod or a PC. Vendors like to assume that you’ll be using H.264 encoding for your unencrypted home videos, and a few of you just might. But whatever your content is, the fact remains that a lot of us now own high-def TVs and the days of disc media are numbered. The ways in which we’ll be able to enjoy HD media files will grow ever wider. If you’re not an everyday transcoder yet, your time may be coming soon, and in the foreseeable future, H.264 will play a big role in that.