[Tremor] questions on windowing/floor functions and standard vs lowmem tremor

xiphmont at xiph.org xiphmont at xiph.org
Sun Dec 28 20:45:57 PST 2008


> 1.  I was reading about a hardware implementation of the Ogg Vorbis decoder
> (http://www.vlsi.fi/fileadmin/datasheets/vlsi/vs1000.pdf) and they mention
> on page 20 two memory optimizations they take advantage of.  First, they say
> that if the sample rate is below 48kHz that you'll never have a window size
> of 8192 samples.  Also, they do not support files encoded with floor0.  Are
> both of these assertations valid?

The first is true of the format and something an implementer can count on.

Floor0 is in fact deprecated, but all of the early encoders did in
fact use it, so a decoder implementation that does not implement floor
0 will not be able to play the earliest Vorbis files.

> 2.  Other sources have mentioned that the only window sizes used in practice
> are 256 and 2048 samples.  Is this correct?

Not true.  Current encoders do in fact use several other window sizes.

> Lastly, is there any good reason to use standard tremor instead of lowmem
> for an embedded application?

Yes.  if you have enough memory, the non lowmem version is
considerably faster as it can fully unpack the entropy model in
memory, as opposed to doing so on the fly during decode.

> I've seen mention of increased decoding delay
> in lowmem but I haven't seen this delay quantified

The delay shouldn't be any different.

> Also, I did a diff of
> the standard and lowmem branches and found that they were far more different
> than I was expecting.  Is one considered to be more up-to-date than the
> other?

No.

> I compared the audio output from the two and found that they were
> similar but not bit exact.

That probably has more to do with exact compile-time config options or
unrelated math optimizations.  Vorbis does not specify (or mandate)
bit-exact decode, as a an implementation that ensures a full 140dB
depth autdio fidelity isn't always possible or even desirable.

Monty


More information about the Tremor mailing list