Enable PureVideo under Linux (MPEG-4 / H.264 XvMC)

I’m with you. I believe publishing the codecs could help nvidia commercially, and I don’t believe they need lose commercial control of their Intellectual Property.

From a personal-interest point of view, a well documented open API would be a wonderful start. I’m into image and video processing.

Right now, I’m developing gimp plug-ins to encourage people to investigate CUDA, and to enable the gimp to be the ‘fastest image processing tool on the planet’ (well, on the desk top). The gimp makes a great environment for research and experimentation in this area.

I’d be willing to put time and effort into video-processing development if the nvidia API’s are accessible from CUDA, and I suspect a bunch of other developers would put in time too.

Sadly, in my (30 years) experience, it usually takes a near-death experience for corporate attitudes to change unless there is a clear, near-term path to money,

I have no inside knowledge, but NVIDIA may have less enthusiasm for open source codecs because of the current US commercial approach to Digital Rights ‘Management’ (i.e. managing to curtail consumers fair-use rights). I think this may have a backlash in parts of Europe where Hollywood, Microsoft, etc. have less political influence. Certainly my friends and colleagues have abandoned MS in favour of Linux for Home Theatre platforms, and the knock-on effect is they only buy hardware which has adequate open source support.

I strongly believe that hardware vendors have the clearest path to open source software benefits. Intel have done it and support non-commercial developments with their compilers. AMD/ATI are working on CTM (at sourceforge) and have declared a more friendly stance to open source software (I will watch follow-through actions, of course).

To be fare to NVIDA, do support open source, so they have an existing business rationale, process and experience of open source. Also, they only have finite resources, so we may be asking for something lower in their list of priorities.

Open API’s to the video hardware would be a start for me, as I’m interested in alternatives to MPEG, but source for MPEG codecs would be great if API documentation were available too (documentation and a working use case? Whoop, whoop :D )

Maybe we need to help nvidia make this move, and take some of the risk out of it? You’re project sounds like a possible path for nvidia. I can think of other commercially useful paths too.

NVIDIA, what would you need to feel comfortable releasing codec source code and/or hardware acceleration API’s and documentation? Or is it in the works?

Garry

Though not directly about NVIDIA still a couple of interesting and related articles:

ATI Has Open-Source Drivers Too
[url=“ATI Has Open-Source Drivers Too - Phoronix”]http://www.phoronix.com/scan.php?page=article&item=700&num=1[/url]

The Truth About ATI/AMD & Linux
[url=“The Truth About ATI/AMD & Linux - Phoronix”]http://www.phoronix.com/scan.php?page=article&item=735&num=1[/url]

BUMP! AMD/ATI has now put some presure on NVIDIA by going out an publicly announced that AMD/ATI will from now on officialy do all it can to support the open source community in regards to open source device drivers, API, and SDK. AMD/ATI has begun this campaign by given out full specification (without NDA) for ATI R500 GPUs and above to the X.org driver developers, (and as I understand it they will also soon release the specifications for the R600 media decoder).

John Bridgman and Matthew Tippett are announcing AMD’s open source plans, specifications without NDA. 2D very soon, 3D coming when the legal issues have been taken care of. Specs for the r3xx core will probably be coming later on down the track.

