# Fuzzy-Based Quality Adaptation Algorithm for Improving QoE from MPEG-DASH Video
## 1 Introduction  
Multimedia content accounts for the majority of internet traffic. According to the Cisco Visual Networking Index, 82% of global mobile data traffic will be video by 2022 [1]. To handle traffic demand related to multimedia, HTTP adaptive streaming (HAS) solutions are often used. Figure 1 shows a simple MPEG-DASH streaming scenario between a video server and a DASH client. In MPEG-DASH, the video content stored in the server is encoded at multiple video rates and fragmented into small segments of fixed duration, \(\tau\). The video client starts the streaming session by asking for the Media Presentation Description (MPD) file from the server by using HTTP GET requests. The video client downloads the segments at the most suitable video rates available from the server. The adaptive bitrate (ABR) algorithm runs on the HTTP client and dynamically adjusts the video quality based on the network conditions. The objective of the ABR algorithm is to optimize the QoE of video clients. A comprehensive survey on QoE determined the factors that affect user experience [2]. These QoE objectives include selecting the highest set of video bitrates, avoiding unnecessary video bitrate changes, and avoiding playback interruptions. Playback interruptions and selection of video bitrates affect the user experience the most [3]. However, these video quality objectives are contradictory. On one hand, selecting the highest available video rate increases the risk of playback interruption; on the other hand, mitigating the risk of interruptions during playback means selecting lower-quality segments. Therefore, the selection of the most feasible video rate is a challenging task. The majority of existing algorithms employ fixed control rules to pick the video rate based on available throughput [4; 5], the amount of video in the playback buffer [6], or a combination of the two [7; 8; 9; 10; 11]. These algorithms require significant tuning, and performance varies from one client or group of network settings to the other. Video streaming services deploy segment durations (\(\tau\)) differently. Microsoft's Smooth Streaming and Adobe's HTTP Dynamic Streaming offer segment durations of two seconds and four seconds, respectively [12; 13]. The client can buffer a larger number of smaller segments, compared to larger segments, as shown in Figure 2. More segments reduce the risk of playback interruption. Let us assume the current buffer level is four seconds, and the segment duration is two seconds. This means the total number of segments the buffer can hold is two. If the segment duration is four seconds, then only one segment can fit in the buffer. If throughput is less than the video rate of the segment being downloaded, there is a greater risk of buffer underflow when downloading larger segments. This shows that instead of observing only buffer level, clients should observe the ratio of the buffer level to the segment duration in order to adapt video quality. Moreover, using the smaller segment duration, the client has more opportunities to adapt the video rate, compared to using the larger duration. In a highly unstable network, the client could adjust the video rate more quickly by downloading smaller segments. Similarly, different video players offer different playback buffer sizes, \(B_{max}\). The buffer-based algorithms adapt the video rates aggressively or conservatively based on the playback buffer level. As the buffer level increases, the algorithms select the video rate aggressively. A smaller playback buffer would fill up quickly, compared to a larger buffer. This would allow the adaptation algorithms to aggressively increase the video rate. However, a larger buffer reduces the risk of playback interruption in case of a mismatch  
Figure 1: A simple MPEG-DASH streaming scenario. Figure 2: Comparing (**a,b**) shows that the larger buffer size allows the client to buffer more segments. Comparing (**b,c**) shows that longer segment durations decrease the number of segments that can be buffered.