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

H266

H.266/VVC (Versatile Video Coding) – это стандарт сжатия видео, разработанный ITU-T Video Coding Experts Group (VCEG) и MPEG. Утвержден в июле 2020 года. Основные цели разработки стандарта заключались в улучшении эффективности сжатия по сравнению с предшественниками, такими как H.264/AVC и H.265/HEVC, при сохранении высокого качества видео.

Характеристики:

  • Эффективность сжатия: По оценкам разработчиков, VVC обеспечивает снижение битрейта на 40–50% по сравнению с HEVC при том же качестве видео. Это достигается за счет использования новых инструментов кодирования, таких как адаптивные матрицы квантования, улучшенные предсказания движения и дополнительные блоки преобразования.
  • Разрешение: Поддерживает разрешение до 8K UHD (7680x4320), а также может работать с форматами HDR10 и Dolby Vision.
  • Частота кадров: До 120 fps.
  • Битовая глубина: Поддержка 10-битного и 12-битного цвета.
  • Совместимость с предыдущими поколениями: Хотя VVC предлагает значительные улучшения, он не является обратно совместимым с H.265/HEVC или другими старыми стандартами.

Применение:

  • Потоковые сервисы: Потенциальная замена для существующих сервисов потокового вещания, которые используют H.265/HEVC.
  • Телевидение высокой четкости: Ультра-HD телевидение, включая спутниковые трансляции и кабельные системы.
  • Виртуальная реальность и дополненная реальность: Высокая эффективность сжатия делает VVC привлекательным для приложений VR/AR, требующих передачи больших объемов данных.
  • Интернет вещей (IoT): Камеры видеонаблюдения и другие устройства IoT могут использовать VVC для уменьшения объема передаваемых данных без потери качества.

Сравнение с другими кодеками:

H.265/HEVC

  • Сжатие: VVC достигает большей степени сжатия, чем HEVC, примерно на 30–50%.
  • Производительность: Требует больше вычислительной мощности для декодирования и кодирования по сравнению с HEVC.
  • Патенты: Лицензионный пул VVC еще формируется, но ожидается, что стоимость лицензий будет выше, чем у HEVC.

AV1

  • Открытый исходный код: AV1 разрабатывается Альянсом открытых медиа (AOMedia) и доступен бесплатно. VVC имеет патентованные технологии и требует лицензионных отчислений.
  • Качество: AV1 демонстрирует схожую степень сжатия с VVC, однако последний все же считается немного эффективнее.
  • Поддержка аппаратной части: На момент написания AV1 поддерживается меньшим количеством устройств и платформ по сравнению с VVC.

VP9

  • Предыдущая версия: VP9 был выпущен Google как открытый стандарт и широко используется в YouTube. Однако VP9 уступает по эффективности сжатия как VVC, так и AV1.
  • Аппаратная поддержка: Широко поддерживаемый кодек, но менее эффективен по сравнению с новыми решениями.

Уникальные особенности:

  • Многоуровневое кодирование: Позволяет разбивать видео на несколько уровней с различными разрешениями и качеством, что удобно для адаптивного стриминга.
  • Улучшенная обработка блоков: VVC использует различные размеры блоков для кодирования, что позволяет лучше обрабатывать сложные сцены.
  • Инструменты для работы с HDR: Поддержка широкого динамического диапазона (HDR) и высокая точность цветопередачи делают VVC подходящим для контента с высоким разрешением и контрастностью.

Ограничения:

  • Высокая сложность реализации: Требуется значительное количество ресурсов для кодирования и декодирования, что может затруднять внедрение на устройствах с ограниченными ресурсами.
  • Стоимость лицензий: Ожидается, что лицензии на использование VVC будут дороже, чем на предыдущие стандарты.

Алгоритм кодирования:

Основной алгоритм кодирования VVC включает следующие этапы:

  1. Предсказание движения: Использование межкадрового предсказания для минимизации избыточности между кадрами.
  2. Трансформация: Применение различных типов преобразований (например, DCT) к блокам пикселей для сокращения информации.
  3. Квантование: Квантизация коэффициентов преобразования для дальнейшего снижения размера данных.
  4. Энтропийное кодирование: Использование энтропийных методов кодирования (например, CABAC) для дополнительной компрессии.
  5. Фильтрация: Применение фильтров для удаления артефактов и повышения качества изображения.
  6. Контроль скорости передачи данных: Адаптивное управление битрейтом для поддержания заданного уровня качества.

Пример кодирования через FFmpeg:

ffmpeg -i input.mp4 -c:v libvvc -b:v 5000k output.mp4

Этот пример показывает базовую команду для кодирования видео с использованием библиотеки libvvc и битрейтом 5000 kbps.

Пример кодирования через GStreamer:

gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videoconvert ! vvcenc ! mp4mux ! filesink location=output.mp4

Здесь мы используем элемент vvcenc для кодирования видео в формате VVC и сохранения результата в MP4-контейнер.

Таким образом, H.266/VVC представляет собой современный стандарт сжатия видео, который значительно улучшает качество и эффективность по сравнению с предыдущими поколениями кодеков, хотя и требует значительных вычислительных ресурсов и имеет высокие лицензионные затраты.

Дополнительные материалы