Термин
BOLA
Алгоритм на основе заполненности буфера (Buffer Occupancy based Lyapunov Algorithm) – это ABR-стратегия, основанная на буфере, с доказуемыми границами оптимальности. Разработан Spiteri et al. в 2016 году и является стандартным ABR-алгоритмом в dash.js.
BOLA формализовал buffer-ориентированный ABR с использованием оптимизации по Ляпунову, доказав, что при определённых допущениях алгоритм обеспечивает long-term utility, близкую к оптимальной (взвешенная сумма битрейта и минимизация rebuffer-ов). На границе сегмента принимаемое решение выбирает rendition, максимизирующий `(utility rendition-а) − γ × (стоимость изменения буфера)`, где γ – параметр, настраиваемый под целевой размер буфера плеера.
Оригинальная статья BOLA (IEEE INFOCOM 2016) и её преемник BOLA-FINITE (2020) проанализировали поведение алгоритма при старте и граничные случаи конечного буфера. В 2017 году dash.js выбрал BOLA в качестве ABR по умолчанию и продолжал дорабатывать его в последующих версиях. Исследования на трассах реальных сетей показывают, что BOLA превосходит чистые throughput-ориентированные ABR-алгоритмы по большинству метрик: меньше случаев ребуферизации при сопоставимом битрейте, а также реже происходят ненужные переключения качества.
Слабость BOLA в том, что он игнорирует измеренную пропускную способность, из-за чего может медленно реагировать на реальные изменения полосы пропускания сразу после их возникновения. Буфер накапливает данные о пропускной способности во времени, поэтому резкое падение полосы проявляется в сигнале буфера не мгновенно. В продакшен-ABR-алгоритмах 2026 года часто используется BOLA-подобная логика управления буфером в связке с порогом безопасности на основе пропускной способности: «используйте BOLA, если пропускная способность не опустилась ниже 50 % от битрейта текущего rendition’а на протяжении трёх сегментов; в противном случае – немедленно понижайте битрейт».
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.