[FFmpeg-devel] Once again: Multithreaded H.264 decoding with ffmpeg?

Andreas Setterlind gamester17
Tue Jun 3 21:56:19 CEST 2008


FYI; the XBMC project's GSoC students found two very interesting
papers about separating the H.264 decoding process for
multi-threading, papers which I thought might interest you as well
from the decoder point even though both papers only discuss how to
accelerate those processes on GPU hardware instead of SIMD in the CPU.

"Real-time high definition H.264 video decode using the Xbox 360 GPU":
http://spiedl.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=PSISDG00669600000166960X000001&idtype=cvips&gifs=yes

This has a very nice overview of an H.264 implementation Microsoft did
for the Xbox 360. They essentially built it using HLSL. It has a lot
of practical ideas.


"Motion Compensation and Reconstruction of H.264/AVC Video Bitstreams
using the GPU":
http://symposium.elis.ugent.be/archive/symp2006/papers_poster/paper084_Bart_Pieters.pdf

This one has a slightly more academic flavor to it, but it also
presents an interesting implementation strategy for motion
compensation on a generic GPU. It's important to know their results
are slightly embellished. They list their reference decoder as having
a 9%/55%/12% split between Entropy Decoding/Motion
Compensation/Inverse transform. However FFmpeg's profile is quite
different, due to very aggressive optimizations. FFmpeg's profile is
(roughly) 50%/30%/2% for entropy decoding/motion compensation/inverse
transform. There should still be  quite a bit of room for improvement
but not the factor of 4 they present in their paper.


PS! For reference here is some more information about our GSoC student project:
http://xbmc.org/wiki/?title=GSoC_-_GPU_Assisted_Video_Decoding

Best regards / Andreas Setterlind (a.k.a. Gamester17)
XBMC Project Manager
gamester17 at xbmc.org
http://xbmc.org




More information about the ffmpeg-devel mailing list