quality adaptive prefetching for interactive branched
play

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


  1. HTTP-based Adaptive Streaming (HAS) • 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 34

  2. HTTP-based Adaptive Streaming (HAS) • 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 35

  3. HTTP-based Adaptive Streaming (HAS) • 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 36

  4. HTTP-based Adaptive Streaming (HAS) • 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 37

  5. HTTP-based Adaptive Streaming (HAS) • 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 38

  6. HTTP-based Adaptive Streaming (HAS) Chunk1 • 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 39

  7. HTTP-based Adaptive Streaming (HAS) Chunk2 Chunk1 • 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 40

  8. HTTP-based Adaptive Streaming (HAS) Chunk2 Chunk3 Chunk1 • 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 41

  9. HTTP-based Adaptive Streaming (HAS) Chunk4 Chunk2 Chunk3 Chunk1 • 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 42

  10. HTTP-based Adaptive Streaming (HAS) Chunk5 Chunk4 Chunk2 Chunk3 Chunk1 • 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 43

  11. HTTP-based Adaptive Streaming (HAS) Chunk5 Chunk4 Chunk2 Chunk3 Chunk1 • 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 44

  12. HAS-based Interactive Branched Video • 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 45

  13. HAS-based Interactive Branched Video • 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 46

  14. HAS-based Interactive Branched Video • 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 47

  15. HAS-based Interactive Branched Video • 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 48

  16. HAS-based Interactive Branched Video • 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 49

  17. HAS-based Interactive Branched Video • 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 50

  18. HAS-based Interactive Branched Video • 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 51

  19. HAS-based Interactive Branched Video • 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 52

  20. HAS-based Interactive Branched Video • 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 53

  21. HAS-based Interactive Branched Video • 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 54

  22. HAS-based Interactive Branched Video • 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 55

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. Problem Description and Constraints • Problem: Maximize quality, given playback deadlines and bandwidth conditions

  31. Problem Description and Constraints • Problem: Maximize quality, given playback deadlines and bandwidth conditions

  32. Problem Description and Constraints • Objective function playback quality

  33. Problem Description and Constraints • Objective function

  34. Problem Description and Constraints • Objective function Current segment

  35. Problem Description and Constraints • Objective function Beginning of next segment

  36. Problem Description and Constraints • Download order: round robin (optimal) Current segment

  37. Problem Description and Constraints • Download order: round robin (optimal) Current segment

  38. Problem Description and Constraints • Download order: round robin (optimal) Current segment

  39. Problem Description and Constraints • Download order: round robin (optimal) Current segment

  40. Problem Description and Constraints • Download order: round robin (optimal) Current segment first chunk next

  41. Problem Description and Constraints • Download order: round robin (optimal) Current segment first chunk next

  42. Problem Description and Constraints • Download order: round robin (optimal) Current segment first chunk next

  43. Problem Description and Constraints • Download order: round robin (optimal) Current segment first chunk next

  44. Problem Description and Constraints • Download order: round robin (extra workahead) Current segment first chunk next extra workahead

  45. Problem Description and Constraints • Download order: round robin (extra workahead) Current segment first chunk next extra workahead

  46. Problem Description and Constraints • Download order: round robin (extra workahead) Current segment first chunk next extra workahead

  47. Problem Description and Constraints • Download order: round robin (extra workahead) Current segment first chunk next extra workahead

  48. Problem Description and Constraints • Once branch point has been traversed, move on to next segment ... Current segment first chunk next

  49. Problem Description and Constraints Selected path • Once branch point has been traversed, move on to next segment ... Current segment first chunk next

  50. Problem Description and Constraints Selected path • Once branch point has been traversed, move on to next segment ... current segment

  51. Problem Description and Constraints • Once branch point has been traversed, move on to next segment ... current segment

  52. Problem Description and Constraints • Once branch point has been traversed, move on to next segment ... current segment

  53. Problem Description and Constraints • Once branch point has been traversed, move on to next segment ... current segment

  54. Problem Description and Constraints • Once branch point has been traversed, move on to next segment ... 22 current segment first chunk next

  55. Problem Description and Constraints • Once branch point has been traversed, move on to next segment ... 22 current segment first chunk next

  56. Problem Description and Constraints Playback schedule • Playback deadlines – for seamless playback without stalls

  57. Problem Description and Constraints Playback schedule Download schedule • Playback deadlines – for seamless playback without stalls

  58. Problem Description and Constraints • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3

  59. Problem Description and Constraints • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3

  60. Problem Description and Constraints • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3 Download completion time

  61. Problem Description and Constraints Download completion times • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3 Download completion time

  62. Problem Description and Constraints Playback deadlines • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3 Time of playback deadline Download completion time

  63. Problem Description and Constraints Playback deadlines • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3 Time of playback deadline

  64. Problem Description and Constraints Playback deadlines • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3 Startup delay

  65. Problem Description and Constraints Playback deadlines • Playback deadlines – for seamless playback without stalls – Current segment: e.g., 2 and 3 Playtime of earlier chunks Startup delay

  66. Problem Description and Constraints • Playback deadlines – for seamless playback without stalls – First chunks next segment: e.g., 4, 7, and 10

  67. Problem Description and Constraints • Playback deadlines – for seamless playback without stalls – First chunks next segment: e.g., 4, 7, and 10

Recommend


More recommend