Video Compression

VideoNerd

Content

What’s Network Jitter

How to Estimate Jitter

Few of Experimental Data

 

 

Network connection is influenced by a number factors: network delay, queuing delay in middle boxes,  network jitter, packet loss, packet re-ordering and even packet duplication. In this post we speak about the network jitter.

 

 

What’s Network Jitter

Network jitter is a measure of variation of arrivals times of packets to Receiver, it’s desirable that Sender sends packets uniformly, equally spaced time intervals, otherwise the network jitter is noised. In other words the network jitter of a packet is the difference between the actual arrival time and the expected one.  If the difference is greater 0 then the packet has arrived Receiver lately (and can be discarded if it arrived too lately).  If the difference is negative then the packet arrived early and Receiver should have sufficiently large playout buffer to amortize the jitter.

 

 

Large network jitter requires large amortization buffer at Receiver and consequently additional latency added. Cloud gaming and video conferencing applications are very sensitive to the latency. If the network jitter is smaller than the frame duration (1/fps) then an input buffer is sufficient to accumulate a single frame, otherwise the amortization buffer is needed.

Instantaneous changes in arrival times of packets that exceed the jitter amortization buffer result in overruns (Receiver discards input packets since there is no room to absorb them) or underruns (Receiver should decode and display a frame, but the frame has not completely arrived or the buffer is empty. In such case Receiver can wait until the frame completed but it might produce visible stuttering and even lip-syncs). 

The amortization buffer at Receiver can be adaptive according to measured network jitter: larger jitter larger buffer and vice versa.

 

 

the figure is taken from the book “End-to-End QoS Network Design Quality of Service for Rich-Media & Cloud Networks”, Tim Szigeti et al. , 2014

 

How to Estimate Jitter

Let’s assume that Sender sends RTP-packets, each RTP packet carries its own delivery timestamp (usually in units of ms). RTP packetization is popular in media streaming.

Protocol stack of delivered media (MPEG2 System or Transport Stream is optional and not recommended, this layer adds ~2% of overhead):

 

 

Timestamps are conveyed in RTP layer, we show below that the timestamps are necessary to estimate the network jitter.

 

 

 

Denote the deviation D(i)  of inter-arrival times of successive packets i-th and (i+1)-th:

 

D(i)  =    (R(i+1) – R(i))  – (S(i+1)-S(i))             (1)

 

Where R(i) is the timestamp in RTP header of i-th packet (at Sender’s clock), S(i) is arrival time of i-th packet to Receiver (at Receiver’s clock).

It’s obvious from the formula (1) that if the network jitter is zero then D(i) = 0.

The network jitter J can be progressively updated as follows:

for the very first packet   J = |D(0)|

for non-first packet ‘i’:

J  =   J  +  1/16( | D(i) | – J )

 The 1/16 is the reactive factor, you can take 1/32 or 1/8.

 

Conclusion: The larger jitter the larger playout buffer at Receiver’s side. 

Mismatches between the network jitter and the playout buffer can cause annoying effects like jerkiness in playback due to the failure of some frames to meet their presentation deadlines (the frame arrives too late or the frame arrives too early and the playout buffer is full).

 

Few of Experimental Data

According to the work “RTP: Audio and Video for the Internet” by Colin Perkins  the network jitter is not distributed normally, the distribution is right-tailed:

In such case STD makes few sense, for example we can’t use the rule of 3-sigmas (only in the normal distribution the probability of deviation from 3-sigmas is less 1%). In the case of skewed asymmetrical distribution the STD is replaced with other parameter called ‘skewness’:

 

Another definition of the skewness: 

                        3(mean – median)/σ

 

or even

(mean – median)/σ 

 

17 Responses

  1. Hello, i feel that i saw you visited my weblog thus i got here to “return the choose”.I am attempting to in finding things to improve my web site!I guess its adequate to make use of a few of your ideas!!

  2. After research a few of the weblog posts in your web site now, and I actually like your approach of blogging. I bookmarked it to my bookmark web site checklist and can be checking again soon. Pls check out my website online as well and let me know what you think.

  3. Youre so cool! I dont suppose Ive read something like this before. So good to search out somebody with some authentic ideas on this subject. realy thank you for beginning this up. this web site is something that is needed on the web, someone with just a little originality. helpful job for bringing one thing new to the web!

  4. Whats up very cool website!! Guy .. Beautiful .. Wonderful .. I will bookmark your web site and take the feeds additionally…I am happy to find numerous helpful info here in the put up, we’d like work out more techniques on this regard, thanks for sharing.

  5. Hey there! This is kind of off topic but I need some advice from an established blog. Is it difficult to set up your own blog? I’m not very techincal but I can figure things out pretty fast. I’m thinking about setting up my own but I’m not sure where to start. Do you have any points or suggestions? Many thanks

  6. It’s really a great and useful piece of information. I’m glad that you shared this useful information with us. Please keep us informed like this. Thanks for sharing.

Leave a Reply

Your email address will not be published. Required fields are marked *