1 / 66

Adaptive Playout

This overview discusses the implementation of adaptive playout for real-time audio applications, focusing on buffering and addressing issues such as packet ordering, packet loss, and jitter. Various methods for estimating network delay and adjusting audio playout delay are explored.

margaretw
Download Presentation

Adaptive Playout

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adaptive Playout

  2. You are Here Encoder Decoder Middlebox Receiver Sender Network

  3. How to recv and play? open socket while not done if socket is readable read packet from socket remove RTP header decode play back

  4. What’s Wrong? • packet ordering • packet loss • next packet arrive in-time? Especially bad for audio applications

  5. Overview Decode RTP Classifier Network

  6. Implementation • Single Thread • using select() • Multi-Threads

  7. Packet Buffer • Sorted by sequence number • When ADU is complete, send to decoder RTP Classifier

  8. Playout Buffer • Stored decoded data in playout order • Post-processing/Mixing may happens Decode

  9. Why Buffer?

  10. Sending Packets Packet Time

  11. Receiving Packets Packet Time

  12. With Jitter Packet Time

  13. With Jitter Packet Time

  14. What causes Jitter? • Network delay = Transmission Delay (fixed) + Propagation Delay (fixed) + Queuing Delay (variable) • Delay jitter is caused by variable queuing delay

  15. Delay Jitter Transit Time small jitter large jitter Time

  16. Spike Transit Time Time

  17. Today’s Question • How big is the playout buffer? • When to playback?

  18. Types of Applications • Non-interactive • Buffer can be large • Interactive • As small as possible

  19. Types of Applications • Video • Frames are discrete (easier problem) • Audio • Samples are “continuous”

  20. Naive Answer • How big is a buffer? • Fixed at a small value, to reduce latency • When to playback? • Playback as soon as possible, to reduce latency

  21. A Brief Introduction to Audio Conferencing

  22. Audio Conferencing • Live, interactive application • Latency is important • Each packet 20-30ms of audio

  23. Silence Suppression • Silence Detection • if no sound, no need to send • Talk spurt • consecutive audio packets (between silence) • hundreds of ms

  24. Demo

  25. Recall: RTP Header • marker bit: • depends on payload • e.g. beginning of frame

  26. RTP and Talkspurt • First packet of a talkspurt will have marker bit set to 1

  27. RTP and Talkspurt • Deduce talkspurt from sequence number and timestamp SeqNo TimeStamp 1 20 2 40 3 60 5 190

  28. Consequences of Talkspurt • Opportunity to adjust playout delay • if jitter is large, increase delay • if jitter is small, decrease delay

  29. Fixed Playout Delay SEND RECV PLAY

  30. Adaptive Playout Delay SEND RECV PLAY

  31. Adaptive Playout Delay SEND RECV PLAY

  32. Trade-Off Latency vs. Packet Loss

  33. Latency vs Loss-Rate Loss Rate Latency

  34. Adaptive Playout Mechanisms for Packetized Audio Applications in WAN R. Ramjee, J. Kurose, D. Towsley, H. Schulzrinne INFOCOM 1995

  35. Variables and Notations

  36. Variables and Notations Tnet(i) Tbuf(i) Tarrive(i) Tplay(i) Tdelay(i) Tsend(i)

  37. 1st Packet in Talkspurt We can estimate as

  38. How to estimate Vnet(i)

  39. How to estimate Enet(i) • Method 1: Jacobson’s Method

  40. Spike Tnet Time

  41. Problems • Does not react to spike fast enough

  42. How to estimate Enet(i) • Ramjee’s Method SPIKE NORMAL

  43. Ramjee’s Idea if Tnet(i) suddenly increase SPIKE NORMAL if “slope” is small enough

  44. In Spike Mode SPIKE Tnet i

  45. In Normal Mode NORMAL Tnet i

  46. Evaluations Loss Rate Delay

  47. Problems with Ramjee’s Method Transit Time Time

  48. Packet Audio Playout Delay Adjustment: Performance Bounds and Algorithms S. Moon, J Kurose, D. Towsley Multimedia Systems 1998

  49. Recall Previous Methods

  50. How to Set Tdelay(i) • Moon’s Method • Collect statistics on packets that have arrived. • Find t such that q% of last w packets have Tnet(i) < t.

More Related