HEVC (H.265)

В обновлении Adobe Premiere Pro CC 2015.1 добавлена поддержка форматов: UltraHD и HDR (High Dynamic Range, расширенный динамический диапазон), в том числе DNxHR, HEVC (H.265), XAVC Long GOP и OpenEXR.
Стандарт H.265/HEVC (High-Efficiency Video Coding — высокоэффективное кодирование видео) — это самый последний стандарт видеокодека, разработанный совместно Международным союзом электросвязи ITU-T и ISO/IEC. Цель этого стандарта — повысить эффективность сжатия и снизить потери данных. H.265/HEVC, по сравнению с предыдущим стандартом H.264/AVC, обладает вдвое более высокой степенью сжатия при равном субъективном качестве изображения. Технология HEVC позволяет поставщикам видео передавать высококачественные видеоматериалы с меньшей нагрузкой на сеть.
Вместо макроблоков, которые применялись в H.264, в HEVC используются блоки с древовидной структурой кодирования. Выигрыш кодера HEVC в применении блоков большего размера. Применение блоков большего размера более эффективно при кодировании видео с высоким разрешением. Для декодирования видео, закодированного с размерами блоков 16х16, требуется на 60% больше времени, чем при использовании блоков 64x64. То есть, применение блоков больших размеров повышает эффективность кодирования при одновременном сокращении времени декодирования.
Для эффективного и гибкого представления видео различных разрешений предлагается использование трех абстракций: блока кодирования (CU), блока предсказания (PU), и блока преобразования (TU). CU является базовым блоком сжатия. Его концепция аналогична концепции макроблока в стандартах AVC и MPEG-2, однако является гораздо более гибкой. Поддерживаются размеры CU большие 16х16, например, 32х32 и 64х64, для эффективного сжатия HD и 4K видео. PU – это блок предсказания, один блок CU может содержать несколько PU. Для эффективного кодирования нерегулярных узоров видео кадра поддерживается асимметричное разбиение на участки движения (AMP). Блок TU является блоков преобразования, и может включать один или несколько PU. Вдобавок к стандартным преобразованиям 4х4 и 8х8, для TU поддерживаются быстрые преобразования 16х16 и 32х32.
При кодировании видео в HEVC применяется такой же «гибридный» подход, что и во всех современных кодеках, он заключается в применении внутри- и межкадрового (Intra-/Inter-) предсказания и двумерного кодирования с преобразованием.
В кодере HEVC каждый видеокадр делится на блоки. Первый кадр видеопоследовательности кодируется с использованием только внутрикадрового предсказания, то есть применяется пространственное предсказание ожидаемого уровня отсчёта внутри кадра по соседним отсчётам, при этом отсутствует зависимость от других кадров. Для большинства блоков всех остальных кадров последовательности, как правило, используется режим межкадрового временного предсказания. В режиме межкадрового предсказания на основании данных о величине отсчётов опорного кадра и вектора движения оцениваются текущие отсчёты каждого блока. Кодер и декодер создают идентичные межкадровые предсказания путем применения алгоритма компенсации движения с помощью векторов движения и данных выбранного режима, которые передаются в качестве дополнительной информации.
Разностный сигнал предсказания, который представляет собой разницу между опорным блоком кадра и его предсказанием, подвергается линейному пространственному преобразованию. Затем коэффициенты преобразования масштабируются, квантуются, применяется энтропийное кодирование, и затем передаются вместе с информацией предсказания.
Кодер в точности повторяет цикл обработки декодером так, что в обоих случаях будут генерироваться идентичные предсказания последующиих данных. Таким образом, преобразованные квантованные коэффициенты подвергаются обратному масштабированию и затем обратному преобразованию, чтобы повторить декодированное значение разностного сигнала. Разность затем добавляется к предсказанию, и полученный результат фильтруется для сглаживания артефактов, полученных делением на блоки и при квантовании. Окончательное представление кадра (идентичное кадру на выходе декодера) хранится в буфере декодированных кадров, которое будет использоваться для прогнозирования последующих кадров. В итоге, порядок кодирования и декодирования обработки кадров часто отличается от порядка, в котором они поступают из источника.
Для улучшения производительности межкадрового предсказания предложено несколько новых алгоритмических средств. Улучшено предсказание векторов движения. Модифицированы 1/4-пиксельные интерполяционные фильтры.
Для увеличения производительности внутрикадрового предсказания добавлены дополнительные углы предсказания, позволяющие получить более точные структуры предсказания. Это ведет к снижению энергии остаточного сигнала, и, следовательно, повышенной эффективности кодирования.
Для уменьшения искажений между исходным и восстановленным видео кадрами объединены несколько фильтров. В дополнение к модифицированному деблочному фильтру адаптивный SAO фильтр (Sample Adaptive Offset) для снижения средних искажений локальных областей.
В качестве алгоритма энтропийного кодирования предлагается синтаксически-ориентированный контекстно-адаптивный двоичный арифметический кодер (syntax-based context-adaptive binary arithmetic coder, SBAC). SBAC является адаптивным двоичным арифметическим методом кодирования с использованием контекстных моделей, обеспечивающий высокую эффективность кодирования разных синтаксических элементов с различными статистическими свойствами. Для увеличения эффективности энтропийного кодирования коэффициентов преобразования используется адаптивный обход коэффициентов (ACS), который явным образом определяет порядок сканирования каждого блока преобразования.
Еще одним новшеством, по сравнению с H.264/AVC, в HEVC стало введение нового понятие тайла (tile). Тайлы представляют собой разбиение кадра на прямоугольные области, которые могут кодироваться и декодироваться независимо друг от друга. В отличие от слайсов (slices), тайлы не являются отдельными синтаксическими единицами кодирования, за счет чего достигается дополнительное увеличение степени сжатия. С другой стороны, как и в случае со слайсами в AVC, накладные расходы, возникающие из-за сокращения вариантов внутрикадрового предсказания и обновления контекстов энтропийного кодера на границах, пренебрежительно малы. Использование тайлов открывает новые возможности увеличения производительности кодирования и декодирования видеоданных за счет параллелизации этих процессов на современных многоядерных настольных и мобильных платформах.
Основные новвоведения, примененные в кодеке Н.265:
- Поддерживаются форматы кадра до 8K (UHDTV) с разрешением 8192х4320 пикселей.
- Особые возможности для произвольного доступа и сращивания цифровых потоков. В HEVC для цифрового потока поддерживается произвольный доступ.
- Изображение разделяется на единицы дерева кодирования (CTU), каждая из которых содержит блоки дерева кодирования (CTB) яркости и цветности. Во всех прежних стандартах кодирования видео использовался фиксированный размер массива для выборок яркости — 16х16. HEVC поддерживает блоки CTB разного размера, который выбирается в зависимости от потребностей кодировщика с точки зрения памяти и вычислительной мощности.
- Каждый блок кодирования (СВ) может быть рекурсивно разделен на блоки преобразования (ТВ). Разделение определяется остаточным квадродеревом. В отличие от прежних стандартов в HEVC один блок ТВ может охватывать несколько блоков предсказания (РВ) для перекрестных предсказываемых единиц кодирования (CU).
- Направленное предсказание с 33 различными направлениями ориентации для блоков преобразования (TB) размером от 4х4 до 32х32. Возможное направление предсказания — все 360 градусов. HEVC поддерживает различные методики кодирования предсказания интракадров.
*При одинаковом качестве видео HEVC Main Profile выдаёт на 35,4% меньший битрейт, чем H.264/MPEG-4 AVC High Profile. Выигрыш по сравнению с MPEG-4 Advanced Simple Profile — 63,7%. Это означает сокращение трафика более чем в два раза. В свою очередь, AVC HP выигрывает у MPEG-4 ASP около 44,5% при том же качестве.
*Быстрое транскодирование в HEVC/H.265 с аппаратной поддержкой в процессорах Intel появилось в 2015 году (Skylake).
Нажимаем комбинацию клавиш: Ctrl+F12 (Windows) или Cmd+F12 (для MacBook Cmd+Fn+F12) в панеле Console (Консоль), переключаемся на режим Debug Database View. Далее выставляем для параметра GPU.EnableGOPFormats > true.
При импорте H265 видео в программу Adobe Premiere Pro CC 2015.1, появится следующее сообщение: HEVC Codec must be installed to use this feature. Click OK to install now. Нажимаем на кнопку: ОК.


