[FFmpeg-devel] H.264 CABAC Decoder on IBM Cell
Thu May 7 19:38:34 CEST 2009
2009/5/7 Jason Garrett-Glaser <darkshikari at gmail.com>:
> On Thu, May 7, 2009 at 4:39 AM, Erich Marth
> <destinationcloud at googlemail.com> wrote:
>> Dear ffmpeg Team,
>> my name is Erich Marth and I'm currently doing some research on porting
>> ffmpeg or to be more preciously the h.264 codec to the cell architecture.
>> Till now I do have a good code status, but i do suffer big problems in
>> doing an optimized version of the cabac entropy decoder.
>> F.e.: Playing Pirates III (1080p) with CAVLC, an I frame takes
>> about 18ms to decode, but trying to decode a single slices I frame from
>> a 720p cabac video takes about 100ms to decode.
> I'm going to blame the fact that the primary core of the Cell
> (stupidly) doesn't have a barrel shift unit, resulting in variable
> shifts, such as those in renormalization, being implemented in
> microcode (and correspondingly being extraordinarily slow).
I tend to agree on that based on my understanding of the cell ppu
microcode and after testing this with the gcc-4.4.0 that removes all
the other microcode.
Doing cabac decoding only on the ppu is to my understanding not
possible for 720p and higher resolutions
Using a spu for cabac decoding however should be a lot faster and some
people are or should be looking into this.
On a pc they will first do a separate cabac decoding thread with its
own context that interacts with ffmpeg.
Once that works async and well its a logical next step to move it into
a spu (or any dsp or other hardware).
This should all be possible but someone has to do the work.
Hopefully this will be enough to make cabac encoded video work like a
charm at around 720p at least.
> But that's just a guess. ?It needs to be profiled.
> Dark Shikari
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
Email: kristian.jerpetjoen at gmail.com
More information about the ffmpeg-devel