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

H265 HEVC

H.265, также известный как High Efficiency Video Coding (HEVC), является стандартом видеокодека, разработанным ITU-T и ISO/IEC MPEG в 2013 году. Он был создан как преемник H.264/AVC, чтобы обеспечить более высокую степень сжатия видео при сохранении высокого качества.

Основные характеристики

  • Уровень сжатия: H.265 обеспечивает примерно вдвое большую эффективность сжатия по сравнению с H.264 при том же качестве видео. Это означает, что файлы будут занимать меньше места без заметной потери качества.
  • Разрешение: Поддерживает разрешение до 8K UHD (8192x4320 пикселей), а также поддерживает форматы HDR10 и Dolby Vision.
  • Частота кадров: До 300 кадров в секунду.
  • Профили: Включает несколько профилей, каждый из которых оптимизирован под разные сценарии использования (см. Таблицу 1).
  • Блоки кодирования: Размер блоков кодирования варьируется от 4x4 до 64x64 пикселей, что позволяет лучше адаптироваться к сложным сценам.
  • Алгоритмы предсказания: Использует улучшенные методы внутрикадрового и межкадрового предсказания, включая асимметричное движение и улучшенное предсказание по образцу.
  • Энтропийное кодирование: Применяет контекстно-адаптивное двоичное арифметическое кодирование (CABAC).

Профили H.265

Таблица 1. Профили H.265 (HEVC)

ПрофильОписание
MainОсновной профиль, поддерживающий 8-битный цвет и прогрессивную развертку. Подходит для большинства приложений, включая широковещательное телевидение и интернет-стриминг.
Main 10Расширенный профиль, который добавляет поддержку 10-битного цвета, что улучшает точность передачи оттенков и уменьшает артефакты сжатия. Часто используется в приложениях, требующих высокой точности цвета, таких как HDR-видео.
Main Still PictureСпециализированный профиль для статичных изображений, обеспечивающий высокую степень сжатия без потерь качества. Используется для хранения и передачи фотографий и других неподвижных графических файлов.
Multiview MainПрофиль, предназначенный для работы с многокамерными системами и стереоскопическим контентом. Обеспечивает эффективное сжатие видео с несколькими ракурсами.
Screen Content Coding (SCC)Профиль, специально разработанный для кодирования экранного содержимого, такого как презентации, игры и другие приложения с большим количеством текста и графики. Отличается повышенной эффективностью сжатия для такого типа контента.
Scalable MainПрофиль, позволяющий масштабируемую передачу видео, что полезно для адаптации к различным сетевым условиям и устройствам с разными возможностями воспроизведения.
Range ExtensionsНабор дополнительных возможностей, включающих поддержку 12-битного и 16-битного цветов, HDR, и других расширенных функций. Используется в специализированных приложениях, требующих максимальной точности и качества.

Применение

  • Потоковая передача видео: Используется в потоковых сервисах, таких как Netflix, YouTube, IPTV, обеспечивая высокое качество видео при меньших требованиях к пропускной способности.
  • Запись видео: Применяется в камерах видеонаблюдения, цифровых кинокамерах и профессиональных видеоредакторах.
  • Телевидение высокой четкости: Широко используется в вещании контента UHD и HDR.

Актуальность H.265

Несмотря на появление новых стандартов, таких как AV1 и VVC (H.266), H.265 остается востребованным благодаря следующим причинам:

  • Широкая поддержка аппаратного обеспечения: Многие устройства уже имеют встроенную поддержку декодирования H.265, что делает его удобным для массового применения.
  • Зрелость технологии: Кодек хорошо изучен и оптимизирован, что снижает риски при внедрении.
  • Производительность: Хотя новые стандарты обещают еще большее сжатие, их реализация может требовать значительных ресурсов процессора и памяти, что ограничивает их применение на менее мощных устройствах.

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

H.264 vs H.265:
  • Эффективность сжатия: H.265 примерно в два раза эффективнее H.264 при одинаковом качестве.
  • Размер блока кодирования: В H.264 блоки фиксированы размером 16x16 пикселей, тогда как в H.265 они могут варьироваться от 4x4 до 64x64.
  • Поддержка разрешений: H.264 ограничен разрешением до 4096x2304 (4K), в то время как H.265 поддерживает до 8K.
AV1 vs H.265:
  • Открытый стандарт: AV1 является открытым стандартом, разрабатываемым альянсом AOMedia, и не требует лицензионных отчислений, в отличие от H.265.
  • Эффективность сжатия: AV1 обещает еще большую эффективность сжатия по сравнению с H.265, но требует больше вычислительной мощности.
  • Аппаратная поддержка: На момент написания AV1 имеет ограниченную аппаратную поддержку, в то время как H.265 широко поддерживается современными устройствами.
VP9 vs H.265:
  • Открытость: VP9, как и AV1, является бесплатным и открытым стандартом, разработанным Google.
  • Эффективность сжатия: VP9 находится между H.264 и H.265 по эффективности сжатия, но уступает последнему.
  • Применение: Широко используется в онлайн-видео, особенно на платформе YouTube.

Совместимость с ПО

H.265 поддерживается большинством современных медиа-плееров, браузеров и операционных систем. Но за 12 лет существования этого кодека не все часто используемые сервисы и программы научились работать с ним.

::: warn Обязательно проверяйте поддержку H.265 по всей предполагаемой производственной цепочке. Например, в видеонаблюдении вероятнее всего вы не встретите проблем с этим кодеком, а в обычном видеопроизводстве или работе даже с популярными видеоплатформами файлы, закодированные в H.265, могут где-нибудь да не приняться.

:::

Ограничения

  • Патентные лицензии: Использование H.265 требует оплаты лицензионных сборов, что может стать препятствием для некоторых разработчиков.
  • Высокие требования к ресурсам: Декодирование и кодирование H.265 требуют значительных вычислительных ресурсов, что может ограничить его использование на мобильных устройствах и старых компьютерах.

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

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

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

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

  1. Предсказание движения: Определение перемещений объектов между кадрами для уменьшения избыточности информации.
  2. Трансформация: Преобразование остаточных данных после предсказания движения для улучшения компрессии.
  3. Квантование: Уменьшение количества бит, необходимых для представления коэффициентов трансформации.
  4. Энтропийное кодирование: Применение CABAC для дальнейшего сжатия данных.
  5. Обратное квантование и обратная трансформация: Восстановление исходных данных на стороне декодера.

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

FFmpeg:
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium output.mp4

Где:

  • -c:v libx265 – указывает использовать библиотеку x265 для кодирования в H.265,
  • -crf 28 – устанавливает постоянный коэффициент качества (CRF),
  • -preset medium – задает уровень оптимизации (может быть ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow).
GStreamer:
gst-launch-1.0 filesrc location=input.mp4 ! qtdemux ! h265parse ! avdec_h265 ! videoconvert ! autovideosink

Где:

  • h265parse – парсер для потока H.265,
  • avdec_h265 – декодер H.265.