Pull to refresh
0

Наслаждайтесь миллиардами цветов с 10-битным HEVC

Reading time 6 min
Views 70K
Original author: Nikhil R.
Человеческий глаз способен видеть намного больше цветов, чем показывают ему современные видео дисплеи. Каким бы навороченным не был компьютер, он все равно может воспроизвести лишь конечное количество цветов. В этой статье мы расскажем об использовании 10-битной глубины цвета в сравнении с 8-битной, исходя из функционала процессоров Intel Core седьмого поколения и оптимизирующих возможностей Intel Software Tools. В статье вы также найдете ссылку на пример программы, реализующей 10-битное HEVC кодирование.



Глубина цвета


Глубина цвета, известная также как битовая глубина — это количество битов, используемое для отображения цвета отдельного пикселя. Одно и то же изображение или кадр с различной глубиной цвета выглядят различно, поскольку количество цветов в пикселе зависит от глубины цвета.

Количество битов в изображении включает в себя набор битов на канал для каждого типа цвета в пикселе. Количество цветовых каналов в пикселе зависит от используемого цветового пространства. Например, цветовые каналы в цветовом пространстве RGBA — красный ( R), зеленый (G), синий (B) и альфа (A). Каждый дополнительный бит удваивает количество информации, которое мы можем хранить для каждого цвета. В 8-битном изображении общее количество доступных цветов пикселя равняется 256. В Таблице 1 показано возможное количество доступных цветов для каждой соответствующей глубины цвета.
Глубина канала Оттенков на канал на пиксель Общее количество возможных оттенков
8-бит 256 16.78 миллионов
10-бит 1024 1.07 миллиарда
12-бит 4096 68.68 миллиардов
Большинство мониторов и телевизоров способны отображать лишь 8-битный контент, 10-битные изображения в них преобразуются в 8-битные. Однако преимущества 10-битной глубины имеют место уже сейчас:

  • при обработке изображений или видео после съемки
  • при использовании High Dynamic Range (HDR) мониторов или камер.

Если контент снят с глубиной 10 бит, важно не потерять ее при дальнейшей обработке, поскольку это может привести к снижению резкости, контраста и других важных характеристик. В том случае, если редактируется 8-битный контент, это также может привести к уменьшению глубины и вызвать эффект цветовых полос.

Эффект цветовых полос


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

Возможные варианты решения проблемы цветовых полос:

  • увеличить глубину цвета на канал
  • применить цветовую дискретизацию (не рассматривается в этой статье).

Неоткалиброванный дисплей может также вызвать эффект полос. Чтобы этого избежать, воспользуйтесь утилитой Intel Graphics Control Panel.


Рисунок 1. Сравнение 8-битного (слева) и 10-битного (справа) изображения. Слева виден эффект полос.

Рисунок 1 показывает разницу между 8-битным и 10-битным изображениями применительно к эффекту цветовых полос. На левом изображении необходимая цветовая детализация не была передана сенсором, что привело у меньшему, чем надо, количеству цветов и цветовым полосам. На правом фото цветовой информации достаточно и переход между цветами получился плавным. Для обеспечения плавности цветовых переходов необходим более широкий цветовой диапазон, описанный в стандарте BT2020.

Стандарт BT. 2020


Седьмое поколение процессоров Intel Xeon и Core поддерживает стандарт BT. 2020 (известный также как Rec. 2020) в таких случаях как создание/воспроизведение 4K Ultra-high definition (UHD) контента, использование HDR с поддержкой 10 битов и т.д. UHD-мониторы имеют разрешение 3840*2160 при различной диагонали. Поддержка стандарта BT.2020 улучшает качество картинки при столь высоком разрешении.


Рисунок 2. Сравнение цветовых пространств BT.2020 и BT.709

Рекомендации The International Telecommunications Union (ITU) BT.2020 представляют значительно больший диапазон цветов, чем ранее используемые BT.709. Сравнение соответствующих цветовых пространств показано на Рисунке 2, представляющим диаграмму цветности CIE 1931. Оси X и Y показывают относительные координаты цветности с длинами волн соответствующих цветовых пространств (синий шрифт). Желтый треугольник покрывает цветовое пространство по стандарту BT. 709. Черный треугольник показывает цветовое пространство BT. 2020, значительно большее по размеру и, следовательно, содержащее большее количество цветов для плавных переходов. BT. 2020 также определяет различные аспекты UHD TV такие как разрешение дисплея, частоту кадров, цветовую субдискретизацию и глубину цвета в добавление к цветовому пространству.

