[vorbis-dev] Re: RT & codebooks [was streaming metadata requirements

Kevin Marks kmarks at apple.com
Wed Jun 13 23:06:22 PDT 2001



At 4:21 pm -0400 13/6/01, Monty wrote:
>  > In practice, many vorbis files will be using standard codebooks. In
>>  previous posts, you have said that optimising codebooks for a file
>>  give a maybe 1% advantage.
>
>This is true enough *right now*.  Note that every mode has different
>books however.  Having all the currently used codebooks in each
>decoder app would be about 4MB of static data.

Interesting. What proportion of a given file is the codebooks? If 
they are shared between files is the saving significant at modem 
bitrates (20-40 kbit/s)?

>  > It makes no sense to add this much overhead to a stream, and it will
>>  prevent anyone joining a stream in the middle if the have to wait for
>>  codebooks to come by.
>
>Not correct!  When someone connects, the server pushes out a header
>then starts streaming.  You do *not* need to start from the beginning
>of a stream!  You only need the header, and it can just be tacked onto
>the beginning.

Ok, so the codebooks are in the SDP file. (excuse me for mapping this 
all back to RTP - the HTTP/shoutcast-like case is relatively trivial, 
as you say

>  > The way JPEG coped with a very similar problem in RTP (sending the
>>  quantization and Huffman tables) was to set aside a byte in each
>>  packet to define which one is being used. They then defined 0-127 to
>>  be predefined ones, and 128-255 to be dynamic ones, and added a way
>>  to specify the dynamic ones inline at regular intervals.
>
>Every beta has used different codebooks, about a half a meg worth.
>This will naturally stabilize (at least in *our* encoder) after a
>time, but the variability of codebooks is one of the big reasons we
>have such a quality edge over mp3, and not something to simply be
>discarded because it's a harder technical problem than mp3's trivial
>HTTP pushability.

Did I say discard it? Making good codebooks sounds a bit of a black 
art. Most people won't bother. Once you have stabilized, you can 
define that bit of the profile. I doubt a stream would use more than 
128 codebooks would it?

--- >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