Перейти к основному содержимому

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Описание
Main4:2:08 bit60По умолчанию
High4:2:210 bit60Вещание и HDR-контент
Professional4:4:412 bit120Кинематограф

Применение:

  • Стриминговые сервисы: 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