Playout Buffer Management

Post on 22-Feb-2016

39 views 1 download

Tags:

description

Playout Buffer Management. Encoder. Decoder. Middlebox. Receiver. Sender. Network. You are Here. 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 - PowerPoint PPT Presentation

transcript

1NUS.SOC.CS5248OOI WEI TSANG

Playout Buffer Management

NUS.SOC.CS5248OOI WEI TSANG 2

You are Here

Network

Encoder

SenderMiddlebox

Receiver

Decoder

NUS.SOC.CS5248OOI WEI TSANG 3

How to recv and play?open socketwhile not done

if socket is readable read packet from socketremove RTP headerdecodeplay back

NUS.SOC.CS5248OOI WEI TSANG 4

What’s Wrong?packet orderingpacket lossnext packet arrive in-time?

Especially bad for audio applications

5NUS.SOC.CS5248OOI WEI TSANG

Detour: A Brief Intro to Audio Conferencing

NUS.SOC.CS5248OOI WEI TSANG 6

Audio CompressionNormally uncompressed

Telephone quality: 8-bit audio 8Khz

20-30ms per packet

NUS.SOC.CS5248OOI WEI TSANG 7

Common TechniqueSilence Detection

No need to send if there is no sound at the input

Talkspurt Sequence of consecutive audio

packets (in between silence)

NUS.SOC.CS5248OOI WEI TSANG 8

Detecting Talkspurt in RTPMarker bit

Not reliable as packet with marker bit could be lost

Deduce from timestamp and sequence number

9NUS.SOC.CS5248OOI WEI TSANG

Delay Jitter

NUS.SOC.CS5248OOI WEI TSANG 10

What causes Jitter?Network delay =

Propagation Delay (fixed) +Queueing Delay (variable)

Delay jitter is caused by variable queueing delay

NUS.SOC.CS5248OOI WEI TSANG 11

Delay Jitter

Time

TransitTime

small jitter

large jitter

NUS.SOC.CS5248OOI WEI TSANG 12

Spike

Time

TransitTime

13NUS.SOC.CS5248OOI WEI TSANG

Buffer: The Jitter Absorber

NUS.SOC.CS5248OOI WEI TSANG 14

If Zero Jitter

Time

NUS.SOC.CS5248OOI WEI TSANG 15

With Jitter

TimeLOSS

NUS.SOC.CS5248OOI WEI TSANG 16

With Jitter + Buffer

Time

Buffer Size

Playout Delay

17NUS.SOC.CS5248OOI WEI TSANG

Q: How to set playout delay?

NUS.SOC.CS5248OOI WEI TSANG 18

Adapting Playout DelayWhen jitter is low, reduce delayWhen jitter is high, increase delay

NUS.SOC.CS5248OOI WEI TSANG 19

Fundamental Trade-off

Latency vs Packet Loss

NUS.SOC.CS5248OOI WEI TSANG 20

Playout DelayOnce you set the playout delay,

cannot change!

NOT true: can change at beginning of talkspurt

NUS.SOC.CS5248OOI WEI TSANG 21

Adapting Playout Delay

SEND

RECV

PLAY

22NUS.SOC.CS5248OOI WEI TSANG

Adaptation Algorithm

NUS.SOC.CS5248OOI WEI TSANG 23

Variables and Notations

Tsend(i)

Tplay(i)

Tbuffer(i)

Tarrive(i)

Tdelay(i)

Tnet(i)

NUS.SOC.CS5248OOI WEI TSANG 24

First Packet in the TalkspurtTdelay(i) = Enet(i) + 4 Vnet(i)Tplay(i) = Tsend(i) + Tdelay(i)

Tsend(i)

Tplay(i)

Tbuffer(i)

Tarrive(i)

Tdelay(i)

Tnet(i)

NUS.SOC.CS5248OOI WEI TSANG 25

Subsequent PacketsTplay(j) = Tplay(i) + Tsend(j) – Tsend(i)

Tsend(i)

Tplay(i)

Tbuffer(i)

Tarrive(i)

Tdelay(i)

Tnet(i)

26NUS.SOC.CS5248OOI WEI TSANG

How to estimate Enet(i)

NUS.SOC.CS5248OOI WEI TSANG 27

Algorithm 1 (Jacobson’s)Enet(i) = aEnet(i-1) + (1-a)Tnet(i)

NUS.SOC.CS5248OOI WEI TSANG 28

Algorithm 2 if Tnet(i) > Enet(i)

Enet(i) = bEnet(i-1) + (1-b)Tnet(i)

else

Enet(i) = aEnet(i-1) + (1-a)Tnet(i)

NUS.SOC.CS5248OOI WEI TSANG 29

Algorithm 3Enet(i) = min { Tnet(j) }

(over all packets in previous talkspurt)

NUS.SOC.CS5248OOI WEI TSANG 30

