Quality-adaptive Prefetching for Interactive Branched Video using - - PowerPoint PPT Presentation

quality adaptive prefetching for interactive branched
SMART_READER_LITE
LIVE PREVIEW

Quality-adaptive Prefetching for Interactive Branched Video using - - PowerPoint PPT Presentation

Quality-adaptive Prefetching for Interactive Branched Video using HTTP-based Adaptive Streaming Vengatanathan Krishnamoorthi 1 , Niklas Carlsson 1 , Derek Eager 2 , Anirban Mahanti 3 , Nahid Shahmehri 1 1 Linkping university, Sweden 2 University


slide-1
SLIDE 1

Quality-adaptive Prefetching for Interactive Branched Video using HTTP-based Adaptive Streaming

1 Linköping university, Sweden 2 University of Saskatchewan, Canada 3 NICTA, Australia

Vengatanathan Krishnamoorthi1, Niklas Carlsson1, Derek Eager2, Anirban Mahanti3, Nahid Shahmehri1

  • Proc. ACM Multimedia, Orlando, FL, USA, Nov. 2014
slide-2
SLIDE 2

We have all seen a movie that (in our taste) is...

2

slide-3
SLIDE 3

We have all seen a movie that (in our taste) is...

3

too sad

slide-4
SLIDE 4

We have all seen a movie that (in our taste) is...

4

too sad too violent

slide-5
SLIDE 5

We have all seen a movie that (in our taste) is...

5

too sad too violent too scary …

slide-6
SLIDE 6

We have all seen a movie that (in our taste) is...

6

too sad too violent too scary …

… or where we may have wanted our favorite character to make a different choice...

slide-7
SLIDE 7

We have all seen a movie that (in our taste) is...

7

too sad too violent too scary …

… or where we may have wanted our favorite character to make a different choice...

slide-8
SLIDE 8

We have all seen a movie that (in our taste) is...

8

too sad too violent too scary …

… or where we may have wanted our favorite character to make a different choice...

slide-9
SLIDE 9

We have all seen a movie that (in our taste) is...

9

too sad too violent too scary …

… or where we may have wanted our favorite character to make a different choice...

slide-10
SLIDE 10

What if we can personalize the storyline based on the users preferences or path choices?

10

slide-11
SLIDE 11

What if we can personalize the storyline based on the users preferences or path choices?

11

slide-12
SLIDE 12

What if we can personalize the storyline based on the users preferences or path choices?

12

slide-13
SLIDE 13

What if we can personalize the storyline based on the users preferences or path choices?

13

slide-14
SLIDE 14

What if we can personalize the storyline based on the users preferences or path choices?

14

… already many examples how creative content creators provide interactive experiences and story lines …

slide-15
SLIDE 15

What if we can personalize the storyline based on the users preferences or path choices?

15

YouTube Interlude

… already many examples how creative content creators provide interactive experiences and story lines …

… and even books!

slide-16
SLIDE 16

What if we can personalize the storyline based on the users preferences or path choices?

16

YouTube Interlude

… already many examples how creative content creators provide interactive experiences and story lines …

… and even books!

slide-17
SLIDE 17

What if we can personalize the storyline based on the users preferences or path choices?

17

YouTube Interlude

… already many examples how creative content creators provide interactive experiences and story lines …

… and even books!

slide-18
SLIDE 18

What if we can personalize the storyline based on the users preferences or path choices?

18

YouTube Interlude

… already many examples how creative content creators provide interactive experiences and story lines …

… and even books!

slide-19
SLIDE 19
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-20
SLIDE 20
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-21
SLIDE 21
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-22
SLIDE 22
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-23
SLIDE 23
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-24
SLIDE 24
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-25
SLIDE 25
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-26
SLIDE 26
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-27
SLIDE 27
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-28
SLIDE 28
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-29
SLIDE 29
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-30
SLIDE 30
  • Regardless of interactivity, user experience and user

satisfaction is greatly influenced by:

– Playback stalls and quality fluctuations

  • Current interactive branched players split a video

into many sub videos and then link them

  • Issues

– Playback stalls when playing a new video – Non-adaptive playback

  • Solution

– Combine branched video and HAS [Krishnamoorthi et al., ACM CCR 2013]

Seamless Playback without Stalls

slide-31
SLIDE 31

HTTP-based Adaptive Streaming (HAS)

31

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-32
SLIDE 32

HTTP-based Adaptive Streaming (HAS)