Adobe Premiere Pro CC 2015.1

И после установки кодеков с поддержкой HEVC (H.265) видео, выбранный файл будет импортирован в программу Adobe Premiere Pro CC 2015.1.


Adobe Premiere Pro CC 2015.1

Смотрим свойства видео (нажимаем на нем правую кнопку мыши и выбираем пункт: Properties / Свойства).

ASUS STRIX-GTX960-DC2OC-2GD5

Создаем на базе клипа последовательность (перетянув клип на кнопку New Item). И запускаем воспроизведение клипа на таймлайне с качеством: Полное / Full). Загрузка видеокарты ASUS STRIX-GTX960-DC2OC-2GD5 построенной на чипсете NVIDIA GeForce GTX 960 (GM206-300-A1 / Maxwell 2.0) составила: 23%.


ASUS STRIX-GTX960-DC2OC-2GD5

Загрузка центрального процессора Intel Core i5-5675C составила 100% и было утилизировано 6.77Гбайт оперативной памяти Kingston HyperX SAVAGE (HX324C11SRK2/8) из 8Гб установленной.


ASUS STRIX-GTX960-DC2OC-2GD5

Сам процесс Adobe Premiere Pro.exe использовал 5.4Гбайта памяти из 6Гб доступной для этого процесса. Обращаем внимание на процесс: CEPHtmlEngine.exe (это Adobe CEP HTML Engine).


