[XviD-devel] VBV-RC and API

Christoph Lampert chl at math.uni-bonn.de
Sun May 9 16:04:13 CEST 2004


Hi,

I added VBV compliancy stuff to twopass curve scaling of HEAD, but didn't
enable it so far. Define VBV e.g. in plattform.inc for this. VBV_DEBUG
shows information, VBV_FORCE switched on VBV (DivX Home theater) even if
the calling application doesn't fill the data fields. 
At the moment, there still is seems to be a problem with how to tell 2nd 
pass rate control to really stick to those values.

Am I right that ratecontrol during second pass is _not_ part of the core, 
but of VfW or transcode-module or whatever? Could we move that?
Because too loose twopass RC can break compliancy even if curve was scaled 
correctly. It just happened to me with transcode, which is why I'm asking. 

Also, we have to pass profile parameters. For the GUI, I guess a dropbox
with off + 4 predefined profile + userdefined profile would be okay? 

And internally, should we use a flag to switch VBV control on/off, and 
the 3 integers to control parameters? Or give a full integer to indicate 
profiles 0-5 (0=off, 1-4 so below, 5=user) and set default values in the 
core? 

chl

**********************************************************************

DivX defines 4 profiles: http://www.divx.com/divxcertified/
http://www.divx.com/support/divx/guide.php

                 VBV_Bitrate     VBV_Size     VBV_Occupancy

Handheld           128000         262144         196608 (75%)
Portable           768000        1048576         786432 (75%)
Home Theatre      4000000        3145728        2359296 (75%)
High Definition   8000000        6291456        4718592 (75%)

VBV_Bitrate is _not_ the encoding bitrate, but the maximal speed which the 
decoder device must be capable of delivering. VBV_Size and VBV_Occupancy 
are more internal stuff. None of these is really useful to set to 
your own values, it's only to garantee decoding on DivX certified 
devices. 



More information about the XviD-devel mailing list