[FFmpeg-devel] Once again: Multithreaded H.264 decoding with ffmpeg?
Fri May 30 00:16:21 CEST 2008
I am a newbie to ffmpeg development and I know that I am not the first
person thinking about a multithreaded H.264 decoder. I learned that the
ffmpeg h264 decoder already supports parallel decoding based on slices,
but that many encoders do not use multiples slices per frame, limiting
the benefit of this feature.
Is anyone out there currently working on parallelizing the macroblock
level? My incomplete comprehension suggests that there are several ways
to do this. Or is this idea a stupid one?
Could it be realisitic to achieve lets say a speedup between 30% and 50%
on a modern dual core CPU or are there limitations that make this a
dream? What about using NVIDIA's CUDA or AMD's stream computing to make
use of modern GPUs (given that the "native" acceleration APIs are not
available under Linux)?
I have been looking into the h264 code and each piece of H.264
documentation I could get my hands on. And I have the impression that
some of the decoding steps (namely residual decoding, deblocking) could
be parallelized quite well. But I don't have any idea how much time the
individual decoding steps take. Does someone happen to have some
numbers? Or a hint how to measure this myself?
Would it e.g. make any sense to parallelize the deblocking filter?
I would appreciate any comments very much.
More information about the ffmpeg-devel