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 включает следующие этапы:
- Предсказание движения: Определение перемещений объектов между кадрами для уменьшения избыточности информации.
- Трансформация: Преобразование остаточных данных после предсказания движения для улучшения компрессии.
- Квантование: Уменьшение количества бит, необходимых для представления коэффициентов трансформации.
- Энтропийное кодирование: Применение CABAC для дальнейшего сжатия данных.
- Обратное квантование и обратная трансформация: Восстановление исходных данных на стороне декодера.
Примеры кодирования через 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.