ASUS STRIX-GTX960-DC2OC-2GD5

Итак, обращаем внимание на количество пропущенных кадров Dropped: 28. PF: YUV 422 8u 709 ImporterMPEG.

ASUS STRIX-GTX960-DC2OC-2GD5

Снижаем качество просмотра до 1/2.

ASUS STRIX-GTX960-DC2OC-2GD5

При снижении качество просмотра, падает и загрузка GPU (т. е. Если хотите чтобы GPU работал по максимуму, используйте качество: Полное / Full) до 7%. Загрузка бортовой памяти — 747 Мбайт.


ASUS STRIX-GTX960-DC2OC-2GD5

Загрузка центрального процессора работающего на частоте 3.5ГГц — 98%, а загрузка оперативной памяти работающей на частоте 2400МГц снизилась до 4.17Гб.

ASUS STRIX-GTX960-DC2OC-2GD5

Процесс Adobe Premiere Pro.exe использовал 2.58Гбайта (вдвое меньше) оперативной памяти и загрузил центральный процессор на 78%.

ASUS STRIX-GTX960-DC2OC-2GD5

Количество пропущенных кадров Dropped: 14 (снизилось вдвое).

ASUS STRIX-GTX960-DC2OC-2GD5

Еще снижаем качество просмотра, на этот раз в четыре раза:

ASUS STRIX-GTX960-DC2OC-2GD5

Загрузка дискретной видеокарты построенной на чипсете GM206 с VP7 / PureVideo HD 7 (VDPAU Feature Sets F) составила 5%.

ASUS STRIX-GTX960-DC2OC-2GD5

100% загрузка центрального процессора и 4.16Гб оперативной памяти.

ASUS STRIX-GTX960-DC2OC-2GD5

Процесс Adobe Premiere Pro.exe задействовал 2.6Гбайта оперативной памяти и 82% ресурса процессора (остальные ресурсы задействовал процесс CEPHtmlEngine.exe).


ASUS STRIX-GTX960-DC2OC-2GD5

Нет пропущенных кадров при воспроизведении таймлайна с H265 видео:

ASUS STRIX-GTX960-DC2OC-2GD5

Читаем далее, продолжение тестирования аппартного кодирования и декодирования H.265 (HEVC) видео.


 
Рейтинг@Mail.ru