[Vorbis-dev] Ogg Vorbis questions

Hans Petter Selasky hselasky at c2i.net
Thu Apr 20 05:04:30 PDT 2006


Hi,

I'm currently working on a paper describing Ogg Vorbis. It is not finished 
yet. Mostly the decoder is being described. If you have any comments, please 
send them to me. See:

http://www.turbocat.net/~hselasky/math/vorbis/files/


Then I have a question about the function "bark_noise_hybridmp()" which is 
used in the encoder. Can someone describe what the function does in detail? 
From what I can see it performs various kinds of correlation, but I don't see 
through it.


At last I want to point out that at low bit-rates, like 24kBit/sec, Ogg Vorbis 
has trouble with "S" sounds. I thought it would be smarter to generate such 
sounds using a white noise generator coupled with a FIR filter, than using 
MDCT. Or maybe it is a problem in the encoder? What do you think?

Also see:
http://www.turbocat.net/~hselasky/math/image_sound/


A white noise generator is as simple as this:

#define PRIME 0xffff1d /* a special prime number */

/* outputs 24-bit signed samples */

static int32_t
get_white_noise(void)
{
    static u_int32_t white_noise_rem = 1;
    u_int32_t temp;

    if (white_noise_rem & 1) {
        white_noise_rem += PRIME;
    }
    white_noise_rem /= 2;
    temp = white_noise_rem;

    temp ^= 0x800000; /* signed to unsigned conversion */
    if(temp & 0x800000) {
        temp |= (-0x800000); /* sign extension */
    }
    return temp;
}

--HPS


More information about the Vorbis-dev mailing list