[opus] Channel Mapping Family for Ambisonics

Michael Graczyk mgraczyk at google.com
Mon Apr 18 02:29:22 UTC 2016


We (Google) have been experimenting with configuration and adjustments to
CELT-only Opus that give good results for compressing ambisonic audio
signals [1]. Based on our results so far, we would like to use Opus to
encode spatial audio. We hope to make it easy/possible to use libopus with
other common tools and software modules (ffmpeg/libav in particular).

Based on my reading of the libopus code and the IETF spec, it seems one
reasonable option would be to add a new "Channel Mapping Family" for
ambisonic audio [2]. The mapping family would indicate to the decoder that
the audio is ambisonics and the channel mapping array would indicate which
ambisonic channel (W, X, Y, etc) corresponds to which coded stream. This
representation is analogous to Opus headers for surround sound.

There are a few caveats though. Although we believe we can achieve good
compression at first without changing the bitstream or the decoder, we
would like the flexibility to potentially modify both if potential
improvements are compelling enough to impress you (specifically, we have a
pre/post transform that would require sending compressible side
information). Would changing either the bitstream or encoder require adding
yet another channel mapping? Would it require a new Opus version number?

To summarize, should we add a new channel mapping for ambisonics? If not,
what should we do?

[1] https://en.wikipedia.org/wiki/Ambisonics
[2] https://tools.ietf.org/html/draft-ietf-codec-oggopus-14#section-5.1.1

Thanks for your input,
Michael Graczyk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/opus/attachments/20160417/f70da8bc/attachment.html>

More information about the opus mailing list