[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [rohc] ROHC-FN tutorial: scaled_seq_no compression formula
Hi Raffles,
I tried to implement this encoding:
ENFORCE(sequence_no.UVALUE == (scaled_seq_no.UVALUE * 3) % 16);
I saw, it is easy to calculate the sequence_no.UVALUE from then
scaled_seq_no.UVALUE, because the formula can be used 1:1.
But if I want to calculate the scaled_seq_no.UVALUE from the
sequence_no.UVALUE, I can't see how here.
Did I oversaw something?
So I restructured the formula, which was not so easy to me, because
there is no inverse for the "%" operator. So I wanted to share this,
maybe it is helpful for other developers.
> You specify "what" rather than "how"
My intention was to explain "how", not "what".
Could you please explain what was wrong about that?
br
Klaus
At Thu, 03 Sep 2009 21:37:39 +0100,
Raffles wrote:
>
> Hi Klaus,
>
> Thanks for the post. I think you have probably already seen the
> following line in the example:
>
> ENFORCE(sequence_no.UVALUE
> == (scaled_seq_no.UVALUE * 3) % 16);
>
> Which is to say, a similar function to the one which you have described,
> but expressed in the inverse form. The bindings created by this are two
> way. That is, this single line defines both compression and
> decompression. One of the key principles of the FN is that all bindings
> are two way, so that you only define the profile once for both
> compression and decompression. You specify "what" rather than "how". See
> section 3.2.1 for more details:
> http://tools.ietf.org/html/rfc4997#section-3.2.1
>
> Thanks for taking the time to read the RFC and send in a post.
>
> If you have any questions feel free to ask.
>
> Regards
>
> Raffles
>
>
> Klaus Warnke wrote:
> > Hello RoHC'ers 2.0,
> >
> > the example B.9. in the RFC 4997 ROHC-FN introduces a scaled_seq_no,
> > but provides no formula for compression.
> >
> > Here is my compression formula, maybe it is helpful for other.
> >
> > scaled_seq_no.UVALUE = (sequence_no.UVALUE + (m*16)) / 3
> >
> > where m is:
> >
> > m = 0 if (U%3 == 0)
> > m = 2 if (U%3 == 1)
> > m = 1 if (U%3 == 2)
> >
> > Checked with oo calc:
> >
> > U U%3 m M*16 U+m*16 C=(U+m*16)/3 C*3 U=(C*3)%16
> > - --- - ---- ------ ------------ --- ----------
> > 0 0 0 0 0 0 0 0
> > 1 1 2 32 33 11 33 1
> > 2 2 1 16 18 6 18 2
> > 3 0 0 0 3 1 3 3
> > 4 1 2 32 36 12 36 4
> > 5 2 1 16 21 7 21 5
> > 6 0 0 0 6 2 6 6
> > 7 1 2 32 39 13 39 7
> > 8 2 1 16 24 8 24 8
> > 9 0 0 0 9 3 9 9
> > 10 1 2 32 42 14 42 10
> > 11 2 1 16 27 9 27 11
> > 12 0 0 0 12 4 12 12
> > 13 1 2 32 45 15 45 13
> > 14 2 1 16 30 10 30 14
> > 15 0 0 0 15 5 15 15
> >
> > br
> > Klaus
> > _______________________________________________
> > Rohc mailing list
> > Rohc at ietf.org
> > https://www.ietf.org/mailman/listinfo/rohc
> >
> >
>
> --
> Raffles (Robert Finking)
> m: 0789 463 9887
> e: raffles at gluft.com
> w: gluft.com
>
> O O
> OOOOOO O O O OOOOOO OOOOO
> O O O O O OOOOO O
> OOOOOO O OOOOOO O O
> OOOOOO
> we care about software
>
> -----------------------------------------------------------------
> Gluft Ltd. Registered No.: 6795336
> The information contained in this e-mail and any attachments is
> proprietary to Gluft Ltd and must not be passed to any third
> party without permission. This communication is for information
> only and shall not create or change any contractual relationship.
> Please consider the environment before printing. Thank you.
> -----------------------------------------------------------------
>
> _______________________________________________
> Rohc mailing list
> Rohc at ietf.org
> https://www.ietf.org/mailman/listinfo/rohc