250 likes | 498 Views
Delay Jitter. Ketan Mayer-Patel. What is jitter?. Jitter: variation in delay Can be measured as the variance of delay. Sender. Reciever. Elements of Delay. Packetization Think of audio. Propagation Physical transmission. Queuing Routing, congestion, etc.
E N D
Delay Jitter Ketan Mayer-Patel Comp 249 - Spring 2003
What is jitter? • Jitter: variation in delay • Can be measured as the variance of delay. Sender Reciever Comp 249 - Spring 2003
Elements of Delay • Packetization • Think of audio. • Propagation • Physical transmission. • Queuing • Routing, congestion, etc. • This is the part that is most variable. • Synchronization • May need to wait for corresponding samples from other streams. Comp 249 - Spring 2003
Elements of Delay Sampling Compress Packetization Transmission Reception Decompress Synchronize Display Comp 249 - Spring 2003
Sources of Jitter • In general, due to queuing effects. • When queue is building… • Competing traffic inserted between successive packets of a stream. • When queue is draining… • Probe compression. Comp 249 - Spring 2003
Jitter Buffer • In general, jitter is removed by buffering in the reciever. • Sources of delay and jitter considered a black box. Comp 249 - Spring 2003
Jitter Buffer Sampling Compress Packetization Transmission Reception Decompress Synchronize Display Usually here with hardware support. Usually here with software support. Comp 249 - Spring 2003
Why? • Why do we care about jitter anyway? • Smoothness of playback. • Inelastic media types. • What is the cost of a jitter buffer? • Increased end-to-end latency. • When will we care about this? • Interactive streams. • Live streams. • Stored playback applications can afford the cost of larger jitter buffers. Comp 249 - Spring 2003
Media Elasticity • Extent to which presentation time of one ADU is dependent on presentation times of previous ADU’s. • Video • Fairly elastic. • Audio • Fairly inelastic Comp 249 - Spring 2003
Jitter Buffer Design • On one extreme: static jitter buffer. • Total delay budget held at some static amount. • If ADU arrives late, same as if lost (i.e., discard) • I-policy [Naylor82] • On the other: constantly increasing buffer. • Every ADU is played. • Jitter buffer is adjusted to largest delay seen thus far. • E-policy Comp 249 - Spring 2003
I-policy • Establish jitter buffer on first ADU. p = t * r + off • Use first ADU to calculate offset. • p = playout time • t = timestamp of ADU • r = period of ADU clock • off = jitter buffer offset • Solve for off for first ADU. • Add jitter allowance to off. Comp 249 - Spring 2003
Example • Variance allowance = 60 ms • Media timestamp period = 30 ms • First ADU: • Media Timestamp = 10 • System Clock = 1000 • Solve for off: • 1000 = 10 * 30 + off => off = 700 • Add variance allowance • p = t * 30 + 760 Comp 249 - Spring 2003
I-policy • Maintain queue of incoming ADU’s and schedule playback of head. • Example: Packet TS ArrivalTime a 10 1000 b 11 1025 c 12 1050 d 13 1095 e 14 1185 Comp 249 - Spring 2003
I-policy • Playback smoothness is achieved if arriving ADU’s delay average + max jitter is less than first ADU delay + jitter allowance. • What happens if initial delay is unrepresentative? Comp 249 - Spring 2003
E-policy • Solve for off for every ADU. • If late, adjust off. • If early, queue. • Again, maintain a queue and schedule playout of the head. • Basically keep adjusting playout delay for the largest delay experienced so far. • Accommodates jitter by definition. Comp 249 - Spring 2003
E-policy Packet TS ArrivalTime a 10 1000 b 11 1025 c 12 1050 d 13 1095 e 14 1185 Comp 249 - Spring 2003
Adaptive Buffer Techniques • Between E and I are adaptive techniques. • Adaptively estimate delay variance. • Calculate off on a per ADU basis. • Maintain a weighted moving average for off. • Maintain a weighted moving average for variance of off. • Manage queue using off average + k * off variance where k is typically 2-4 p = t * r + (off + k * v) Comp 249 - Spring 2003
Moving Averages offnew estimate=offold estimate+x (offobserved–offold estimate) vnew estimate=vold estimate+x (|offobserved–offold estimate| –vold estimate) or offnew estimate=offold estimate+ (1 – )offobserved vnew estimate=vold estimate+ (1 – ) x (|offobserved–offold estimate|) or offnew estimate= MIN(offobservedin the recent past) Comp 249 - Spring 2003
Adjusting Down • Extending jitter buffer delay is easy. • How do you make downward adjustments? • Two basic techniques: • Play faster • Drop ADU’s Comp 249 - Spring 2003
Adaptive Issues • What should k be? • Depends on variance distribution. • What should weighting coefficients be? • Tradeoff between stability and responsiveness. • What about inelastic media? • Truncating audio frames or allowing space between audio frames causes problems. Comp 249 - Spring 2003
Media Specific Techniques • For audio, can take advantage of “talkspurt” structure. • Make playout buffer adjustments in silence periods. Comp 249 - Spring 2003
off+kv offnew+kvnew Send a b c d e f g h Receive Playout Talkspurt i Talkspurt i+1 Talkspurt Example Comp 249 - Spring 2003
Agility vs. Stability • Tradeoff between agile and stable. • Controlled by gain parameter in moving weighted filters. • Agile • Weighs new measurements more than past measurements. • Reacts quickly to change. • Can react too quickly to transient changes. • Stable • Weighs past measurements more than new measurements • Change in value bounded to small percentage of current value. • Takes a while to react to fundamental changes. Comp 249 - Spring 2003
Kim and Noble 01 • Proposes three different filters which adaptively vary the gain parameter. • Flip-flop: detects when to use an agile gain and when to use a stable gain. • Control heuristics come from statistical process control world • Stability filter: adapts gain relative to current variance measure and recent variance range. • Error filter: adapts gain to reinforce “good” estimation behavior. • Concludes that FF filter works best in fairly wide spectrum of applications. • Work done in the mobile domain but very applicable to all areas of networking. Comp 249 - Spring 2003