> Produces this (approximately 1010 frames), encoding times (real time /
> user time, gives a bit of a view as to how busy the CPUs were during the
> real time, optimal should be 1m realtime, 2m user time, right? and
> average system time was 3.0s, with +/- 0.2s for all tests):
...

Yep.   You should (in theory) get a lot closer to that with the current 
MPEG_DEVEL branch mpeg2enc.   However, your scaling is really remarkably bad 
as even the -R 2 values where two CPUs should be fairly busy are unusually 
bad.  I've never heard of worse than 70% utilisation on dual CPU machines.

Here's a fairly typical snapshot of mpeg2enc -M 2 -I 1 -R 2 in action on my 
dual P-III machine...

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
12620 as        18   0 46464  45M   768 R    80.9 24.3   0:18 lt-mpeg2enc
12621 as        18   0 46464  45M   768 R    70.8 24.3   0:18 lt-mpeg2enc
12619 as         9   0 46464  45M   768 S     3.9 24.3   0:01 lt-mpeg2enc

You're getting very very symmetrical CPU loads and very very poor utilisation.  
What kernel are you using... I vaugely recall 2.6.x series radically changed 
the threading libs.  It could be something pathological is happening in the 
scheduling.  

The  2100+ is of course  a lot faster than the P-III but: I doubt the balance 
between the motion estimation and the rest of the code is hugely shifted.  
Cerainly, the approximate proportions of time spent in each are quite similar 
on my 2100+ single-CPU machine and a P-III.


> Also, encoding with one B frame is a touch faster in -I 1 mode than
> encoding without them, but it is slower when you encode two B frames
> instead of just one. I find this interesting.. I would have expected a
> single B frame to take a bit longer than none at all, and that is the
> case when -I 0 is on, but not when it's -I 1. Any ideas on that one?

Not really. However: I would expect going to two B frames to greatly increase 
your CPU utilisation without much wall-clock time increase due the increased 
scope for parallel computation.

> In the end -M 3 is not reasonably faster in -I 0 -R 0, but flys along at
> -I 0 -R 2 compared to baseline, and gets fair gains at -I 0 -R 1, while
> dropping encoding time by another 14 seconds for the same frameset.
This is what you'd expect: -R 2 offers much more scope for the 3 worker 
threads of -M 3 to do something useful.

> The numbers on -M 3 -I 1 -R 2 show a 54 second improvement over the
> tests with -M 0, but it takes almost 50% longer than -M 3 -I 0 -R 1. The
> file size of 3-1-2 is 13,807,067 and the file size of 3-0-1 is
> 13,402,673. The file is smaller, and is encoded faster, and viewing them
> now, the quality is at least on par (3-0-1 looked a tad better).

The usefulness of B frames depends a *lot* on the type of material.  For 
captured stuff they rarely buy you much apart from free room heating from 
your CPU. Hence the provision of -R 0 ;-).  They should get a little more 
useful when I add dynamic frame type selection to mpeg2enc in the new year.


> > - There is also a parallel read-ahead thread but this rarely soaks much
> > CPU on modern CPUs.

Weirdly enough on your machine the reader thread is exceedingly busy
> > The MPEG_DEVEL branch encoder stripes all encoding phases to allow much
> > more scalable parallelisation.  You might want to give it a go - I'd be
> > interested in the results!
>
> I'd love to, but I couldn't find it in CVS. I found everything else in
> the SF CVS branch, but not mjpegtools itself.

cvs co -d :ext:[EMAIL PROTECTED]:/cvsroot/mjpeg mjpeg_play
cd mjpeg_play
cvs update -r MPEG_DEVEL mpeg2enc

The 'mjpeg_play' is a bit of a historical oddity but it is momumentally 
painful to change directory names in CVS...

Andrew




-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
Mjpeg-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mjpeg-users

Reply via email to