[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ippm] Fwd: New work relating to delay variation in AVT



At 07:41 AM 3/19/2007, Matt forwarded Tom's message:
A recent I-D by Morton dealing with delay variation made me aware of
IPPM interest in this topic. For that reason I direct your attention to
draft-ietf-avt-rtp-toffset-05.txt which, for RTP packets, provides the
means to separate delay variation introduced at the source host from
that introduced in the intervening transport network. This draft has
passed WGLC and is being forwarded to the IESG for approval. If you have
comments, please submit them as IETF Last Call comments to the IESG.

Thanks,
Tom Taylor
AVT co-chair

A minor pre-last call comment on section 4, please put this in your pocket, Tom. ... Precisely, the replacement equation for the equation in the RTP specification is, where Ri is the arrival time:

   D(i,j) = (Rj - Ri) - ((Sj + Oj) - (Si + Oi))
          = (Rj - (Sj + Oj)) - (Ri - (Si + Oi))

I suggest:
s/Ri is the arrival/Rj is the most recent arrival/

to give the right emphasis, otherwise there might be confusion
about arrival order for subtraction. RFC3550 makes the order clear
in the material that follows, but the text above leaves the reader
with the possible misinterpretation that Ri is most recent packet.

My sensitivity to this stems from finding that another
standards body read IPPM's RFC 3393 on delay variation,
and wrote the subtraction backwards in their spec.
(but then they use the absolute value, anyway).

Al


Some background from RFC3550 & notes follow, for convenience:

S 6.4.1, p 39
interarrival jitter: 32 bits
      An estimate of the statistical variance of the RTP data packet
      interarrival time, measured in timestamp units and expressed as an
      unsigned integer.  The interarrival jitter J is defined to be the
      mean deviation (smoothed absolute value) of the difference D in
      packet spacing at the receiver compared to the sender for a pair
      of packets.  As shown in the equation below, this is equivalent to
      the difference in the "relative transit time" for the two packets;
      the relative transit time is the difference between a packet's RTP
      timestamp and the receiver's clock at the time of arrival,
      measured in the same units.

      If Si is the RTP timestamp from packet i, and Ri is the time of
      arrival in RTP timestamp units for packet i, then for two packets
      i and j, D may be expressed as

         D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)

(ACM: packet with index j has just arrived, i is the previous packet,
as the alpha-order implies)

      The interarrival jitter SHOULD be calculated continuously as each
      data packet i is received from source SSRC_n, using this
      difference D for that packet and the previous packet i-1 in order
      of arrival (not necessarily in sequence), according to the formula

         J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16
(ACM: this is clear, but here packet i has just arrived,
changing the notation from the equation above)

      Whenever a reception report is issued, the current value of J is
      sampled.

      The jitter calculation MUST conform to the formula specified here
      in order to allow profile-independent monitors to make valid
      interpretations of reports coming from different implementations.
      This algorithm is the optimal first-order estimator and the gain
      parameter 1/16 gives a good noise reduction ratio while
      maintaining a reasonable rate of convergence [22].  A sample
      implementation is shown in Appendix A.8.  See Section 6.4.4 for a
      discussion of the effects of varying packet duration and delay
      before transmission.

...

A.8 Estimating the Interarrival Jitter

   The code fragments below implement the algorithm given in Section
   6.4.1 for calculating an estimate of the statistical variance of the
   RTP data interarrival time to be inserted in the interarrival jitter
   field of reception reports.  The inputs are r->ts, the timestamp from
   the incoming packet, and arrival, the current time in the same units.
   Here s points to state for the source; s->transit holds the relative
   transit time for the previous packet, and s->jitter holds the
!!!------------------------------------
   estimated jitter.  The jitter field of the reception report is
   measured in timestamp units and expressed as an unsigned integer, but
   the jitter estimate is kept in a floating point.  As each data packet
   arrives, the jitter estimate is updated:

      int transit = arrival - r->ts;
      int d = transit - s->transit;
!!!!!!-----------------------------  (ACM: the code fragments are clear)
      s->transit = transit;
      if (d < 0) d = -d;
      s->jitter += (1./16.) * ((double)d - s->jitter);



_______________________________________________
ippm mailing list
ippm at ietf.org https://www1.ietf.org/mailman/listinfo/ippm