Subject: [rohc] Question about scaled TS encoding in ROHC RTP

From: Haipeng Jin <[email-masked]>
Date: Thu, 20 Nov 2003 18:15:15 -0800

Hi, all,

In ROHC RTP, the scaled TS is encoded using WLSB algorithm. Since the 
wraparound boundary between the TSS_MAX may not correspond to a natural 
boundary between LSBs, a number of unused values are inserted into it after 
TSS_MAX such that their LSBs follow naturally upon each other.  In order to 
ensure the number of valid values in the interpretation interval to be high 
enough to maintain robustness, a scaling rule (RFC3095, 4.5.3) is used to 
increase the number of bits actually sent at wraparound.

Here comes my question: What kind of robustness does the RFC actually refer 
to by maintaining a large number of valid values in the interpretation 
interval? It seems to me that if there are no errors in the bits 
transmitted in the compressed header, then the TS will be decoded correctly 
no matter how many invalid values are in the interval. If there are errors 
in the transmitted bits, then the decompressed TS will always be in error 
no matter how few the number of invalid values in the interval is, an 
erroneous TS is an erroneous TS, no matter it is a valid value or invalid 
value in the interval. Can anyone could please explain the reasoning behind 
the scaling rule?

Actually, I also notice that if the scaling rule is used, there may 
actually be some problem when there are negative wraparounds.
Here is an example, suppose tss_max = 0x0333, reference value vr = 0, the 
value to be coded v = 0x0333, p = 2^(k-2)-1 according to ROHC.

First, LSB encoding:
k       p       interval                        interval offset to vr
2       0           (0, 3)                              (0, 3)
3       1           (0x0337, 6)         (-1, 6)
4       3       (0x033D, 12)            (-3, 12)
5       7       (0x0339, 24)            (-7, 24)
6       15      (0x0331, 48)            (-15, 48)
It seems that 6 bits are needed.

Second, setting the 6 LSBs of vmax to 0 gives us 0x300, according to 
scaling rule, 9 bits will be sent.

Third, at the decompressor, the interpretation interval is given by (0 - 
127, 0+384) = (0x03ff + 1 - 0x7f, 384) = (0x381, 0x180), v = 0x0333 is NOT 
in the interval! Notice that since 9 bits are used in encoding, the 
wraparound boundary is now between 0x03FF and 0 after inserting some unused 
values.

What is the problem here?

Thank you.

Haipeng

_______________________________________________
Rohc mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rohc