[CELT-dev] On guessing theta

Gregory Maxwell gmaxwell at gmail.com
Fri Mar 20 05:02:02 PDT 2009


On Fri, Mar 20, 2009 at 1:01 AM, Benjamin M. Schwartz
<bmschwar at fas.harvard.edu> wrote:
[snip]
> Apart from the interesting debate over whether to use M = L+R or M =
> normalize(L) + normalize(R), there's one other obvious issue.  This

One of the most important concepts in the CELT design is that the
correct energy in each band must be preserved for perceptual reasons.
It is fairly simple to demonstrate for yourself that relevant hearing
machinery driving this operates independently in each ear: Generate
two test signals, either two tones or a noise and a tone, such that
one masks the other.   Play them together and you can't hear the
masked tone, send the two signals (via headphones) to separate ears
and you can hear the previously masked tone.

If the listener were using loud speakers rather than headphones this
example wouldn't work due to cross-talk.

As such, those kinds of low level psychoacoustic effects must be
evaluated on an ear by ear basis since the listener may be using
headphones.

If you compute M = L+R; then signal energy(M); quantize(normalize(M));
S=… the resulting L and R that the decoder recovers will not likely
have well preserved energy.

Of course, extra data could be sent to make sure that energy was
preserved in this case… but that the problems of sending extra data.
(Nor does would sending the L+R energy in addition to the M+S energy
give us a way to select the bitrate for M/S)



More information about the celt-dev mailing list