[vorbis-dev] Impulses

Gregory Maxwell greg at linuxpower.cx
Fri Nov 19 05:50:53 PST 1999



After playing with the vorbis code for a while and doing tons of hacks and
analysis on it, I've found it to perform very poorly with impulse signals.

The MDCT seems to cause lots of spreading, and it seems to result in much
worse impulse performance then mp3. 

What is the current plan on handling this? Will a smart quantizer be able
to avoid it?

I've been looking at various ways of taking care of this, and before I
bother implimenting something I'd like to make sure that no one has gone
down this path before:

Roughtly vorbis currently does:

input wave -> MDCT -> LPC -> LSP -> quant -> ------------------>output
                                         \->delpc->error->quant -^

What do you think of this:

input wav -> DWT -> sum non-impuse factors -> iDWT -> MDCT ... (like above)
              \
               -> -> sum impulse factors -> iDWT -> LPC -> LSP -> quant 

i.e. use a wavelet transform to seperate out impulsey signals and
compress them in the time domain.

The decoder complexity really isn't increased much (just one more
dequant/LPC and a sum). I think there are optimized versions of the haar
DWT that go really fast too..

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/



More information about the Vorbis-dev mailing list