Как работает H.265/HEVC: почему файлы становятся меньше

ВИДЕОКОДЕКИ • H.265 / HEVC • ОБЪЯСНЕНИЕ

H.265 — это не магическое сжатие. Это более умный поиск закономерностей. Кодек анализирует изображение, решает, какого размера должна быть каждая область, предсказывает, что можно взять из соседних пикселей или других кадров, и тратит больше вычислений, чтобы тратить меньше битов.

Если H.264 — это человек, который эффективно укладывает вещи в чемодан, то H.265 ещё и переставляет каждый предмет, пробует несколько вариантов упаковки и оставляет тот, где меньше всего пустого места.

Что такое H.265 / HEVC

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

Самый известный ориентир: при разработке HEVC ставилась цель примерно на 50% снизить битрейт при одинаковом воспринимаемом качестве по сравнению с предыдущей технологией. Отдельное научное сравнение с субъективными тестами показало, что для протестированного материала WVGA и HD энкодеры HEVC в среднем могли достигать сопоставимого субъективного качества с H.264/AVC примерно при половинном битрейте.

Это не означает, что каждый файл H.265 всегда ровно вдвое меньше. Влияют содержание, качество энкодера, настройки, разрешение и целевой уровень качества. Но именно это объясняет, почему H.265 стал так привлекателен для 4K, экшн-камер, дронов, смартфонов и стриминга.

Нормализованный график битрейта: H.264/AVC — 100, HEVC — около 50 при сопоставимом субъективном качестве в указанном исследовании
Нормализованная иллюстрация результата субъективного теста Ohm et al.: H.264/AVC = 100, HEVC ≈ 50. Это результат исследования, а не обещание для любого кодирования.

H.265 не отказался от идей H.264

HEVC по-прежнему следует классической гибридной схеме видеокодирования:

  1. предсказать блок;
  2. вычислить разницу с реальным изображением;
  3. преобразовать и квантовать этот остаток;
  4. энтропийно закодировать оставшуюся информацию;
  5. восстановить опорные изображения для последующего предсказания.

В обзоре HEVC прямо описывается та же комбинация внутрикадрового предсказания, межкадрового предсказания и двумерного преобразования, которая применялась в более ранних стандартах. Революция не в совершенно иной философии, а в гораздо более гибком наборе инструментов внутри той же философии.

Главное изменение: Coding Tree Units

H.264 был организован вокруг знакомого макроблока 16×16. HEVC заменяет эту центральную идею на Coding Tree Unit (CTU). В основном варианте HEVC блок дерева кодирования яркости может иметь размер 16×16, 32×32 или 64×64 отсчётов; большие размеры часто повышают эффективность сжатия.

Почему большой блок может быть полезен?

Представьте 4K-кадр с огромным голубым небом. Делить гладкое небо на сотни мелких независимых областей — значит тратить лишние биты на служебное описание. HEVC может описать большую гладкую область крупной структурой, а там, где изображение усложняется, перейти к гораздо меньшим областям.

Разбиение квадродеревом на примере LEGO

CTU не обязан оставаться крупным. HEVC может рекурсивно делить области с помощью древовидной структуры.

Представьте большую квадратную пластину LEGO:

  • если область простая — оставьте большой квадрат;
  • если в одной части есть детали — разделите её на четыре;
  • если одна из этих частей всё ещё сложная — разделите снова.

Поэтому энкодер может использовать большие блоки для гладкого неба и стен, а меньшие — вокруг волос, велосипедных спиц, веток деревьев или текста.

HEVC Coding Tree Unit, рекурсивно разделённый на меньшие блоки кодирования и преобразования с помощью quadtree
CTU может рекурсивно делиться под локальную структуру изображения. Источник: рис. 4 в Sullivan et al.
Это один из самых простых способов понять эффективность HEVC.

Не тратьте четыре маленьких описания, если достаточно одного большого. Но и не заставляйте сложную область использовать один большой блок, если ей нужны детали.

Внутрикадровое предсказание: H.265 пробует намного больше направлений

Внутрикадровое предсказание по-прежнему означает предсказание блока по уже восстановленным пикселям того же изображения.

HEVC поддерживает 35 режимов внутрикадрового предсказания яркости: planar, DC и 33 угловых направления. У H.264 распространённый набор режимов для 4×4 содержит девять вариантов.

Простая аналогия: у H.264 есть полезный набор линеек для предположения, в каком направлении продолжается граница. HEVC приходит с гораздо большим набором линеек под разными углами.

Это помогает с диагональными линиями, текстурами и структурами, которые плохо описываются малым набором направлений.

