- - PowerPoint PPT Presentation

a buffer based approach to rate adapta2on evidence from a
SMART_READER_LITE
LIVE PREVIEW

- - PowerPoint PPT Presentation

A"Buffer(Based"Approach"to"Rate"Adapta2on:" Evidence"from"a"Large"Video"Streaming"Service" Te(Yuan"(TY)"Huang" Stanford"/"NeElix" Aug"19 th


slide-1
SLIDE 1

A"Buffer(Based"Approach"to"Rate"Adapta2on:" Evidence"from"a"Large"Video"Streaming"Service"

Te(Yuan"(TY)"Huang" Stanford"/"NeElix" Aug"19th,"2014" "

Joint"work"with"Nick"McKeown,"Ramesh"Johari," MaS"Trunnell,"and"Mark"Watson""

slide-2
SLIDE 2

Video"Streaming"Services"are"Popular"

8+"billion"hours"streamed"per"month"globally" Video"is"50+%"of"peak"traffic"in"the"US"

2"

Streaming"experience"could"be"beSer"

slide-3
SLIDE 3

Problem"#1:"Too"many"rebuffers"

Rebuffers(means"interrup2on" Defini2on:"A"rebuffer"is(unnecessary(if:"

– Picking"a"lower"video"rate"would"have"avoided"it"

20"–"30%"of"rebuffers"are"unnecessary"

3"

slide-4
SLIDE 4

Problem"#2:"Video"rate"is"too"low"

Video&rate&represents"video"quality" Video"rate"is"too&low&

– When"network"could"sustain"a"higher"video"rate"

4"

slide-5
SLIDE 5

Picked"the"Wrong"Video"Rate"

Problem"#1:"Unnecessary"Rebuffer"

– The"chosen"video"rate"is"too"aggressive" – A"lower"rate"would"have"avoided"the"rebuffer"

Problem"#2:"Low"Video"Rate"

– The"chosen"video"rate"is"too"conserva2ve" – The"network"could"have"sustained"a"higher"rate"

5"

slide-6
SLIDE 6

The$Internet$ Client"

Simple"" HTTP"Servers" Rate" Selec2on" Logic" CDN" Get"File"1"(1000kb/s)" Video"at"1000kb/s"

Playback" Buffer"

6"

How"is"the"Video"Rate"Picked?"

Adap.ve&Bit&Rate&(ABR)&&

File"1:" File"2:" 500" 500" 500" 500" 1000" 1000"

slide-7
SLIDE 7

Ini2al" video"" rate" " Video"rate"for"the"next"video"chunk" Capacity" es2ma2on"

Download" &"measure" Pick"a"rate"

7"

How"is"the"Video"Rate"Picked?"

slide-8
SLIDE 8

500 1000 1500 2000 2500 Time (s) 2000 4000 6000 8000 10000 12000 14000 16000 18000 Average Throughput over Each Chunk Download (kb/s)

Highly"Varying"Capacity" 17"Mb/s"" 500"Kb/s" ~10%"session"

8"

34"2mes" Hard&to&es.mate&future&capacity&

slide-9
SLIDE 9

Capacity"Es2ma2on"is"Unreliable"

9"

An(Experimental(Evalua6on(of(Rate(Adapta6on(Algorithms(in( Adap6ve(Streaming(over(HTTP?(S.$Akhshabi$et$al.$[ACM$MMSys’11]$ An(Experimental(Inves6ga6on(of(the(Akamai(Adap6ve(Video( Streaming(L.D.$Ciccio$et$al.$[USAB’10]$ Improving(Fairness,(Efficiency,(and(Stability(in(HTTPGbased(Adap6ve( Video(Streaming(with(FESTIVE((J.$Jiang$et$al.$[ACM$CoNext’12]$

Confused,(Timid,(and(Unstable:(Picking(a(Video(Streaming( Rate(is(Hard$$TY$Huang$et$al.$[ACM$IMC’12]$ Downton(Abbey(without(the(Hiccups:(BufferGBased(Rate( Adapta6on(for(HTTP(Video(Streaming(TY$Huang$et$al.$[ACM$ FhMN’12]$

slide-10
SLIDE 10

What"can"we"do?" Can"we"avoid"es2ma2ng"capacity?" Yes,"most"of"the"2me!""

10"

Capacity"es2ma2on"" can"be"avoided"in"steady(state" 90+%"of"a"typical"movie/TV"show" Pick"a"rate"as"a"func2on"of"buffer"occupancy""

slide-11
SLIDE 11

Avoid"Capacity"Es2ma2on"in"Steady(State"

50"" min"

…"

Start(Up" Steady(State"

First"few"minutes"" No"idea"about"the"network" Simple"es2ma2on"can"be"useful" Build"up"some"idea"about"the"network" Capacity"es2ma2on"can"be"avoided"

11"

Informa2on"encoded"in"the"buffer"occupancy"

slide-12
SLIDE 12

Key"Takeaway"from"Our"Results"

Using"capacity"es2ma2on"in"steady(state"is"harmful"

– 10–20%"rebuffers"is"unnecessary"

Pick"a"video"rate"as"a"func2on"of"buffer"occupancy" in"steady(state"

– Buffer"occupancy"encodes"informa2on"about" capacity""

Capacity"es2ma2on"can"be"useful"in"start(up"

– Help"us"reach"the"steady"state"quickly"

12"

How"is"the"network"condi2on"encoded"in" the"occupancy"of"video"playback"buffer?"

slide-13
SLIDE 13

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

13"

"""""""""""""Capacity,"and"Video&Rate& """""""""""""""""""""""""""""""""and"Video&Rate&

slide-14
SLIDE 14

14"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

slide-15
SLIDE 15

15"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

slide-16
SLIDE 16

16"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

slide-17
SLIDE 17

17"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

slide-18
SLIDE 18

18"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

slide-19
SLIDE 19

19"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

slide-20
SLIDE 20

20"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate&

slide-21
SLIDE 21

21"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate& Video"Rate"&&&""Capacity"

>&

slide-22
SLIDE 22

22"

The"rela2onship"between" Buffer,"Capacity"and"Video&Rate& Video"Rate"&&&""Capacity"

<&

Capacity"is"not"fully"u2lized!" Keeps"going"into"slow(start!"

slide-23
SLIDE 23

Natural"State"Variable:"Buffer"Occupancy"

When"buffer"occupancy"is"decreasing"

– We"can"not"sustain"the"current"video"rate" – Decrease"the"video"rate"

When"buffer"occupancy"is"increasing"

– We"can"stream"a"higher"video"rate" – Increase"the"video"rate"

23"

Pick"a"rate"as"a"func2on"of"buffer"occupancy"

slide-24
SLIDE 24

Nice"Proper2es"of"Buffer(Based"Algorithm"

Theorem"#1:"Avoid"unnecessary"rebuffers"

– When"buffer"approaches"empty" – Request"Rmin"" – As"long"as"Capacity">"Rmin" – Buffer"will"grow"

Theorem"#2:"Maximize"video"rate"

– When"buffer"approaches"full" – Request"Rmax" – As"long"as"Capacity"<"Rmax" – Buffer"will"not"be"filled" – Fully"u2lize"the"capacity"

24"

Encoding&scheme& Available&video&rates& Chunk&size&

slide-25
SLIDE 25

Pick"a"Video"Rate"as"a"" Func2on"of"Buffer"Occupancy""

Video"Rate" Selected"

Rmin" Rmax"

Buffer"Occupancy"

High" Full" Low"

Maximize"Video"Rate"" Avoid"" Unnecessary" Rebuffer"

25"

(1)&Increasing&from&Rmin& (2)&Eventually&reaches&Rmax&&

slide-26
SLIDE 26

Video"Rate" Selected"

Rmin" Rmax"

Buffer"Occupancy"

High" Full" Low"

26"

Pick"a"Video"Rate"as"a"" Func2on"of"Buffer"Occupancy""

slide-27
SLIDE 27

The"Buffer(Based"ABR"Algorithm"

50"" min"

…"

Start(Up" Steady(State"

Buffer"is"s2ll"growing"from"empty" Pick"a"rate"based"on"the"" immediate&past&throughput& Pick"a"rate"as"a"func2on"buffer&occupancy&

27"

slide-28
SLIDE 28

Verifica2on"by"NeElix"Deployment"

Deployed"in"NeElix’s"browser(based"player" 500,000"users"for"a"weekend"in"September,"2013" " To"compare"the"performance"

Group&1:"NeElix’s"then(default"“Control”"algorithm" Group&2:&Lowest"possible"rebuffer"rate"“Lower"bound”"

  • Always"streams"at"the"lowest"video"quality"
  • Empirical"lower"bound"on"rebuffer"rate"

Group&3:"Our"buffer(based"algorithm"“BBA”"

28"

slide-29
SLIDE 29

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT Number of Rebuffers per Hour

Peak Hours

Performance:"Rebuffer"Rate"

29"

slide-30
SLIDE 30

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT Number of Rebuffers per Hour

Peak Hours

Performance:"Rebuffer"Rate"

30"

Control&

slide-31
SLIDE 31

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT Number of Rebuffers per Hour

Peak Hours

Performance:"Rebuffer"Rate"

31"

Lower&bound& Control&

slide-32
SLIDE 32

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT 40 50 60 70 80 90 100 110 120 Normalized Number of Rebuffers per Hour (%)

Peak Hours

Performance:"Rebuffer"Rate"

20&O&30%&of&rebuffers&can&be&eliminated.& Control&

32"

Lower&bound&

slide-33
SLIDE 33

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT 40 50 60 70 80 90 100 110 120 Normalized Number of Rebuffers per Hour (%)

Peak Hours

Performance:"Rebuffer"Rate"

10&–&20%&less&rebuffer&than&Control&& BBA& Lower&bound&

33"

Control&

slide-34
SLIDE 34

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT Video Rate Difference Excluding the First 120 seconds (kb/s) Peak Hours

Performance:"Steady(State"Video"Rate"

34"

2 4 6 8 10 12 14 16 18 20 22 ¡200 ¡150 ¡100 ¡50 50 100

slide-35
SLIDE 35

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT Video Rate Difference Excluding the First 120 seconds (kb/s) Peak Hours

Performance:"Steady(State"Video"Rate"

Control&

35"

slide-36
SLIDE 36

2 4 6 8 10 12 14 16 18 20 22 Hours in GMT Video Rate Difference Excluding the First 120 seconds (kb/s) Peak Hours

Performance:"Steady(State"Video"Rate"

BBA& Higher&steadyOstate&video&rate!&Control&

36"

slide-37
SLIDE 37

Conclusion"

  • Capacity"varies"wildly"in"prac2ce"

– Capacity"es2ma2on"is"unreliable"

  • Capacity"es2ma2on"is"s2ll"helpful"in"start(up"
  • Avoid"capacity"es2ma2on"in"steady(state"
  • Pick"a"rate"as"a"func2on"of"buffer"occupancy"

– Buffer"occupancy"is"the"natural"state"variable"

37"

Focus"on"the"buffer"occupancy"allows"you"to:" Avoid"unnecessary"rebuffers" Maximize"video"rates"