# Стэнфордский курс: как устроены видеокодеки от H.264 до нейросетей

Источник: https://www.youtube.com/watch?v=uKnEZKpZKVA
Канал: Stanford Online
Опубликовано: 18.04.2024

---

Сжатие видео — это «последний рубеж» и, пожалуй, самая важная область в современной теории данных, учитывая колоссальные объемы трафика Netflix и YouTube. В рамках курса Стэнфордского университета EE274 приглашенный эксперт Кедар Татвавади и преподаватель Шубхам разбирают внутреннюю кухню видеокодеков: от классического H.264 до перспективных нейросетевых решений.

## 📺 Роль видео в современном мире и «железная» необходимость
[[JUMP:02:11]]

Объемы генерируемого и потребляемого видеоконтента сегодня поражают воображение: YouTube, Netflix и видеозвонки занимают львиную долю интернет-трафика. Видеокомпрессия настолько критична для современных устройств, что производители интегрируют специализированные медиа-движки прямо в чипы.

По словам Кедара Татвавади, видеокодеки сегодня — это не просто софт, а часть архитектуры процессоров:

* На чипе Apple M2 выделена отдельная область под аппаратное кодирование и декодирование видео.
* Это делает процесс «трактабельным» (выполнимым), так как программная обработка была бы слишком ресурсозатратной.
* Оптимизация кодеков идет на уровне миллисекунд и подтверждена десятками докторских диссертаций.

Без сжатия передача данных была бы невозможна. Например, сырой файл (raw video) с разрешением 720p и частотой 30 кадров в секунду требует пропускной способности около 332 Мбит/с. Для большинства домашних сетей, имеющих скорость около 100 Мбит/с, просмотр такого видео в реальном времени исключен.

## 🐎 От лошадей Стэнфорда до пикселей: что такое видео?
[[JUMP:05:48]]

Фундаментально видео — это просто последовательность изображений или кадров (motion pictures). Символично, что первое в истории видео было снято именно в кампусе Стэнфорда.

* Объектом съемки стала лошадь Леланда Стэнфорда.
* Цель была научной: понять, отрываются ли все четыре ноги лошади от земли во время бега.
* Фактически это была серия из 12 последовательных фотографий.

Сегодня видео характеризуется двумя ключевыми параметрами: разрешением (количеством пикселей по высоте и ширине, например, 720p) и FPS (количеством кадров в секунду, обычно 30 или 60). Также используется цветовая схема YUV 4:2:0, которая позволяет экономить данные, учитывая особенности человеческого зрения.



## 🏗️ Анатомия сжатия: I-кадры и внутрикадровая избыточность
[[JUMP:12:36]]

Самый очевидный способ сжать видео — обработать каждый кадр независимо как отдельное изображение с помощью алгоритмов типа JPEG.

* Такие кадры называются **I-frames** (Intra-frames или ключевые кадры).
* Использование только I-кадров дает впечатляющее сжатие (например, снижение битрейта с 332 Мбит/с до 9 Мбит/с), но этого недостаточно для эффективного стриминга.
* Кодек H.264 в стандартном режиме позволяет добиться 50-кратного сжатия (до 6.2 Мбит/с) без видимых человеческому глазу искажений.

## 🏃 Движение как ключ к эффективности: P-кадры
[[JUMP:15:02]]

Основная идея видеосжатия заключается в устранении временной избыточности: кадры, идущие друг за другом с интервалом в 1/30 секунды, очень похожи.

* **P-frames** (Predicted frames) — это предсказанные кадры. Вместо того чтобы хранить кадр целиком, кодек ищет отличия от предыдущего.
* Процесс включает поиск движения (Motion Estimation) и компенсацию движения (Motion Compensation).
* Кодек сохраняет только «остаток» (residual) — разницу между предсказанным и реальным изображением.



Для поиска движения используется алгоритм блочного сопоставления (block matching). Кадр разбивается на блоки, и кодек ищет наиболее похожий блок в предыдущем кадре. По мнению Татвавади, наиболее эффективным методом является иерархический поиск: сначала на уменьшенной копии кадра находится грубое совпадение, а затем оно уточняется на полном разрешении.

## ↔️ B-кадры и проблема задержки
[[JUMP:33:04]]

Еще более продвинутый метод — использование **B-frames** (Bilinear или Bidirectional frames). Эти кадры используют информацию как из прошлого, так и из будущего.

Кедар Татвавади объясняет различия в применении типов кадров:

* **Низкая задержка (Low Latency):** В Zoom или FaceTime используются преимущественно I и P кадры. Мы не можем ждать «будущих» кадров для декодирования текущего, иначе возникнет задержка в общении.
* **Видео по запросу (Video-on-Demand):** Netflix и YouTube активно используют B-кадры, так как весь файл уже доступен на сервере и задержка в несколько миллисекунд при декодировании не критична.
* **Монтаж:** Профессиональные форматы (например, ProRes) часто используют только I-кадры. Это позволяет мгновенно переходить к любой точке видео и редактировать каждый кадр независимо, не нагружая процессор вычислением разницы между кадрами.



## 🤖 Будущее: нейросети против классических алгоритмов
[[JUMP:45:12]]

Классические кодеки (H.264, H.265) страдают от «блочных артефактов» при низком битрейте из-за того, что работают с жестко заданными квадратными блоками.

Кедар Татвавади утверждает, что будущее за ML-кодеками (Machine Learning based codecs):

* Нейросети позволяют создавать более плавные карты движения, избегая резких границ блоков.
* ML-кодеки показывают лучшие результаты не только по стандартным метрикам (PSNR), но и по визуальному восприятию (MSSIM).
* Основным препятствием для их повсеместного внедрения остается вычислительная сложность: нейросетевое декодирование пока трудно запустить на смартфонах с частотой 60 FPS в реальном времени.

## 🎓 Итоги курса: от теории к практике
[[JUMP:49:51]]

Завершая курс, Шубхам подчеркнул, что теория информации — это фундамент, который реально работает в индустрии.

Основные выводы курса:

1.  **Хороший предсказатель — это хороший компрессор.** Если вы можете предсказать данные, вам не нужно их хранить.
2.  **Не изобретайте велосипед.** Прежде чем писать свой кодек, нужно проверить, насколько стандартные инструменты (LZ77, Huffman) далеки от теоретического предела (энтропии).
3.  **Трансформация данных — ключ к успеху.** Большинство кодеков сначала превращают сложные данные в нечто похожее на независимые случайные величины (IID), а затем сжимают их стандартными методами.

В будущем компрессия станет критически важной в новых областях: геномике (хранение огромных массивов ДНК), VR/AR (передача 3D-моделей на гарнитуры) и оптимизации нейросетей (квантование весов для работы на телефонах).