32

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-33
SLIDE 33

HTTP-based Adaptive Streaming (HAS)

33

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-34
SLIDE 34

HTTP-based Adaptive Streaming (HAS)

34

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-35
SLIDE 35

HTTP-based Adaptive Streaming (HAS)

35

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-36
SLIDE 36

HTTP-based Adaptive Streaming (HAS)

36

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-37
SLIDE 37

HTTP-based Adaptive Streaming (HAS)

37

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-38
SLIDE 38

HTTP-based Adaptive Streaming (HAS)

38

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

slide-39
SLIDE 39

HTTP-based Adaptive Streaming (HAS)

39

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

Chunk1

slide-40
SLIDE 40

HTTP-based Adaptive Streaming (HAS)

40

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

Chunk1 Chunk2

slide-41
SLIDE 41

HTTP-based Adaptive Streaming (HAS)

41

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

Chunk1 Chunk2 Chunk3

slide-42
SLIDE 42

HTTP-based Adaptive Streaming (HAS)

42

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

Chunk1 Chunk2 Chunk4 Chunk3

slide-43
SLIDE 43

HTTP-based Adaptive Streaming (HAS)

43

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

Chunk1 Chunk2 Chunk4 Chunk3 Chunk5

slide-44
SLIDE 44

HTTP-based Adaptive Streaming (HAS)

44

  • HTTP-based streaming

– Video is split into chunks – Easy firewall traversal and caching – Easy support for interactive VoD

  • HTTP-based adaptive streaming

– Multiple encodings of each fragment (defined in manifest file) – Clients adapt quality encoding based on buffer/network conditions

Chunk1 Chunk2 Chunk4 Chunk3 Chunk5

slide-45
SLIDE 45

HAS-based Interactive Branched Video

45

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-46
SLIDE 46

HAS-based Interactive Branched Video

46

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-47
SLIDE 47

HAS-based Interactive Branched Video

47

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-48
SLIDE 48

HAS-based Interactive Branched Video

48

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-49
SLIDE 49

HAS-based Interactive Branched Video

49

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-50
SLIDE 50

HAS-based Interactive Branched Video

50

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-51
SLIDE 51

HAS-based Interactive Branched Video

51

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-52
SLIDE 52

HAS-based Interactive Branched Video

52

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-53
SLIDE 53

HAS-based Interactive Branched Video

53

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-54
SLIDE 54

HAS-based Interactive Branched Video

54

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-55
SLIDE 55

HAS-based Interactive Branched Video

55

  • Branched video and branch points

– The video can include branch points, with multiple branch choices – User selects which segment to play back next

  • Segments

– Arbitrary sequence of chunks from one or more videos

  • Use of HAS allow adaptive prefetching

– Goal: Seamless playback even if user decision at last possible moment

slide-56
SLIDE 56

Contributions

  • We develop a simple analytic model which allows us to define

the prefetching problem as an optimization problem

– Maximizes expected playback quality while avoiding stalls

  • Based on our findings, we design optimized policies that

determine:

1. When different chunks should be downloaded 2. What quality level should be selected for each of these chunks 3. How to manage playback buffers and (multiple) TCP connections such as to ensure smooth playback experience without excessive workahead (buffering)

  • The design and implementation of the framework
  • Experimental evaluation of our policies, which provide

insights into the importance of careful adaptive policies

slide-57
SLIDE 57

Contributions

  • We develop a simple analytic model which allows us to define

the prefetching problem as an optimization problem

– Maximizes expected playback quality while avoiding stalls

  • Based on our findings, we design optimized policies that

determine:

1. When different chunks should be downloaded 2. What quality level should be selected for each of these chunks 3. How to manage playback buffers and (multiple) TCP connections such as to ensure smooth playback experience without excessive workahead (buffering)

  • The design and implementation of the framework
  • Experimental evaluation of our policies, which provide

insights into the importance of careful adaptive policies

slide-58
SLIDE 58

Contributions

  • We develop a simple analytic model which allows us to define

the prefetching problem as an optimization problem

– Maximizes expected playback quality while avoiding stalls

  • Based on our findings, we design optimized policies that

determine:

1. When different chunks should be downloaded 2. What quality level should be selected for each of these chunks 3. How to manage playback buffers and (multiple) TCP connections such as to ensure smooth playback experience without excessive workahead (buffering)

  • The design and implementation of the framework
  • Experimental evaluation of our policies, which provide

