83
NUS.SOC.CS5248-2015 Roger Zimmermann (based in part on slides by Ooi Wei Tsang) 1 Adaptive Playout

Adaptive Playout

Embed Size (px)

DESCRIPTION

Adaptive Playout. You are Here. Encoder. Decoder. Middlebox. Receiver. Sender. Network. How to recv and play?. open socket while not done if socket is readable read packet from socket remove RTP header decode play back. What’s Wrong?. packet ordering packet loss - PowerPoint PPT Presentation

Citation preview

Page 1: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

1

Adaptive Playout

Page 2: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

2

You are Here

Network

Encoder

Sender

Middlebox

Receiver

Decoder

Page 3: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

3

How to recv and play?

open socketwhile not done

if socket is readable read packet from socketremove RTP headerdecodeplay back

Page 4: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

4

What’s Wrong?

packet orderingpacket lossnext packet arrive in-time?

Especially bad for audio applications

Page 5: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

5

Overview

Network

RTP Classifier

Decode

Page 6: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

7

Packet Buffer

Sorted by sequence numberWhen ADU is complete, send to

decoder

RTP Classifier

Page 7: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

8

Playout Buffer

Stored decoded data in playout order

Post-processing/Mixing may happen

Decode

Page 8: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

9

Why Buffer?

Page 9: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

10

Sending Packets

Time

Packet

Page 10: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

11

Receiving Packets

Time

Packet

t1t0

Page 11: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

12

With Jitter

Time

Packet

Page 12: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

13

With Jitter

Time

Packet

t2t0

Page 13: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

14

What causes Jitter?

Network delay = Transmission Delay (fixed) +

Propagation Delay (fixed) +Queuing Delay (variable)

Delay jitter is caused by variable queuing delay

Page 14: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

15

Delay Jitter

Time

TransitTime

small jitter

large jitter

Page 15: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

16

Spike

Time

TransitTime

Page 16: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

17

Today’s Question

How big is the playout buffer?When to play back?

Page 17: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

18

Types of Applications

Non-interactive Buffer can be large

Interactive As small as possible

Page 18: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

19

Types of Applications

Video Frames are discrete (easier

problem)

Audio Samples are “continuous”

Page 19: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

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

Page 20: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

21

Client Buffer Management

Bandwidth Smoothing for Non-interactive Applications

Page 21: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

22

Multi-Threshold Flow Control

R. Zimmermann, K. Fu, M. Jahangiri, C. ShahabiMTAP 2006

Page 22: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

23

Video-on-Demand (VoD)

High-quality playback requiredBuffer can be largeEncoding may be VBR for high

visual qualityPlayback time may be very long

(2+ hours)

Page 23: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

24

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.

Page 24: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

25

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

Page 25: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

26

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

Page 26: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

27

Objectives

Multi-Threshold Flow Control(MTFC) algorithm objectives: Online operation Content independence Minimizing feedback

control signaling Rate smoothing

Page 27: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

28

Example

Page 28: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

29

MTFC Buffer Management

Multiple Thresholds: goal is middle of buffer

Send rateadjustcommandto serverwheneverthresholdis crossed

Page 29: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

30

How to Set Thresholds?

Simple: equi-distant m: number of thresholds Overflow and underflow thresholds

Page 30: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

31

How to Calculate Sending Rate?

Page 31: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

32

Threshold Spacing StrategiesLinear vs. arithmetic vs. geometric

Page 32: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

33

Threshold Spacing StrategiesGeometric and arithmetic spacing:

Page 33: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

34

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

Page 34: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

35

MTFC Results

Page 35: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

36

MTFC Results: # of Thresholds

Page 36: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

37

MTFC Results: # of Thresholds

NumberOf

RateChanges

8MB 16MB 32MB

0

1020

30

40

50

60

708090

100

3 5 9 17

Number of Thresholds

Page 37: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

38

A Brief Introduction to Audio Conferencing

Page 38: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

39

Audio Conferencing

Live, interactive application Latency is important

Typically each packet contains20-30ms of audio

Page 39: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

40

Silence Suppression

Silence Detection If no sound, no need to send

Talkspurt Consecutive audio packets

(between silence) Hundreds of ms

Page 40: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

41

Recall: RTP Header

marker bit: depends on payload e.g. beginning of frame

Page 41: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

42

RTP and Talkspurt

First packet of a talkspurt will have marker bit set to 1

Page 42: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

43

RTP and Talkspurt

Deduce talkspurt from sequence number and timestamp

240

120

360

5190

SeqNoTimeStamp

Page 43: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

