[Ffmpeg-devel] Parallelizing the h.264 Decoder

Philip Peter philip.peter
Tue Nov 14 04:44:06 CET 2006


Luca Barbato schrieb:
> Philip Peter wrote:
>   
>> Since the cells cores are limited in local memory, i want to parallelize
>> the decoding of an actual frame, not just decode multiple frames at once.
>>     
>
> Keep in mind that you don't have infinite SPEs and every time you want
> them doing something different you'll pay some time to feed the new
> code, more on this later.
>   
That is one reason why the decoding of a complete frame on one SPE would 
be impractical.
I don't have any hard data, but i'm pretty sure, that the code for the 
whole decoding process wouldn't leave much room for actual data to decode.
My current approach is to have a few cores dedicated to the cabac 
decoding and a few dedicated to the rest.

>> However at the moment, those functions are called directly after each
>> other for each macroblock. This would be suitable for a pipelined
>> approach, but i'm afraid that one core won't suffice to do the cabac
>> decoding.
>>     
>
> How so, if you have access to a Cell, please make a spu stand alone
> program with just cabac decoding and feed it with some data.
>   
I'm currently working on this, but the optimization is a bit complex, 
since i try to minimize branching.
As soon as i have some results i will post the data.

> Probably hand assembly for it could help as is helping for x86...
>
>   
Is there already optimized CABAC code in the current svn version, or are 
you refering to the CoreAVC decoder?

>> I realize that this will require some changes, but i'm not certain how
>> big these changes are.
>>     
>
> The other question is how to make this structure be optional so that
> traditional cores won't have overhead from it.
>
> lu
>
>   
I'm also fairly sceptical on how to implement this in the current 
structure. However since the current processor development seems to be 
going towards multiple cores, it might be important to consider this not 
only in the context of h.264, but for the ffmpeg structure in general.

Ciao,
Philip




More information about the ffmpeg-devel mailing list