insights into the importance of careful adaptive policies

slide-59
SLIDE 59

Contributions

  • We develop a simple analytic model which allows us to define

the prefetching problem as an optimization problem

– Maximizes expected playback quality while avoiding stalls

  • Based on our findings, we design optimized policies that

determine:

1. When different chunks should be downloaded 2. What quality level should be selected for each of these chunks 3. How to manage playback buffers and (multiple) TCP connections such as to ensure smooth playback experience without excessive workahead (buffering)

  • The design and implementation* of the framework
  • Experimental evaluation of our policies, which provide

insights into the importance of careful adaptive policies

*Software: http://www.ida.liu.se/~nikca/mm14.html

slide-60
SLIDE 60

Contributions

  • We develop a simple analytic model which allows us to define

the prefetching problem as an optimization problem

– Maximizes expected playback quality while avoiding stalls

  • Based on our findings, we design optimized policies that

determine:

1. When different chunks should be downloaded 2. What quality level should be selected for each of these chunks 3. How to manage playback buffers and (multiple) TCP connections such as to ensure smooth playback experience without excessive workahead (buffering)

  • The design and implementation* of the framework
  • Experimental evaluation of our policies, which provide insights

into the importance of careful adaptive policies

*Software: http://www.ida.liu.se/~nikca/mm14.html

slide-61
SLIDE 61

Contributions

  • We develop a simple analytic model which allows us to define

the prefetching problem as an optimization problem

– Maximizes expected playback quality while avoiding stalls

  • Based on our findings, we design optimized policies that

determine:

1. When different chunks should be downloaded 2. What quality level should be selected for each of these chunks 3. How to manage playback buffers and (multiple) TCP connections such as to ensure smooth playback experience without excessive workahead (buffering)

  • The design and implementation* of the framework
  • Experimental evaluation of our policies, which provide insights

into the importance of careful adaptive policies

*Software: http://www.ida.liu.se/~nikca/mm14.html

slide-62
SLIDE 62

Contributions

  • We develop a simple analytic model which allows us to define

the prefetching problem as an optimization problem

– Maximizes expected playback quality while avoiding stalls

  • Based on our findings, we design optimized policies that

determine:

1. When different chunks should be downloaded 2. What quality level should be selected for each of these chunks 3. How to manage playback buffers and (multiple) TCP connections such as to ensure smooth playback experience without excessive workahead (buffering)

  • The design and implementation* of the framework
  • Experimental evaluation of our policies, which provide insights

into the importance of careful adaptive policies

*Software: http://www.ida.liu.se/~nikca/mm14.html

slide-63
SLIDE 63

Problem Description and Constraints

  • Problem: Maximize quality, given playback

deadlines and bandwidth conditions

slide-64
SLIDE 64

Problem Description and Constraints

  • Problem: Maximize quality, given playback

deadlines and bandwidth conditions

slide-65
SLIDE 65

Problem Description and Constraints

  • Objective function

playback quality

slide-66
SLIDE 66

Problem Description and Constraints

  • Objective function
slide-67
SLIDE 67

Problem Description and Constraints

  • Objective function

Current segment

slide-68
SLIDE 68

Problem Description and Constraints

  • Objective function

Beginning of next segment

slide-69
SLIDE 69
  • Download order: round robin (optimal)

Problem Description and Constraints

Current segment

slide-70
SLIDE 70
  • Download order: round robin (optimal)

Problem Description and Constraints

Current segment

slide-71
SLIDE 71
  • Download order: round robin (optimal)

Problem Description and Constraints

Current segment

slide-72
SLIDE 72
  • Download order: round robin (optimal)

Problem Description and Constraints

Current segment

slide-73
SLIDE 73
  • Download order: round robin (optimal)

Problem Description and Constraints

first chunk next Current segment

slide-74
SLIDE 74
  • Download order: round robin (optimal)

Problem Description and Constraints

first chunk next Current segment

slide-75
SLIDE 75
  • Download order: round robin (optimal)

Problem Description and Constraints

first chunk next Current segment

slide-76
SLIDE 76
  • Download order: round robin (optimal)

Problem Description and Constraints

first chunk next Current segment

slide-77
SLIDE 77
  • Download order: round robin (extra workahead)

Problem Description and Constraints

extra workahead first chunk next Current segment

slide-78
SLIDE 78
  • Download order: round robin (extra workahead)

Problem Description and Constraints

extra workahead first chunk next Current segment

