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

Stanford Online 2,5 тыс. 1 ч 8 мин 4 мин 18.04.2024
Главное

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

💬 Цитаты

«Видеокомпрессия — это, вероятно, самый важный рубеж в области сжатия данных.»

Кедар Татвавади 01:55

«Хороший предсказатель дает вам хороший компрессор, а хороший компрессор — хороший предсказатель.»

👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
I-frame
Кадр, который сжимается независимо как обычное статичное изображение.
P-frame
Кадр, который кодируется как разница между текущим и предыдущим изображением.
B-frame
Двунаправленный кадр, использующий информацию как из прошлых, так и из будущих кадров для максимального сжатия.
Motion Estimation
Процесс поиска похожих блоков пикселей между кадрами для компенсации движения.
YUV 4:2:0
Цветовая модель, которая хранит яркость в полном разрешении, а информацию о цвете — в уменьшенном.
📊 Цифры
🗓 Хронология
  1. 2003 Примерное появление стандарта H.264 (AVC).
  2. 2013 Выход стандарта H.265 (HEVC), следующего поколения видеокодеков.
  3. 2020 Кедар Татвавади защитил PhD в Стэнфорде и начал работу над кодеками.
⚖️ Другая сторона
Образование Stanford Apple H.264 FFmpeg видеокомпрессия