[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