View Single Post
Old 03-14-07, 03:41 PM   #2
pmjordan
Registered User
 
Join Date: Jul 2006
Posts: 4
Default Re: CPU/Video Card Needed for Reliable H.264 1080p Content?

As far as I know, the only h264 decoder for Linux is currently the one which is part of libavcodec, i.e. ffmpeg. It doesn't take advantage of any GPU hardware acceleration, so even my 8800GTS/320 doesn't allow me to watch 1080i/p h264 content at the moment. I'm running a Core2 Duo E6600, with 2GB of RAM. The CPU simply can't keep up with decoding the video, even if the file is in a RAM disk, audio is disabled, etc.

Libavcodec's h264 decoder doesn't have XvMC support; I'm pretty sure the reason for this is the lack of support for quarter-pixel motion vectors required by h264, so unless XvMC changes, you can't use it for h264.

I'm currently very tempted to hack libavcodec and MPlayer so that the most expensive parts of the decoding can be done in Vertex/Pixel shaders, but I'm limited by my spare time, and it's a substantial amount of work. I see no technical reason why it wouldn't work though.

Before spending a ton on the hardware, I suggest finding someone who has it to confirm it works. I doubt that a Netburst-based CPU (Pentium 4, Pentium D) will outperform a decent Core2, but I'd be happy to be corrected. In fact, I don't think any x86 other than the Core2 Quad outperforms the Core2 Duo in the vast majority of integer code at the moment, and that's what h264 uses. Floating-point speed is irrelevant in this case, so I suspect AMD CPUs are completely out of the question. I'd look up some SPEC_int benchmarks to find the fastest x86 integer CPU. I suspect it's the highest-clocked Core2 you can find. I suppose you could overclock that, which might just be enough for 1080p h264 decoding. (but then you'll have noise issues which isn't so great for the living room)

I hate to say it, but you're probably best off with either MacOS X or Windows when it comes to watching HD h264 streams for now. Of course, if you can live with the delay of a couple of hours, you could transcode the h264 to MPEG2 with some insane bitrate, which, I suspect, would work fine, and you could even use XvMC!

~phil
pmjordan is offline   Reply With Quote