[FFmpeg-devel] h264 multithreading, chapter 2

Mathieu Monnier manao
Tue Sep 25 23:05:43 CEST 2007


> The attach patch gives ~20-30% speedup on single sliced CABAC content.

That's actually better than I would have thought.

> But rather before I spend any more time on it I'd like to know
> if people think it is worth finishing.

Well, as already discussed previously :

  - slice based parallelism depends on the video, so will not be always 
possible. Furthermore, it scales as much as the encoder was scaled, so 
though it's an easy solution, it's not a pretty one

  - cabac / reconstruction parallelism : relatively good speed up, 
though it will depends on the bitrate of the video ( low bitrate -> bad 
scaling, very high bitrates -> bad scaling too ), and no scaling over 2 
CPUs. There again, not necessarily pretty, but effective. More effective 
imho than slice based, and sufficient for decoding anything up to 
1080i30 40 Mbit/sec on a C2D, I would say.

  - frame based, which I think should be the "best" method : a priori 
very scalable ( if x264's threading efficiency is achieved ), no 
constraint on the video except for vertical downward motion vectors, 
but, alas, not tested, so scalability is hypothetical.

All that to say I'm torned between a theorically clean ideal solution, 
and a dirty but already working one. One thing is sure, I don't like 
slice based parallelism :)

Regards,

Mathieu

Oh, and thanks for the patch, since I'm the lucky owner of a C2D, even 
though I call your threading method "dirty", that will allow me to play 
back all the stuff I wasn't able to play :)





More information about the ffmpeg-devel mailing list