greg at linuxpower.cx
Fri Apr 21 12:49:48 PDT 2000
Monty lost this one. :)
---------- Forwarded message ----------
Date: Fri, 21 Apr 2000 09:30:31 -0700
From: Monty <xiphmont at xiph.org>
To: Gregory Maxwell <greg at linuxpower.cx>
Subject: Re: Branch: residue codebook trainer.
> I was looking at the residue trainer in the branch, and I noticed:
> " /* seed the inputs to input points, but points on unit boundaries,
> ignoring quantbits for now, making sure each seed is unique */ "
> Is this actually the right-thing(tm) (and I'm missing some deep voodoo) or
> should we not be throwing out identical vectors?
It doesn't throw them out... it just needs to make sure that no two starting
cell entries are the same. Internal cell pressures and the relatively low
resolution of the residue books mean that cells with the same midpoint will
likely never shake out and differentiate.
> I.e. shouldn't a more frequently occuring value bias the output codebook
> to more accuratly represent that value?
Yes. But in low resolution training, two cells that quantize to the same point
tend to never seperate again and you end up with duplicate entries. That's all
I'm trying to avoid. With a high quant resolution, that doesn't happen.
BTW, in the not-checked-in code I have right now, I'm no longer 100% trained
residual codebooks. I've gone to a entropy-only trained lattice cascade (and I
need to check in that util) for a few reasons:
a) Much smaller to represent
b) Faster to train
c) biggest of all: The trained residual codebooks turn out to have a major
flaw in my model; my training algorithm turns out to be a modified
Linde-Buzo-Gray iteration, and this seeks to minimize global codebook error.
However I end up classifying the vectors, peaks turn out to be a minority....
and so the trainer doesn't model them well. I end up with the trainer trying
to model the *noise* closely.... which is wrong :-(
So I'm trying a fully populated lattice. So far it looks OK, but I've not yet
determined if it sounds OK. This required one more minor extention to the
codebooks, which turned out to be a good idea. All will be checked in this
morning, but if you thought that things needed debugging before.... ;-) The
changes are small and numerous and I'm still testing.
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
More information about the Vorbis-dev