NVIDIA brings hardware H.264 decoding to Linux
One area where Linux has traditionally been quite weak is in hardware-accelerated video playback, and which Nvidia is trying to fix.
The X.Org X server certainly has features that help, like the XVideo (or Xv) extension for hardware video overlays, but that just helps with the video display -- it's still up to the CPU to do all of the decoding.
There is one extension that supports hardware decoding, called "XVideo Motion Compensation", or XvMC, but it only supports the older MPEG1 and MPEG2 formats, has limited hardware support, and has never really worked well enough for users to rely on.
NVIDIA brings PureVideo to Linux
Now, NVIDIA has released an alternative -- the Video Decode and Presentation API for Unix, or VDPAU, which supports hardware decoding of video, including modern HD formats like H.264, as well as hardware post-processing, which improves video quality by smoothing out compression artifacts and upscaling video to higher resolutions.
VDPAU effectively covers all of the features covered by NVIDIA's PureVideo system under Windows. The new features are currently available in NVIDIA's beta 180-series drivers on GeForce 8-series hardware or higher, and NVIDIA has also released patches that enable VDPAU support in the popular MPlayer video player.
Early benchmarks are showing great results, with a significant reduction in CPU usage while decoding HD content. That'll be of particular benefit to laptop users, where decreased CPU usage corresponds directly to a reduction in heat output and power consumption.
Skipping the standards process
Unfortunately, while VDPAU should benefit a number of users, it will also create a divide in the Linux community. NVIDIA has released documentation that will allow other vendors to add VDPAU support to their own drivers, but so far, no-one has announced any plans to do that. On the contrary, AMD is working on its own new extension, called "XVideo Bitstream Acceleration", or XvBA, which will support hardware video decoding on 4000-series Radeon chips, while Intel is extending XvMC to support newer video formats, as well as introducing its own creatively titled "Video Acceleration API", or VA-API.
That creates a very unpleasant situation for developers of video playback software, who are left with three options, none of which are ideal:
* stick to decoding everything on the CPU, ignoring the new features and their benefits for users
* add support for all of the options, at the risk of significantly increasing the time required to maintain the code, or
* wait until the vendors decide upon a common solution, which seems very unlikely in the short term
Open-source fanatics need not apply
The other concern is that both NVIDIA and AMD plan to support their APIs only in their closed-source drivers. Only Intel's solution will be available as open-source, though there's been no solid indication as to when the code will be ready for prime-time.
At this point, it's hard to know what impact this three-way API showdown is going to have, but it definitely has the potential to slow down development of video playback software, as well as baffling users that just want to watch their videos. Ultimately, unless these vendors can agree on a common solution, we'll probably end up right back where we started, with so few applications supporting the new features that they might as well not exist at all.
Other Blog Entries written by Leigh Dyer:
Thoughts on this article? Add a comment below.
Comments: 1
|
saywot
Dec 1, 2008 8:43 PM
|
As a determined Linux users I'd like to see what the open-source community can come up with. I've gone almost 4 years without having to use the ATI or nVidia drivers that are re-packaged for Linux users, they created more problems for me than they have solved (up to and including losing the window server altogether) |