Re: [codec] Multi-mode frame concatenation
"Benjamin M. Schwartz" <bmschwar@fas.harvard.edu> Fri, 29 July 2011 17:31 UTC
Return-Path: <bmschwar@fas.harvard.edu>
X-Original-To: codec@ietfa.amsl.com
Delivered-To: codec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 099EA21F8B79 for <codec@ietfa.amsl.com>; Fri, 29 Jul 2011 10:31:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Level:
X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[AWL=-1.000, BAYES_00=-2.599, MANGLED_PILL=2.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S1+S0+qjquqe for <codec@ietfa.amsl.com>; Fri, 29 Jul 2011 10:31:18 -0700 (PDT)
Received: from us26.unix.fas.harvard.edu (us26.unix.fas.harvard.edu [140.247.35.202]) by ietfa.amsl.com (Postfix) with ESMTP id F085C21F8B4C for <codec@ietf.org>; Fri, 29 Jul 2011 10:31:17 -0700 (PDT)
Received: from us26.unix.fas.harvard.edu (localhost.localdomain [127.0.0.1]) by us26.unix.fas.harvard.edu (Postfix) with ESMTP id 3D3351F75AE; Fri, 29 Jul 2011 13:31:17 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=fas.harvard.edu; h= message-id:date:from:reply-to:mime-version:to:cc:subject :references:in-reply-to:content-type; s=mail; bh=nQO9cUY9m1wJ/vh v0HeN1Z+gfvZgSSWujj3eH01PZMY=; b=q38cBDr/0ghlF0LK4fnhq78SYQtDgK3 PSZF/5zR/AczpGM7c5Fdm88/TrHrsDQrOPLeft5e0NkIlC+SQspBQLGATTuOkFCc a+53EpE+DflL7HwOHyGz4an3uFto/Z0I7kdNi1A9QfSW3GWQ2A4RGOhdhpecjoXn xitmIU9bx/ZM=
DomainKey-Signature: a=rsa-sha1; c=simple; d=fas.harvard.edu; h= message-id:date:from:reply-to:mime-version:to:cc:subject :references:in-reply-to:content-type; q=dns; s=mail; b=n+A5CRg8m t4F8PBQkkGzyJbfDarbV0+J3snutsrQTokf2SrgqCkQcohTpo3oYUAKQHkKepQ9w G6q8E7ljd2zubZ98UNhO4MQ26PAMhel8gRVXYKOr0HTHWmAQByU+JEJ3hNTza7+J kLEVwmJAbW1DRWudme4jAjhK+fx/6OF5aw=
Received: from [172.23.141.135] (bwhmaincampuspat25.partners.org [170.223.207.25]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: bmschwar@fas) by us26.unix.fas.harvard.edu (Postfix) with ESMTPSA id 2CAA51F7545; Fri, 29 Jul 2011 13:31:17 -0400 (EDT)
Message-ID: <4E32EE61.1040304@fas.harvard.edu>
Date: Fri, 29 Jul 2011 13:31:13 -0400
From: "Benjamin M. Schwartz" <bmschwar@fas.harvard.edu>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110617 Lightning/1.0b2 Thunderbird/3.1.11
MIME-Version: 1.0
To: Ralph Giles <giles@thaumas.net>
References: <4E320353.5050505@fas.harvard.edu> <CAEW_Rkva4BmyXqVYzVHmuq3FX8yxRBp876P8pRRt_k2VeMGqXQ@mail.gmail.com>
In-Reply-To: <CAEW_Rkva4BmyXqVYzVHmuq3FX8yxRBp876P8pRRt_k2VeMGqXQ@mail.gmail.com>
X-Enigmail-Version: 1.1.2
Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="------------enig6F26707D26464B7722B78946"
Cc: "codec@ietf.org" <codec@ietf.org>
Subject: Re: [codec] Multi-mode frame concatenation
X-BeenThere: codec@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: bens@alum.mit.edu
List-Id: Codec WG <codec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/codec>, <mailto:codec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/codec>
List-Post: <mailto:codec@ietf.org>
List-Help: <mailto:codec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/codec>, <mailto:codec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Jul 2011 17:31:19 -0000
On 07/29/2011 01:12 PM, Ralph Giles wrote: > On 28 July 2011 17:48, Benjamin M. Schwartz wrote: > >> """ >> If M == 49, p == 0, and v == 1, then the packet is a "multi-mode packet". >> The decoder MUST read the next byte to determine the true values of M, p, >> and v. Decode shall then continue as normal, except that each frame shall >> be interpreted as a Code 0 packet. Decoders MUST NOT continue decoding >> the packet if any frame indicates a code other than 0. >> """ > > To clarify, the spec limits code 3 packets to 48 frames, so M > 48 is > currently rejected, and we have (2^4 - 2 = 14) extensions to the Opus > framing we can signal by allowing additional values here while > maintaining backward compatibility with draft-ietf-codec-opus-07. For some definitions of backwards compatibility, yes. The draft's text indicates that this extensibility is deliberate. I'm not sure where you get 14; I get (64-49)*4 = 60, at a minimum. > Your proposal for M = 49, p = 0, v = 1, or Opus frame count byte = 177 > is to set the multimode extension flag in the decoder state, and then > read the next byte as the Opus frame count byte. Then by "each frame > shall be interpreted as a code 0 packet" you mean the frames are read > according to the second frame count byte, with lengths if v = 1 and > without if v = 0, but instead of reading undecorated frames, the > decoder will read a toc byte at the start of each frame, like so: > > 0 1 2 3 > 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |1|1|s| config | 49 |0|1| M |p|1| Pad length : > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > : N1 (1-2 bytes): N2 (1-2 bytes): ... : N[M-1] | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |0|0|s| config | | > : Compressed frame 1 (N1 bytes)... : > | | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |0|0|s| config | | > : Compressed frame 2 (N2 bytes)... : > | | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | | > : ... : > | | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > |0|0|s| config | | > : Compressed frame M... : > | | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > : Padding (Optional)... | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > A VBR multimode packet > > > In any case, multimode packets would still be limited to 48 frames, > it's just that each would have a TOC byte so mode changes could be > signaled without forcing a packet boundary. Is that accurate? This is all extremely accurate. I had originally intended (following the language in your diagram) for Compressed frame 1 to consist of N1-1 bytes, so that its entirety (including the TOC byte) had size N1. However, I now see that your version is superior, as otherwise it would be impossible to represent the max-size frame (1275 bytes, or 1276 with the TOC byte).
- [codec] Multi-mode frame concatenation Benjamin M. Schwartz
- Re: [codec] Multi-mode frame concatenation Benjamin M. Schwartz
- Re: [codec] Multi-mode frame concatenation Ralph Giles
- Re: [codec] Multi-mode frame concatenation Benjamin M. Schwartz
- Re: [codec] Multi-mode frame concatenation Ralph Giles
- Re: [codec] Multi-mode frame concatenation Benjamin M. Schwartz
- Re: [codec] Multi-mode frame concatenation Ralph Giles
- Re: [codec] Multi-mode frame concatenation Benjamin M. Schwartz
- Re: [codec] Multi-mode frame concatenation Ralph Giles
- Re: [codec] Multi-mode frame concatenation Jonathan Lennox
- Re: [codec] Multi-mode frame concatenation Jean-Marc Valin