# Overview

* Video streaming dominates internet traffic&#x20;
* Adaptive bitrate (ABR) is a key algorithm to optimize user's quality of experiences (QoE)&#x20;
  * Decides the quality level of each video chunk to send&#x20;
  * Primary goals: higher video quality, fewer stalls&#x20;
    * Larger chunk: increase video quality, but can stall the video playback&#x20;
  * Prior works:&#x20;
    * Buffer-based: pick bitrate based on buffer occupancy&#x20;
      * BBA \[SIGCOMM '14]: simple buffer based ABR algorithm. Select video bitrate based only on user's playback buffer: below some buffer level, selects the lowest bitrate; above, select the highest one. In-between, linear function&#x20;
    * Rate-based: pick bitrate based on predicted throughput&#x20;
      * **FESTIVE,** PANDA, CS2P&#x20;
    * Hybrid: use both throughput prediction and buffer occupancy&#x20;
      * MPC \[SIGCOMM '15]: model predictive control, uses harmonic mean of past throughput to predict future throughput, scale the predictive throughput linearly with the chunk size
        * Not good at throughput&#x20;
        * Predicting throughput actually varying with chunk size due to congestion control and varying bandwidth&#x20;
        * Network congestion occurs when a node or link carries data beyond its limit. This often leads to the queuing of packets—and in the worst case, loss of packets—as well as a decrease in the network’s Quality of Service (QoS). Congestion Control is a mechanism that controls the entry of data packets into the network, enabling a better use of a shared network infrastructure and avoiding congestive collapse.
    * Machine learning to tackle this problem&#x20;
      * Pensieve \[SIGCOMM '17]
        * Reinforcement learning to learn an end-to-end ABR control&#x20;
          * States: past chunk throughput, download time, next chunk size, current buffer size, remaining chunks, past chunk bit rate&#x20;
          * Reward: bitrate, rebuffering, smoothness&#x20;
        * Requires network simulators as training environments, assume training in simulation generalizes to wild Internet&#x20;
        * Requires a set of training environments that can exercise a control policy through a range of situations and actions
      * Fugu \[NSDI '20]&#x20;
        * Based on model predictive control
        * Transmission time predictor (TTP) (NN): how long it will take for a client to receive a given chunk&#x20;
          * Input: size and transmission time, size of chunk, low-level TCP statistics (RTT, SWND)&#x20;
          * Output: probability distribution over transmission time&#x20;
        * Training in situ: supervised learning in situ on real data from deployment environment&#x20;
      * **SENSEI** \[NSDI 21']: incorporate variability of quality sensitivity using sensitivity weights obtained via per-video crowdsourcing (quality sensitivity varies as video content changes)&#x20;
    * Other works: machine-centric video streaming&#x20;
      * Maximizes for DNN inference accuracy&#x20;
      * Most: source-driven approach, but suboptimal for analytics-oriented applications&#x20;
      * DNN-Driven approach \[**Server-Driven Video Streaming for Deep Learning Inference** \[SIGCOMM 20']]: sends low-quality video stream to the server, the server runs the DNN to determine where to re-send with higher quality to increase the inference accuracy&#x20;
    * Other works: continuous learning of video analytics models on edge compute servers&#x20;
      * In each retraining window, decide which of the edge models to train; allocate edge server's GPU resources among the retraining and inference jobs; select configurations of the retraining and inference jobs&#x20;
      * Maximize the inference accuracy averaged over the retrained window&#x20;
      * Contributions: introduce the metric, design efficient profiler, resource scheduler&#x20;
* What does it take to create a learned ABR algorithm that robustly performs well over the wild internet?&#x20;
