[theora-dev] Multi-Thread Theora Encoder
Felipe Portavales Goldstein
portavales at gmail.com
Tue Oct 2 20:59:48 PDT 2007
By the way,
On the weekend I will clean-up the code and submit on the SVN
On 10/3/07, Felipe Portavales Goldstein <portavales at gmail.com> wrote:
> On 10/2/07, Ralph Giles <giles at xiph.org> wrote:
> > On Tue, Oct 02, 2007 at 06:51:10PM -0300, Felipe Portavales Goldstein wrote:
> > > 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.
> > Excellent news! Please do check it into svn under a branch so we can try
> > it out.
> > What's the slowdown running the code on a uniprocessor?
> As far as I tested the slowdown is less than 1 percent or irrelevant.
> The only big difference in terms of performance is the extra-overhead
> in the PickModes function call and a extra final loop to re-order the
> Motion Vectors produced by each thread.
> The PickModes function is called one for each thread (in some sub-set
> of Super-Blocks of the screen) and the final loop to re-order depends
> on the number of Rows of SuperBlocks designated to each thread. This
> re-ordering is made in linear time, also.
> So, when running on a uniprocessor, there is only one thread and the
> PickModes function acts just like before my modifications.
> The only thing that I should do before submit is a way to control the
> number of threads at run time (discover the number of CPUs at run
> time). By now I have to recompile the code to have a different number
> of threads running.
> > -r
> Felipe Portavales Goldstein <portavales at gmail>
> Undergraduate Student - IC-UNICAMP
> Computer Systems Laboratory
Felipe Portavales Goldstein <portavales at gmail>
Undergraduate Student - IC-UNICAMP
Computer Systems Laboratory
More information about the theora-dev