slide-79
SLIDE 79
  • Download order: round robin (extra workahead)

Problem Description and Constraints

extra workahead first chunk next Current segment

slide-80
SLIDE 80
  • Download order: round robin (extra workahead)

Problem Description and Constraints

extra workahead first chunk next Current segment

slide-81
SLIDE 81
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

first chunk next Current segment

slide-82
SLIDE 82
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

first chunk next Current segment Selected path

slide-83
SLIDE 83
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

Selected path current segment

slide-84
SLIDE 84
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

current segment

slide-85
SLIDE 85
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

current segment

slide-86
SLIDE 86
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

current segment

slide-87
SLIDE 87
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

22

current segment first chunk next

slide-88
SLIDE 88
  • Once branch point has been traversed, move on

to next segment ...

Problem Description and Constraints

22

current segment first chunk next

slide-89
SLIDE 89

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls

Playback schedule

slide-90
SLIDE 90

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls

Playback schedule Download schedule

slide-91
SLIDE 91

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

slide-92
SLIDE 92

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

slide-93
SLIDE 93

Problem Description and Constraints

Download completion time

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

slide-94
SLIDE 94

Problem Description and Constraints

Download completion time

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

Download completion times

slide-95
SLIDE 95

Problem Description and Constraints

Playback deadlines Download completion time

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

Time of playback deadline

slide-96
SLIDE 96

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

Time of playback deadline Playback deadlines

slide-97
SLIDE 97

Problem Description and Constraints

Startup delay

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

Playback deadlines

slide-98
SLIDE 98

Problem Description and Constraints

Playtime of earlier chunks

  • Playback deadlines

– for seamless playback without stalls – Current segment: e.g., 2 and 3

Startup delay Playback deadlines

slide-99
SLIDE 99

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls – First chunks next segment: e.g., 4, 7, and 10

slide-100
SLIDE 100

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls – First chunks next segment: e.g., 4, 7, and 10

slide-101
SLIDE 101

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls – First chunks next segment: e.g., 4, 7, and 10

Download completion times Download completion times

slide-102
SLIDE 102

Problem Description and Constraints

  • Playback deadlines

– for seamless playback without stalls – First chunks next segment: e.g., 4, 7, and 10

Download completion times Time at which branch point is reached Playback deadline (shared) for chunks 4, 7, and 10

slide-103
SLIDE 103

Problem Description and Constraints

Download completion times Download completion times

slide-104
SLIDE 104
  • Download times , rate estimations, and

parallel connections

– Schedule new downloads and new TCP connections at the end of a chunk download – Assume that an additional TCP connection will not increase the total download rate – New connections are initiated only if it is not expected to lead to playback deadline violations

Problem Description and Constraints

slide-105
SLIDE 105
  • Download times , rate estimations, and

parallel connections

– At the end of a chunk download, schedule new downloads and new TCP connections – Assume that an additional TCP connection will not increase the total download rate – New connections are initiated only if it is not expected to lead to playback deadline violations

Problem Description and Constraints

slide-106
SLIDE 106
  • Download times , rate estimations, and

parallel connections

– At the end of a chunk download, schedule new downloads and new TCP connections – Assume that an additional TCP connection will not increase the total download rate – New connections are initiated only if it is not expected to lead to playback deadline violations

Problem Description and Constraints

slide-107
SLIDE 107
  • Download times , rate estimations, and

parallel connections

– At the end of a chunk download, schedule new downloads and new TCP connections – Assume that an additional TCP connection will not increase the total download rate – New connections are initiated only if it is not expected to lead to playback deadline violations

Problem Description and Constraints

slide-108
SLIDE 108
  • Download times , rate estimations, and

parallel connections

– At the end of a chunk download, schedule new downloads and new TCP connections – Assume that an additional TCP connection will not increase the total download rate – New connections are initiated only if it is not expected to lead to playback deadline violations

Problem Description and Constraints

slide-109
SLIDE 109

Concurrent Download Example

slide-110
SLIDE 110

Concurrent Download Example

slide-111
SLIDE 111

Concurrent Download Example

slide-112
SLIDE 112

Concurrent Download Example

slide-113
SLIDE 113

Concurrent Download Example

slide-114
SLIDE 114

Concurrent Download Example

slide-115
SLIDE 115

Concurrent Download Example

slide-116
SLIDE 116

Prefetching Policies

  • At download completion

