reconstructing proprietary video streaming algorithms
play

Reconstructing proprietary video streaming algorithms Maximilian - PowerPoint PPT Presentation

Reconstructing proprietary video streaming algorithms Maximilian Grner , Melissa Licciardello, Ankit Singla Photo: ETH Zrich / Gian Marco Castelberg Roadmap 2 Roadmap Introduction 2 Roadmap Introduction Reconstruction 2


  1. Reconstructing proprietary video streaming algorithms Maximilian Grüner , Melissa Licciardello, Ankit Singla Photo: ETH Zürich / Gian Marco Castelberg

  2. Roadmap 2

  3. Roadmap •Introduction 2

  4. Roadmap •Introduction •Reconstruction 2

  5. Roadmap •Introduction •Reconstruction •Experiments 2

  6. Roadmap •Introduction •Reconstruction •Experiments •Limitations and future work 2

  7. Roadmap •Introduction •Reconstruction •Experiments •Limitations and future work •Takeaways 2

  8. Streaming in Industry Share of global internet traffic % Categories [Sandvine 2019] 3

  9. Streaming in Industry Share of global internet traffic % Categories [Sandvine 2019] 3

  10. Streaming in Industry 23.8 % Various, 23.1 % Netflix, 12.7 % YouTube, 4.2 % Twitch… Share of global internet traffic % Categories [Sandvine 2019] 3

  11. Streaming in academia # Google Scholar citations Year 4

  12. Streaming in academia # Google Scholar citations Year 4

  13. Applications of reconstruction 5

  14. Applications of reconstruction 5

  15. Applications of reconstruction 5

  16. Applications of reconstruction 5

  17. 6

  18. 6

  19. 6

  20. 6

  21. 6

  22. Introduction into ABRs Played [Video from YouTube] Resolution Throughput 7

  23. Introduction into ABRs Played [Video from YouTube] Resolution Throughput 7

  24. Introduction into ABRs Played [Video from YouTube] Resolution Throughput 7

  25. Introduction into ABRs Played [Video from YouTube] Resolution Throughput 7

  26. Introduction into ABRs Played [Video from YouTube] Resolution Throughput 7

  27. Introduction into ABRs Played [Video from YouTube] Resolution Throughput 7

  28. Simple ABR in code def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 8

  29. Simple ABR in code def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 8

  30. Simple ABR in code def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 8

  31. Simple ABR in code def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 8

  32. Simple ABR in code def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 8

  33. Simple ABR as a tree throughput_estimate == low False True next_quality = ⬇⬇ next_quality = ⬆⬆ 9

  34. (Slightly more) complex ABR in code def choose_next_quality(throughput_history): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: next_quality = ⬇⬇ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 10

  35. (Slightly more) complex ABR in code def choose_next_quality(throughput_history): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: next_quality = ⬇⬇ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 10

  36. Why do we need primitives 11

  37. Why do we need primitives 11

  38. Why do we need primitives 2 Rules 11

  39. Why do we need primitives 5 Rules 11

  40. Why do we need primitives 25 Rules 11

  41. Why do we need primitives 100 Rules 11

  42. Complex ABR in code def choose_next_quality(throughput_history, buffer_size): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: download_time = chunk_size_high / throughput_estimate if download_time < buffer_size: next_quality = ⬇⬇ else : next_quality = ⬆⬆ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 12

  43. Complex ABR in code def choose_next_quality(throughput_history, buffer_size): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: download_time = chunk_size_high / throughput_estimate if download_time < buffer_size: next_quality = ⬇⬇ else : next_quality = ⬆⬆ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 12

  44. Complex ABR in code def choose_next_quality(throughput_history, buffer_size): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: download_time = chunk_size_high / throughput_estimate if download_time < buffer_size: next_quality = ⬇⬇ else : next_quality = ⬆⬆ else : ## throughput_estimate == high next_quality = ⬆⬆ return next_quality 12

  45. Number of primitives 13

  46. Number of primitives Features 13

  47. Number of primitives Features X Lookback 13

  48. Number of primitives Features X Lookback X Actions 13

  49. Number of primitives Features X Lookback X Actions ~ 1300 Primitives 13

  50. 14

  51. 14

  52. Services of interest Provider Description Alexa Rank 15

  53. Services of interest Provider Description Alexa Rank YouTube Broad coverage 2, Global 15

  54. Services of interest Provider Description Alexa Rank YouTube Broad coverage 2, Global ZDF German Public Service 47, Germany 15

  55. Services of interest Provider Description Alexa Rank YouTube Broad coverage 2, Global ZDF German Public Service 47, Germany Pornhub Pornographic video sharing website 46, Global 15

  56. Services of interest Provider Description Alexa Rank Provider Description Alexa Rank YouTube Broad coverage 2, Global YouTube Broad coverage 2, Global ZDF German Public Service 47, Germany ZDF German Public Service 47, Germany Pornhub Pornographic video sharing website 46, Global Pornhub Pornographic video sharing website 46, Global Arte French-German,cultural 270,France Fandom Gaming, pop-culture 91, Global SRF Swiss Public Service 45, Switzerland TubiTV Movies and series of all genres 1330, USA Twitch Live and VoD streaming service, gaming 39, Global Vimeo Artistic content 188, Global XVideos Pornographic video sharing website 67, Global 15

  57. Inference features 16

  58. Inference features Providers 16

  59. Inference features Providers X Net-traces 16

  60. Inference features Providers X Net-traces X Videos 16

  61. Inference features Providers X Net-traces X Videos X Length 16

  62. Inference features Providers X Net-traces X Videos X Length ~ 9 hours of training/testing streaming time 16

  63. 17

  64. 17

  65. Why is agreement not sufficient 18

  66. Why is agreement not sufficient Played [Video from YouTube] Resolution Throughput 18

  67. Why is agreement not sufficient Played [Video from YouTube] Resolution Throughput 18

  68. Why is agreement not sufficient Played [Video from YouTube] Resolution Throughput 18

  69. Why is agreement not sufficient Played [Video from YouTube] Resolution Throughput 18

  70. Why is agreement not sufficient Played [Video from YouTube] Resolution Throughput 18

  71. Agreement 19

  72. Agreement [Wikipedia] 19

  73. Agreement [Wikipedia] 19

  74. Agreement [Wikipedia] 19

  75. Agreement [Wikipedia] 19

  76. Agreement [Wikipedia] 19

  77. Agreement [Wikipedia] 19

  78. Agreement [Wikipedia] 19

  79. Agreement F 1 = 2 ⋅ precision ⋅ recall precision + recall [Wikipedia] 19

  80. Similarity 20

  81. Similarity [Scikit-learn] 20

  82. Similarity [Scikit-learn] 20

  83. Similarity [Scikit-learn] 20

  84. Similarity [Scikit-learn] 20

  85. Similarity Score Similarity = 𝒬 ( Decision from reference distribution ) [Scikit-learn] 20

  86. General metric analysis 21

  87. General metric analysis 21

  88. General metric analysis Best 21

  89. General metric analysis Best Worst 21

  90. General metric analysis Best Worst 21

  91. General metric analysis Best Worst 21

  92. General metric analysis Best Worst 21

  93. General metric analysis Best Worst 21

  94. General metric analysis Best Worst 21

  95. 22

  96. 22

  97. 22

  98. 22

  99. 22

  100. Perceptual metric analysis 23

Recommend


More recommend