Процессоры Intel 7 поколения поддерживают профили HEVC Main 10 profile, VP9 Profile 2 и High Dynamic Range (HDR) видео рендеринг с использованием стандарта BT.2020.

Профиль HEVC Main 10


High Efficiency Video Coding (HEVC), также известный как H.265 — стандарт видео сжатия, наследник хорошо известного стандарта H.264/AVC. По сравнению с предшественниками, HEVC использует более сложные алгоритмы сжатия. Больше информации о стандарте можно узнать здесь. Профиль Main 10 позволяет использовать 8-битный или 10-битный цвет с цветовой субдискретизацией 4:2:0.

Поддержка декодирования HEVC 10b появилась начиная с 6 поколения процессоров Intel. Команда ниже показывает, как тестовая утилита sample_decode из набора примеров кода Intel Media SDK может быть использована для получения сырых кадров из простейшего HEVC потока.

sample_decode.exe h265 -p010 -i input.h265 -o raw_farmes.yuv -hw

Используемый выше входной поток (input.h265) может быть взят здесь. Выходной поток (raw_frames.yuv) должен быть в формате P010, используемом как исходный материал для утилиты sample_encode.

Аппаратная поддержка кодирования/декодирования HEVC 10b внедрена начиная с 7 поколения процессоров Intel. Кодирование 10-битного HEVC реализовано с помощью дополнительного кода modified_sample_encode, специально измененного для этой конкретной функциональности. Данный пример работает с Intel Media SDK 2016 R2. Инструкция по сборке приведена в руководстве по примерам медиа в образцах кода Intel Media SDK.

Ниже показан пример 10-битного кодирования с использованием sample_encode из добавленной modified_sample_encode.

sample_encode.exe h265 -i raw_frames.yuv -o output.265 -w 3840 -h 2160 -p010 -hw


Рисунок 3. Скриншот утилиты Video Quality Caliper, показывающий, показывающий, что кодированный поток имеет 10 бит на пиксель.

Профиль VP9 2


VP9 — формат видео кодирования, разработанный Google как наследник VP8. Платформы Intel седьмого поколения поддерживают аппаратное ускорение декодирования VP9 10-бит, тогда как кодирование пока комбинированное, софтово-хардварное.

Высокий динамический диапазон (High Dynamic Range, HDR)


Динамический диапазон — это отношение значения самой светлой к самой темной точке на изображении. Видео высокого динамического диапазона (HDR) позволяет получить лучший динамический диапазон, чем обычное (SDR) видео, использующее нелинейные операции для кодирования и декодирования уровня освещенности.

Видео контент HDR поддерживается при использовании кодека HEVC Main 10 или VP9.2, аппаратно ускоренных начиная с 7 поколения процессоров Intel. Для передачи контента HDR, система должна быть оснащена портом DisplayPort 1.4 или HDMI 2.0a. Данная функциональность пока находится на стадии тестирования и не включена в общедоступные релизы.

Заключение


Как мы выяснили, разработчики сейчас имеют возможность создавать красивое, реалистичное видео в самых современных форматах, расцвеченных ярками красками 10-битного цвета, идеальным для HD/UHD дисплеев. Используя процессоры Intel седьмого поколения для создания контента стандарта BT.2020, а также возможности оптимизации Intel Media SDK, мы уже сейчас можем заглянуть за пределы разрешения 4K UHD и стандартной на сегодня кадровой скорости. В дальнейшем область применения современных аппаратно-ускоренных видео кодеков будет расширяться.

В этой статье упоминались следующие программные средства (со ссылками для скачивания):

  • Программное обеспечениеIntel Media SDK 2016 R2
  • Входной видео поток — MHD_2013_2160p_ShowReel_R_9000f_24fps_RMN_QP23_10b.hevc из Бесплатные потоки H.265/HEVC
  • Кодек — H.265/HEVC
  • Средство анализа — Video Quality Caliper (VQC), компонент Intel Media Server Studio Professional Edition и Intel Video Pro Analyzer
  • Тестовый стенд:
    • ЦПУ: Intel Core i7-7500U CPU @ 2.70GHz
    • ОС: Microsoft Windows 10 Professional 64-bit
    • Графика: Intel HD Graphics 620

Полезные ссылки


Tags:
Hubs:
+2
Comments 22
Comments Comments 22

Articles

Information

Website
www.intel.ru
Registered
Founded
Employees
5,001–10,000 employees
Location
США
Representative
Анастасия Казантаева