[Theora] theora_info struct question

David Kuehling dvdkhlng
Mon Jul 26 09:59:44 PDT 2004

>>>>> "Eduard" == Eduard Kriegler <kriegler at sun.ac.za> writes:

> Hi I'm evaluating Theora for a video communication system and would
> like some info as to what the following struct members (from the
> theora_info structure) do and what values one should pass to them:

this is what I know from looking at the sources some time ago.  so don't
be too sure that it's correct...

> int quality;

valid range: 0..63

> int quick_p;

should always be `1'.  `0' is a little higher quality (or smaller file)
but unbarably slow.

>  /* encode only */ int dropframes_p;

whether to drop frames when target bitrate is overflown by some amount.
is usually 0 (false).  setting this to one might be a very good idea for
low bitrate video communication.

> int keyframe_auto_p;

whether to automatically insert a keyframe when there is too much
difference between two frames.  that seems like a good idea, so set this
to `1'.

> ogg_uint32_t keyframe_frequency;

expected target keyframe frequency (actually the inverse of the
frequency: specifies how many frames will usually pass between
keyframes).  used for some bitrate calculations.  not very sure about

> ogg_uint32_t keyframe_frequency_force;

maximum distance (in frames) between keyframes.

> ogg_uint32_t keyframe_data_target_bitrate;

dont know.

> ogg_int32_t keyframe_auto_threshold;

how much difference there must be between two frames to automatically
generate a new keyframe, when keyframe_auto_p is nonzero.  valid range
0..100 (?).

> ogg_uint32_t keyframe_mindistance;

minimum distance [frames] between keyframes.  (used with keyframe_auto_p=1)

> ogg_int32_t noise_sensitivity;

not sure.  valid values are 0..3 i think.  this has some effect on how
quanization is done.

> ogg_int32_t sharpness;

valid values are 0..2.  values are inverse, setting it `0' will result
in sharpest images but also with the worst ringing artefacts.  setting
this to two smoothes the image and allows much lower bitrates while
still not causing too many noticable artefacts.

GnuPG public key: http://user.cs.tu-berlin.de/~dvdkhlng/dk.gpg
Fingerprint: B17A DC95 D293 657B 4205  D016 7DEF 5323 C174 7D40

More information about the Theora mailing list