[CELT-dev] On guessing theta

Benjamin M. Schwartz bmschwar at fas.harvard.edu
Thu Mar 19 22:59:45 PDT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Currently, the encoder does l = normalize(L), r = normalize(R), M = l+r, m
= normalize(M), etc.  The trick will not work in this case.  Here's why:

dot(m,s) = c*dot(M,S) for some constant c.
dot(M,S) = dot(l+r,l-r) = dot(l,l) + dot(r,l) - dot(l,r) - dot(r,r) = 1 +
dot(r,l) - dot(r,l) - 1 = 0

so dot(m,s) is always zero.  The trick described previously does not work
when dot(m,s) = 0, so theta must be transferred explicitly.

However, this orthogonality is still useful.  If m is encoded in N
dimensions, then from this orthogonality s can be encoded in N-1
dimensions.  That means that transmitting theta no longer represents an
extra degree of freedom.

Maybe you're already doing this. I have no idea.

- --Ben
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAknDMNEACgkQUJT6e6HFtqT24ACcDc7UwMfp0J3kaf0vdE0zpbjA
g0IAoJoYrGCT/IbOtGdn9JUQNj4/JN2+
=CDtl
-----END PGP SIGNATURE-----



More information about the celt-dev mailing list