[CELT-dev] Multichannel coding

Gregory Maxwell gmaxwell at gmail.com
Sat Mar 6 20:40:05 PST 2010


On Sat, Mar 6, 2010 at 11:04 PM, Stefan de Konink <stefan at konink.de> wrote:
> Op 07-03-10 04:18, Jean-Marc Valin schreef:
>> You question is a bit convoluted and I'm not sure I understand what
>> you're after. But fundamentally, if you have unrelated streams, I don't
>> see what you can really optimise -- regardless of what codec you use.
>
> I wonder if a combined range coder for multiple streams could give a
> better compression than one for each stream individually.

If the signals are not related it could not do so in any important
sense. The only entropy coding savings you get from coding two
independent signals together rather than alone is the losing somewhat
less than 0.5 bits on average rather than somewhat less than 1 bit on
average for one frame vs two.  (Because can't can't make use of any
fraction of a bit left over at the end of building a byte-multiple
frame).   I don't see 0.5 bits gain out of hundreds of bits in a frame
as being

In CELT, as Timothy mentioned, even if they were only weakly related
it wouldn't matter because the entropy coder in CELT is mostly used to
efficiently pack code-words which already have ~uniform probability
there is now.

Research in lossless coding of true multi-channel signals has actually
found the entropy improvements to be surprisingly modest, at least in
the papers I've seen. It seems that the well correlated parts tend to
be the most compressible parts of the signal.  In lossy codecs I think
most of the advantage is in being able to be more lossy without
hurting perception rather than a significant amount of real entropy
gain.



More information about the celt-dev mailing list