Computer Networks – Play-out Delay
October 27, 2009 2 Comments
Internet Phone: Fixed Play-out Delay
With this, the receiver attempts to play out each chunk of data at exactly qms after the chunk was generated.
- This chunk has a time stamp, t: So the play-out chunk is at t+q
- If the chunk arrives after t+q, then the data arrives too late for play-out – the data is LOST!
The trade-off with this is choosing q:
- Large q has less packet loss
- Small q has better interactive experience
Fixed Play-out Delay
The sender generates packets every 20ms during talk spurt. The first packet is received at time r.
The schedule to deal with the packet is based on the size of q.
- The first play-out schedule for a small q begins at p.
- The second play-out schedule for a larger q begins at p’.
Adaptive Play-out Delay
The goal of this is to minimize the play-out delay, and to keep the late loss rate low.
The approach to deal with adaptive play-out delay adjustment is to estimate the network delay and then adjust the play-out delay at the beginning of each talk spurt. This requires that silent periods be compressed and elongated.
There is – believe it or not – a formula that can be used to minimise play-out delay, the components of this formula are:
- ti = the timestamp for the i’th packet
- ri = the time that packet ‘i’ is received by the receiver
- pi = the time that packet ‘i’ is played at the receiver
- ri-ti = the network delay for the i’th packet
- di = the estimate of the average network delay after receiving the i’th packet
All of this can then be put into the formula to calculate this average network delay:
- di = (1 – u)di-1 + u(ri – ti)
Where u is a fixed constant of around u=0.1
Another useful formula to note, it the formula to calculate the average deviation of delay, vi:
- vi = (1 – u)vi-1 + u | ri – ti – di |
and finally, in order to calculate the play-out time for the very first packet in a talk spurt we can use:
- pi = ti + di + Kvi -> (timestamp + est. delay + scaled deviation)
In this, K has to be a positive constant, and is used to scale the average deviation of delay.