Why do some graphics cards mention codec support?

Using applications, configuring, problems
Post Reply
Message
Author
stevielee
Posts: 36
Joined: Thu 26 Jul 2012, 02:51

Why do some graphics cards mention codec support?

#1 Post by stevielee »

Hi all...

I have used the puppy os and the puppy forum for some time, and I like its activity and generosity. That is why I am asking about this issue here, even though it is not specific to puppy. (But I would be happy to apply the ideas to it!)

I am trying to make some sense out of digital video playback. I want to have a system that can handle various types of digital recorded video and have it all look great (or as good as one can) on a display. This has turned out to be a trip down the rabbit hole.

To get things going, I thought I would focus on one specific item - can some graphics cards handle some codecs and not others? Why are supported codecs always mentioned in card specs? I don't want to get a card that has a fundamental hardware limitation - so that no matter what I do with it, it will not do what I want and I will be out $200.

How is this issue related to hardware acceleration, and why is this considered faster than software execution? Are the GPUs simply faster at the kind of parallel processing needed for graphics, or are codecs "hard-wired" into the physicality of the GPU circuitry?

Thanks for any insight you can offer.

And apologies for using the term "hard-wired"


Steven

User avatar
Burn_IT
Posts: 3650
Joined: Sat 12 Aug 2006, 19:25
Location: Tamworth UK

#2 Post by Burn_IT »

Codecs can and are built into the firmware on the card. This is obviously more efficient than software codecs.
However the specification of codecs is somewhat tenuous and liable to change. There is always going to be the need to strike a balance between quality and size of video streams so there is always going to be new ways of coding and decoding those streams.
Also the firmware on the card may well be designed around a particular type of data stream and will be more efficient with that data than other streams.
"Just think of it as leaving early to avoid the rush" - T Pratchett

p310don
Posts: 1492
Joined: Tue 19 May 2009, 23:11
Location: Brisbane, Australia

#3 Post by p310don »

The term you are looking for in Puppy and Linux land is VDPAU.

This is a software driver that enables the video decoding hardware feature on many modern video cards.

I believe Intel and AMD are catching up, but NVIDIA has had this feature for a long time. Everything better than an Nvidia 200 series has it built in.

For video playback, you don't need a high powered card so generally the cheapest new card you can get will do that job.

Do your own research, but VDPAU is limited in which codecs it will decode, generally H264 / AVC types only. That is most mp4 content available online these days.

stevielee
Posts: 36
Joined: Thu 26 Jul 2012, 02:51

More on the subject....

#4 Post by stevielee »

Thanks to all who have replied....

Can these codecs in a graphics card be modified or updated? Is there a way to access the firmware of the device? And is it possible to obtain improved firmware? Or.....is such programming the sole domain of the hardware manufacturers and inaccessible to the open-source community?

Thanks.
..

Steven

stevielee
Posts: 36
Joined: Thu 26 Jul 2012, 02:51

I am bumping this....don't complain!

#5 Post by stevielee »

I had hoped to get some more conversation going on this topic of getting real confidence in digital video playback. It seems to be quite difficult to get good info on this, and I have certainly looked. Do these graphics processors mentioned before require us to compile drivers for them, or are they incorporated into the Linux kernel? Or do they exist as proprietary binaries that are distributed with Puppy?

p310don
Posts: 1492
Joined: Tue 19 May 2009, 23:11
Location: Brisbane, Australia

#6 Post by p310don »

I can only comment from my own experiences.

I have a couple of PCs that use VDPAU hardware decoding via NVIDIA video drivers.

The hardware decoding feature is implemented at a hardware level because of the type of card I have. The nvidia driver is installed by me specifically to suit my card. On one, using Puppy 5.28 I used a driver already supplied by the developer. On the other, I had to compile the driver downloaded from the NVIDIA website.

One of the two PCs has the horsepower from the CPU to decode just about any video, but, using VDPAU decoding, when watching HD video, the cpu barely gets above 10% usage. It is at around 80% without hardware decoding.

The other PC is a lightweight Atom powered CPU with the NVIDIA video card built in. The ATOM does not have enough power to display much above 640x480, however with hardware decoding, that PC will easily play h.264 type HD video.

Post Reply