[FFmpeg-devel] h264 multithreading, chapter 2
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 :)
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