[opus] Initial implementation of ch.mapping 253/3

Drew Allen bitllama at google.com
Tue May 30 22:13:00 UTC 2017

Hello all,

Attached is the initial proposed implementation for ch.mapping 253/3, based
on the IETF proposal:

A brief overview of the patch, as it is slightly lengthy:
After discussion with Jean-Marc, we determined that ch.253/3 will need the
demixing matrix as part of the encoder/decoder struct stack and thus will
require a new Encoder/Decoder structure. For this, I've proposed
OpusPEnc/OpusPDec (for "projection"), which wraps OpusMSEnc/OpusMSDec aside
from the addition of the mixing matrix structure. The functionality also
wraps the functionality of the multistream API aside from matrix transforms
during encode/decode.

We have included 3 mixing/demixing matrix pairs that are sufficient for
coding/decoding 1st/2nd/3rd order content respecitvely.

I've modified the multistream api slightly, first to include some
supplemental API extensions to allow wrapping and moved the declaration of
the MSEnc/MSDec to opus_private so that the projection API can compile.

Some basic tests to ensure matrix multiplication and encoding/decoding
using projection has been included.

I am of course happy and eager to take any and all
suggestions/comments/questions/recommendations regarding the patch,
including naming conventions/style/etc.

Looking forward to your feedback,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170530/a0a9ef46/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Support-for-Ch.253-Using-OpusPDec-OpusPEnc-structs.patch
Type: text/x-patch
Size: 59771 bytes
Desc: not available
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170530/a0a9ef46/attachment-0001.bin>

More information about the opus mailing list