– Decide number of chunks to download next – Decide quality level of chunks – Maximize expected weighted playback

  • Exponential number of candidate schedules
  • Our optimized policies restrict the number of

candidate schedules to consider

– Differ in number of candidate schedules and how aggressive they are (in choosing qualities)

slide-117
SLIDE 117

Prefetching Policies

  • At download completion

– Decide number of chunks to download next – Decide quality level of chunks – Maximize expected weighted playback

  • Exponential number of candidate schedules
  • Our optimized policies restrict the number of

candidate schedules to consider

– Differ in number of candidate schedules and how aggressive they are (in choosing qualities)

slide-118
SLIDE 118

Prefetching Policies

  • At download completion

– Decide number of chunks to download next – Decide quality level of chunks – Maximize expected weighted playback

  • Exponential number of candidate schedules
  • Our optimized policies restrict the number of

candidate schedules to consider

– Differ in number of candidate schedules and how aggressive they are (in choosing qualities)

slide-119
SLIDE 119

Prefetching Policies

  • At download completion

– Decide number of chunks to download next – Decide quality level of chunks – Maximize expected weighted playback

  • Exponential number of candidate schedules
  • Our optimized policies restrict the number of

candidate schedules to consider

– Differ in number of candidate schedules and how aggressive they are (in choosing qualities)

slide-120
SLIDE 120

Prefetching Policies

  • At download completion

– Decide number of chunks to download next – Decide quality level of chunks – Maximize expected weighted playback

  • Exponential number of candidate schedules
  • Our optimized policies restrict the number of

candidate schedules to consider

– Differ in number of candidate schedules and how aggressive they are (in choosing qualities)

slide-121
SLIDE 121

Prefetching Policies

  • At download completion

– Decide number of chunks to download next – Decide quality level of chunks – Maximize expected weighted playback

  • Exponential number of candidate schedules
  • Our optimized policies restrict the number of

candidate schedules to consider

– Policies differ in number of candidate schedules and how aggressive they are (in choosing qualities)

slide-122
SLIDE 122

Comparison Between Policies

Policy Connections Schedules considered Objective All schedules 1≤ci≤Cmax

QM, where M=ne+|ξb|-m

  • Optimized non-

increasing quality 1≤ci≤Cmax Optimized maintainable quality 1≤ci≤Cmax Q

M+Q-1 Q-1

i=1

ne

∑ qili + ∑ qili

i=ne+1 ne+|ξb|

  • Total number of schedules: QM
  • Optimized non-increasing quality:

– Constraint: Qualities of consecutive chunks are non-increasing

  • Optimized maintainable quality:

– Constraint: Chosen quality must be sustainable for the remaining chunks

slide-123
SLIDE 123

Comparison Between Policies

Policy Connections Schedules considered Objective All schedules 1≤ci≤Cmax

QM, where M=ne+|ξb|-m

  • Optimized non-

increasing quality 1≤ci≤Cmax Optimized maintainable quality 1≤ci≤Cmax Q

M+Q-1 Q-1

i=1

ne

∑ qili + ∑ qili

i=ne+1 ne+|ξb|

  • Total number of schedules: QM
  • Optimized non-increasing quality:

– Constraint: Qualities of consecutive chunks are non-increasing

  • Optimized maintainable quality:

– Constraint: Chosen quality must be sustainable for the remaining chunks

slide-124
SLIDE 124

Comparison Between Policies

Policy Connections Schedules considered Objective All schedules 1≤ci≤Cmax

QM, where M=ne+|ξb|-m

  • Optimized non-

increasing quality 1≤ci≤Cmax Optimized maintainable quality 1≤ci≤Cmax Q

M+Q-1 Q-1

i=1

ne

∑ qili + ∑ qili

i=ne+1 ne+|ξb|

  • Total number of schedules: QM
  • Optimized non-increasing quality:

– Constraint: Qualities of consecutive chunks are non-increasing

  • Optimized maintainable quality:

– Constraint: Chosen quality must be sustainable for the remaining chunks

slide-125
SLIDE 125

Comparison Between Policies

Policy Connections Schedules considered Objective Single connection 1 Q Greedy bandwidth 1≤ci≤Cmax

i=1

ne

∑ qili + ∑ qili

i=ne+1 ne+|ξb|

∑ qili

i=j j+m

  • Single connection: baseline comparing to policies

which do not use multiple connections

  • Greedy bandwidth: bandwidth aggressive as
  • pposed to aggressive quality choices
  • Naïve: benchmark to regular branched video players
