[opus] Channel Mapping Family for Ambisonics

Timothy B. Terriberry tterribe at xiph.org
Mon Apr 25 16:32:44 UTC 2016

Jean-Marc Valin wrote:
> Would it make sense to allow an arbitrary number of channels and just
> "truncate" the list of channels. For example, two-channel ambisonics
> would be W plus X and three-channel would be W, X and Y. The idea is
> that you would get these mappings for free -- if there's any use for
> them anyway.

Well, more specifically, the channel count is stored in the main header, 
not in the channel mapping table, so it's possible to put any value in 
there, up to 255 (instead of, for example, simply storing l). We should 
say what a decoder is expected to do in the case it encounters a stream 
with such a value. "Treat the stream as invalid," is a perfectly 
acceptable option, as is Jean-Marc's, "pretend the missing channels are 
silent," but we have to pick one.

>> 1. Should I be more explicit about what "ambisonics" is, what
>> normalization is, and what each channel really means?
> For these kinds of things, you can just use references.

Yes, hopefully this is all well-described somewhere (at least enough for 
someone to implement it), so we don't have to reinvent the wheel.

>> 2. Do I need to list the specific meaning of each possible channel
>> count? For example, should I write "4 channels: First order
>> ambisonics" similar to what is done for surround sound?
> I'm not sure I understand what your asking here.

I think he's just asking if he needs to make a bulleted list as we did 
in and of the Ogg Opus draft. To which I think the 
answer is "no". Those are in lists because it was the easiest way to 
present the information. When you have a parametric mapping, a 
description in terms of the parameters makes more sense.

>> 3. Should we define whether downmixing should occur when Ogg Opus
>> players do not support the channel mapping? Since channel 1 is a mono
>> channel, it is always possible to play something reasonable.
> It's not absolutely required, but it would indeed be nice if you could
> define a simple way that players can downmix. I guess mono is just "take
> the W channel", but maybe a reasonable stereo would be nice too.

Well, there will always be players that don't support the channel 
mapping at all, just because there's 4 years' worth of deployed software 
that knows nothing about it. I think the actual question is, "Should we 
give advice on how players with common speaker configurations (instead 
of a custom ambisonics rig or a virtual environment or whatever) can 
render the stream?" If you want to see support in common media players 
like VLC, I think we should.

More information about the opus mailing list