AV1
AV1 (AOMedia Video 1) – это открытый видеокодек, разработанный альянсом Alliance for Open Media (AOM), который включает такие компании, как Google, Microsoft, Netflix, Amazon, Intel и другие. Он был создан с целью заменить существующие кодеки, такие как H.264/AVC и VP9, обеспечивая при этом лучшее качество видео при меньшем битрейте.
Основные характеристики:
- Битрейт: AV1 обеспечивает экономию до 30% битрейта по сравнению с HEVC и VP9 при одинаковом качестве видео.
- Поддержка HDR: Поддерживает расширенный динамический диапазон (HDR) и широкий цветовой охват (WCG).
- Форматы: Поддерживаются форматы 4:2:0, 4:2:2, 4:4:4 и YCbCr 10-bit.
- Разрешение: Максимальное разрешение видео составляет 8K UHD (7680x4320 пикселей).
- Частота кадров: До 120 FPS.
- Профили: Существуют три основных профиля: Main, High и Professional (Таблица 1).
Профили AV1
Таблица 1. Профили AV1.
| Профиль | Формат | Глубина | FPS | Описание |
|---|---|---|---|---|
| Main | 4:2:0 | 8 bit | 60 | По умолчанию |
| High | 4:2:2 | 10 bit | 60 | Вещание и HDR-контент |
| Professional | 4:4:4 | 12 bit | 120 | Кинематограф |
Применение:
- Стриминговые сервисы: Netflix, YouTube, Twitch поддерживают AV1 для передачи контента с минимальными затратами трафика.
- Интернет-трансляции: AV1 используется для онлайн-трансляций спортивных событий, концертов и других мероприятий благодаря своей высокой эффективности сжатия.
- Видеоконференции: Некоторые платформы видеосвязи начинают внедрять поддержку AV1 для улучшения качества видео при низкой пропускной способности сети.
Сравнение с другими кодеками:
- H.264/AVC: AV1 превосходит H.264 по качеству видео при том же битрейте. Однако декодирование AV1 требует больше ресурсов процессора по сравнению с H.264.
- VP9: AV1 предлагает лучшую производительность по сравнению с VP9, но также требует большего времени на кодирование и декодирование.
- HEVC/H.265: AV1 демонстрирует схожую эффективность сжатия с HEVC, однако имеет преимущество в виде открытого лицензирования и отсутствия лицензионных отчислений.
Совместимость с ПО:
- FFmpeg: Поддерживается начиная с версии FFmpeg 4.0.
- GStreamer: Поддерживается начиная с версии GStreamer 1.18.
- WebRTC: Поддержка AV1 встроена в спецификацию WebRTC.
- VLC media player: Полная поддержка AV1 начиная с версии VLC 3.0.
Алгоритм кодирования:
- Блоки переменного размера: AV1 использует блоки размером от 4x4 до 128x128 пикселей, что позволяет лучше адаптироваться к различным структурам изображений.
- Внутрикадровое предсказание: Использует улучшенные методы предсказания внутри кадра, включая асимметричные фильтры и различные режимы предсказания.
- Межкадровое предсказание: Включает сложные механизмы предсказания движения, такие как объединение блоков, многокадровое предсказание и компенсация движения с субпиксельной точностью.
- Энтропийное кодирование: Применяется контекстное адаптивное бинарное арифметическое кодирование (CABAC), которое улучшает компрессию за счет учета статистических свойств данных.
Ограничения и недостатки:
- Высокие требования к ресурсам: Кодирование и декодирование AV1 требуют значительных вычислительных мощностей, что может ограничивать использование на устройствах с ограниченными ресурсами.
- Длительное время кодирования: Процесс кодирования AV1 занимает значительно больше времени по сравнению с предыдущими поколениями кодеков.
- Отсутствие аппаратного ускорения: На момент написания статьи аппаратное ускорение для AV1 поддерживается лишь несколькими графическими картами и процессорами.
Примеры использования:
Кодирование через FFmpeg:
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 28 -b:v 0 -strict experimental output.av1
Кодирование через GStreamer:
gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videoconvert ! av1enc ! matroskamux ! filesink location=output.mkv