slide-126
SLIDE 126

Comparison Between Policies

Policy Connections Schedules considered Objective Single connection 1 Q Greedy bandwidth 1≤ci≤Cmax

i=1

ne

∑ qili + ∑ qili

i=ne+1 ne+|ξb|

∑ qili

i=j j+m

  • Single connection: baseline comparing to policies

which do not use multiple connections

  • Greedy bandwidth: bandwidth aggressive as
  • pposed to aggressive quality choices
  • Naïve: benchmark to regular branched video players
slide-127
SLIDE 127

Comparison Between Policies

Policy Connections Schedules considered Objective Single connection 1 Q Greedy bandwidth 1≤ci≤Cmax

i=1

ne

∑ qili + ∑ qili

i=ne+1 ne+|ξb|

∑ qili

i=j j+m

  • Single connection: baseline comparing to policies

which do not use multiple connections

  • Greedy bandwidth: bandwidth aggressive as
  • pposed to aggressive quality choices
  • Naïve: benchmark to regular branched video players
slide-128
SLIDE 128

Test Scenario

slide-129
SLIDE 129

Test Scenario

Worst case scenario

  • always pick the last segment
  • at last possible moment
slide-130
SLIDE 130

Test Scenario

Worst case scenario

  • always pick the last segment
  • at last possible moment
slide-131
SLIDE 131

Test Scenario

  • Default scenario:

– Chunks per segment: 5 – Branches per branch point: 4 – Branch points: 3

  • Results are averages over 30 experiments

Worst case scenario

  • always pick the last segment
  • at last possible moment
slide-132
SLIDE 132

Test Scenario

  • Default scenario:

– Chunks per segment: 5 – Branches per branch point: 4 – Branch points: 3

  • Results are averages over 30 experiments
slide-133
SLIDE 133

Test Scenario

  • Default scenario:

– Chunks per segment: 5 – Branches per branch point: 4 – Branch points: 3

  • Results are averages over 30 experiments

Segment length

slide-134
SLIDE 134

Test Scenario

  • Default scenario:

– Chunks per segment: 5 – Branches per branch point: 4 – Branch points: 3

  • Results are averages over 30 experiments

Branch options

slide-135
SLIDE 135

Test Scenario

  • Default scenario:

– Chunks per segment: 5 – Branches per branch point: 4 – Branch points: 3

  • Results are averages over 30 experiments

Branch points

slide-136
SLIDE 136

Test Scenario

  • Default scenario:

– Chunks per segment: 5 – Branches per branch point: 4 – Branch points: 3

  • Results are averages over 30 experiments

Branch points

slide-137
SLIDE 137

Policy Comparison

  • Naïve policy: does not perform prefetching

– Stalls at every branch point – Note: High playback rate is misleading on its own

slide-138
SLIDE 138

Policy Comparison

  • Naïve policy: does not perform prefetching

– Stalls at every branch point – Note: High playback rate is misleading on its own

slide-139
SLIDE 139

Policy Comparison

  • Naïve policy: does not perform prefetching

– Stalls at every branch point – Note: High playback rate is misleading on its own

slide-140
SLIDE 140

Policy Comparison

  • Optimized maintainable quality provides best tradeoff

– Much lower stall probability – Tradeoff is somewhat lower playback quality

slide-141
SLIDE 141

Policy Comparison

  • Optimized maintainable quality provides best tradeoff

– Much lower stall probability – Tradeoff is somewhat lower playback rate

slide-142
SLIDE 142

Policy Comparison

  • Optimized maintainable quality provides best tradeoff

– Much lower stall probability – Tradeoff is somewhat lower playback rate

slide-143
SLIDE 143

Policy Comparison

  • Optimized maintainable quality provides best tradeoff

– Much lower stall probability – Tradeoff is somewhat lower playback rate

slide-144
SLIDE 144

Policy Comparison

  • Optimized non-increasing quality is more aggressive

– Higher playback rate – More stalls

slide-145
SLIDE 145

Policy Comparison

  • Optimized non-increasing quality is more aggressive

– Higher playback rate – More stalls

slide-146
SLIDE 146

Policy Comparison

  • Optimized non-increasing quality is more aggressive

– Higher playback rate – More stalls

slide-147
SLIDE 147

Policy Comparison

  • Single connection does not use parallel connections

– Good (slightly higher) playback rate – Much more stalls

