[Vorbis] Re: encoding vorbis in windows using on multi-core cpu

xiphmont at xiph.org xiphmont at xiph.org
Wed Jul 25 20:07:04 PDT 2007

On 7/25/07, Eddy L O Jansson <eddy at klopper.net> wrote:
> On Wed, 25 Jul 2007 23:18:28 +0200, <xiphmont at xiph.org> wrote:
> > Stereo streams still use only a single core, assuming we're talking
> > about the reference encoder.  I assume Lancer is using [mostly]
> > reference code.
>   No, oggenc/lancer uses two cores. The libvorbis patch alone is a megabyte in size, with SSE2/3, multi-core code (based on aotuv). I'm really surprised you're not familiar with the project, or maybe it's the name change? It was called Archer at one time.

It is not *too* difficult to gain parallelism from vectorization, it
just requires alot of reworking of code flow; lots of joins between
parallel sections in each block's analysis.

I was not actually familiar with specifics of Archer/Lancer doing
this, no.  I live in a cave, so my blinders can occasionally be more
restrictive than people expect.

In the past, the typical approach was to try to process multiple input
blocks in parallel, and originally libvorbis had been structured with
this use in mind.  However, as development of the format and
refinement of the encoder progressed, several inter-block dependencies
made this more difficult, and so projects that attempted to do it this
way generally foundered.


More information about the Vorbis mailing list