[FFmpeg-devel] Question about parallelizing h264 decoding
Loren Merritt
lorenm
Fri May 11 18:55:01 CEST 2007
On Fri, 11 May 2007, Thorsten Jordan wrote:
> Michael Niedermayer schrieb:
>
>> what i think is better is frame level parallelism
>> 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 ...
>
> With row do you mean row of macroblocks?
What matters from the perspective of the thread doing motion compensation
is which rows of pixels have been decoded. But yes, the variable would be
updated only when a row of macroblocks finishes.
> About separating CABAC to other CPU: is the part of the h264 bitstream
> that has cabac encoded data identifyable that easily, so it can be
> pre-read? I mean could the decoder know that the next N bits are part of
> cabac and could defer them? Or depends the range of cabac-related bits
> in the encoded bit stream on some bits that have to be decoded before?
The entire bitstream is CABAC (except for headers, which take negligible
time).
--Loren Merritt
More information about the ffmpeg-devel
mailing list