AW: AW: AW: [vorbis-dev] PlusV algorithm -> CBR

Hannes hannes.guddat at igd.fhg.de
Fri Jan 31 09:26:24 PST 2003



Hi,

> -----Ursprungliche Nachricht-----
> Von: owner-vorbis-dev at xiph.org [mailto:owner-vorbis-dev at xiph.org]Im
> Auftrag von gtgbr at gmx.net
> Gesendet: Freitag, 31. Januar 2003 17:02
> An: vorbis-dev at xiph.org
> Betreff: Re: AW: AW: [vorbis-dev] PlusV algorithm -> CBR
>
>
> Hannes wrote:
> > take this as the options most of vorbis-dev left me with ?!
> So even if I
> > never meant strict CBR: what I really want is, correct,
> constrained VBR,
> > because it may of course also be less bandwidth than
> possible. Does anyone
> > know how can I tune vorbis to do that?
>
> With oggenc, a sample line would be
>
> oggenc --managed -b 30 -M 32 --resample 22050 input.wav

Thank you, but I'm ashamed to confess I never used oggenc in my life, sorry.
If you can speak 'vorbisenc', this would be more to the point. I will check
the meaning of these settings and how oggenc handles them, however. There
seems to be a lot of vorbis knowledge hidden in oggenc.

>
> Your mails look to me as if you're only looking at this "two seconds
> default window" and things like that, not practical tests... did you
> actually run into trouble with what you were trying to do with Vorbis,
> and if yes, what settings were you using? The example above might get

I picked this "2 seconds delay" thing up from several mails. Personally, I'd
like to try out Tor's proposal (even if I'm not quite sure at the moment
whether he meant PCM i/o blocksize or the codec output blocksize, but I'll
see that soon). I thought there was some kind of rule-of-thumb value over
what period of time, normally, vorbis coded streams achieve their mean
bitrate, so I would have to buffer them for this period of time.. I don't
know if I made myself clear. However, I hope it's not 2 Seconds.

At the moment I use:
#ifndef VORBIS_CBR	// (this is real vbr)
  ret = (vorbis_encode_setup_managed(&vi, channels, samplerate, -1,
bitrate, -1) ||
         vorbis_encode_ctl(&vi, OV_ECTL_RATEMANAGE_AVG, NULL) ||
         vorbis_encode_setup_init(&vi));
#else				// (this is cbr)
  ret = (vorbis_encode_setup_managed(&vi, channels, samplerate,
NOM2MAX_FACTOR*bitrate, bitrate, -1) ||
                 vorbis_encode_ctl(&vi, OV_ECTL_RATEMANAGE_AVG, NULL) ||
                 vorbis_encode_setup_init(&vi));
#endif
#ifdef VORBIS_CBR_HARD	// (this is cbr, hard managed one day :( )
  ret = (vorbis_encode_setup_managed(&vi, channels, samplerate,
NOM2MAX_FACTOR*bitrate, bitrate, -1) ||
                   vorbis_encode_ctl(&vi, OV_ECTL_RATEMANAGE_HARD, NULL) ||
                 vorbis_encode_setup_init(&vi));
#endif for best quality

where NOM2MAX is 1/0.875 (taken from vorbis_encode_setup_managed..)
VBR is for best quality, CBR doesn't seem to help case of bandwidth peaks
(and consumes three times the CPU resources as VBR does), couldn't get
CBR_HARD to work, but that's probably my fault. In my ISDN case bitrate is
set to 45kbit/s.

> close to 31 kbps on rare occasions, and exceed 32 kbps for max. 2
> seconds (much shorter, mostly) on uncommon music, if at all. A quick
> test I made here never displayed more than 30 kbps in Winamp, with an
> average bitrate of 29.9 kbps.
>
> Also, Vorbis is a music/general purpose codec. You mention
> videoconverencing and low latencies, wouldn't Speex be a lot more
> interesting to look at? Why not pick the right tool for the job?
>

Jup, exactly. But maybe I messed up two point I wanted to make. Oggvorbis
overall latency (Lo- and Hi-Bandwidth) and latency for ISDN streaming
settings (Lo-Bandwidth,<=45kbit Vorbis). For Lo-Bandwidth I definitely have
speex on my ToDo-List, no question. For Hi-Bandwidth latency issues can only
get better, so I can also use vorbis for Hi-Quality once I figured out what
overall latency my coding framework will have.

Hannes

>
> Moritz
> --- >8 ----
> List archives:  http://www.xiph.org/archives/
> Ogg project homepage: http://www.xiph.org/ogg/
> To unsubscribe from this list, send a message to
> 'vorbis-dev-request at xiph.org'
> containing only the word 'unsubscribe' in the body.  No
> subject is needed.
> Unsubscribe messages sent to the list will be ignored/filtered.
>

//
// we apologize for the inconvenience
//
// Hannes Guddat
// Fraunhofer IGD
// A9 - Communication and Cooperation
// Fraunhoferstrasse 5
// 64283 Darmstadt
//
// Tel.: 	+49 6151 155-217
// Fax.: 	+49 6151 155-559
//

<p><p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list