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

Guillaume Poirier gpoirier at mplayerhq.hu
Thu Oct 5 10:58:58 CEST 2006


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).


> But according to ffmpeg/doc/TODO it is on Michael's TODO list, so we are
> sorted :)

:-))

Guillaume

BTW, freescale rocks! ;-)



More information about the MPlayer-dev-eng mailing list