HEVC
H.265 или HEVC (англ. High Efficiency Video Coding — высокоэффективное кодирование видеоизображений) — формат видеосжатия, с применением более эффективных алгоритмов по сравнению с H.264/MPEG-4 AVC. Рекомендация ITU-T H.265, а также стандарт ISO/IEC 23008-2 MPEG-H Часть 2, — совместная разработка экспертной группы по видеокодированию ITU-T Video Coding Experts Group (VCEG) и экспертной группы по движущемуся изображению MPEG. Рекомендация стандарта разработана в связи с растущей потребностью в более высокой степени сжатия движущихся изображений для самых разных приложений, таких как потоковая передача в интернете, передача данных, видеоконференц-связь, цифровые запоминающие устройства и телевизионное вещание.
Поддерживаются форматы кадра до 8K (UHDTV) с разрешением 8192×4320 пикселей.
Структура кодера HEVC
Схема типового кодера HEVC
При кодировании видео в HEVC применяется такой же «гибридный» подход, что и во всех современных кодеках, начиная с H.261. Он заключается в применении внутри- и межкадрового (Intra-/Inter-) предсказания и двумерного кодирования с преобразованием.
В кодере HEVC каждый видеокадр делится на блоки. Первый кадр видеопоследовательности кодируется с использованием только внутрикадрового предсказания, то есть применяется пространственное предсказание ожидаемого уровня отсчёта внутри кадра по соседним отсчётам, при этом отсутствует зависимость от других кадров. Для большинства блоков всех остальных кадров последовательности, как правило, используется режим межкадрового временного предсказания. В режиме межкадрового предсказания на основании данных о величине отсчётов опорного кадра и вектора движения оцениваются текущие отсчёты каждого блока. Кодер и декодер создают идентичные межкадровые предсказания путем применения алгоритма компенсации движения с помощью векторов движения и данных выбранного режима, которые передаются в качестве дополнительной информации.
Разностный сигнал предсказания, который представляет собой разницу между опорным блоком кадра и его предсказанием, подвергается линейному пространственному преобразованию. Затем коэффициенты преобразования масштабируются, квантуются, применяется энтропийное кодирование, и затем передаются вместе с информацией предсказания.
Кодер в точности повторяет цикл обработки декодером так, что в обоих случаях будут генерироваться идентичные предсказания последующиих данных. Таким образом, преобразованные квантованные коэффициенты подвергаются обратному масштабированию и затем обратному преобразованию, чтобы повторить декодированное значение разностного сигнала. Разность затем добавляется к предсказанию, и полученный результат фильтруется для сглаживания артефактов, полученных делением на блоки и при квантовании. Окончательное представление кадра (идентичное кадру на выходе декодера) хранится в буфере декодированных кадров, которое будет использоваться для прогнозирования последующих кадров. В итоге, порядок кодирования и декодирования обработки кадров часто отличается от порядка, в котором они поступают из источника.
Предполагается, что видеоматериал на входе кодера HEVC имеет прогрессивную развёртку. В HEVC не представлено явных функций кодирования чересстрочной развёртки, так как чересстрочная развёртка не используется в современных дисплеях и имеет всё меньшее распространение. Тем не менее, в HEVC были представлены метаданные, позволяющие указать кодеру, что было закодировано видео с чересстрочной развёрткой в одном из двух режимов: в виде отдельных изображений, как два поля (четные или нечетные строки кадра) или весь кадр целиком. Этот эффективный метод обеспечивает кодирование видеосигнала с чересстрочной разверткой, минуя необходимость нагружать декодеры поддержкой специального процесса декодирования.
Профили
В октябре 2012 года проект включает в себя три профиля: Основной (Main), Основной 10 (Main 10) и Основной профиль неподвижных изображений (Main Still Picture).
Профиль — это определённый набор средств кодирования и алгоритмов, которые могут быть использованы для создания видеопотока, соответствующего этому профилю.Кодер при формировании видеопотока определяет, какие компоненты можно использовать для профиля, в то время как декодер должен поддерживать все функции для данного профиля.
Main (Основной профиль)
Для основного профиля определены следующие ограничения:
Глубина цвета — 8 бит на цвет.
Цветовая субдискретизация — 4:2:0.
Размер буфера декодера ограничивается 6 кадрами максимального размера яркостной компоненты для этого уровня.
Main 10 (Основной профиль 10)
Main 10 — профиль для кодирования видео с глубиной цвета 10 бит.
Сравнение основных элементов кодеров: