Стандарт H.265/HEVC представляет собой революционный прорыв в технологии сжатия видео. Ключевым требованием, к новому стандарту стало обеспечение двукратного увеличения степени сжатия по сравнению с текущим индустриальным стандартом H.264/AVC при фиксированном качестве. Для достижения данной цели было предложен ряд алгоритмических средств, учитывающих многие аспекты сжатия видео.
Для эффективного и гибкого представления видео различных разрешений предлагается использование трех абстракций: блока кодирования (CU), блока предсказания (PU), и блока преобразования (TU). CU является базовым блоком сжатия. Его концепция аналогична концепции макроблока в стандартах AVC и MPEG-2, однако является гораздо более гибкой. Поддерживаются размеры CU большие 16×16, например, 32×32 и 64×64, для эффективного сжатия HD и 4K видео. PU – это блок предсказания, один блок CU может содержать несколько PU. Для эффективного кодирования мелких деталей видео кадра поддерживается асимметричное разбиение блоков предсказания (4х8, 8х4 и тд). Блок TU является блоком преобразования, и может включать один или несколько блоков предсказания PU. Вдобавок к стандартным преобразованиям 4×4 и 8×8, для TU поддерживаются быстрые преобразования 16×16 и 32×32.
Для улучшения производительности межкадрового предсказания предложено несколько новых алгоритмов. Улучшено предсказание векторов движения относительно соседних векторов. Модифицированы 1/4-пиксельные интерполяционные фильтры.
Для увеличения производительности внутрикадрового предсказания добавлены дополнительные углы предсказания, позволяющие получить более точные структуры предсказания. Это ведет к снижению энтропии остаточного сигнала после вычисления разницы между исходным и предсказанным сигналом, и, следовательно, повышенной эффективности кодирования.
Для уменьшения искажений между исходным и восстановленным видео кадрами добавлены несколько фильтров постобработки. В дополнение к модифицированному деблочному фильтру используется адаптивный SAO фильтр (Sample Adaptive Offset) для снижения искажений локальных областей.
В качестве алгоритма энтропийного кодирования предлагается синтаксически-ориентированный контекстно-адаптивный двоичный арифметический кодер (syntax-based context-adaptive binary arithmetic coder, SBAC). SBAC является адаптивным двоичным арифметическим методом кодирования с использованием контекстных моделей, обеспечивающий высокую эффективность кодирования разных синтаксических элементов с различными статистическими свойствами. Для увеличения эффективности энтропийного кодирования коэффициентов пространственных преобразований используется адаптивный обход коэффициентов (ACS), который явным образом определяет порядок сканирования каждого блока преобразования.
Еще одним новшеством, по сравнению с H.264/AVC, в HEVC стало введение нового понятие тайла. Тайлы представляют собой разбиение кадра на прямоугольные области, которые могут кодироваться и декодироваться независимо друг от друга. В отличие от слайсов (slices), тайлы не являются отдельными синтаксическими единицами кодирования, за счет чего достигается дополнительное увеличение степени сжатия. С другой стороны, как и в случае со слайсами в AVC, накладные расходы, возникающие из-за сокращения вариантов внутрикадрового предсказания и обновления контекстов энтропийного кодера на границах, пренебрежительно малы. Использование тайлов открывает новые возможности увеличения производительности кодирования и декодирования видеоданных за счет параллелизации этих процессов на современных многоядерных платформах.
При применении всех предложенных алгоритмических средств описываемый стандарт в среднем позволяет достичь примерно 40% уменьшения размера закодированного видео по сравнению с H.264/AVC - для разрешений 720р, 50% для 1080 и более 50% для 4К. Кроме того коэффициент сжатия имеет тенденцию к увеличению с ростом разрешения видео, что хорошо соотносится с главной целью создания стандарта H.265/HEVC.
20 апреля 2017