[theora-dev] Multi-Thread Theora Encoder

Felipe Portavales Goldstein portavales at gmail.com
Wed Oct 10 08:41:56 PDT 2007


On 10/7/07, Unga <unga888 at yahoo.com> wrote:
> Hi Felipe
>
> I gave it a try your Multi-Thread Theora Encoder.
>
> It has following errors:
> 1. -t is an invalid option

yes,
this is strange, I've added this option to the command line parser,
but it seems to ignore.
I will fix it.

> 2. File path cannot contain space (ie. A directory
> name has spaces)
>
> It has following issues:
> 1. Theora file size is larger without specifying
> --number-of-threads

Ops
the default option (without specifying) of number-of-threads is 4.
It should be 1.


> 2. Resize option?
>         Hey, where is the resize option? My input is
> 1920x1080p YUV4MPEG2 file. I should have only one
> master copy and create different size Theora files out
> of it, isn't it? If not I may soon run out of disk
> space.

Sorry, I didn't understand the question.
What you mean resize ? Resize the video resolution ?

>
> 3. Video stream cannot taken from stdin
>         After all the audio file is the same irrespective of
> the size of the output Theora file. My intermediate
> 1920x1080p YUV4MPEG2 file is nearly 10 times bigger
> than its original raw mjpegb yuvj422p 1920x1080p file.
> Although its not the most efficient, but sometimes
> when the disk space is most critical, I could pipe the
> intermediate YUV4MPEG2 stream to Theora encoder if its
> accepts video stream from stdin as follows:
>
> mplayer -vo yuv4mpeg  mjpegb-yuvj422p-1080p.mov |
> ./encoder_example -o out-720p.ogg ... -
>
> Is it possible in first place to create Theora files
> as above by piping? Does it still require an
> intermediate  YUV4MPEG2 defeating my objective to save
> space? How to specify write to stdout in mplayer -vo
> yuv4mpeg?

I think that those issues are related to the encoder_example as a
whole, and not specific to my patch.
Maybe this is something to be changed in future versions of the encoder_example.
But as the goal of this example is to be simple and didactic, maybe it
should avoid such complications on the source code.

Thanks Unga,

Cheers
Felipe
- Hide quoted text -

>
> Best Regards
> Unga
>
>
> --- Felipe Portavales Goldstein <portavales at gmail.com>
> wrote:
>
> > I uploaded the changes to the branch:
> > http://svn.xiph.org/branches/theora-multithread/
> >
> > This version is a branch from the current SVN trunk.
> > I used the theora_control to set the number of
> > threads as Giles sugested.
> >
> > to run the example you can specify the number of
> > threads with the flag
> > --number-of-threads
> >
> > For example:
> >
> > ./encoder_example --number-of-threads 1
> > ~/video-tests/pf01.yuv -o
> > /tmp/thread.ogg
> >
> >
> > Please,
> > Test in different machines and with different
> > videos.
> >
> >
> > Cheers,
> > Felipe
> >
> >
> > On 10/3/07, Ralph Giles <giles at xiph.org> wrote:
> > > On Wed, Oct 03, 2007 at 12:57:59AM -0300, Felipe
> > Portavales Goldstein wrote:
> > >
> > > > As far as I tested the slowdown is less than 1
> > percent or irrelevant.
> > >
> > > Good, we should be able to include this in the
> > mainline then.
> > >
> > > > 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.
> > >
> > > So this overhead can be skipped when there's only
> > one thread.
> > >
> > > > 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.
> > >
> > > The best way to do this is through the
> > theora_control() interface, since
> > > applications will want control, and determining
> > the number of available
> > > CPUs is very platform dependent.
> > >
> > >  -r
> > >
> >
> >
> > --
> > ________________________________________
> > Felipe Portavales Goldstein <portavales at gmail>
> > Undergraduate Student - IC-UNICAMP
> > Computer Systems Laboratory
> > http://www.students.ic.unicamp.br/~ra023772/
> > _______________________________________________
> > theora-dev mailing list
> > theora-dev at xiph.org
> > http://lists.xiph.org/mailman/listinfo/theora-dev
> >
>
>
>
>
> ____________________________________________________________________________________
> Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online.
> http://smallbusiness.yahoo.com/webhosting
> _______________________________________________
> theora-dev mailing list
> theora-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/theora-dev
>


--
________________________________________
Felipe Portavales Goldstein <portavales at gmail>
Undergraduate Student - IC-UNICAMP
Computer Systems Laboratory
http://www.students.ic.unicamp.br/~ra023772/


More information about the theora-dev mailing list