Re: [rohc] The discussion on slope(s)
Carsten Bormann <cabo@tzi.org> Thu, 02 December 2004 23:24 UTC
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id SAA13597 for <rohc-web-archive@ietf.org>; Thu, 2 Dec 2004 18:24:00 -0500 (EST)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1Ca0OT-0002J5-A1 for rohc-web-archive@ietf.org; Thu, 02 Dec 2004 18:29:52 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CZyyj-0001ye-GK; Thu, 02 Dec 2004 16:59:09 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CZyT5-00040g-TV for rohc@megatron.ietf.org; Thu, 02 Dec 2004 16:26:27 -0500
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id QAA00817 for <rohc@ietf.org>; Thu, 2 Dec 2004 16:26:25 -0500 (EST)
Received: from imh.informatik.uni-bremen.de ([134.102.224.4] helo=informatik.uni-bremen.de) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CZyYe-0007aB-91 for rohc@ietf.org; Thu, 02 Dec 2004 16:32:15 -0500
Received: from [IPv6:::1] (imh [134.102.224.4]) by informatik.uni-bremen.de (8.12.11/8.12.11) with ESMTP id iB2LQDvL022452; Thu, 2 Dec 2004 22:26:14 +0100 (MET)
In-Reply-To: <7B5AF06E216CB74DA8A5960A3181B5B82891B7@ajebe001.americas.nokia.com>
References: <7B5AF06E216CB74DA8A5960A3181B5B82891B7@ajebe001.americas.nokia.com>
Mime-Version: 1.0 (Apple Message framework v619)
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Message-Id: <CB699B02-44A8-11D9-951E-000A95DC4DB6@tzi.org>
Content-Transfer-Encoding: 7bit
From: Carsten Bormann <cabo@tzi.org>
Subject: Re: [rohc] The discussion on slope(s)
Date: Thu, 02 Dec 2004 22:26:14 +0100
To: zhigang.c.liu@nokia.com
X-Mailer: Apple Mail (2.619)
X-Virus-Scanned: by AMaViS/Sophos at informatik.uni-bremen.de
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 287c806b254c6353fcb09ee0e53bbc5e
Content-Transfer-Encoding: 7bit
Cc: Carsten Bormann <cabo@tzi.org>, rohc@ietf.org, ghyslain.pelletier@ericsson.com, lars-erik.jonsson@ericsson.com
X-BeenThere: rohc@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Robust Header Compression <rohc.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:rohc@ietf.org>
List-Help: <mailto:rohc-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=subscribe>
Sender: rohc-bounces@ietf.org
Errors-To: rohc-bounces@ietf.org
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 36c793b20164cfe75332aa66ddb21196
Content-Transfer-Encoding: 7bit
> As it is described in section 4.5.3 and other places in RFC > 3095, TS_STRIDE is the factor by which an RTP Timestamp is > downscaled before compression. Obviously, it cannot be 0 (zero). Well, zero is not exactly prohibited, but then you couldn't send any other value than TS_OFFSET, which wouldn't be too useful. > The wording of TS_STRIDE definition in section 2 is confusing > and may be incorrectly interpreted as TS_STRIDE is always equal > to the increase in TS value between two RTP packets with > consecutive sequence number. This is not the intent of the > specification. It is the compressor that decides whether TS > scaling should be used and if yes, what is the best value of > TS_STRIDE. See section 4.5.3 for information. How this is done > is an implementation issue. However, an implementation must follow > section 4.5.3, 4.5.6 and 5.7 on how to initialize, encode, and > synchronize TS_STRIDE between the compressor and decompressor. I hope we are all in agreement about this. > Note: TS_STRIDE is not the same as slope described in section > 5.5.1.2 and 5.7. Here, slope has the general meaning in mathematics. > Namely, slope(X) equals the change of a non-SN field X between > two packets divided by the change of SN field between the same > two packets. It is one of the two parameters (the other one > being offset) that define a linear function from SN to field X. > The concept can also be visualized as a line, with SN being > the horizontal coordinate and the field X being the vertical > coordinate. For TS, this applies regardless whether it is scaled > or not. In case the TS is scaled, the linear function (or equivalently > its slope and offset) is from SN to the TS_SCALED. This is the msg934 dynamic slope. In 3095, some of this shines through in the description of R-mode, but in no other place. I believe we are split between: -- This is a mistake in the R-mode text -- msg934 slopes only apply to R-mode (one quite logical conclusion from the text of 3095) -- msg934 slopes apply to all headers that do not send a timestamp. In the latter two cases some text from msg934 or equivalent would need to be retrofitted to the standard. > Note: it should be clear from section 4.5.3 that when scale is > used for TS, two steps are involved: 1) downscale of the > original TS to TS_SCALED; and 2) compression of TS_SCALED. Again, I hope we all agree on this part. > The decompressor follows the reverse procedure with two steps. > Following are two examples to further illustrate this. > > Example 1 (audio stream with TS_STRIDE = 160): > > <------ String 1 ------> <-- String 2 ---> > SN 11 12 13 14 ... 60 61 62 63 ... > TS 200 360 420 580 ... 8040 16040 16200 16360 ... > TS_SCALED 1 2 3 4 ... 50 100 101 102 ... > TS_OFFSET 40 40 40 40 40 40 40 40 ... > slope <-------- 1 ----------> <----- 1 -------> > offset <-------- (-10)--------> <----- (39) ----> The problem with this picture is that it does not identify which of the packets are context-updating. The way I read msg934, the intention of this proposal was to only compute slope from the points created by CRC-checked packets. > Example 2 (video stream with TS_STRIDE = 3000): > > <------ String 1 ------> <-- String 2 ---> > SN 11 12 13 ... 25 26 27 28 ... > TS 4000 4000 4000 ... 4000 7000 7000 7000 ... > TS_SCALED 1 1 1 ... 1 2 2 2 ... > TS_OFFSET 1000 1000 1000 ... 1000 1000 1000 1000 ... > slope <-------- 0 ----------> <----- 0 -------> > offset <--------- 1 ----------> <----- 2 -------> > > Note: the default-slope(X) specified in section 5.7 is to be used > by the compressor and decompressor to initialize the slope of the > linear function from SN to field X. This is an optimization to > save synchronization overhead at the beginning of an RTP packet > stream. Namely, if the actual slope of X in the first string matches > the default-slope(X), the compressor can enter SO state and send > Type 0 packets once it is confident that one - instead of two in > the normal case - packet carrying field(X) has been correctly > decompressed by the decompressor. This is enough for the decompressor > to determine the other parameter, i.e. offset, for the linear function > from SN to X. After the fist string, the decompressor will update the > linear function from SN to X depending on how many packets carrying > field(X) have been correctly decompressed. I'm not sure I understand this sentence. After SN-60 and SN-61 (assuming both are context-updating), the msg934 slope is 50. (If SN-60 is not context-updating and SN-59 and SN-61 are context-updating, the slope is 25. If neither SN-59 nor SN-60 is context-updating and SN-58 and SN-61 are context-updating, there is no msg934 slope and you cannot send -0 headers if you assume msg934.) Since you don't really know which of these actually arrived (even in R-mode, you must wait for the ACKs to arrive, and some these might even be lost), it will take a while before it is one again. This is one of the reasons I'm not a great fan of msg934 slopes. Gruesse, Carsten _______________________________________________ Rohc mailing list Rohc@ietf.org https://www1.ietf.org/mailman/listinfo/rohc
- [rohc] The discussion on slope(s) Lars-Erik Jonsson (LU/EAB)
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- RE: [rohc] The discussion on slope(s) Ghyslain Pelletier (LU/EAB)
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- Re: [rohc] The discussion on slope(s) Carsten Bormann
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- RE: [rohc] The discussion on slope(s) Lars-Erik Jonsson (LU/EAB)
- Re: [rohc] The discussion on slope(s) Kristofer Sandlund
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- Re: [rohc] The discussion on slope(s) Carsten Bormann
- Re: [rohc] The discussion on slope(s) Carsten Bormann
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- Re: [rohc] The discussion on slope(s) Lars-Erik Jonsson
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- Re: [rohc] The discussion on slope(s) Kristofer Sandlund
- RE: [rohc] The discussion on slope(s) Lars-Erik Jonsson (LU/EAB)
- RE: [rohc] The discussion on slope(s) Lars-Erik Jonsson (LU/EAB)
- RE: [rohc] The discussion on slope(s) Lars-Erik Jonsson (LU/EAB)
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- Re: [rohc] The discussion on slope(s) Carsten Bormann
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- Re: [rohc] The discussion on slope(s) Lars-Erik Jonsson
- Re: [rohc] The discussion on slope(s) Kristofer Sandlund
- RE: [rohc] The discussion on slope(s) Lars-Erik Jonsson (LU/EAB)
- RE: [rohc] The discussion on slope(s) zhigang.c.liu
- Re: [rohc] The discussion on slope(s) Carsten Bormann
- RE: [rohc] The discussion on slope(s) zhigang.c.liu