RE: [rohc] The discussion on slope(s)

zhigang.c.liu@nokia.com Fri, 03 December 2004 05:59 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 AAA14605 for <rohc-web-archive@ietf.org>; Fri, 3 Dec 2004 00:59:58 -0500 (EST)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1Ca6Zm-0002cF-4Q for rohc-web-archive@ietf.org; Fri, 03 Dec 2004 01:05:54 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1Ca3uL-0008KV-Eo; Thu, 02 Dec 2004 22:14:57 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1Ca1b1-0004nL-S3 for rohc@megatron.ietf.org; Thu, 02 Dec 2004 19:46:51 -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 TAA20813 for <rohc@ietf.org>; Thu, 2 Dec 2004 19:46:48 -0500 (EST)
From: zhigang.c.liu@nokia.com
Received: from mgw-x1.nokia.com ([131.228.20.21]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1Ca1ge-0004Go-TH for rohc@ietf.org; Thu, 02 Dec 2004 19:52:41 -0500
Received: from esdks004.ntc.nokia.com (esdks004.ntc.nokia.com [172.21.138.159]) by mgw-x1.nokia.com (Switch-2.2.8/Switch-2.2.8) with ESMTP id iB30kgv00765; Fri, 3 Dec 2004 02:46:43 +0200 (EET)
X-Scanned: Fri, 3 Dec 2004 02:45:57 +0200 Nokia Message Protector V1.3.31 2004060815 - RELEASE
Received: (from root@localhost) by esdks004.ntc.nokia.com (8.12.9/8.12.9) id iB30jveY015390; Fri, 3 Dec 2004 02:45:57 +0200
Received: from mgw-int1.ntc.nokia.com (172.21.143.96) by esdks004.ntc.nokia.com 00I7jcDU; Fri, 03 Dec 2004 02:45:56 EET
Received: from daebh002.NOE.Nokia.com (daebh002.americas.nokia.com [10.241.35.122]) by mgw-int1.ntc.nokia.com (Switch-2.2.8/Switch-2.2.8) with ESMTP id iB30jsa10064; Fri, 3 Dec 2004 02:45:54 +0200 (EET)
Received: from ajebe001.NOE.Nokia.com ([172.18.151.16]) by daebh002.NOE.Nokia.com with Microsoft SMTPSVC(5.0.2195.6881); Thu, 2 Dec 2004 18:45:53 -0600
content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Subject: RE: [rohc] The discussion on slope(s)
X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1
Date: Thu, 02 Dec 2004 19:45:52 -0500
Message-ID: <7B5AF06E216CB74DA8A5960A3181B5B82891BA@ajebe001.americas.nokia.com>
Thread-Topic: [rohc] The discussion on slope(s)
Thread-Index: AcTYtfwk9gc50plbQpGSrLaJQS9/9QACTxgQ
To: cabo@tzi.org
X-OriginalArrivalTime: 03 Dec 2004 00:45:53.0945 (UTC) FILETIME=[71A26890:01C4D8D1]
X-Spam-Score: 0.3 (/)
X-Scan-Signature: 14582b0692e7f70ce7111d04db3781c8
Content-Transfer-Encoding: quoted-printable
Cc: 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.3 (/)
X-Scan-Signature: 6e922792024732fb1bb6f346e63517e4
Content-Transfer-Encoding: quoted-printable

Carsten,

> > 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.

A zero TS_STRIDE would also make section 4.5.3 look weird. For example, 
"it compresses the downscaled values: TS_SCALED = TS / TS_STRIDE."

> > 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.

Yes. I re-draw the picture below to make it clear. Also, I corrected
a typo (TS in packet 13). Of course, there are many different scenarios
of context-updating packets or ACKs of them being lost (see below)
I can provide additional examples with detail if needed.

             <------- String 1 -------->    <----- String 2 ------->
SN           11  12  13  14  15 ...   60    61    62    63    64 ...
Ctxt-Update   x   x   x                      x     x     x
TS          200 360 520 680 840 ... 8040 16040 16200 16360 16520 ...
TS_SCALED     1   2   3   4   5 ...   50   100   101   102   103 ...
TS_OFFSET    40  40  40  40  40 ...   40    40    40    40    40 ...
slope       <-----------  1 ----------->    <---------- 1 --------->
offset      <----------- (-10)--------->    <--------- (39) ------->


> > 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.

In the above example, the compressor wouldn't send SN-60 as
context-updating (CU) packet, since its TS_SCALED still conforms 
to the linear pattern. The compressor would send SN-61 as CU
since it's the one that breaks TS_SCALED pattern. For packets 
after SN-61, the compressor can have different options as follows
(basically text in section 5.5.1.2 of 3095):
1) Send all of them as CU until receiving two ACKs.
2) Send some of them as CU while others non-CU, until receiving two ACKs.
3) In this example, since the slope(String 1) = slope(String 2),
the compressor can be "lazy" by doing either 1 or 2, but just waiting 
for one ACK before sending -0 packets.

Now the decompressor side:
- When it receives the first CU after -0 packets, it knows a
new string begins.
- If it received and ACKed only one CU before receiving another -0 
packet, it knows compressor is in case 3 above, which means
slope(String 2) = slope(String 1). It decompress -0 accordingly.
- Else, the decompressor knows the compressor is in case 1 or 2. 
Calculate the slope using the last two CUs that have been ACKed.

> 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.

But msg934 slope does not add much delay, since at least one CU packet 
is needed anyway to synchronize the offset.

a) if the slope of TS_SCALED is always equal to the default-slope, 
then msg934 slope also means one CU is needed. Same result.

b) Else, the new slope has to communicated to the decompressor.
Now, if we follow msg934, two CUs are needed. For R-mode, it means
RTT + another ACK (say compressor takes option 1). For UO-mode, 
it means L+1 CU packets need to be sent. The difference is just 
one packet.

Furthermore, for case b), I still need to see how exactly it would work 
without msg934. 

BR, Zhigang


_______________________________________________
Rohc mailing list
Rohc@ietf.org
https://www1.ietf.org/mailman/listinfo/rohc