Frame-level video decoding of H.264 for multi-core support concept discussion.
Frame-level decoding, (also known as frame-balancing decoding), can be used o achieve parallelism (multi-core usage) for video codec applications by exploiting frame level parallelism in the H.264 (MPEG-4 AVC) codec.
The I-frames of H264 are still independent of each other, and the P-frames only reference previous I- or P-frames. Thus one could 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.
So that thread 1 decode frame 1 and updates a last_decoded_row variable and thread 2 decodes frames 2 and checks if the needed reference is available or if last_decoded_row is still too small in the later case the thread waits a third thread could now work on frame 3 and so on.
Thanks for the input
We are working on incorporating this into the development schedule. Will keep you posted
if you bother to look, you will find that "libavcodec support" is the crutial codebase thats leads to mass uptake of these current and future GPU assisted hardware, apps today.
virtually all the open apps and tools including FFMPEG use that core codebase, and its very lacking in PAFF and related decoding/Encoding code/tools.
if you ATI/AMD coders really want to make some PR headlines,and advocate ATI stream/framewave support and mass uptake over other options, then direct ATI/AMD stream libavcodec support and fully working AVC HD decoding etc code patches posted directly to
is the channel were you NEED to be RIGHT NOW....
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.