[opus] Channel Mapping Family for Ambisonics

Michael Graczyk mgraczyk at google.com
Mon Apr 25 09:32:19 UTC 2016


Alright, here is a somewhat formal definition of the channel mapping I
had in mind:

------
Channel Mapping Family 2

Allowed numbers of channels: (1 + l)^2 for l = 1...15.

Explicitly 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196,
225. Ambisonics from first to fifteenth order.

Each channel is assigned to an ambisonic component in Ambisonic
Channel Number (ACN) order. The ambisonic component with degree n and
ambisonic index m corresponds to channel (n * (n + 1) + m).

Channels are normalized with Schmidt Semi-Normalization (SN3D). In
SN3D, the ambisonic component of degree n and index m is normalized
according to sqrt((2 - delta(m)) * ((l - m)! / (l + m)!)), where
delta(0) = 1 and delta(m) = 0 otherwise.
------

I chose ACN order and SN3D normalization because these seem to be the
most common, and are used by the Ambix format and by Google's spatial
audio RFC:

https://github.com/google/spatial-media/blob/master/docs/spatial-audio-rfc.md

I have a couple of questions about the definition and language.
1. Should I be more explicit about what "ambisonics" is, what
normalization is, and what each channel really means?
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?
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.

Please let me know what you think.

Thanks,
Michael Graczyk


More information about the opus mailing list