[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-----
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.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
-----END PGP SIGNATURE-----
More information about the celt-dev