[url=“Index of /docs/AMD”]http://www.x.org/docs/AMD/[/url]
[url=“http://airlied.livejournal.com/50187.html”]http://airlied.livejournal.com/50187.html[/url]
[url=“AMD to open up graphics specs [LWN.net]”]http://lwn.net/Articles/248227/[/url]
[url=“http://www.0xdeadbeef.com/weblog/?p=302”]http://www.0xdeadbeef.com/weblog/?p=302[/url]
[url=“AMD: Accelerating Open-Source Drivers? - Phoronix”]AMD: Accelerating Open-Source Drivers? - Phoronix

it might take 6-months to a year before end-users see the big difference this will make but there is no doubt that soon both the open source and closed source binary drivers for AMD/ATI graphics chips will soon be better than todays NVIDIA respective device drivers.

I implemented the Dirac codec using CUDA and reached a 15x to 20x decoding speedup on HDTV video, this means that it’s very worthwhile to implement video codecs in CUDA yourself.

See below some links from NVidia site:

Feature only available for GeForce 7050 PV/nForce 630a NVidia GeForce 7050 PV/nForce 630a

Fixed XvMC support on GeForce 7050 PV / NVIDIA nForce 630a GPUs with PureVideo support.
Linux drivers

I have a MB with GeForce 7050 PV/nForce 630a.
Should I expect that my Linux video player to have hardware acceleration if it is using the XvMC driver ?
(ex: xine + xxmc)

Since PureVideo NVidia software isn’t available for Linux, what’s the link between the XvMC driver and PureVideo in Linux ?
And PureVideo isn’t free for Windows, is it free available in Linux ? :D

Anyone who can explain a bit those things ?

Only mpeg2 acceleration is available under Linux. For GPU accelerated versions of other codecs to become available, the open source community really needs to step up. Now CUDA is available there is no excuse to “demand” NVidia releasing theirs.
It’d still be nice if they did but I somehow don’t expect it.

Well, mpeg2 acceleration is available for all 7xxx NVidia cards.

Why NVidia has posted that in Linux they have fixed XvMC support on GeForce 7050 PV / NVIDIA nForce 630a GPUs with PureVideo support ?

I was hoping it’s not just a commercial word. External Media

Turns out Intel is not far behind AMD/ATI in inbracing the open source development community and open source as a concept; On the third and final day of Fall IDF 2007, two keynotes were given which really drove home Intel’s adoption of open community collaboration and social environments. See:

http://www.tgdaily.com/content/view/33993/118/

http://whatif.intel.com

http://softwarecommunity.intel.com

Maybe the closed source device driver from NVIDIA now uses the PureVideo engine inside the GPU to accelerate XvMC, that does however not change the fact that XvMC in NVIDIA drivers still only MPEG-2.

http://en.wikipedia.org/wiki/XvMC

A new video acceleration API for Linux/UNIX is currently being developed (to replace XvMC), in an effort lead by Intel. This new API supports more complete offload (VLD) as well as iDCT and MC, and can support acceleration of MPEG-4 ASP (H.263), MPEG-4 AVC H.264, VC-1 (WMV3), as well as MPEG-2.

The site for this effort is:
[url=“vaapi”]http://www.freedesktop.org/wiki/Software/vaapi[/url]

Maybe NVIDIA could join this effort, it is meant to become an new open standard.

I still wonder why everyone is relying on NVidia for this. FFmpeg and other Linux codecs were the initiative of open source developers that were driven by the desire to have suitable codecs for Linux. So they took initiative and wrote them.

I think the same will have to be done for hardware acceleration, using CUDA, OpenGL, whatever. If you are waiting for companies to release things open source you’ll still be waiting in 10 years…

It would be really interesting to do these in CUDA, some should even be quite simple. I wish I had the time atm.

Er… what about really using MY hardware because I payed for a NVidia card ?

Why should I use my $xxx hardware only with 2D and mpeg2 acceleration (this is what open source can give me now) when it can do a lot more ?

Since I payed to NVidia, I want the drivers from them.

Well I will try to donate some money to open source too :)

Looks like NVIDIA is trailing futher and futher behind AMD/ATI and Intel;

This is a quote from a Phoronix news article:

You can read the full story here:

http://www.phoronix.com/scan.php?page=article&item=955&num=1

…and NVIDIA is still sleeping External Media

ATI has a lot of talk, but we’ve seen only very little actual open source documentation until now. Even though they have promised it for a long long time. Here again they are talking about ‘future GPUs’.

The thing is a bit different: ATI’s released GPU Chipset Datasheet… and such an event is to be considered a corner stone in VGA development history (before this act only some Matrox oldies were released with fully-defined tech specs docs w/o NDA).

Now the effort of the community is to gain the most from this situation (even if in my opinion RadeonHD driver would become only partially functional despite latest broadcasts and news, due to the complexity of OpenGL stack development). Maybe we’ll see a stable (both for 2D and 3D) driver in some months and later a quite complete support only in a year…

From my point of view, NVidia unleashed some useful informations about its internals (as obvious to keep alive and active a project like CUDA, which funds its most important benefit in underlying hardware structure knowledge), even driver support is lacking some imporant features (like true PureVideo pipeline exposition to X or any other framework/library/toolkit). And the most of you recall that reverse engineering is still an illegal practice, do you? External Media

My two cents.

As far as I understood this is maybe true in the US, but in other parts of the world it is not as clear-cut. I believe in most of Europe you are allowed to reverse-engineer to make a piece of hardware that you have bought work.

The enormous document that ATI released was about the memory controller, and some other low level things. Enough for basic SVGA, but nothing about the interesting part of a modern GPU: the 3-D engine.
The ATI drivers for Linux, as of this moment, are much more lacking than the NVidia ones. It’d be great if they opened up the documentation about the important stuff, and it would allow for great drivers built by the community, but seeing is believing.

About reverse engineering being illegal, it depends on how it is done and where it is done. The problem with rev engineering is not that it is illegal, but that it is an extreme amount of work. So people mostly don’t bother. Having said that, both ATI and NVidia a quite active reverse engineered driver development.

Open Letter and Online Petition requesting open source drivers from NVIDIA

For those of you who are interested in seeing official open-source support from NVIDIA or open specifications, there is now an open letter requesting open source drivers from NVIDIA that can be signed over at OpenTheBlob.com.

With both AMD and Intel now supporting open-source X.Org drivers and releasing full specifications/documentation, the community is looking for the same (if not more) from NVIDIA. This open letter to NVIDIA (and where you can leave your signature/comments) can be found here:

http://www.opentheblob.com/nvidia/

FYI; both ATI/AMD and Intel have now released more documentations and those do contain the specifications needed to write open source 3D device drivers for ATI/AMD and Intel GPUs on Linux.

Signed…

VIA Technologies joins the open driver bandwagon

http://www.phoronix.com/scan.php?page=arti…m=via_oss&num=1