[theora-dev] Multi-Thread Theora Encoder
ghempresa at hotmail.com
Tue Oct 2 15:38:47 PDT 2007
Multi-Thread Encoder is such a good thing that justifies a new release of libtheora.
> Date: Tue, 2 Oct 2007 18:51:10 -0300
> From: portavales at gmail.com
> To: theora-dev at xiph.org
> Subject: [theora-dev] Multi-Thread Theora Encoder
> I'm happy to announce I developed a Multi-Threaded version of the
> Theora encoder. I changed the Motion Vector Search part of the
> algorithm to be executed in parallel.
> I've chosen the Motion search part after a careful set of profilings
> that shown that the Motion Vector Search is responsible by 70% of
> CPU-time on average and up to 95% of CPU-time in some cases. I also
> have chosen this part because it is easier to parallelize.
> Running this multi-thread version I've got:
> - On a dual core machine :
> * Average of 28% of speed-up on the running time
> * up to 38% of speed-up (the best case of my set of tests)
> - On a quad core machine:
> * Average of 36% of speed-up on the running time
> * up to 58% of speed-up (the best case of my set of tests)
> As you can see it does not scale very well (yet), because a part of
> the source codame is still sequential and run in a sequential manner
> after the initial parallel part (the motion search). It is not like a
> double buffer or a pipeline (there is some data dependencies that
> makes it difficult).
> This multi-threaded version will be converted to a port of the Theora
> encoder to the IBM CELL processor.
> I am working on this project in my free time during my undergrad
> course. So, the development can be slow.
> If someone wants to contribute, please send me an email.
> The source code used was the libtheora 1.0alpha8, but I think that my
> patch can be easily applied to the current libtheora 1.0beta1.
> I will clean-up the source code and maybe I could upload to the Theora SVN.
> Or send the patch to somebody.
Express yourself instantly with MSN Messenger! Download today it's FREE!
More information about the theora-dev