[Vorbis-dev] Ambisonia proposal (was Re: vorbis-tools 1.3.0 BETA - Help testing.)

Oliver Oli oliver.oli+0815 at gmail.com
Fri Sep 26 02:45:36 PDT 2008


To extend Etienne's explanation: It's not always possible to derive
the Ambisonics channel mapping from the number of channels. It's
	non-ambiguous up to the 3rd order* only. Therefore the draft allows
only one channel mapping per channel count.

Channels (Horizontal order, Vertical order)
 3 (1,0)
 4 (1,1)
 5 (2,0)
 6 (2,1)
 7 (3,0)
 8 (3,1)
 9 (2,2), (4,0)
 10 (4,1)
 11 (3,2), (5,0)
 12 (5,1)
 13 (4,2), (6,0)
 14 (6,1)
 15 (5,2), (7,0)
 16 (3,3), (7,1)
...
i.e. the draft allows (2,2) and excludes (4,0) at 9 channels, supports
(3,2), but not (5,0) at 11 channels, etc.


There are two solutions:

1) Define for every channels the spherical harmonics it represents.
This is what OggPCM does (up to 3rd order, but it could be extended)

2) Define the horizontal and/or vertical order of the Ambisonics stream.

If we have to rely on the channels mapping types only, the obvious
solution is not to use one, but several types for Ambisonics (there
are 2^16 - 1 available).

Proposal (extending the draft):
Use channel mapping type 1 to 15 for Ambisonics. Type 1 defines
vertical order 0, type 2 vertical order 1, etc.

channel mapping type = vertical order + 1


- oli


* when we talk about order we mean the degree of the spherical
harmonics, not the sequence or channel mapping.

On Fri, Sep 26, 2008 at 7:54 AM, e deleflie <edeleflie at gmail.com> wrote:
>> Now, the only thing to do is reach a consensus in how to do this.  I
>> remember the top suggestions to be:
>>
>> 1) use Vorbis mapping 1 as opposed to default's 0
>
> That's what the draft spec assumes has been accepted.
>
> The principle difficulty has been in how to order the Ambisonics
> spherical harmonics channels in order for players to know which
> channel is which.
>
> The draft assumes that no more data can be included in the headers...
> and has therefore come up with a proposal that allows working out
> which channel is which (algorythmically) by knowing the total number
> of audio channels.
>
> So the question is .... do we really not have any access to more data
> in the Vorbis header? (because if we do, the channel order might be
> simplified).
>
> Etienne


More information about the Vorbis-dev mailing list