In Hypertext Transfer Protocol (HTTP) adaptive streaming, the client makes rate adaptation decisions based on the measured network bandwidth and buffer fullness. This simplifies the adaptation logic; however, it often produces noticeable quality fluctuations during the streaming session. With content-aware encoding (CAE), one can improve the visual quality without increasing the total number of bits spent by carefully choosing where the bits are spent based on human perception. However, an adaptation logic that is unaware of the resulting variable-size segments may cause more stalls, defeating the purpose of improving viewer experience through CAE. This article explains the design steps of a size-aware rate adaptation (SARA) logic for one of the most popular Dynamic Adaptive Streaming over HTTP (DASH) clients, namely dash.js, and shows the improvements in rebuffering behavior and fetching top-resolution segments as a result of applying this logic.
Read full abstract