slide-148
SLIDE 148

Policy Comparison

  • Single connection does not use parallel connections

– Good (slightly higher) playback rate – Much more stalls

slide-149
SLIDE 149

Policy Comparison

  • Single connection does not use parallel connections

– Good (slightly higher) playback rate – Much more stalls

slide-150
SLIDE 150
  • Greedy bandwidth aggressively grabs bandwidth

– Lower playback rate – More stalls

Policy Comparison

slide-151
SLIDE 151
  • Greedy bandwidth aggressively grabs bandwidth

– Lower playback rate – More stalls

Policy Comparison

slide-152
SLIDE 152
  • Greedy bandwidth aggressively grabs bandwidth

– Lower playback rate – More stalls

Policy Comparison

slide-153
SLIDE 153
  • Quality decreases with larger RTTs

– Playback rate decrease with RTT – Stall probability increase with RTT

Impact of Round-trip Times (RTTs)

slide-154
SLIDE 154
  • Quality decreases with larger RTTs

– Playback rate decrease with RTT – Stall probability increase with RTT

Impact of Round-trip Times (RTTs)

slide-155
SLIDE 155
  • Quality decreases with larger RTTs

– Playback rate decrease with RTT – Stall probability increase with RTT

Impact of Round-trip Times (RTTs)

slide-156
SLIDE 156

Impact of Segment Lengths

Segment length

slide-157
SLIDE 157
  • Quality increases with more chunks per segment
  • Very many stalls if segments are too short

Impact of Segment Lengths

Segment length

slide-158
SLIDE 158
  • Quality increases with more chunks per segment
  • Very many stalls if segments are too short

Impact of Segment Lengths

Segment length

slide-159
SLIDE 159
  • Quality increases with more chunks per segment
  • Very many stalls if segments are too short

100%

Impact of Segment Lengths

Segment length

slide-160
SLIDE 160

Branch options

Impact of Branch Options

slide-161
SLIDE 161
  • Stalls frequent when too many branch options
  • Single connection struggles the most

Branch options

Impact of Branch Options

slide-162
SLIDE 162
  • Stalls frequent when too many branch options
  • Single connection struggles the most

Branch options

Impact of Branch Options

slide-163
SLIDE 163
  • Stalls frequent when too many branch options
  • Single connection struggles the most

Branch options

Impact of Branch Options

slide-164
SLIDE 164

Impact of Competing Flows

TCP connection 1 TCP connection N

slide-165
SLIDE 165
  • Player adapts playback rate based on competing traffic
  • Parallel connection polices see increased benefits when

competing traffic

– E.g., Single connection policy has much more stalls when competing flows

Impact of Competing Flows

TCP connection 1 TCP connection N

slide-166
SLIDE 166
  • Player adapts playback rate based on competing traffic
  • Parallel connection polices see increased benefits when

competing traffic

– E.g., Single connection policy has much more stalls when competing flows

Impact of Competing Flows

TCP connection 1 TCP connection N

slide-167
SLIDE 167
  • Player adapts playback rate based on competing traffic
  • Parallel connection polices see increased benefits when

competing traffic

– E.g., Single connection policy has much more stalls when competing flows

Impact of Competing Flows

TCP connection 1 TCP connection N

slide-168
SLIDE 168
  • Player adapts playback rate based on competing traffic
  • Parallel connection polices see increased benefits when

competing traffic

– E.g., Single connection policy has much more stalls when competing flows

Impact of Competing Flows

TCP connection 1 TCP connection N

slide-169
SLIDE 169
  • Player adapts playback rate based on competing traffic
  • Parallel connection polices see increased benefits when

competing traffic

– E.g., Single connection policy has much more stalls when competing flows

Impact of Competing Flows

TCP connection 1 TCP connection N

slide-170
SLIDE 170

Capped Workahead

  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

slide-171
SLIDE 171
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmin

slide-172
SLIDE 172
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmin

slide-173
SLIDE 173
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmax buffer > Tmin

slide-174
SLIDE 174
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmax buffer > Tmin

slide-175
SLIDE 175
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmax buffer > Tmin

slide-176
SLIDE 176
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmax buffer > Tmin buffer > Tmin

slide-177
SLIDE 177
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmax buffer > Tmin buffer > Tmin

slide-178
SLIDE 178
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmax buffer > Tmin buffer > Tmin

slide-179
SLIDE 179
  • Most HAS players perform ON-OFF switching