Веерная диаграмма 33 угловых направлений внутрикадрового предсказания HEVC плюс режимы planar и DC
HEVC расширяет направленное внутрикадровое предсказание до 33 угловых направлений плюс planar и DC.

Межкадровое предсказание: более умное описание движения

Как и H.264, HEVC предсказывает блоки по опорным изображениям с помощью векторов движения. При этом он улучшает представление и предсказание информации о движении.

Например, HEVC включает механизмы merge, которые позволяют повторно использовать информацию о движении пространственных или временных соседей. Простыми словами, кодек иногда может сказать:

«Этот блок движется так же, как соседний — используй то же описание движения».

Это экономит биты, потому что энкодеру не всегда нужно описывать совершенно новый вектор движения с нуля.

Преобразования: от 4×4 до 32×32

HEVC поддерживает целочисленные преобразования размером от 4×4 до 32×32. И снова главное — гибкость.

Большой гладкий остаток может эффективно представляться большим преобразованием. Небольшая детализированная область может требовать меньшего. У энкодера больше вариантов, и это способно уменьшать битрейт.

Но больше вариантов означает и больше работы при кодировании. Энкодер должен решить, какое сочетание лучше.

Деблокинг и SAO: очистка восстановленного изображения внутри цикла кодека

HEVC включает внутриконтурный деблокинг-фильтр и второй инструмент — Sample Adaptive Offset (SAO).

Зачем фильтровать изображение во время сжатия?

Потому что восстановленные изображения используются как опорные для будущего предсказания. Если уменьшить границы блоков или систематические ошибки восстановления до того, как изображение станет опорным, последующее предсказание начинает с более чистых данных.

SAO — не «фильтр красоты» для финального монтажа. Это часть процесса восстановления внутри кодека.

CABAC: один сложный движок энтропийного кодирования

HEVC использует контекстно-адаптивное бинарное арифметическое кодирование — CABAC — как движок энтропийного кодирования. В H.264 были варианты CABAC и CAVLC, тогда как HEVC стандартизировал CABAC для этой роли.

Контекстное моделирование можно представить как предиктивный ввод текста. Если после определённых символов другие встречаются чаще, энкодер может эффективнее представлять типичные исходы.

И снова: этот этап без потерь относительно полученных символов. Компромисс по визуальному качеству возник раньше, когда энкодер решил, насколько точно квантовать преобразованный остаток.

Правда ли H.265 требует вдвое меньший битрейт, чем H.264?

Научно корректный ответ: иногда примерно так, но не всегда.

В известном сравнении Ohm, Sullivan, Schwarz, Tan и Wiegand субъективные тесты последовательностей WVGA и HD показали эквивалентное субъективное качество воспроизведения HEVC примерно при на 50% меньшем среднем битрейте по сравнению с H.264/AVC в протестированных условиях. Авторы также отметили особую эффективность HEVC на низких битрейтах, высоких разрешениях и в приложениях с малой задержкой.

Это сильное подтверждение роста эффективности. Но ваш клип GoPro — не лабораторное среднее. Вода, листья, шум при слабом освещении, быстрое вращение камеры и мелкие текстуры могут значительно усложнить сжатие.

Не превращайте «около 50% в исследовании» в «каждый HEVC-файл ровно вдвое меньше».

Реальные результаты зависят от материала и энкодера.

Почему H.265 может ощущаться тяжелее, даже если файл меньше

Меньший файл не означает автоматически более лёгкий монтаж.

У энкодера HEVC больше вариантов решений: разбиение блоков, выбор предсказания, размеров преобразований и другие оптимизации. Специальное исследование сложности пришло к выводу, что энкодеры HEVC ожидаемо могут быть в несколько раз сложнее энкодеров H.264/AVC, тогда как общая сложность оптимизированного декодера HEVC не выглядела радикально отличающейся от декодирования H.264/AVC.

Почему же реальный монтаж HEVC всё равно бывает тяжёлым?

  • HEVC часто используется для разрешения 4K и выше.
  • Многие режимы камер — 10-битные.
  • Зависимости Long-GOP усложняют случайный доступ на таймлайне.
  • Аппаратная поддержка зависит от поколения GPU, профиля и глубины цвета.
  • Редактор может одновременно декодировать несколько потоков, применять эффекты, масштабирование и цветовую обработку.

Кодек — только часть нагрузки. 10-битный HEVC 4K60 с экшн-камеры намного тяжелее для монтажа, чем умеренный H.264 1080p, ещё до добавления творческих эффектов.

H.264 vs H.265 простыми словами

