[Vorbis-dev] multithreaded vorbis encoding
Thomas Eschenbacher
Thomas.Eschenbacher at gmx.de
Sat Nov 19 11:23:01 PST 2011
xiphmont at xiph.org wrote:
> [...] You can parallelize some, but a call to vorbis_analysis()
> requires state from a previous call to vorbis_analysis. There is
> some interframe analysis happening.
Oh that's bad. Parallelizing anything else than vorbis_analysis could
give only a performance gain in the range of a single-digit percentage,
which is not wort the effort.
> [...]
>> => Are the blocks passed as "vb" independent from each other, so
>> that I can encode them in parallel?
>
> The 'vb' wraps internal dsp state that is not independent from block
> to block.
But what about the loop that is around that, in my code I have a loop
over "buffers", which are then devided into blocks. So is one buffer one
"logical unit", so that I could process buffers in parallel, or are they
just parts of a sequential stream, like the "blocks"?
For reference, you could see my code here:
> http://kwave.svn.sourceforge.net/viewvc/kwave/trunk/plugins/codec_ogg/OggEncoder.cpp?revision=HEAD&view=markup / (lines 300..361).
Do you see any chance to speed this up?
Thomas
More information about the Vorbis-dev
mailing list