Re: [codec] Comments on draft-ietf-codec-ambisonics-01

Mark Harris <> Mon, 13 March 2017 17:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E82F612988A for <>; Mon, 13 Mar 2017 10:08:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Tgp6Uafz0LjR for <>; Mon, 13 Mar 2017 10:08:53 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:400c:c0c::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6CB23129860 for <>; Mon, 13 Mar 2017 10:08:53 -0700 (PDT)
Received: by with SMTP id l37so108095593wrc.1 for <>; Mon, 13 Mar 2017 10:08:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=arggS2MKIsWsktKBIKGPaajHleGRz7nOAVwXG6Hbq2s=; b=pls0BzjwUWGA2nXgpBU9hO0GszTH5w8aMQte5gulGsYcXcCIVa2rEoJF0cSrzN9VwT SUuOLKHzcAOhOcy3hbPO9RhfQYPSaV9SaKZv0MdCxq76eCaSPtK8tVDyHlKmv+dm6u5Q bbMTEb1Iwnfcc5V+9ogzeICH4ZtsSEh7wiRMybkCvDIrTs+DtEu73gra+cUMnxZltSUV tTUpIPpogUOSYT4mempOQmJYijjv2PlbFhf5xjvsehhodLadub5fVxfcXbNYMAQqPqKH PXgwW4t3na0GnVis4yZgbW85LqT4u3UPZt2f2K0YRltP+U6JGjEfhr+FBTVnv3k7mis8 thvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=arggS2MKIsWsktKBIKGPaajHleGRz7nOAVwXG6Hbq2s=; b=hAccL3DZdJHVaJKgE00VZHza86Ee1qtBSzRHMGhFOfPM2ZOIg6THTIOt0KJoK9Mbog 45QGaSq5EulpvKteZS7Xl+b0obTFKvkZ7sWAx7VZbgtT6kBsn2vGeSri2xMVUrkYK7pk 0xNY3TC2WBrmvuFopIjIxvKYC8yEsez7JVDuqeHl5Cgl1vkADviaVswJgRR+6K1zOMRd bp6qGU6YUA8QTW5saCdLhGwr3h7M44sckMThPhgKWBTEsBKjFJKKVENIrKe9T7NlB7S+ LgCuMrXmKgQZTIk5go78JW7QU6zGxJRnqzHM0DnMpGNuCKxYOAVjeh1NiXwLxTxbhWsE INwg==
X-Gm-Message-State: AMke39nXrh/dGeD+3H4MMpr72nGW/anyaS/qJ2PUAP2zGcPQxbkAMaCrw7hpyNjS/aU/xG7vjQTz4XboHfhhLg==
X-Received: by with SMTP id 52mr31139589wra.88.1489424931790; Mon, 13 Mar 2017 10:08:51 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Mon, 13 Mar 2017 10:08:51 -0700 (PDT)
In-Reply-To: <>
References: <>
From: Mark Harris <>
Date: Mon, 13 Mar 2017 10:08:51 -0700
X-Google-Sender-Auth: vL0WVGgIrtxpu_oqd927TFoJqnI
Message-ID: <>
To: Jan Skoglund <>, "" <>
Content-Type: text/plain; charset=UTF-8
Archived-At: <>
Subject: Re: [codec] Comments on draft-ietf-codec-ambisonics-01
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Codec WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 13 Mar 2017 17:08:55 -0000

On Fri, Feb 17, 2017 at 1:57 PM, Jean-Marc Valin <> wrote:
> 3.2.  Channel Mapping Family 3
> I would suggest removing the "Output Channel Numbering" field because it
> is fully equivalent to simply permuting lines of the matrix. Also, I
> believe that the size of the matrix was meant to be "32*(N+M)*C bits"
> rather than "32*N*C bits".

To expand on this a bit, a mapping family maps M+N decoded channels
(corresponding to the actual order of the coupled and uncoupled
channels in the bitstream) to C output channels (channels with a
specific semantic meaning).  The additional "Output Channel Numbering"
table confuses things by adding an additional mapping from the output
channel numbers to a different set of numbers with actual semantic
meaning, leaving the output channel numbers with no apparent meaning.

This does have a potential benefit as a matrix compression technique,
to reduce the size of the matrix when it would contain rows that are
all zero.  However considering that the matrix occurs only once, and
mapping family 2 already offers a way to compress the matrix, this
alone does not seem worth the complexity of another level of
indirection.  If matrix compression is desired it would probably be
less confusing to describe it in those terms and keep the semantic
meaning tied to the output channels.

The description of the Output Channel Numbering also does not specify
the intended behavior if the same value appears in the table multiple

Additionally, section 4.2 describes how to perform a stereo downmix of
mapping family 3, but makes assumptions about the output channel
numbering.  This seems harmful and likely to promote implementations
that make similar assumptions.  If it is necessary to apply the output
channel numbering described in section 3.2 in order to implement a
correct stereo downmix, then it would be better to simply use the
output channels from section 3 as input to the downmix, consolidating
sections 4.1 and 4.2, rather than specify new formulas that make
assumptions about the mapping.  That would also greatly simplify
section 4.

Eliminating the Output Channel Numbering table as Jean-Marc suggests
should resolve these concerns.

On another note, unless I am missing something, the formula in figure
2 does not appear to be correct.  For example, according to the
formula, k=3 (ACN 2) corresponds to order 0 degree 2, which does not
make sense.  It is also not clear why this channel index begins at 1,
when all others begin at 0.  It might also be a good idea to clarify
that this is an output channel index, as other uses of channel index
in RFC 7845 refer to decoded channel index (and also begin at 0).

 - Mark