Вопрос H.264 / AVC H.265 / HEVC
Основная идея Предсказать + закодировать остаток Та же основная идея, но с более гибкими средствами кодирования
Основная структура изображения Основа из макроблоков 16×16 CTU до 64×64 с древовидным разбиением
Направления внутрикадрового предсказания для небольших блоков 9 для яркости 4×4 Всего 35 режимов внутрикадрового предсказания яркости
Размеры преобразований Классическое 4×4; 8×8 доступно в High-профилях От 4×4 до 32×32
Энтропийное кодирование CAVLC или CABAC в зависимости от профиля/конфигурации CABAC
Эффективность сжатия Очень высокая и отличная совместимость Обычно выше; в исследованиях — около 50% снижения битрейта в протестированных условиях
Монтаж Обычно поддерживается проще и шире Может быть тяжёлым при 4K/10-бит/высокой частоте кадров

Что это означает при монтаже H.265 в VSDC

Не конвертируйте HEVC автоматически только потому, что это HEVC. Сначала протестируйте реальный файл на реальном компьютере.

VSDC предоставляет аппаратный декодер для ускорения видео, поддерживает 10-битное сжатие AVC/HEVC и работу с прокси. В VSDC 11.2 также появилось ускоренное через Vulkan транскодирование прокси, что особенно актуально, когда исходники высокого разрешения неудобно монтировать напрямую.

Наш практический процесс:

  1. Сохраняйте оригинальные HEVC-файлы камеры.
  2. Попробуйте нативный монтаж с подходящим аппаратным декодированием.
  3. Если таймлайн отзывчивый, не создавайте лишней работы.
  4. Если переходы по таймлайну, multicam, эффекты или цветокоррекция становятся медленными, создайте прокси.
  5. Для финального рендера снова используйте оригиналы.

Поэтому вопрос «какой кодек лучше?» часто не самый полезный для монтажа. Лучше спросить:

«Какой процесс позволит сохранить данные камеры и при этом оставить таймлайн отзывчивым?»

FAQ по H.265 / HEVC

H.265 — это то же самое, что HEVC?

Да. H.265 — обозначение ITU-T, а HEVC — распространённое название High Efficiency Video Coding.

У H.265 всегда лучше качество, чем у H.264?

Нет. Название кодека не гарантирует качество. Важны битрейт, реализация энкодера, настройки и исходный материал. HEVC даёт энкодеру более эффективные инструменты, но плохие настройки всё равно могут дать плохое видео.

H.265 всегда делает файлы на 50% меньше?

Нет. Ориентир около 50% происходит из целей стандартизации и известных контролируемых сравнений. Это полезная оценка эффективности HEVC, но не универсальный закон размера файла.

Почему камера использует H.265 для 10-битных или продвинутых режимов?

HEVC привлекателен для высокого разрешения и большой глубины цвета, потому что эффективнее использует место и битрейт. Поэтому производители могут предлагать тяжёлые режимы записи без столь быстрого роста размера файлов, как при менее эффективном сжатии.

Нужно ли транскодировать H.265 перед монтажом?

Только если это действительно улучшает ваш процесс. Сначала попробуйте аппаратное декодирование. Если воспроизведение или переходы по таймлайну неудобны, прокси обычно разумнее, чем постоянная замена оригиналов.

Научные источники

  1. Sullivan, G. J.; Ohm, J.-R.; Han, W.-J.; Wiegand, T. “Overview of the High Efficiency Video Coding (HEVC) Standard.” IEEE TCSVT, 22(12), 1649–1668, 2012. DOI: 10.1109/TCSVT.2012.2221191.
  2. Ohm, J.-R.; Sullivan, G. J.; Schwarz, H.; Tan, T. K.; Wiegand, T. “Comparison of the Coding Efficiency of Video Coding Standards—Including High Efficiency Video Coding (HEVC).” IEEE TCSVT, 22(12), 1669–1684, 2012. DOI: 10.1109/TCSVT.2012.2221192.
  3. Wiegand, T.; Sullivan, G. J.; Bjøntegaard, G.; Luthra, A. “Overview of the H.264/AVC Video Coding Standard.” IEEE TCSVT, 2003. DOI: 10.1109/TCSVT.2003.815165.
  4. Bossen, F.; Bross, B.; Sühring, K.; Flynn, D. “HEVC Complexity and Implementation Analysis.” IEEE TCSVT, 22(12), 1685–1696, 2012. DOI: 10.1109/TCSVT.2012.2221255.
  5. Документация VSDC Video Editor — аппаратный декодер и поддержка 10-битного AVC/HEVC.
  6. Документация к выпуску VSDC 11.2 — аппаратное транскодирование через Vulkan при создании прокси.

Продолжить чтение

Join the technical discussion