Algorithm 4 (Ramjee’s)Ramjee’s Proposal

Observation: Algorithm 1-3 take too long to react to spike.

NUS.SOC.CS5248OOI WEI TSANG 31

Spike

NUS.SOC.CS5248OOI WEI TSANG 32

Ramjee’s IdeaWorks in 2 modes

SPIKE NORMAL

NUS.SOC.CS5248OOI WEI TSANG 33

Three QuestionsWhen to switch from normal to

spike mode?

When to switch from spike back to normal?

How to estimate during spike mode?

NUS.SOC.CS5248OOI WEI TSANG 34

Normal to Spike if difference in delays is large

NUS.SOC.CS5248OOI WEI TSANG 35

Normal to Spike if difference in delays is large

difference in delays:Tnet(i) – Tnet(i-1)

large:800 + 2Vnet(i)

NUS.SOC.CS5248OOI WEI TSANG 36

Another View of Spike (ZOOM)

Tnet(i)

Tarrive(i)

NUS.SOC.CS5248OOI WEI TSANG 37

Spike to Normal slope = slope/2 +

|2Tnet(i) – Tnet(i-1) – Tnet(i-2)|/8

if slope < 64 switch to normal

NUS.SOC.CS5248OOI WEI TSANG 38

Estimation in Spike ModeEnet(i) = Enet(i-1) + Tnet(i) – Tnet(i-1)

NUS.SOC.CS5248OOI WEI TSANG 39

First Packet in the TalkspurtTdelay(i) = Enet(i) + 4 Vnet(i)Tplay(i) = Tsend(i) + Tdelay(i)

NUS.SOC.CS5248OOI WEI TSANG 40

First Packet in the TalkspurtTdelay(i) = Enet(i) + 4 Vnet(i)Tplay(i) = Tsend(i) + Tdelay(i)

Tsend(i)

Tprop(i)

Tplay(i)

Tbuffer(i)

Tarrive(i)

Tq(i)

Tdelay(i)

Tnet(i)

41NUS.SOC.CS5248OOI WEI TSANG

How to estimate Vnet(i)

NUS.SOC.CS5248OOI WEI TSANG 42

Variation of DelayVnet(i) =

aVnet(i-1) + (1-a)|Enet(i) – Tnet(i)|

43NUS.SOC.CS5248OOI WEI TSANG

Comparisons of 4 Algorithms

NUS.SOC.CS5248OOI WEI TSANG 44

Playout Delay vs Loss Rate

Tdelay(i)

Loss Rate

45NUS.SOC.CS5248OOI WEI TSANG

Algorithm 5 (Moon’s)

NUS.SOC.CS5248OOI WEI TSANG 46

Problems of Existing Algorithms Jacobson’s react too slowlyRamjee’s follow the delay too

closely

NUS.SOC.CS5248OOI WEI TSANG 47

Moon’s IdeaCollect statistics on packets that

have arrived

Find t such that q% of last w packets has Tnet(i) < t

Tdelay(i) = t

NUS.SOC.CS5248OOI WEI TSANG 48

Example (w =50, q = 90%)

num of packets

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

NUS.SOC.CS5248OOI WEI TSANG 49

Spike ModeTdelay(i) = Enet(1)

SPIKE NORMAL

NUS.SOC.CS5248OOI WEI TSANG 50

Spike Mode

NUS.SOC.CS5248OOI WEI TSANG 51

Switching ModeNormal to Spike

if (Tnet(i) > k*Tdelay(i))

Spike to Normal

if (Tnet(i) < k’ * OLDTdelay(i))

NUS.SOC.CS5248OOI WEI TSANG 52

Loss Rate vs. DelayTdelay(i)

Loss Rate

53NUS.SOC.CS5248OOI WEI TSANG

Theoretical Lower Bound

NUS.SOC.CS1102OOI WEI TSANG

54

Dynamic Programming

NUS.SOC.CS1102OOI WEI TSANG

55

Fibonacci Numbers

0 1 …

0 1 2

i-2 i-1 i

otherwiseii

FFF

ii

i 10

10

21

+

NUS.SOC.CS1102OOI WEI TSANG

56

Fibonacci Numbersfib(n)

x[0] = 0x[1] = 1for (i = 2; i < n; i++)

x[i] = x[i-1] + x[i-2]return x[i]

NUS.SOC.CS1102OOI WEI TSANG

57

Binomial Coefficient

nor 0 if 1

111

kkn

kn

kn 1

1 1

1 1

1 1

1

1

k

n

NUS.SOC.CS1102OOI WEI TSANG

58

Change-Making Problem [Weiss] 7.6

For a currency with coin C1, C2, .. Cn (cents), what is the min number of coins needed to make K cents of change?

NUS.SOC.CS1102OOI WEI TSANG

59

Example C = {1, 5, 10, 20, 50} K = 76 cents Give 4 coins 50 + 20 + 5 + 1 = 76

