Термин

Buffer-based ABR

Короткое определение

ABR-алгоритм, выбирающий rendition по текущему уровню буфера плеера, а не по измеренному throughput-у. Большой буфер – выше rendition; маленький – ниже.

Buffer-based ABR ввели Yin, Jindal et al. (Netflix paper, 2014) как альтернативу оценке throughput-а. Интуиция: сам уровень буфера – несмещённый сигнал того, грузишь ли ты быстрее, чем играешь. Растёт буфер – есть запас для апа; падает – надо понижать. Throughput оценивать не нужно вовсе – буфер сам и есть интегрирующий сенсор.

Классический buffer-based-алгоритм задаёт кусочно-определённую функцию от уровня буфера к выбираемому rendition-у: ниже 10 секунд – самый низкий, между 10 и 30 – линейный рост, выше 30 – самый высокий. Варианты меняют пороги и форму кривой, но структура та же. Главный выигрыш – buffer-based ABR избегает шума оценки throughput-а на bursty-сетях: игнорирует transient-провалы полосы и реагирует только тогда, когда буфер действительно проседает.

В продакшене большинство ABR-ов гибридные. BOLA (Buffer Occupancy based Lyapunov Algorithm, 2016) – buffer-based-алгоритм с теоретическими границами оптимальности, используется в dash.js. Продакшен-ABR Netflix комбинирует buffer-based-логику с throughput-aware safety constraints. Shaka и hls.js оба по умолчанию используют гибриды. Чистый throughput-based или чистый buffer-based – больше учебные таргеты, чем продакшен-реальность.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.