Эффективное и гибкое представление видео различных разрешений достигается использованием трех абстракций: блока кодирования (CU), блока предсказания (PU), и блока преобразования (TU). CU - это базовый блок сжатия. Его концепция аналогична макроблокам в стандартах AVC и MPEG-2, однако HEVC блоки сжатия более гибкие. Поддерживаются размеры CU 16×16 и больше: 32×32, 64×64, для эффективного сжатия HD и 4K видео. PU является блоком предсказания. Один блок CU может содержать несколько PU. Для эффективного кодирования нерегулярных узоров видео кадра поддерживается асимметричное разбиение на участки движения (AMP). Наконец, блок преобразования (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 стало введение нового понятие тайла (tile). Тайлы представляют собой разбиение кадра на прямоугольные области, которые могут кодироваться и декодироваться независимо друг от друга. В отличие от слайсов (slices), тайлы не являются отдельными синтаксическими единицами кодирования, за счет чего достигается дополнительное увеличение степени сжатия. С другой стороны, как и в случае со слайсами в AVC, накладные расходы, возникающие из-за сокращения вариантов внутрикадрового предсказания и обновления контекстов энтропийного кодера на границах, пренебрежительно малы. Использование тайлов открывает новые возможности увеличения производительности кодирования и декодирования видеоданных за счет параллелизации этих процессов на современных многоядерных настольных и мобильных платформах (см. WPP в DivX 10.1).
При задействии всех предложенных алгоритмических средств описываемый стандарт в среднем позволяет достичь примерно 40% уменьшения размера закодированного видео по сравнению с H.264/AVC - для разрешений 720р, 50% для 1080 и более 50% для 4К. Кроме того коэффициент сжатия имеет тенденцию к увеличению с ростом разрешения видео, что хорошо соотносится с главной целью создания стандарта H.265/HEVC.
Как правильно заметил один зарубежный форумчанин: "Так много пикселей можно удалить и еще сохранить видимое качество. Именно поэтому H265 предназначался в основном для 4K видео. Результаты на 720p-1080p будут смешаны". Действительно нужно понимать, что сжатие видео это всегда сжатие. Всё что при этом можно получить, это красивую для глаз картинку, гладкую, чёткую и большую. Но объём данных будет меньше, а значит уникальных пикселей будет меньше. Чтобы было понятно всем, приведу в пример картинку:
Слева уникальных пикселей больше, но красивее выглядит картинка справа. Она и масштабируется лучше и места занимает меньше, используя параметры цвета/яркости соседних ячеек и кадров в разных масштабных величинах. Недостатки проявляются тогда, когда эта размытость затрагивает детализированные участки которые трогать нельзя (это хорошо заметно на низких битрейтах). Поэтому HEVC лучше смотрится на больших разрешениях, занимая при этом меньше места.
|