
Adaptive Playout
Explore the concept of adaptive playout in networked applications through a series of informative images and discussions. Learn about strategies for receiving and playing data, the challenges of packet ordering and loss, implementation techniques, and the importance of packet and playout buffers.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Adaptive Playout 1 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
You are Here Encoder Decoder Middlebox Receiver Sender Network 2 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
How to recv and play? open socket while not done if socket is readable read packet from socket remove RTP header decode play back 3 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Whats Wrong? packet ordering packet loss next packet arrive in-time? Especially bad for audio applications 4 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Overview Decode RTP Classifier Network 5 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Implementation Single Thread using select() Multi-Threads 6 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Packet Buffer Sorted by sequence number When ADU is complete, send to decoder RTP Classifier 7 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Playout Buffer Stored decoded data in playout order Post-processing/Mixing may happen Decode 8 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Why Buffer? 9 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Sending Packets Packet Time 10 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Receiving Packets Packet Time 11 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
With Jitter Packet Time 12 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
With Jitter Packet Time 13 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
What causes Jitter? Network delay = Transmission Delay (fixed) + Propagation Delay (fixed) + Queuing Delay (variable) Delay jitter is caused by variable queuing delay 14 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Delay Jitter Transit Time small jitter large jitter Time 15 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Spike Transit Time Time 16 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Todays Question How big is the playout buffer? When to play back? 17 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Types of Applications Non-interactive Buffer can be large Interactive As small as possible 18 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Types of Applications Video Frames are discrete (easier problem) Audio Samples are continuous 19 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
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 20 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Client Buffer Management Bandwidth Smoothing for Non- interactive Applications 21 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Multi-Threshold Flow Control R. Zimmermann, K. Fu, M. Jahangiri, C. Shahabi MTAP 2006 22 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Video-on-Demand (VoD) High-quality playback required Buffer can be large Encoding may be VBR for high visual quality Playback time may be very long (2+ hours) 23 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Two Approaches (1) Server-controlled Pre-compute transmission schedule Piece-wise linear approximation: compute a number of constant-rate segments Different optimization criteria Minimize: # of rate changes, # utilization of client buffer, peak rate, etc. 24 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Two Approaches (2) Client-controlled Client adaptively informs server Advantages: No rate history necessary (VBR) Can adjust to network conditions Works easily with interactive commands such as FF, FR, Pause 25 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Robust Stream Delivery Smoothing of VBR media traffic has the following quality benefits: Better resource utilization (less bursty) More streams with the same network capacity 26 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Objectives Multi-Threshold Flow Control (MTFC) algorithm objectives: Online operation Content independence Minimizing feedback control signaling Rate smoothing 27 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Example 28 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
MTFC Buffer Management Multiple Thresholds: goal is middle of buffer Send rate adjust command to server whenever threshold is crossed 29 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
How to Set Thresholds? Simple: equi-distant m: number of thresholds Overflow and underflow thresholds 30 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
How to Calculate Sending Rate? 31 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Threshold Spacing Strategies Linear vs. arithmetic vs. geometric 32 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Threshold Spacing Strategies Geometric and arithmetic spacing: 33 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Sending Rate Computation Relevant factors: Target buffer level (i.e., 50%): THN Current buffer level: bwobsv Predicted duration to reach target level Data consumed during predicted duration 34 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
MTFC Results 35 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
MTFC Results: # of Thresholds 36 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
MTFC Results: # of Thresholds Number of Thresholds 3 5 9 17 100 Number Of Rate Changes 90 80 70 60 50 40 30 20 10 0 16MB 8MB 32MB 37 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
A Brief Introduction to Audio Conferencing 38 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Audio Conferencing Live, interactive application Latency is important Each packet contains 20-30ms of audio 39 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Silence Suppression Silence Detection if no sound, no need to send Talk spurt consecutive audio packets (between silence) hundreds of ms 40 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Recall: RTP Header marker bit: depends on payload e.g. beginning of frame 41 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
RTP and Talkspurt First packet of a talkspurt will have marker bit set to 1 42 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
RTP and Talkspurt Deduce talkspurt from sequence number and timestamp SeqNo TimeStamp 1 2 3 5 20 40 60 190 43 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Consequences of Talkspurt Opportunity to adjust playout delay if jitter is large, increase delay if jitter is small, decrease delay 44 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Fixed Playout Delay SEND RECV PLAY 45 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Adaptive Playout Delay SEND RECV PLAY 46 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Adaptive Playout Delay SEND RECV PLAY 47 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Trade-Off Latency vs. Packet Loss 48 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Latency vs Loss-Rate Loss Rate Latency 49 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)
Adaptive Playout Mechanisms for Packetized Audio Applications in WAN R. Ramjee, J. Kurose, D. Towsley, H. Schulzrinne INFOCOM 1994 50 NUS.SOC.CS5248-2012 Roger Zimmermann (based in part on slides by Ooi Wei Tsang)