mpeg2enc - added target average bitrate feature

Andrew Stevens <[email protected]> Sun, 12 Sep 2010 11:26:42 +0200
Newsgroups gmane.comp.video.mjpeg.devel
Organization Andrew @ Home
Message-ID <1284283602.1877.29.camel@milan>
Hi all

I've just checked in a first testing cut of the 'whole stream
statistical' rate-control that allows specifying a target overall
bit-rate.  

I could only do some VERY sketchy testing (working on a centrino
sub-notebook in quiet moments on vacation) and I'm going to be
travelling for a few days so it'd be good if some brave folks could give
it a good work-out over the next few days.


Notes:

- Some internal statistics are logged at INFO level for now and the
command-line interface will probably change...

- Set your target bit-rate with -t /--target-video-bitrate and your peak
bit-rate with -b / --video-bitrate.  The latter should be set to maximum
demux rate available for video for the chosen target  format.   E.g.
10000-1100Kbps for DVD.   Set -q the 'quality floor' i.e. the quality
level below which you'd rather save bits for complex scenes rather than
marginally improve still further simple scenes.   For DVD I'd suggest
somewhere between 4 and 8... 


TODO:

- Better handling of situations where peak bitrate and quantisation
floor are frequently reached... (thats what that rate control model is
for!).

- Look-ahead decoder buffer state prediction in pass 2 instead of
reactive rate control to avoid throttling  peak bitrate in situations
where the buffer would refill anyway after a very short 'spike'.  

- Restore (S)VCD stills functionality.

- Concurrent processing of 1st and 2nd passes.

- True '2 pass' (actually it would be 3-pass) where a '0th' pass
(technically a pass-1 only run without output) merely gathers complexity
statistics to provide optimal whole-stream bit-allocation in the 1st and
2nd passes.

Aside: basic 2-pass functionality can actually already be achieved! Run
the encoder twice,  2nd time aroundan initial mean picture complexity
using the -Z/--mean-complexity from the final mean stream complexity
printed out in the info in the first run.

cheers,

   Andrew





------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev