[vorbis-dev] Transient coding: AAC vs. Vorbis

Sebastian Gesemann sgeseman
Tue Jun 8 03:20:11 PDT 2004


On Sat, 5 Jun 2004, Segher Boessenkool wrote:

> Vorbis makes use of any transform you want.  Currently there's
> only one transform defined, and that's the MDCT, sure.  That
> doesn't mean we're stuck with it forever.

in case of Vorbis I, yes. That's what I meant.

> Sharing the floors decreases the space needed for the
> floors, but increases the space needed for the
> residues.

it depends on how similar these floor curves would be.
the possibiliby of sharing the curves of several small
transform blocks is IMHO an advantage and an easy-to-do
thing for Vorbis II. It can be used for a more compact
representation without introducing more complexity.

> So this is a tradeoff.  Also, deciding
> per group of packets if floors should be shared again
> wastes a few bits; more tradeoffs.

i wouldn't say these bits are wasted because these
bits are used as a replacement for multiple floor curves.

packet-decode example:
---------------------
packet_mode = modes[readBits(ilog2(packet_mode_count-1))];
if (packet_mode->short_transform) {
int window_count = 1;
int max_windows = blocksize_1 / blocksize_0;
while (window_count<max_windows) {
if (readBit(1)) {
window_count++;
} else {
break;
}
}
} else {
window_shape = readBits(2);
}
decode_ONE_floor_per_channel(packet_mode);
decode_residue_vectors(packet_mode,window_count);
floor_residue_multiplication();
iMDCT();
...

in case you only want to use short-transform packets which only
contain one MDCT spectrum per channel (Vorbis I style) this approach
only 'wastes' _ONE_ bit per short-transform-packet.

if some floor curves would be very similar (not unlikely) you can
save one floor encoding for another bit.
the overhead is really really small compared to the savings you
can get.

do you have anny comments like "yes, i think it's a good idead"
or "no, i don't like the idea because ..." ? :)

Ghis!
Sebastian

--
PGP-Key-ID (long): 572B1778A4CA0707



More information about the Vorbis-dev mailing list