Содержание статьи +
- Кратко
- Почему это важно
- Что именно балансирует ABR, за одну минуту
- Средний битрейт: качество, которое вы действительно доставили
- Переключение – это собственный артефакт
- Измеряем переключения: частота, величина и нестабильность
- Компромисс, записанный одним уравнением
- Разобранный пример: стабильное обыгрывает дёрганое
- Как решения ABR проявляются в оценке качества
- Частые ошибки
- Где здесь Фора Софт
- Ключевые выводы
- Что читать дальше
Кратко
Адаптивный стриминг получает высокое качество картинки, отправляя больше бит, но каждый рывок за битами несёт два штрафа, которые зритель тоже чувствует: остановку, когда сеть не справляется, и заметное переключение качества, когда плеер меняет ступень на лесенке битрейтов. Задача измерения здесь – следить за всеми тремя величинами сразу: средним доставленным битрейтом, ребуферингом и переключениями, – потому что оптимизация любой одной тихо ломает остальные, а «дёрганый» поток может набрать меньше, чем стабильный, даже при более высоком среднем битрейте. Компромисс точно записан в стандартной целевой функции QoE стриминга: слагаемое качества, которое прибавляют, минус штраф за ребуферинг, минус штраф за переключения (Yin et al., SIGCOMM 2015). Эта статья определяет каждую величину, показывает арифметику, по которой стабильная средняя ступень обыгрывает скачущую верхнюю, и объясняет, как решения ABR проявляются в оценке воспринимаемого качества.
Почему это важно
Каждый адаптивный поток принимает решение о качестве несколько раз в минуту, и именно эти решения определяют, увидит ли зритель резкую картинку, замёрзшую или мерцающую. Если измерять только средний доставленный битрейт, вы похвалите плеер, который раздражает аудиторию постоянными скачками качества; если измерять только остановки, вы выпустите поток, который никогда не буферизуется и при этом никогда не выглядит хорошо. Эта статья – для стриминг-инженера, разработчика плеера и QoE-аналитика, которым нужно сравнить две ABR-стратегии, задать цель по качеству для прямого эфира или объяснить продакт-оунеру, почему «мы попадаем в 4K половину времени» – не та победа, какой звучит. Это глубокий разбор за строкой битрейта и переключений из обзорной статьи о метриках QoE стриминга и третья опора трио первого впечатления рядом с ребуферингом и временем старта. Как плеер на самом деле решает, какую ступень выбрать, – это сам алгоритм ABR, и он живёт в разделе Video Streaming; здесь мы измеряем, что эти решения делают с воспринимаемым качеством.
Что именно балансирует ABR, за одну минуту
Начнём с того, что измеряем. Адаптивный стриминг по битрейту, называемый ABR, режет видео на короткие сегменты – обычно по две–шесть секунд – и кодирует каждый сегмент в нескольких битрейтах, набор ступеней которых называют лесенкой битрейтов. По мере воспроизведения плеер выбирает, какую ступень скачать следующей, исходя из того, как быстро движется сеть и сколько видео уже в буфере. При хорошей полосе он поднимается на более резкую, высокобитрейтную ступень; при падении – спускается, чтобы не прерывать игру.
Этот единственный механизм создаёт перетягивание каната на три стороны, и назвать три силы – это и есть весь смысл измерения. Первая сила – качество картинки, которое на данной лесенке растёт с потраченным битрейтом. Вторая – ребуферинг, остановка, когда плеер пытается потратить больше бит, чем сеть может доставить, и буфер пустеет. Третья – переключение, заметная смена качества каждый раз, когда плеер переходит на другую ступень. Нельзя максимизировать первую, не провоцируя две другие, и дисциплина этой статьи – отказ смотреть на любую из них в одиночку.
Полезная аналогия – езда по дороге с меняющимся ограничением скорости. Качество картинки – это ваша скорость: быстрее веселее. Ребуферинг – это когда кончилась дорога и вы встали намертво. Переключение – это когда вы давите то газ, то тормоз снова и снова: даже если средняя скорость высокая, ехать тошно. Лучшая поездка – не самая высокая максимальная скорость, а самое плавное продвижение, которое позволяет дорога.
Средний битрейт: качество, которое вы действительно доставили
Первая величина для измерения – средний битрейт за сессию, взвешенное по времени среднее тех ступеней, которые плеер реально проиграл, а не тех, что вы опубликовали. Это головной прокси качества картинки, и стандарты аналитики определяют его точно, чтобы две панели сообщали об одном и том же (CTA-2066, 2020). Более высокий средний битрейт обычно означает более резкую картинку, поэтому средний битрейт входит в число метрик, которые, как показано, влияют на вовлечённость на масштабе (Dobrian et al., SIGCOMM 2011).
Но битрейт – прокси качества, а не само качество, и считать их одним и тем же – первое место, где это измерение ломается. Те же 3 Мбит/с отлично смотрятся на медленном «говорящем голове» и посредственно – на конфетти и быстром спорте, потому что трудносжимаемой сцене нужно больше бит для того же результата. Честный шаг – сопоставить доставленный битрейт с перцептивной оценкой картинки по сегментам, обычно VMAF, и затем свести эти посегментные оценки в одно число. Когда сводите, сообщайте метод пулинга: среднее может скрыть участок мягких сегментов, который зритель заметил, а среднее простило. Почему один и тот же битрейт покупает разное качество на разном контенте – вопрос со стороны кодека; статья о per-title-кодировании разбирает, как лесенку строят с учётом этого.
Так что первое правило измерения просто сформулировать и легко забыть. Средний битрейт говорит, сколько бит вы потратили; он не говорит, что увидел зритель, и ничего не говорит о том, насколько ровным был опыт. Для этого нужны две другие величины.
Переключение – это собственный артефакт
Вот идея, которую упускает большинство команд: переключение качества само по себе видимый дефект, даже когда каждая ступень в нём по отдельности выглядит нормально. Когда картинка заметно резчает или мягчает посреди воспроизведения, глаз ловит смену, и поток, мерцающий между отличной и плохой ступенями, может ощущаться хуже, чем поток, ровно сидящий посередине. Переключение принадлежит к той же семье, что и артефакты, специфичные для стриминга, – видимые швы, которых не создавал кодер и которые появляются только при доставке.
Два свойства переключения решают, насколько оно ранит, и измерять надо оба. Первое – частота: как часто меняется качество; поток, переключающийся каждые несколько секунд, привлекает к себе внимание. Второе – величина: насколько велик каждый скачок; шаг на одну ступень – пожатие плечами, а прыжок с верхней ступени на нижнюю – пощёчина. Субъективные исследования стабильно находят, что зрители чувствительны и к частым, и к большим переключениям (Jiang et al., CoNEXT 2012), так что подсчёт событий переключения без учёта их размера измеряет не то.
У человеческого восприятия переключений есть три вывода, которые стоит запомнить, все – из крупного исследования с оценками 1350 адаптивных потоков людьми (Duanmu et al., WaterlooSQoE-IV, 2021). Первый: переключение вверх прощается куда легче, чем вниз – положительные адаптации предпочитаются отрицательным, так что важно направление переключения, а не только его размер. Второй: доминирует эффект недавности – около 60% зрителей сильнее всего взвешивают самое последнее качество, поэтому поток, который заканчивается на высокой ступени, обыгрывает тот, что начинается высоко, но проседает, при равном среднем. Третий: зрители не взаимозаменяемы – кто-то намного чувствительнее к переключениям, кто-то к низкому качеству, кто-то к остановкам, так что единое число QoE – всегда усреднение по популяции, скрывающее реальный разброс.
То же исследование дало отрезвляющий результат для всех, кто измеряет ABR. На большой реалистичной базе несколько прославленных «умных» алгоритмов ABR набрали в среднем хуже, чем простой алгоритм на основе пропускной способности, и авторы заключили, что понимание восприятия человека важнее, чем более хитрая оптимизация (Duanmu et al., 2021). Урок для измерения прямой: выигрыш приходит от измерения правильной вещи, а не от хитрого контроллера, оптимизирующего неправильную.
Измеряем переключения: частота, величина и нестабильность
Чтобы выразить переключение числом, начните с двух простых измерений, а затем объедините их. Частота переключений – число смен ступени на минуту воспроизведения. Величина переключения – размер каждой смены, лучше всего на перцептивной шкале (скачок в баллах VMAF или в битрейте), сводимый к среднему и максимальному абсолютному шагу или к стандартному отклонению проигранного битрейта за сессию.
Единая совмещённая мера, схватывающая оба свойства и используемая в литературе, – метрика нестабильности из исследования FESTIVE (Jiang et al., CoNEXT 2012). Это взвешенная сумма шагов переключения за недавнее окно, делённая на взвешенную сумму битрейтов за то же окно, причём более недавние переключения весят сильнее:
Σ w(d) · | b(t−d) − b(t−d−1) |
нестабильность = ───────────────────────────────────
Σ w(d) · b(t−d)за последние k секунд, с весом w(d) = k − d, чтобы самые свежие смены считались больше, и окном по умолчанию k = 20 секунд. Читается просто: «насколько велики были недавние скачки относительно того уровня качества, на котором мы были» – безразмерная оценка, равная нулю для идеально стабильного потока и растущая с размером и недавностью переключений.
Разберём чистый пример с равными весами, чтобы увидеть форму, а потом вспомним, что настоящая метрика опирается на недавние смены. Возьмём окно из четырёх сегментов. Стабильный поток проигрывает 2,85, 2,85, 2,85, 2,85 Мбит/с: каждый шаг нулевой, значит нестабильность 0. Колеблющийся поток проигрывает 4,3, 1,2, 4,3, 1,2 Мбит/с – почти тот же средний, 2,75 Мбит/с – с тремя шагами по 3,1 Мбит/с:
числитель = 3,1 + 3,1 + 3,1 = 9,3
знаменатель = 4,3 + 1,2 + 4,3 + 1,2 = 11,0
нестабильность = 9,3 / 11,0 ≈ 0,85Два потока, один и тот же средний битрейт, и один набирает 0, а другой 0,85. Средний битрейт назвал их ничьей; метрика нестабильности верно отметила второй как худший опыт. Этот разрыв – ровно та информация, которую средний битрейт выбрасывает.
Компромисс, записанный одним уравнением
Чище всего увидеть, почему все три величины надо измерять вместе, помогает стандартная целевая функция QoE стриминга – функция, против которой оптимизируют современные исследования ABR (Yin et al., SIGCOMM 2015; повторено у Mao et al., SIGCOMM 2017). Для видео из N сегментов она такая:
N N N−1
QoE = Σ q(R_n) − μ · Σ T_n − Σ | q(R_{n+1}) − q(R_n) |
n=1 n=1 n=1
└─ качество ┘ └─ ребуферинг ┘ └──── штраф за переключения ────┘Читаем каждое слагаемое по порядку. q(R_n) сопоставляет битрейту сегмента n воспринимаемое качество, которое вы *прибавляете, – награду за картинку. Среднее слагаемое вычитает штраф μ за каждую секунду ребуферинга T_n` – цену остановки. Последнее слагаемое вычитает размер каждой смены качества между соседними сегментами – цену переключения. Компромисс – не размытое напряжение, а три слагаемых в одной сумме, одно прибавляется и два вычитаются, и подъём первого обычно увеличивает два других.
Веса штрафов – не украшение: они кодируют, насколько важен каждый вред, и были подобраны по данным. В линейном варианте из исходной работы, с битрейтом в Мбит/с и q(R) = R, штраф за ребуферинг равен μ = 4,3 (Mao et al., 2017). У этого числа яркий смысл: одна секунда остановки стоит 4,3 единицы качества – целый вклад качества одного сегмента, проигранного на верхней ступени 4,3 Мбит/с. Один ребуферинг в одну секунду стирает ваш лучший сегмент. Поэтому ребуферинг считается самым разрушительным событием QoE и поэтому буфер – амортизатор, который плеер бережёт.
Разобранный пример: стабильное обыгрывает дёрганое
Теперь сделаем уравнение конкретным на окне из шести сегментов и реальной лесенке из эталонного исследования – {0,3, 0,75, 1,2, 1,85, 2,85, 4,3} Мбит/с, сегменты по четыре секунды (Mao et al., 2017). Допустим, сеть стабильно держит среднюю ступень, но соблазняет агрессивный плеер к верхней. Ребуферинга нет ни в одном случае, так что среднее слагаемое равно нулю и мы можем смотреть, как качество дерётся с переключением напрямую.
Стратегия A – гонимся за верхней ступенью. Плеер колеблется 4,3, 1,2, 4,3, 1,2, 4,3, 1,2 Мбит/с, хватая 4K, когда может, и падая, когда нет:
качество = 4,3 + 1,2 + 4,3 + 1,2 + 4,3 + 1,2 = 16,5
переключения = |1,2−4,3| × 5 переходов = 3,1 × 5 = 15,5
QoE_A = 16,5 − 0 − 15,5 = 1,0Стратегия B – сидим на средней ступени. Плеер держит 2,85 Мбит/с все шесть сегментов:
качество = 2,85 × 6 = 17,1
переключения = 0 (нет смен) = 0
QoE_B = 17,1 − 0 − 0 = 17,1Стратегия B набирает 17,1 против 1,0 у стратегии A – в семнадцать раз больше опыта – хотя стратегия A трижды достигла верхней ступени, а B не достигла ни разу. Штраф за переключения съел почти всё, что заработала высокая ступень. И заметьте средние: средний битрейт стратегии A – 16,5 ÷ 6 = 2,75 Мбит/с, чуть ниже 2,85 у стратегии B, так что уже по одному среднему битрейту B побеждает с небольшим перевесом – но разрыв в QoE огромен, потому что средний битрейт вообще не видит переключений.
Доведём до конца, чтобы снять очевидное возражение. Пусть стратегия A′ проигрывает 4,3, 4,3, 1,2, 4,3, 4,3, 1,2 Мбит/с – более высокий средний 3,27 Мбит/с, обыгрывающий 2,85 у B. Её слагаемое качества 19,6, а штраф за переключения 9,3 (три перехода по 3,1), так что QoE = 19,6 − 9,3 = 10,3, всё ещё заметно ниже 17,1 у B. Стратегия с более высоким средним битрейтом проиграла по воспринимаемому качеству, потому что переключалась. Это и есть весь аргумент за измерение переключений, в одной строке арифметики.
Как решения ABR проявляются в оценке качества
Рассчитанное выше число QoE – это исследовательская целевая функция; стандартизированный, валидированный способ свести эти решения в воспринимаемую оценку – ITU-T P.1203, параметрическая модель, оценивающая средний балл мнений (MOS) сессии по шкале 1–5 (ITU-T Rec. P.1203, 2017). Она берёт посегментное качество, задержку старта, остановки и переключения качества и интегрирует их во времени в одно число. Стандарт говорит об этом прямо: адаптация повышает шанс непрерывной доставки, но создаёт вариации качества, способные беспокоить зрителя, – так что переключение моделируется как деградация, а не как бесплатный обед.
P.1203 также зашивает временной урок из исследований восприятия: шаг интеграции в модели сильнее взвешивает недавнее качество, отражая эффект недавности – зрители помнят, как поток закончился. Практический вывод для дизайна ABR или цели по качеству – заканчивать на высокой ступени и переключаться вверх, а не вниз, где есть выбор, потому что тот же набор ступеней, переставленный, даёт другое запомненное качество. Откуда берутся сами события переключения – это инструментирование плеера, отмечающее каждую смену ступени, и оно разбирается в метриках качества на стороне плеера.
Частые ошибки
Компромисс прощает почти всё, кроме измерения одного угла и игнорирования двух других. Ниже – повторяющиеся ловушки.
Оптимизация только среднего битрейта. Плеер, настроенный лишь поднимать средний битрейт, будет агрессивно переключаться ради высоких ступеней, и штраф за переключения может утопить воспринимаемую оценку ниже более спокойного плеера – как показал пример при более высоком среднем. Всегда сообщайте переключения рядом со средним битрейтом.
Подсчёт переключений без их величины. «Двенадцать переключений» ничего не значит без их размеров и направлений. Двенадцать шагов вверх на одну ступень почти незаметны; один прыжок сверху вниз – резок. Измеряйте величину (дельта VMAF или битрейта) и направление, а не только счётчик.
Считать битрейт качеством. Тот же битрейт резок на простом контенте и мягок на сложном. Сопоставьте доставленный битрейт с посегментной оценкой VMAF, прежде чем называть это «качеством», и сообщайте пулинг.
Пулинг по среднему, скрывающий провал. Среднее по сессии может скрыть участок низких ступеней, который зритель ясно видел. Сообщайте низкий процентиль рядом со средним – та же дисциплина «пол, а не среднее», что движет надёжным отчётом о контроле качества.
Сравнение ABR-стратегий на горстке клипов. Два-три отобранных вручную клипа и беглый взгляд могут короновать не тот алгоритм; на большом реалистичном наборе ранжирование часто переворачивается (Duanmu et al., 2021). Сравнивайте на множестве контента, сетей и устройств и валидируйте против субъективных оценок.
Игнорирование разброса зрителей и устройства. Переключение, невидимое на телефоне, может быть очевидным на телевизоре, и зрителей беспокоит разное. Единое число QoE – это среднее по популяции; отмечайте разброс и устройство.
Где здесь Фора Софт
Мы строим платформы стриминга, OTT, видеоконференций и онлайн-обучения, где вопрос редко звучит как «какой пиковый битрейт» и почти всегда – «держится ли опыт ровно на реальных сетях». Измерять компромисс ABR в полном объёме – средний битрейт, сопоставленный с перцептивной оценкой, плюс частота и величина переключений, плюс ребуферинг, читаемые вместе, а не по одному – это то, как мы не даём плееру оптимизировать число, которого зритель не чувствует. Когда мы сравниваем две адаптивные стратегии для клиента, мы оцениваем их полной целевой функцией QoE на наборе контента и сетей, похожем на его аудиторию, а не на лестном демо-клипе. Та же честная к измерению позиция проходит через нашу методологию измерений, где каждое сравнение несёт свой контент, настройки и дату.
Ключевые выводы
- ABR балансирует три величины: качество картинки (битрейт), ребуферинг и переключения – измеряйте все три.
- Переключение – собственный артефакт; дёрганый поток может проиграть стабильному при более высоком среднем битрейте.
- Целевая функция QoE прибавляет качество и вычитает штраф за ребуферинг и штраф за переключения.
- Одна секунда ребуферинга может стоить как целый сегмент верхней ступени (μ = 4,3).
- Измеряйте величину и направление переключения, а не только счётчик; вверх прощается легче, чем вниз.
- Зрители сильнее всего весят самое недавнее качество – заканчивайте высоко и валидируйте против субъективных оценок.
Что читать дальше
- Доля ребуферинга и цена остановки – слагаемое остановки в целевой функции QoE, подробно.
- Связь объективных метрик картинки с воспринимаемым QoE – превращение посегментного VMAF в опыт сессии.
- Как работает ABR – алгоритм, принимающий решения о переключениях, которые измеряет эта статья.