[vlc] Re: HDTV Transport Streams (.ts) and Performance

Benjamin PRACHT bigben+spam at videolan.org
Sat Dec 4 13:32:57 CET 2004


On Sat, Dec 04, 2004, Galen wrote :
> I was just thinking here, what about somehow repackaging (but not 
> re-encoding) the stream to play in the Apple DVD Player? I pulls some 
> magic with MPEG2 decoding, thanks to some sort hardware assist and/or 
> amazing optimization. For comparison, my old laptop, an iBook, would 
> play DVDs perfectly with Apple DVD Player. Something like 30-40% of the 
> CPU. Yet not a single DVD would play smoothly with VLC or other similar 
> media players. Higher data rate discs and scenes faired the worst with 
> alternate players, yet not a single skip ever happened with Apple's 
> player. I've seen this phenomenon repeated over and over on many Macs.

Yeah, Apple DVD player can use the hardware iDCT routines of graphic
cards. VLC cannot do that, since we lack the specifications of these
hardware functions. However, these functions are fit to decompress a DVD
stream. I doubt cards would be able to decompress a 1920x1080 4:2:2
stream. I might be wrong, recent cards could have support for HDTV MPEG2
profiles, but even that way, I don't think Apple DVD player would eat
such big streams, even if authored as a DVD, without rescaling them and
coverting the chroma.

> 
> I realize that a DVD-formatted VIDEO_TS folder with HDTV resolution 
> would be way out of spec for DVD playback, but perhaps, just perhaps, 
> it would work with the Apple player. The underlying formats are close 
> enough, I think - MPEG 2, AC3. The Radeon 9700 Mobility in my machine 
> is really pretty powerful in terms of raw function.
> 
> Anybody have a clue to try this technique? Or am I completely and 
> utterly crazy for event thinking this? (If this is the case, please be 
> gentle...)
> 
> If not via the Apple DVD Player, are there any other ways to harness 
> greater hardware acceleration? If the G4 won't do the trick by itself 
> with existing decoders, the solutions seem to fall into the following 
> categories:
> 
> 1) Reduce CPU requirement through shortcuts (with a quality and/or 
> resolution cost I'm sure) or better decoders (not terribly likely)
> 

Well, I don't think standard MPEG2 streams allow to reconstruct an image
by only decoding part of the stream. 

> 2) Harness the power of my graphics card better

As said before, even if your card can decompress HDTV stream, we lack
the specifications (and the probably the developpers) to implement it.

> 
> 3) Re-encode the file such that less processing is required to view it 
> - not very convenient, several hours or more for a single television 
> show as far as I can tell (without using up incredible amounts of drive 
> space)

Well, this is the only way I see to play your stream... rescaling and
reencoding it...

> 
> Now I'm wondering if it's even reasonably for me to ask my computer to 
> play back HDTV content. So to get a little perspective, let's look and 
> see what PCs require to play back HDTV streams. The pcHDTV requirements 
> (copied and pasted from their site) for playback on an x86 Linux 
> system:
> 
> Intel® Pentium® 1200Mhz or higher
> NVIDIA card with IDCT acceleration for machines under 2000MHz.
> Linux Red Hat Linux 7.2, 7.3, 8.0 or 9.0.
> Sound card with S/PDIF support and external sound system.
> 256 Meg RAM or higher
> 

Well, it seems here that at least NVidia cards can iDCT HDTV streams...
but again, VLC cannot use these functions

> Isn't that interesting... it seems my machine is likely faster than 
> those specs given. 1333 MHz G4 CPU - should easily be faster than a 1.2 
> GHz Pentium - and people claim (with some support) that G4s are faster 
> per Mhz than P4s. Video card? I would hope a Radeon 9700 mobility beats 
> a basic Nvidia with IDCT accelation. The remainder of the specs are not 
> even competitive with my setup.

Well, when it comes to video treatment, at least with the
decoders/encoders we are using (libmpeg2/ffmpeg), my experience is that
G4 are not really faster than Pentium III or IV... Don't forget that, contrary to MacOS X, linux can use overlay to display the stream,
meaning that the chroma conversion can be done by the graphic card, and
this step can quite CPU consuming with a HDTV stream.

> 
> Yet people running on x86 Linux can play HDTV with those specs, and my 
> machine with better specifications, cannot. It seems pretty clear to me 
> something is really wrong/broken/flawed with playback under Mac OS X. 
> Is it the OS? The decoders? Hardware acceleration (or lack thereof)? 
> What's the hang-up? My $2000 Mac laptop can't play what a $200 Linux 
> desktop off pricewatch.com can do with SETI at Home running in the 
> background.
> 
> So before I sulk in the corner, hopelessly depressed with my computer, 
> can anybody explain the disparity? Or better yet, help me overcome 
> it...
> 
-- 
BigBen

-- 
This is the vlc mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://www.videolan.org/support/lists.html



More information about the vlc mailing list