NUS.SOC.CS1102OOI WEI TSANG

60

Formulation To make a change of K cents, either

make a change of (K-50) cents, or make a change of (K-20) cents, or make a change of (K-10) cents, or make a change of (K-5) cents, or make a change of (K-1) cents

Number of coins for K = 1 + minimum of all the above choices

NUS.SOC.CS1102OOI WEI TSANG

61

Dynamic Programming)}({min1)( ii

CKcoinUsedKcoinUsed

… …

min +1

KK-5K-10K-20

62NUS.SOC.CS5248OOI WEI TSANG

Theoretical Lower Bound

NUS.SOC.CS5248OOI WEI TSANG 63

Goal Input:

A packet trace A number of packet losses

What is the minimum average playout delay Tdelay(.) ?

NUS.SOC.CS5248OOI WEI TSANG 64

Trace

kM talkspurts

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

NUS.SOC.CS5248OOI WEI TSANG 65

New NotationsM:

Number of TalkspurtNpacket(k) or nk

Number of packets in talkspurt kNtotal

Total number of packets

NUS.SOC.CS5248OOI WEI TSANG 66

Define..d(k, i)

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

k.. M..

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

NUS.SOC.CS5248OOI WEI TSANG 67

Define..D(k, i)

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

k.. M..

NUS.SOC.CS5248OOI WEI TSANG 68

Dynamic Programming

1

2

3

M

0 1 2 N

NUS.SOC.CS5248OOI WEI TSANG 69

Formulation for Base Caseif i = 0 then

D(k,i) = 0if k = M

if i ≤ Npacket(M) thenD(k,i) = d(k,i)

elseD(k,i) = ∞

NUS.SOC.CS5248OOI WEI TSANG 70

Formulation for Recursive Case

k.. M..

i

jkjdjikDjiikDij

),(),1()(min),(0

NUS.SOC.CS5248OOI WEI TSANG 71

Loss Rate vs. DelayTdelay(i)

Loss Rate1%

72NUS.SOC.CS5248OOI WEI TSANG

Video Playout

NUS.SOC.CS5248OOI WEI TSANG 73

Two Methods I-Policy

Display at fixed playout delay Drop late frames

E-Policy Display late frame at next period Playout delay increase

NUS.SOC.CS5248OOI WEI TSANG 74

I-Policya b c d e f g h

1 2 3 4 5 6 7 8 9 10 a c e f h

NUS.SOC.CS5248OOI WEI TSANG 75

E-Policya b c d e f g h

1 2 3 4 5 6 7 8 9 10 11 a b d f gc e h

NUS.SOC.CS5248OOI WEI TSANG 76

I-Policya b c d e f g h

1 2 3 4 5 6 7 8 9 10 a b e f hg

NUS.SOC.CS5248OOI WEI TSANG 77

E-Policya b c d e f g h

1 2 3 4 5 6 7 8 9 10 a b c d fe

NUS.SOC.CS5248OOI WEI TSANG 78

Pro and Cons I-Policy: Fixed latencyE-Policy: No Loss Frame or Gap

NUS.SOC.CS5248OOI WEI TSANG 79

Ideaif queue length > L for T seconds

drop incoming frames

long queue -> small Tshort queue -> large T

NUS.SOC.CS5248OOI WEI TSANG 80

Queue Monitoring

3

2

3

3

3

4

2

5

2

6

2

7

2

8

0 0 0 0 0 0 0

queue length

threshold

waiting time

NUS.SOC.CS5248OOI WEI TSANG 81

Queue Monitoring

3

2

3

3

3

4

2

5

2

6

2

7

2

8

0 0 0 0 0 0 0

queue length

threshold

waiting time

NUS.SOC.CS5248OOI WEI TSANG 82

Queue Monitoring

3

2

3

3

3

4

2

5

2

6

2

7

2

8

1 0 0 0 0 0 0

queue length

threshold

waiting time

NUS.SOC.CS5248OOI WEI TSANG 83

Queue Monitoring

3

2

3

3

3

4

2

5

2

6

2

7

2

8

2 1 0 0 0 0 0

queue length

threshold

waiting time

NUS.SOC.CS5248OOI WEI TSANG 84

Queue Monitoring

3

2

3

3

3

4

2

5

2

6

2

7

2

8

3 2 1 1 0 0 0

queue length

threshold

waiting time

NUS.SOC.CS5248OOI WEI TSANG 85

SummaryPreliminary work by Stone and

Jeffay on Video Playout

Ramjee’s and Moon’s adaptive audio playout algorithm

86NUS.SOC.CS5248OOI WEI TSANG

Possible Survey and Project Topic

NUS.SOC.CS5248OOI WEI TSANG 87

Adapting PlaybackBesides adapting buffering time,

we can adapt playback time

Estimating and eliminating clock drift