44

Consequences of Talkspurt

Opportunity to adjust playout delay if jitter is large, increase delay if jitter is small, decrease delay

Page 44: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

45

Fixed Playout Delay

SEND

RECV

PLAY

Talkspurt 1Talkspurt 2

Time

Page 45: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

46

Adaptive Playout Delay

SEND

RECV

PLAY

Page 46: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

47

Adaptive Playout Delay

SEND

RECV

PLAY

Page 47: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

48

Trade-Off

Latency vs. Packet Loss

Page 48: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

49

Latency vs Loss-Rate

LossRate

Latency

Page 49: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

50

Latency vs Loss-Rate

LossRate

Latency

• Note: Late packets are considered lost

Page 50: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

51

Adaptive Playout Mechanisms for Packetized Audio Applications in WAN

R. Ramjee, J. Kurose, D. Towsley, H. SchulzrinneINFOCOM 1994

Page 51: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

52

Variables and Notations

Page 52: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

53

Variables and Notations

Tsend(i)

Tplay(i)

Tbuf(i)

Tarrive(i)

Tdelay(i)

Tnet(i)

Page 53: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

54

1st Packet in Talkspurt

We can estimate as

Mean and variation of the end-to-end delay.

Page 54: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

55

How to estimate Vnet(i)

Page 55: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

56

How to estimate Enet(i)

Method 1: Jacobson’s Method

(Delay estimate as in RFC 793, TCP re-transmit timer.)

Page 56: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

57

Spike

Arrival Time

Tnet

Page 57: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

58

Problems

Described algorithm does not react to spike fast enough.

Page 58: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

59

How to estimate Enet(i)

Ramjee’s Method:

SPIKE NORMAL

Page 59: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

60

Ramjee’s Idea

SPIKE NORMAL

if Tnet(i) suddenly increases

if “slope” is small enough

Page 60: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

61

In Spike ModeSPIKE

i

Tnet

Page 61: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

62

In Normal ModeNORMAL

i

Tnet

Page 62: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

63

Evaluations

Delay

LossRate

Page 63: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

64

Evaluations

Delay

LossRate

Page 64: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

65

Problems with Ramjee’s Method

Time

TransitTime

Page 65: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

66

Packet Audio Playout Delay Adjustment: Performance Bounds and Algorithms

S. Moon, J. Kurose, D. TowsleyMultimedia Systems 1998

Page 66: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

67

Recall Previous Methods

Page 67: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

68

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.

Page 68: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

69

Example (w =50, q = 90%)num of packets

delay

1 2 3 4 5 6 7 8 9 10 11 12

Page 69: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

70

Setting Tdelay(i)

NORMAL SPIKE

Page 70: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

71

Setting Tdelay(i)

Time

TransitTime

Page 71: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

72

Performance Bound

Given a trace of packets, and a loss rate, find the minimum average playout delay.

Use Dynamic Programming

Page 72: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

73

A Packet Trace

k

M talkspurts

1,k 2,k 3,k j,k nk,k

Tnet 13 15 10 …

Page 73: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

74

More Notations

M: Number of Talkspurt

Npacket(k) or nk

Number of packets in talkspurt kNtotal

Total number of packets

Page 74: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

75

Definition

minimum average playout delay for choosing i packets to be played out from k-th talkspurt

k

M talkspurts

Page 75: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

76

How to find

Page 76: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

77

Definition

minimum average playout delay for choosing i packets to be played out from k-th to M-th talkspurt

k

M talkspurts

M..

Page 77: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

78

Base Case

D(k, 0) =

D(M, i) =

minimum average playout delay forchoosing i packets to be played out from k-th to M-th talkspurt

Page 78: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

79

Recursive Case

k.. M..

1,k 2,k 3,k nk,k..

j

Page 79: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

80

Performance Bound

Given a trace of M talkspurts and n packets, and a loss rate e, find the minimum average playout delay.

Answer: Minimum possible average playout delay is D(1, (1-e)n)

minimum average playout delay forchoosing i packets to be played out from k-th to M-th talkspurt

Page 80: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

81

Evaluations

LossRate

Delay

Page 81: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

82

Summary

Playout Adjustment for Audio Conferencing

Weighted Average Methods vs. Statistical Methods

An Analysis of Minimum Playout Delay

Page 82: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

83

Practical Complications

Clock DriftsRoute Change

Page 83: Adaptive Playout

NUS.SOC.CS5248-2015Roger Zimmermann (based in part on slides by Ooi Wei Tsang)

84

Advanced Techniques

Speed-up Playback