based on two buffer thresholds: Tmin and Tmax

  • If buffer > Tmin

– Start playback

  • If buffer > Tmax

– Suspend download

  • If buffer < Tmin

– Resume download

Capped Workahead

buffer > Tmax buffer > Tmin buffer > Tmin

slide-180
SLIDE 180

Capped Workahead

  • How to handle workahead when video

contains branches?

  • Perform ON-OFF switching based on number
  • f branches after the closest branch point
  • Tmin = Tsingle (# branches)
  • Tmax = Tsingle+ 
slide-181
SLIDE 181

Capped Workahead

  • How to handle workahead when video

contains branches?

  • Perform ON-OFF switching based on number
  • f branches after the closest branch point
  • Tmin = Tsingle (# branches)
  • Tmax = Tsingle+ 
slide-182
SLIDE 182

Capped Workahead

  • How to handle workahead when video

contains branches?

  • Perform ON-OFF switching based on number
  • f branches after the closest branch point
  • Tmin = Tsingle (# branches)
  • Tmax = Tsingle+ 
slide-183
SLIDE 183

Capped Workahead

  • How to handle workahead when video

contains branches?

  • Perform ON-OFF switching based on number
  • f branches after the closest branch point
  • Tmin = Tsingle (# branches)
  • Tmax = Tsingle+ 

Example

slide-184
SLIDE 184

Capped Workahead

  • How to handle workahead when video

contains branches?

  • Perform ON-OFF switching based on number
  • f branches after the closest branch point
  • Tmin = Tsingle (# branches)
  • Tmax = Tsingle+ 

Example Tsingle = 8  = 4 # branches = 2

slide-185
SLIDE 185

Capped Workahead

  • How to handle workahead when video

contains branches?

  • Perform ON-OFF switching based on number
  • f branches after the closest branch point
  • Tmin = Tsingle (# branches)
  • Tmax = Tsingle+ 

Example Tsingle = 8  = 4 # branches = 2 Tmin = 16 Tmax = 20

slide-186
SLIDE 186

Capped Workahead

  • How to handle workahead when video

contains branches?

  • Perform ON-OFF switching based on number
  • f branches after the closest branch point
  • Tmin = Tsingle (# branches)
  • Tmax = Tsingle+ 

Example

slide-187
SLIDE 187

Conclusion

  • Designed and implemented branched video player that

achieve seamless streaming without playback interruptions

  • Designed optimized policies that maximize playback quality

while ensuring sufficient workahead to avoid stalls

  • Evaluation shows that solution effectively adapt quality

levels and number of parallel connections so as to provide best possible video quality, given current conditions

slide-188
SLIDE 188

Conclusion

  • Designed and implemented branched video player that

achieve seamless streaming without playback interruptions

  • Designed optimized policies that maximize playback quality

while ensuring sufficient workahead to avoid stalls

  • Evaluation shows that solution effectively adapt quality

levels and number of parallel connections so as to provide best possible video quality, given current conditions

slide-189
SLIDE 189

Conclusion

  • Designed and implemented branched video player that

achieve seamless streaming without playback interruptions

  • Designed optimized policies that maximize playback quality

while ensuring sufficient workahead to avoid stalls

  • Evaluation shows that solution effectively adapt quality

levels and number of parallel connections so as to provide best possible video quality, given current conditions

slide-190
SLIDE 190

Conclusion

  • Designed and implemented branched video player that

achieve seamless streaming without playback interruptions

  • Designed optimized policies that maximize playback quality

while ensuring sufficient workahead to avoid stalls

  • Evaluation shows that solution effectively adapt quality

levels and number of parallel connections so as to provide best possible video quality, given current conditions

slide-191
SLIDE 191

Conclusion

  • Designed and implemented branched video player that

achieve seamless streaming without playback interruptions

  • Designed optimized policies that maximize playback quality

while ensuring sufficient workahead to avoid stalls

  • Evaluation shows that solution effectively adapt quality

levels and number of parallel connections so as to provide best possible video quality, given current conditions

Software: http://www.ida.liu.se/~nikca/mm14.html

slide-192
SLIDE 192

www.liu.se

Quality-adaptive Prefetching for Interactive Branched Video using HTTP-based Adaptive Streaming

Vengatanathan Krishnamoorthi, Niklas Carlsson, Derek Eager, Anirban Mahanti, Nahid Shahmehri

Software: http://www.ida.liu.se/~nikca/mm14.html