[FFmpeg-devel] Question about parallelizing h264 decoding
Thorsten Jordan
tjordan
Thu May 10 17:01:00 CEST 2007
Hello,
since it seems that the performance of a single core is not enough for
full HDTV decoding, one obvious alternative is multithreading on SMP
systems.
I know that the current h264 decoder can't decode multithreaded, but i
want to discuss some ideas how this could be done.
Two choices come to my mind:
1) decode slices in parallel - problematic, because intra-frame
references and many data dependencies, also because of difficult
parallelization of cabac decoding etc.
2) decode frames or even GOPs in parallel - this one i want to discuss a
bit further.
The I-frames of h264 are still independent of each other, and the
P-frames only reference previous I- or P-frames, right?
Could one then decode frames in parallel, if core #1 decodes I-frame of
Gop #1, and core #2 decodes I-frame of Gop #2. After that core #2 could
decode the first P-frame of Gop #2 (hence the B-frames of Gop #2 need
pictures from Gop #1), while core #1 continues on Gop #1, and so on.
My question is, could this work in theory or i am missing something? If
it would work, do you see special problems here?
This solution means one has to pre-parse and buffer 1-2 Gops, which is
an enormous amount of data and gives high delay for display, but if we
could live with that, decoding can be faster.
Thanks for your comments.
--
Regards, Thorsten
More information about the ffmpeg-devel
mailing list