Содержание статьи +
- TL;DR
- Зачем это нужно
- Два слова, два смысла – индустрия в них путается
- Content-aware кодирование – три уровня гранулярности
- Покажите математику – per-scene экономия в одном абзаце
- Context-aware кодирование – энкодинг под реальную аудиторию
- Типичная ошибка: путаница content-aware и context-aware в вендорском питче
- Где ИИ помогает – и где не помогает
- Где здесь Фора Софт
- Как решить, что добавлять первым
- Ключевые тезисы
- Что читать дальше
- Источники
TL;DR
Content-aware кодирование смотрит на содержимое видео – насколько сложна картинка, сколько в каждой сцене движения, куда зритель будет реально смотреть – и распределяет биты соответственно, а не одинаково по всем тайтлам. Context-aware кодирование смотрит на то, кто и как смотрит – телефон или ТВ, 4G или оптоволокно, какие кодеки декодирует устройство – и под этот аудиторный профиль подстраивает adaptive bitrate ladder (набор пар «разрешение–битрейт», между которыми плеер переключается). Эти два подхода дополняют друг друга, часто путаются, и вместе экономят 20–50% хранилища и трафика при той же воспринимаемой зрителем чистоте картинки – поэтому отчёт NETINT State of Video Encoding 2026 называет content-adaptive кодирование «самым ярким индикатором зрелости энкодинг-пайплайна» в продакшене. Эта статья объясняет оба подхода, называет open-source и коммерческие пайплайны, в которых они уже работают, и даёт одностраничный плейбук – что добавлять первым.
Зачем это нужно
Если ваша команда платит за CDN, content-aware кодирование – самый дешёвый крупный долларовый выигрыш, который можно получить в видеопайплайне в этом году. Экономия концентрируется в самых популярных тайтлах, инженерная работа делается инкрементально, без полного переезда платформы, а технология достаточно зрелая, чтобы каждый крупный облачный энкодер предлагал её «из коробки». Context-aware кодирование – второй рычаг: оно не даёт послать 4K-rung зрителю, который смотрит на 720p-экране телефона по 4G, а это тихая потеря бюджета почти в каждом пайплайне, где «у нас уже есть HD, SD и 4K».
Статья – для продакт-менеджеров, фаундеров, видеооперационных лидов и инженерных менеджеров, которым нужно прочитать вендорский питч – «AI content-aware encoding, 40% экономии битрейта» – и понять, какой рычаг тянет вендор, что из этого реально, и что спросить дальше. Мы начнём с простейшей версии «кодируем каждое видео под его сложность», пройдём, как идея выросла в per-scene, потом в region-of-interest, потом в оптимизацию по контексту доставки, и закончим деревом решений: что развёртывать в первую очередь.
Два слова, два смысла – индустрия в них путается
Термин «content-aware encoding» примерно на год старше «context-aware encoding», и индустрия пользуется обоими достаточно небрежно, чтобы иногда добавлять третий – context-aware recording, это уже совсем другая задача. До того как идти дальше, зафиксируем определения, потому что каждый «AI-encoder» питч этого года их смешивает.
Content-aware кодирование смотрит на свойства самого видео. Мультфильм или спорт? Talking head или съёмка с дрона? Тёмный интерьер или яркий экстерьер? Однородное небо или текстура травы? Энкодер использует эти свойства, чтобы решить, сколько битов потратить на весь тайтл, на каждую сцену, или даже на каждую область внутри каждого кадра. Технологию также называют content-adaptive encoding (CAE), per-title encoding, per-scene encoding, shot-based encoding, region-of-interest encoding и content-aware bitrate ladder generation. Это не синонимы – они работают на разной гранулярности – но у них общий вход и общий тип выхода: вход – исходное видео, выход – план распределения битов на основе того, что энкодер увидел.
Context-aware кодирование смотрит на свойства доставки – кто получит видео, на каком устройстве, через какую сеть. Телефон на 4G с 6-дюймовым 720p-экраном не нуждается в 4K-rung; 65-дюймовый ТВ на оптоволокне не нуждается в 360p-rung. Термин предложил Юрий Резник в Brightcove в 2017 году, и самое чистое опубликованное определение – в его слайдах с DASH-IF Workshop 2019: context-aware кодирование «эксплуатирует разнообразие свойств устройств доставки… и сетей доступа» с целью «сгенерировать множество закодированных последовательностей, оптимально пригодных для ABR-стриминга устройствам и сетям каждого класса». 1 Вход – распределение устройств и сетей в вашей аудитории; выход – adaptive bitrate ladder, то есть набор разрешений и битрейтов, между которыми переключается плеер во время воспроизведения.
Эти два подхода дополняют друг друга. Content-aware говорит, как для данного видео выглядит оптимальная кривая «битрейт–качество». Context-aware говорит, для данной аудитории, какие точки на этой кривой надо реально отгружать. В продакшене ведущие стриминговые платформы применяют оба, часто в одном пайплайне. Buyers' Guide от Streaming Media 2018 года первым в индустрии письменно зафиксировал это различие; шесть лет спустя большинство маркетинговых страниц всё ещё смазывают его в один «CAE» – поэтому продуктовые команды регулярно покупают одно, думая, что покупают другое. 2
Content-aware кодирование – три уровня гранулярности
У content-aware кодирования три рабочих уровня глубины, и знать стоит все три, потому что экономия, инженерная цена и операционный риск масштабируются вместе с глубиной.
Самый поверхностный – per-title encoding: пайплайн выбирает одну bitrate ladder на весь тайтл, исходя из его глобальной сложности. Netflix опубликовал первую широко цитируемую статью про per-title в декабре 2015 года, и она запустила индустриальное распространение content-aware техник. 3 Рецепт: закодировать тайтл в нескольких разрешениях и нескольких настройках качества, получить облако точек «разрешение–битрейт–качество»; провести convex hull (внешнюю огибающую лучших-из-лучших) на плоскости «битрейт–качество»; разместить rung'и ladder вдоль этой огибающей на тех битрейтах, которыми реально пользуется аудитория. Метрика качества – VMAF (Video Multi-method Assessment Fusion), open-source перцептивная метрика Netflix, шкала 0–100, где 93 – broadcast-grade и 95 – почти неотличимо от исходника. 4 Per-title обычно экономит 20–50% трафика при том же VMAF.
Средний уровень – per-scene или shot-based encoding: пайплайн выбирает свежий битрейт для каждого shot'а. Shot – это один непрерывный кадрировочный план камеры, и в типичном 90-минутном фильме порядка 700–1200 shot'ов средней длиной около четырёх секунд. Dynamic Optimizer от Netflix, развёрнутый в продакшене в 2018 году, кодирует каждый shot в нескольких точках качества, запускает Lagrangian-оптимизацию по всему тайтлу – выбирая такое per-shot качество, которое минимизирует общий битрейт при заданном среднем VMAF – и затем сшивает результат. 5 6 Netflix отчитался о дополнительном 27–37% снижении битрейта поверх per-title для x264, x265 и VP9, измеренном по VMAF. 5 Коммерческий Per-Scene Adaptation от Bitmovin даёт сравнимые цифры – до 30% экономии трафика, типичный диапазон 5–15% – а Mux, AWS Elemental, Brightcove, Harmonic и Ateme поставляют свои версии. 7
Самый глубокий – region-of-interest (ROI) encoding: энкодер варьирует quantization parameter (рычаг, который управляет, насколько агрессивно сжимается каждый блок) внутри одного кадра. Классический use-case – видеоконференции: больше битов на лицо, меньше на фон. Face-detector – в современных пайплайнах это маленький CNN типа RetinaFace или MediaPipe Face Detector, прогоняемый раз в несколько кадров – помечает область с лицом, и энкодер понижает QP внутри этой области и повышает снаружи. Опубликованные академические ROI-реализации сообщают о 3–5 дБ улучшения PSNR и 15–20% улучшения SSIM в области лица при том же общем битрейте. 8 9 ROI-кодирование сегодня работает в камерах Hikvision и Axis, в пайплайнах Zoom и Teams, и как опциональный pass в AWS Elemental MediaConvert. Это самая глубокая и самая дорогая форма content-aware кодирования, потому что энкодер должен запускать детектор и подавать его выход в rate-distortion loop, но для вертикалей, где глаз зрителя стабильно фиксируется на одной области – лица в звонке, номера машин в наблюдении, шайба в хоккее – перцептивный выигрыш велик.
Эти три глубины вложены. Per-scene строится поверх per-title (всё равно нужна разумная per-title ladder, чтобы знать целевые битрейты); ROI строится поверх per-scene (ROI-проходы применяются внутри per-shot encode'ов). Зрелый пайплайн 2026 года запускает все три: выбирает per-title ladder, режет тайтл на shot'ы, прогоняет Lagrangian-оптимизацию по shot'ам, а затем применяет ROI внутри каждого shot'а – для вертикалей, где выигрыш от face/object-of-interest окупает compute детектора.
Покажите математику – per-scene экономия в одном абзаце
Возьмём 90-минутную драму с per-title 1080p битрейтом 4 Mbps. Полный объём на одного зрителя:
объём = битрейт × время
= 4 Mbps × 5 400 секунд
= 21 600 мегабит
= 2 700 мегабайт
≈ 2,70 GBТеперь разрежем тайтл на 900 shot'ов и предположим, что per-scene-оптимизатор в среднем экономит 17% – цифру, которую Netflix отчитал поверх per-title со своим Dynamic Optimizer. 5 Новый объём:
объём_new = 4 Mbps × (1 − 0,17) × 5 400 с
= 3,32 Mbps × 5 400 с
= 17 928 Mb
= 2 241 MB
≈ 2,24 GBЭкономия 459 MB на просмотр. При одном миллионе просмотров в год и цене CDN в один цент за гигабайт сэкономленный трафик стоит:
экономия = 0,459 GB × 1 000 000 × $0,01
= $4 590 в год на тайтлАрифметика – дельта на просмотр × количество просмотров × цена за единицу – это весь бизнес-кейс в одну строку. Процентный выигрыш на одном тайтле выглядит небольшим; долларовая величина масштабируется с просмотрами и концентрируется в самых просматриваемых тайтлах каталога. Для стримингового сервиса с 1000 активных тайтлов и длиннохвостым распределением просмотров экономия складывается в средние шестизначные суммы в год при инженерной инвестиции примерно в один квартал работы.
Context-aware кодирование – энкодинг под реальную аудиторию
Context-aware кодирование стартует с вопроса, который фиксированные ladder'ы никогда не задают: кто будет смотреть этот rung и на чём? 4K-rung теряется на зрителе с 720p-телефоном и 4G; 360p-rung теряется на зрителе с 65-дюймовым ТВ и гигабитной оптикой. HLS Authoring Specification от Apple содержит rung'и от 145 kbps на 416×234 до 7,8 Mbps на 1920×1080, и большинство пайплайнов копируют их буквально, независимо от аудитории. 10 Context-aware кодирование выбрасывает фиксированный список и вычисляет ladder под реальные устройства и сети ваших зрителей.
Формулировка Резника в Brightcove 2017 года, до сих пор самая чистая в литературе, моделирует аудиторию как совместное распределение по классу устройства (mobile, tablet, PC, connected TV), разрешению экрана и полосе доступа (эмпирический CDF по аудитории). Ladder затем проектируется как задача оптимизации: минимизировать ожидаемое искажение по этому распределению при ограничении на число rung'ов и максимальный битрейт. Решение обычно имеет 4–7 rung'ов (а не 9–12 как в Apple default), с шагом, привязанным к модам распределения полосы и разрешениям, совпадающими с модальными размерами экранов. 1 11
Видимый зрителю эффект двойной. Во-первых, при том же бюджете хранилища в среднем зритель видит более чистое качество, потому что rung'и расставлены там, где аудитория реально сидит на распределении полосы. Во-вторых, при том же среднем качестве общий объём хранилища падает, потому что лишние rung'и убраны – типичный context-aware-пайплайн поставляет 4–6 rung'ов вместо 10–12, сокращая хранилище на 30–50% ещё до любой per-title экономии. Две экономии складываются: если per-title экономит 30% на rung, а context-aware режет число rung'ов вдвое, общий объём падает на 60–70% против фикс-ladder baseline. 11
Ловушка тут – самая лёгкая. Context-aware кодирование чувствительно к измеряемому распределению аудитории, а распределение дрейфует. Если ladder построен под аудиторию 2022 года с 60% mobile, а к 2026 году аудитория сместилась к 40% mobile и 30% TV, ladder теперь неверен для тех, кто реально приходит. Лечится операционно: переизмерять device-and-network mix хотя бы поквартально, перезапускать оптимизацию и катить новый ladder за feature-флагом, чтобы можно было откатить, если плеер начнёт выбирать неверный rung для измеримой когорты. 11
Типичная ошибка: путаница content-aware и context-aware в вендорском питче
Конкретная ловушка, в которую попадает каждая продуктовая команда при покупке или построении энкодинг-пайплайна: вендорский питч обещает «CAE – 40% экономии трафика», и команда не уточняет, какой именно CAE. Content-aware и context-aware решают разные задачи и складываются друг с другом; если купить одно, думая, что это другое, обещанной экономии не получите.
Простой тест из фреймворка Резника: спросите вендора, что у его инструмента на входе и что на выходе. Content-aware-инструмент принимает исходное видео и выдаёт план кодирования (битрейт на сцену, QP на область). Context-aware-инструмент принимает статистику аудитории и выдаёт дизайн ladder'а (разрешения и битрейты rung'ов). Если вендор не может ответить на этот вопрос прямо – или отвечает «мы используем ИИ» – считайте, что продукт является одним из двух, и спросите, каким именно.
Второй индикатор – опубликованные числа. Content-aware энкодеры публикуют результаты в терминах BD-rate или VMAF-при-битрейте («17% снижения битрейта при том же VMAF»). Context-aware энкодеры публикуют результаты в терминах убранных rung'ов и ожидаемого искажения по аудитории («ladder сокращён с 11 rung'ов до 5, средний VMAF зрителя вырос на 1,8 пункта»). Вендор, у которого нет ни тех ни других чисел – это вендор, чья технология ещё не измерена под собственное обещание.
Где ИИ помогает – и где не помогает
И content-aware, и context-aware кодирование существовали до современной волны deep learning. Per-title Netflix 2015 года был brute-force search по разрешению и битрейту; context-aware Резника – математическая оптимизация над измеренным распределением аудитории. Ни тому, ни другому не требовалась нейросеть. В 2026 году картина сложнее, и маркетинг убежал вперёд инженерии.
Места, где ИИ действительно отрабатывает свой compute в content-aware кодировании, – три. Первое – content-complexity prediction: вместо brute-force-перебора всех комбинаций разрешения и битрейта маленький CNN предсказывает convex hull с одного быстрого аналитического прохода, превращая per-title из «кодируем каталог десять раз» в «кодируем каталог один раз плюс несколько секунд анализа на тайтл». 12 Второе – saliency-driven ROI: saliency-CNN, обученный на eye-tracking данных, предсказывает, в какие области кадра зритель смотрит, и энкодер прибавляет битов туда. Исследование KTH 2023 года про visual-attention-guided x265 сообщило о 3–8% улучшении VMAF при том же битрейте. Третье – shot-boundary detection: маленький классификатор обходит классический frame-difference эвристик на fade'ах, dissolve'ах и в high-motion сценах – там, где per-scene-оптимизация выигрывает больше всего. Первое и третье разобраны подробно в ИИ внутри энкодера.
Место, где ИИ сегодня – в основном маркетинг, – «AI-driven context-aware encoding». Распределение аудитории хорошо моделируется классической статистикой; оптимизация ladder'а – convex-задача, которую любой солвер решает за миллисекунды. Вендор, продающий нейросеть для этой задачи, решает проблему, которая в нейросети не нуждается. Честная версия «AI context-aware» – «мы используем ML, чтобы измерять распределение аудитории точнее»: кластеризация когорт зрителей, прогноз завтрашнего mix'а из сегодняшних логов – и выигрыш от этого реален, но мал. Если вендор заявляет 40% экономии хранилища от ИИ как такового, заголовок почти наверняка про content-aware, а не про context-aware, спрятанный под лейблом context-aware.
Где здесь Фора Софт
Content-aware и context-aware кодирование напрямую пересекаются с вертикалями, в которых строит Фора Софт. Видеоконференции и телемедицина – естественный дом для ROI-кодирования: лицо стабильно является областью интереса, а выигрыш в распределении битов сильнее всего проявляется на нижнем конце битрейтного диапазона, где живут потребительские интернет-соединения. Видеостриминг и OTT – там, где per-title и per-scene окупаются быстрее всего, потому что объём каталога умножает процентный выигрыш в реальную CDN-экономию. Видеонаблюдение использует ROI для motion-tracked областей и object-of-interest детекции (номерные знаки, дверные проёмы, периметры). AR/VR и e-learning – между конференциями и стримингом, со смешанными live и on-demand потребностями, объединяющие per-scene с audience-aware ladder design. Мы поставляли пайплайны, комбинирующие всё это поверх FFmpeg, GStreamer, x265, SVT-AV1 и крупных облачных энкодеров.
Как решить, что добавлять первым
Дерево решений, нарисованное по тому, как зрелые стриминговые платформы реально развёртывают эти технологии:
Если ваш пайплайн всё ещё отгружает копию Apple HLS default ladder и вы ещё не измеряли сложность контента, начните с per-title. Инженерная цена – один-два инженеро-квартала; долларовый выигрыш концентрируется в топ-10% тайтлов по просмотрам; технология предлагается под ключ каждым крупным облачным энкодером (Automated ABR в AWS Elemental, per-title в Bitmovin, автоматическая ladder в Mux). 13 Прыгайте к per-scene только после того, как per-title в продакшене и стабилен – per-scene требует надёжной детекции shot'ов, оптимизационного фреймворка и модели качества – а большая часть каталожного выигрыша уже захвачена per-title.
Когда per-title в продакшене, следующий шаг – per-scene, если ваш каталог содержит контент с большими внутрисценовыми качелями сложности (спорт, экшен, всё, что переключается между спокойными и активными сценами). Для talking-head контента выигрыш достаточно мал, чтобы инженерные затраты не оправдывались.
Если ваш сервис – это конференции, видеонаблюдение или любая вертикаль, где взгляд зрителя надёжно ложится в известную область, добавляйте ROI до или вместо per-scene. Модель детекции лица или объекта – длинный шест, но в большинстве пайплайнов она уже есть под другие задачи (mute-when-not-looking, background blur, motion alerts).
Накладывайте context-aware поверх – когда аудитория достаточно велика, чтобы распределение устройств и сетей было статистически значимым: на практике это от ~100 000 месячных зрителей. Ниже этого порога дисперсия в измерении audience-mix больше выигрыша от настройки rung'ов под аудиторию. Выше – 4–6-rung context-aware ladder против дефолтных 10–12 – это 30–50% экономии хранилища за один инженеро-квартал работы.
Наконец, меряйте правильной метрикой. Content-aware и ROI намеренно смещают биты от областей, которые глаз не замечает – они поднимут искажение, измеренное PSNR, специально. Бенчмаркуйте VMAF или SSIMULACRA2, не PSNR. См. Объективные метрики качества – там подробно про то, зачем эти метрики существуют и когда какую брать.
Ключевые тезисы
- Content-aware решает, сколько битов идёт в какую часть видео; context-aware решает, какие rung'и ladder'а идут в вашу аудиторию.
- Per-title, per-scene и region-of-interest – три вложенные глубины content-aware, с экономиями 20–50%, плюс 15–30%, плюс региональный буст.
- Dynamic Optimizer от Netflix даёт 27–37% per-scene снижения битрейта при том же VMAF.
- Context-aware ladder обычно режет rung'и с 10–12 до 4–6 и хранилище на 30–50%.
- Бенчмаркуйте перцептивные энкодеры по VMAF или SSIMULACRA2, никогда – по голому PSNR.
- ИИ помогает content-aware (прогноз сложности, saliency, scene detection); для context-aware он почти ничего не добавляет.
Что читать дальше
- Per-title и per-scene кодирование: умные битрейтные лестницы
- ИИ внутри энкодера: ML-mode decision, разбиение, scene-cut, перцептивная квантизация
- Объективные метрики качества: PSNR, SSIM, MS-SSIM, VMAF
Источники
- Y. Reznik, «Context-Aware Encoding and 5G», DASH-IF Workshop, 2019. https://dashif.org/docs/workshop-2019/03-Reznik-DASH-IF-workshop-2019-CAE.pdf
- J. Ozer, «Buyers' Guide to Content- and Context-Aware Encoding 2018», Streaming Media Global. https://www.streamingmediaglobal.com/Articles/Editorial/Featured-Articles/Buyers-Guide-to-Content--and-Context-Aware-Encoding-2018-123407.aspx
- Netflix Technology Blog, «Per-Title Encode Optimization», 2015. https://netflixtechblog.com/per-title-encode-optimization-7e99442b62a2
- Netflix, «VMAF: Perceptual video quality assessment based on multi-method fusion». https://github.com/Netflix/vmaf
- Netflix Technology Blog, «Dynamic Optimizer – a perceptual video encoding optimization framework», 2018. https://netflixtechblog.com/dynamic-optimizer-a-perceptual-video-encoding-optimization-framework-e19f1e3a277f
- Netflix Technology Blog, «Optimized shot-based encodes: Now Streaming!», 2018. https://medium.com/netflix-techblog/optimized-shot-based-encodes-now-streaming-4b9464204830
- Bitmovin, «Per-Scene Adaptation: Going Beyond Bitrate». https://bitmovin.com/per-scene-adaptation-going-beyond-bitrate/
- MDPI Applied Sciences, «Region-of-Interest Based Coding Scheme for Live Videos», 2024. https://www.mdpi.com/2076-3417/14/9/3823
- Hikvision, «ROI (Region of Interest) Encoding Technology V0.5 White Paper». https://www.hikvision.com/content/dam/hikvision/usa/white-papers/hikvision_roi_encoding_technology_v0.5.pdf
- Apple Inc., «HLS Authoring Specification for Apple Devices». https://developer.apple.com/documentation/http-live-streaming/hls-authoring-specification-for-apple-devices
- Y. Reznik et al., «Improving Context-Aware Encoding by Adaptation to True Bandwidth Distribution», SMPTE MTS, 2023. https://www.reznik.org/papers/SMPTE_MTS2023_Improving_Context_Aware_Encoding.pdf
- H. Amirpour et al., «Towards Sustainable Video Streaming: Evaluation of AI Approaches for Content-Aware Encoding», IEEE 2024. https://ieeexplore.ieee.org/document/10389538/
- AWS Elemental, «Automated ABR Configuration in AWS Elemental MediaConvert». https://aws.amazon.com/blogs/media/introducing-automated-abr-adaptive-bit-rate-configuration-a-better-way-to-encode-vod-content-using-aws-elemental-mediaconvert/
- NETINT, «2026 State of Video Encoding». https://netint.com/2026-state-of-video-encoding/