[MPlayer-dev-eng] [PATCH]Add support for CoreAVC h264 codec

Michael Niedermayer michaelni at gmx.at
Thu Oct 5 19:04:32 CEST 2006


Hi

On Thu, Oct 05, 2006 at 10:58:58AM +0200, Guillaume Poirier wrote:
> Hi,
> 
> Stefan Gehrer wrote:
> > Guillaume POIRIER wrote:
> > 
> >> That would indicate that the CoreAVC folks did find in way to
> >> efficiently decode cabac streams... Damn! I'd love to know how they
> >> did this.
> >>
> > It might not be that difficult, but just due to the fact that they did
> > some x86 ASM
> > optimizations on it, while the CABAC decoder in ffmpeg is plain C (last
> > time I checked).
> 
> yep.
> I had a look at CABAC's code, and the greatest problem I saw with it
> was in the algorithm itself. CABAC is an inherently serial (which
> quite easily leads to pipeline bubbles) algorithm that processes
> _bits_. ! That means that i.e. a 700Mb file requires  700*1024*1024*8
> runs through cabac.
> Maybe one sort of optimization that I could see would be to make sure
> there's no pathological code such as partial register stall, etc...,
> because every pipeline stall will really hurt performance because
> nothing else can be processed during this time (as the algorithm is so
> serial).

one insane idea is to do CABAC decoding of 2 frames at once (patches 
welcome)

and maybe someone wants to try simply decoding 2 simple random CABAC
streams at once, i mean not h.264 just simple random CABAC encoded streams

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is



More information about the MPlayer-dev-eng mailing list