[FFmpeg-devel] Fwd: pipeline multithreading

Daniel Oberhoff danieloberhoff at gmail.com
Tue Nov 25 10:02:16 CET 2014



Von meinem iPhone gesendet

Anfang der weitergeleiteten E‑Mail:

> Von: Daniel Oberhoff <danieloberhoff at gmail.com>
> Datum: 25. November 2014 09:59:39 MEZ
> An: Timothy Gu <timothygu99 at gmail.com>
> Betreff: Re: [FFmpeg-devel] pipeline multithreading
> 
> 
> Von meinem iPhone gesendet
> 
>> Am 24.11.2014 um 16:54 schrieb Timothy Gu <timothygu99 at gmail.com>:
>> 
>> On Mon, Nov 24, 2014 at 3:35 AM, Daniel Oberhoff
>> <danieloberhoff at gmail.com> wrote:
>>> Hi,
>>> 
>>> From what I gather the filter graph is utilizing modern multicores by
>>> “striping” where filters support it, i.e. an image is divided in stripes
>>> and the filter gets called in separate threads for separate stripes.
>> 
>> In FFmpeg we call it slice threading.
>> 
>>> I was wondering if there is or will be pipeline multuthreading, i.e.
>>> with a setup such as
>>> 
>>> inout -> filter1 -> filter2 -> output
>>> 
>>> some threads processing frame n in the output (i.e. encoding),
>>> other threads procesing frame n+1 in filter2, others processing frame
>>> n+2 in filter1, and yet others processing frame n+3 decoding. This
>>> way non-parallel filters can be sped up, and diminishing returns for
>>> too much striping can be avoided. With modern cpus scaling easily
>>> up to 24 hardware threads I see this as neccessary to fully utilize the
>>> hardware.
>> 
>> We call it "frame threading." There are some decoders that already support it.
>> 
>>> 
>>> Is this already done? Or are there plans? If it is not done, how much
>>> more work is it? Could I help (not promising much, but I may find time,
>>> especially as this limits us…).
>> 
>> If the filter is independent of past and future frames then it is
>> pretty easy (just like the "intra-only" decoders). For other ones I am
>> not so sure. Clément knows more about it.
> 
> Most are, no? Otherwise they would need buffers, but frame multithreading would still be possible, the pipeline just gets deeper
> 
>> 
>> Timothy


More information about the ffmpeg-devel mailing list