Rgb обозначение аддитивной цветовой модели. Что такое цветовая модель

Это одна из наиболее распространенных и часто используемых моделей. Она применяется в приборах, излучающих свет, таких, например, как мониторы, прожекторы, фильтры и другие подобные устройства.

В модели RGB производные цвета получаются в результате сложения или смешения базовых, основных цветов, называемых цветовыми координатами. Координатами служат красный (Red), зеленый (Green) и синий (Blue) цвет. Свое название RGB-модель получила по первым буквам английских наименований цветовых координат.

Каждая из вышеперечисленных составляющих может варьироваться в пределах от 0 до 255, образовывая разные цвета и обеспечивая, таким образом, доступ ко всем 16 миллионам (полное количество цветов, представляемых этой моделью равно 256*256*256 = 16 777 216.).

Эта модель аддитивная. Слово аддитивная (сложение) подчеркивает, что цвет получается при сложении точек трех базовых цветов, каждая своей яркости. Яркость каждого базового цвета может принимать значения от 0 до 255 (256 значений), таким образом, модель позволяет кодировать 256 3 или около 16,7 млн цветов. Эти тройки базовых точек (светящиеся точки) расположены очень близко друг к другу, так что каждая тройка сливается для нас в большую точку определенного цвета. Чем ярче цветная точка (красная, зеленая, синяя), тем большее количество этого цвета добавится к результирующей (тройной) точке.

При работе с графическим редактором Adobe PhotoShop можно выбирать цвет, полагаясь не только на тот, что мы видим, но при необходимости указывать и цифровое значение, тем самым иногда, особенно при цветокоррекции, контролируя процесс работы.

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

Таблица 1

Значения некоторых цветов в модели RGB

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

Свойства модели RGB хорошо описывает так называемый цветовой куб (см. рис. 3). Это фрагмент трехмерного пространства, координатами которого являются красный, зеленый и синий цвет. Каждая точка внутри куба соответствует некоторому цвету и описывается тремя проекциями - цветовыми координатами: содержанием красного, зеленого и синего цвета. Сложение всех основных цветов максимальной яркости дает белый цвет; начальная точка куба означает нулевые вклады основных цветов и соответствует черному цвету.

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

Рис. 3.

Цветовые координаты: красный, зеленый и синий иногда называют первичными или аддитивными цветами. Цвета голубой, пурпурный, желтый, которые получаются в результате попарного смешения первичных цветов, называются вторичными. Поскольку сложение- это основная операция синтеза цветов, то модель RGB иногда называют аддитивной (от латинского additivus, что значит прибавляемый).

Принцип сложения цветов часто изображается в виде плоской круговой диаграммы (см. рис. 4), которая хотя и не дает новой информации о модели, по сравнению с пространственным изображением, но проще воспринимается и легче запоминается.

Рис. 4.

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

В вычислительной технике интенсивность первичных цветов принято измерять целыми числами в диапазоне от 0 до 255. Ноль означает отсутствие данной цветовой составляющей, число 255 - ее максимальную интенсивность. Поскольку первичные цвета могут смешиваться без ограничений, то легко подсчитать общее количество цветов, которое порождает аддитивная модель. Оно равно 256 * 256 * 256=16 777 216, или более 16,7 миллионов цветов. Это число кажется огромным, но в действительности модель порождает всего лишь небольшую часть цветового спектра.

Любой естественный цвет можно разложить на красную, зеленую и синюю составляющие и измерить их интенсивность. А вот обратный переход возможен далеко не всегда. Экспериментально и теоретически доказано, что диапазон цветов модели RGB уже, чем множество цветов видимого спектра. Чтобы получить часть спектра, лежащую между синим и зеленым цветами, требуются излучатели с отрицательной интенсивностью красного цвета, которых, конечно же, в природе не существует. Диапазон воспроизводимых цветов модели или устройства называется цветовым охватом. Одним из серьезных недостатков аддитивной модели, как ни парадоксально это звучит, является ее узкий цветовой охват.

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

Экраны дисплеев покрываются люминофорами, которые отличаются по химическому и спектральному составу. Мониторы одной марки имеют разный износ и условия освещения. Даже один монитор выдает различные цвета в прогретом состоянии и сразу после включения. За счет калибровки устройств и использования систем управления цветом можно попытаться приблизить цветовые охваты различных устройств. Подробнее об этом говорится в следующей главе.

Нельзя не упомянуть еще один недостаток этой цветовой модели. С точки зрения практикующего дизайнера или компьютерного художника, она является неинтуитивной. Оперируя в ее среде, бывает трудно ответить на самые простые вопросы, относящиеся к цветовому синтезу. Например, как следует изменить цветовые координаты, чтобы сделать текущий цвет немного ярче или уменьшить его насыщенность? Чтобы дать правильный ответ на этот простой вопрос, требуется обладать большим опытом работы в этой цветовой системе.

HEX / HTML

Цвет в формате HEX - это ни что иное, как шестнадцатеричное представление RGB.

Цвета представляются в виде трёх групп шестнадцатеричных цифр, где каждая группа отвечает за свой цвет: #112233, где 11 - красный, 22 - зелёный, 33 - синий. Все значения должны быть между 00 и FF.

Во многих приложениях допускается сокращённая форма записи шестнадцатеричных цветов. Если каждая из трёх групп содержит одинаковые символы, например #112233, то их можно записать как #123.

  1. h1 { color: #ff0000; } /* красный */
  2. h2 { color: #00ff00; } /* зелёный */
  3. h3 { color: #0000ff; } /* синий */
  4. h4 { color: #00f; } /* тот же синий, сокращённая запись */

RGB

Цветовое пространство RGB (Red, Green, Blue) состоит из всех возможных цветов, которые могут быть получены путём смешивания красного, зелёного, и синего. Эта модель популярна в фотографии, телевидении, и компьютерной графике.

Значения RGB задаются целым числом от 0 до 255. Например, rgb(0,0,255) отображается как синий, так как синий параметр установлен в его самое высокое значение (255), а остальные установлены в 0.

Некоторые приложения (в частности веб-браузеры) поддерживают процентную запись значений RGB (от 0% до 100%).

  1. h1 { color: rgb(255, 0, 0); } /* красный */
  2. h2 { color: rgb(0, 255, 0); } /* зелёный */
  3. h3 { color: rgb(0, 0, 255); } /* синий */
  4. h4 { color: rgb(0%, 0%, 100%); } /* тот же синий, процентная запись */

Цветовые значения RGB поддерживаются во всех основных браузерах.

RGBA

С недавних пор современные браузеры научились работать с цветовой моделью RGBA - расширением RGB с поддержкой альфа-канала, который определяет непрозрачность объекта.

Значение цвета RGBA задается в виде: rgba(red, green, blue, alpha). Параметр alpha - это число в диапазоне от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный).

  1. h1 { color: rgb(0, 0, 255); } /* синий в обычном RGB */
  2. h2 { color: rgba(0, 0, 255, 1); } /* тот же синий в RGBA, потому как непрозрачность: 100% */
  3. h3 { color: rgba(0, 0, 255, 0.5); } /* непрозрачность: 50% */
  4. h4 { color: rgba(0, 0, 255, .155); } /* непрозрачность: 15.5% */
  5. h5 { color: rgba(0, 0, 255, 0); } /* полностью прозрачный */

RGBA поддерживается в IE9+, Firefox 3+, Chrome, Safari, и в Opera 10+.

HSL

Цветовая модель HSL является представлением модели RGB в цилиндрической системе координат. HSL представляет цвета более интуитивным и понятным для восприятия образом, чем типичное RGB. Модель часто используется в графических приложениях, в палитрах цветов, и для анализа изображений.

HSL расшифровывается как Hue (цвет/оттенок), Saturation (насыщенность), Lightness/Luminance (светлота/светлость/светимость, не путать с яркостью).

Hue задаёт положение цвета на цветовом круге (от 0 до 360). Saturation является процентным значением насыщенности (от 0% до 100%). Lightness является процентным значением светлости (от 0% до 100%).

  1. h1 { color: hsl(120, 100%, 50%); } /* зелёный */
  2. h2 { color: hsl(120, 100%, 75%); } /* светло-зелёный */
  3. h3 { color: hsl(120, 100%, 25%); } /* тёмно-зелёный */
  4. h4 { color: hsl(120, 60%, 70%); } /* пастельный зеленый */

HSL поддерживается в IE9+, Firefox, Chrome, Safari, и в Opera 10+.

HSLA

По аналогии с RGB/RGBA, для HSL имеется режим HSLA с поддержкой альфа-канала для указания непрозрачности объекта.

Значение цвета HSLA задается в виде: hsla(hue, saturation, lightness, alpha). Параметр alpha - это число в диапазоне от 0.0 (полностью прозрачный) до 1.0 (полностью непрозрачный).

  1. h1 { color: hsl(120, 100%, 50%); } /* зелёный в обычном HSL */
  2. h2 { color: hsla(120, 100%, 50%, 1); } /* тот же зелёный в HSLA, потому как непрозрачность: 100% */
  3. h3 { color: hsla(120, 100%, 50%, 0.5); } /* непрозрачность: 50% */
  4. h4 { color: hsla(120, 100%, 50%, .155); } /* непрозрачность: 15.5% */
  5. h5 { color: hsla(120, 100%, 50%, 0); } /* полностью прозрачный */

CMYK

Цветовая модель CMY K часто ассоциируется с цветной печатью, с полиграфией. CMYK (в отличие от RGB) является субтрактивной моделью, это означает что более высокие значения связаны с более тёмными цветами.

Цвета определяются соотношением голубого (Cyan), пурпурного (Magenta), жёлтого (Yellow), с добавлением чёрного (Key/blacK).

Каждое из чисел, определяющее цвет в CMYK, представляет собой процент краски данного цвета, составляющей цветовую комбинацию, а точнее, размер точки растра, выводимой на фотонаборном аппарате на плёнке данного цвета (или прямо на печатной форме в случае с CTP).

Например, для получения цвета «PANTONE 7526» следует смешать 9 частей голубой краски, 83 частей пурпурной краски, 100 - жёлтой краски, и 46 - чёрной. Это можно обозначить следующим образом: (9,83,100,46). Иногда пользуются такими обозначениями: C9M83Y100K46, или (9%, 83%, 100%, 46%), или (0,09/0,83/1,0/0,46).

HSB / HSV

HSB (также известна как HSV) похожа на HSL, но это две разные цветовые модели. Они обе основаны на цилиндрической геометрии, но HSB/HSV основана на модели «hexcone», в то время как HSL основана на модели «bi-hexcone». Художники часто предпочитают использовать эту модель, принято считать что устройство HSB/HSV ближе к естественному восприятию цветов. В частности, цветовая модель HSB применяется в Adobe Photoshop.

HSB/HSV расшифровывается как Hue (цвет/оттенок), Saturation (насыщенность), Brightness/Value (яркость/значение).

Hue задаёт положение цвета на цветовом круге (от 0 до 360). Saturation является процентным значением насыщенности (от 0% до 100%). Brightness является процентным значением яркости (от 0% до 100%).

XYZ

Цветовая модель XYZ (CIE 1931 XYZ) является чисто математическим пространством. В отличие от RGB, CMYK, и других моделей, в XYZ основные компоненты являются «мнимыми», то есть вы не можете соотнести X, Y, и Z с каким-либо набором цветов для смешивания. XYZ является мастер-моделью практически всех остальных цветовых моделей, используемых в технических областях.

LAB

Цветовая модель LAB (CIELAB, «CIE 1976 L*a*b*») вычисляется из пространства CIE XYZ. При разработке Lab преследовалась цель создания цветового пространства, изменение цвета в котором будет более линейным с точки зрения человеческого восприятия (по сравнению с XYZ), то есть с тем, чтобы одинаковое изменение значений координат цвета в разных областях цветового пространства производило одинаковое ощущение изменения цвета.

В российской традиции иногда обозначается как КЗС .

Выбор основных цветов обусловлен особенностями физиологии восприятия цвета сетчаткой человеческого глаза. Цветовая модель RGB нашла широкое применение в технике.

Аддитивной она называется потому, что цвета получаются путём добавления (англ. addition ) к черному. Иначе говоря, если цвет экрана, освещённого цветным прожектором, обозначается в RGB как (r 1 , g 1 , b 1), а цвет того же экрана, освещенного другим прожектором, - (r 2 , g 2 , b 2), то при освещении двумя прожекторами цвет экрана будет обозначаться как (r 1 +r 2 , g 1 +g 2 , b 1 +b 2).

Изображение в данной цветовой модели состоит из трёх каналов. При смешении основных цветов (основными цветами считаются красный, зелёный и синий) - например, синего (B) и красного (R), мы получаем пурпурный (M magenta), при смешении зеленого (G) и красного (R) - жёлтый (Y yellow), при смешении зеленого (G) и синего (B) - циановый (С cyan). При смешении всех трёх цветовых компонентов мы получаем белый цвет (W).

Определение

Цветовая модель RGB была изначально разработана для описания цвета на цветном мониторе, но, поскольку, мониторы разных моделей и производителей различаются, были предложены несколько альтернативных цветовых пространств, соответствующих «усредненному» монитору. К таким относятся, например, sRGB и Adobe RGB.

Варианты этого цветового пространства отличаются разными оттенками основных цветов, разной цветовой температурой , разным показателем гамма-коррекции .

Представление базисных цветов RGB согласно рекомендациям ITU , в пространстве кельвинов (дневной свет)

Красный: x=0.64 y=0.33 Зелёный: x=0.29 y=0.60 Синий: x=0.15 y=0.06

Матрицы для перевода цветов между системами RGB и яркости при преобразовании изображения в чёрно-белое):

X = 0.431*R+0.342*G+0.178*B Y = 0.222*R+0.707*G+0.071*B Z = 0.020*R+0.130*G+0.939*B R = 3.063*X-1.393*Y-0.476*Z G = -0.969*X+1.876*Y+0.042*Z B = 0.068*X-0.229*Y+1.069*Z

Числовое представление

RGB-цветовая модель представленная в виде куба

Для большинства приложений значения координат r, g и b можно считать принадлежащими отрезку , что представляет пространство RGB в виде куба 1×1×1.

COLORREF

COLORREF - стандартный тип для представления цветов в Win32 . Использует для определения цвета в RGB виде. Размер - 4 байта. При определении какого-либо RGB цвета, значение переменной типа COLORREF можно представить в шестнадцатиричном виде так:

0x00bbggrr

rr, gg, bb - значение интенсивности соответственно красной, зеленой и синей составлющих цвета. Максимальное их значение - 0xFF.

Определить переменную типа COLORREF можно следующим образом:

COLORREF C = (b,g,r);

b, g и r - интенсивность (в диапазоне от 0 до 255) соответственно синей, зеленой и красной составляющих определяемого цвета C. То есть ярко-красный цвет может быть определён как (255,0,0), ярко-фиолетовый - (255,0,255), чёрный - (0,0,0), а белый - (255,255,255)

  • Перевод

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

Пионеры исследований цветовосприятия

Сегодня мы знаем, что сетчатка человеческого глаза содержит три разных типа фоторецепторных клеток, называемых колбочками. Каждый из трёх типов колбочек содержит белок из семейства белков опсинов, который поглощает свет в различных частях спектра:

Поглощение света опсинами

Колбочки соответствуют красной, зелёной и синей частям спектра и часто называются длинными (L), средними (M) и короткими (S) согласно длинам волн, к которым они наиболее чувствительны.

Одной из первых научных работ о взаимодействии света и сетчатки был трактат «Hypothesis Concerning Light and Colors» Исаака Ньютона, написанный между 1670-1675 гг. У Ньютона была теория, что свет с различными длинами волн приводил к резонансу сетчатки с теми же частотами; эти колебания затем передавались через оптический нерв в «сенсориум».


«Лучи света, падая на дно глаза, возбуждают колебания в сетчатке, которые распространяются по волокнам оптических нервов в мозг, создавая чувство зрения. Разные типы лучей создают колебания разной силы, которые согласно своей силе возбуждают ощущения разных цветов…»

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

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

В 1850 году Герман Гельмгольц первым получил экспериментальное доказательство теории Юнга. Гельмгольц попросил испытуемого сопоставить цвета различных образцов источников света, регулируя яркость нескольких монохромных источников света. Он пришёл к выводу, что для сопоставления всех образцов необходимо и достаточно трёх источников света: в красной, зелёной и синей части спектра.

Рождение современной колориметрии

Перенесёмся в начало 1930-х. К тому времени научное сообщество имело достаточно хорошее представление о внутренней работе глаза. (Хотя потребовалось ещё 20 лет, чтобы Джорджу Уолду удалось экспериментально подтвердить присутствие и функции родопсинов в колбочках сетчатки. Это открытие привело его к Нобелевской премии по медицине в 1967 году.) Commission Internationale de L"Eclairage (Меж­ду­на­род­ная комиссия по освещению), CIE, поставила задачу по созданию исчерпывающей количественной оценки восприятия цвета человеком. Количественная оценка была основана на экспериментальных данных, собранных Уильямом Дэвидом Райтом и Джоном Гилдом при параметрах, схожих с выбранными впервые Германом Гельмгольцем. Базовыми настройками были выбраны 435,8 нм для синего цвета, 546,1 нм для зелёного и 700 нм для красного.
Экспериментальная установка Джона Гилда, три ручки регулируют основные цвета

Из-за значительного наложения чувствительности колбочек M и L невозможно было сопоставить некоторые длины волн с сине-зелёной частью спектра. Для «сопоставления» этих цветов в качестве точки отсчёта нужно было добавить немного основного красного цвета:

Если мы на мгновение представим, что все основные цвета вносят отрицательный вклад, то уравнение можно переписать так:

Результатом экспериментов стала таблица RGB-триад для каждой длины волны, что отображалось на графике следующим образом:


Функции сопоставления цветов RGB по CIE 1931

Разумеется, цвета с отрицательным красным компонентом невозможно отобразить с помощью основных цветов CIE.

Теперь мы можем найти трихромные коэффициенты для света распределения спектральной интенсивности S как следующее внутреннее произведение:

Может казаться очевидным, что чувствительность к различным длинам волн можно проинтегрировать таким образом, но на самом деле она зависит от физической чувствительности глаза, линейной по отношению к чувствительности к длинам волн. Это было эмпирически подтверждено в 1853 году Германом Грассманом, и представленные выше интегралы в современной формулировке известны нам как закон Грассмана.

Термин «цветовое пространство» возник потому, что основные цвета (красный, зелёный и синий) можно считать базисом векторного пространства. В этом пространстве различные цвета, воспринимаемые человеком, представлены лучами, исходящими из источника. Современное определение векторного пространства введено в 1888 году Джузеппе Пеано, но более чем за 30 лет до этого Джеймс Клерк Максвелл уже использовал только зародившиеся теории того, что позже стало линейной алгеброй, для формального описания трихроматической цветовой системы.

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

Этот новый набор основных цветов невозможно реализовать в физическом мире. Это просто математический инструмент, упрощающий работу с цветовым пространством. Кроме того, чтобы коэффициенты основных цветов всегда были положительными, новое пространство скомпоновано таким образом, что коэффициент цвета Y соответствует воспринимаемой яркости. Этот компонент известен как яркость CIE (подробнее о ней можно почитать в замечательной статье Color FAQ Чарльза Пойнтона (Charles Poynton)).

Чтобы упростить визуализацию итогового цветового пространства, мы выполним последнее преобразование. Разделив каждый компонент на сумму компонентов мы получим безразмерную величину цвета, не зависящую от его яркости:

Координаты x и y известны как координаты цветности, и вместе с яркостью Y CIE они составляют цветовое пространство xyY CIE. Если мы расположим на графике координаты цветности всех цветов с заданной яркостью, у нас получится следующая диаграмма, которая вам наверно знакома:


Диаграмма xyY CIE 1931

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

С течением времени появилось несколько новых цветовых пространств, которые в различных аспектах вносили улучшения в пространства CIE 1931. Несмотря на это, система xyY CIE остаётся самым популярным цветовым пространством, описывающим свойства устройств отображения.

Передаточные функции

Прежде чем рассматривать видеостандарты, необходимо ввести и объяснить ещё две концепции.

Оптико-электронная передаточная функция

Оптико-электронная передаточная функция (optical-electronic transfer function, OETF) определяет то, как линейный свет, фиксируемый устройством (камерой) должен кодироваться в сигнале, т.е. это функция формы:

Раньше V был аналоговым сигналом, но сейчас, разумеется, он имеет цифровое кодирование. Обычно разработчики игр редко сталкиваются с OETF. Один из примеров, в котором функция будет важна: необходимость сочетания в игре видеозаписи с компьютерной графикой. В этом случае необходимо знать, с какой OETF было записано видео, чтобы восстановить линейный свет и правильно смешать его с компьютерным изображением.

Электронно-оптическая передаточная функция

Электронно-оптическая передаточная функция (electronic-optical transfer, EOTF) выполняет противоположную OETF задачу, т.е. она определяет, как сигнал будет преобразован в линейный свет:

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

Отношение между EOTF и OETF

Понятия EOTF и OETF хоть и взаимосвязаны, но служат разным целям. OETF нужна для представления захваченной сцены, из которого мы потом можем реконструировать исходное линейное освещение (это представление концептуально является буфером кадра HDR (High Dynamic Range) обычной игры). Что происходит на этапах производства обычного фильма:
  • Захват данных сцены
  • Инвертирование OETF для восстановления значений линейного освещения
  • Цветокоррекция
  • Мастеринг под различные целевые форматы (DCI-P3, Rec. 709, HDR10, Dolby Vision и т.д.):
    • Уменьшение динамического диапазона материала для соответствия динамическому диапазону целевого формата (тональная компрессия)
    • Преобразование в цветовой пространство целевого формата
    • Инвертирование EOTF для материала (при использовании EOTF в устройстве отображения изображение восстанавливается как нужно).
Подробное обсуждение этого техпроцесса не войдёт в нашу статью, но я рекомендую изучить подробное формализованное описание рабочего процесса ACES (Academy Color Encoding System).

До текущего момента стандартный техпроцесс игры выглядел следующим образом:

  • Рендеринг
  • Буфер кадра HDR
  • Тональная коррекция
  • Инвертирование EOTF для предполагаемого устройства отображения (обычно sRGB)
  • Цветокоррекция
В большинстве игровых движков используется метод цветокоррекции, популяризованный презентацией Нэти Хофмана (Naty Hoffman) «Color Enhancement for Videogames» с Siggraph 2010. Этот метод был практичен, когда использовался только целевой SDR (Standard Dynamic Range), и он позволял использовать для цветокоррекции ПО, уже установленное на компьютерах большинства художников, например Adobe Photoshop.
Стандартный рабочий процесс цветокоррекции SDR (изображение принадлежит Джонатану Блоу (Jonathan Blow))

После внедрения HDR большинство игр начало двигаться к техпроцессу, похожему на используемый в производстве фильмов. Даже при отсутствии HDR схожий с кинематографическим техпроцесс позволял оптимизировать работу. Выполнение цветокоррекции в HDR означает, что у вас есть целый динамический диапазон сцены. Кроме того, становятся возможными некоторые эффекты, которые раньше были недоступны.

Теперь мы готовы рассмотреть различные стандарты, используемые в настоящее время для описания форматов телевизоров.

Видеостандарты

Rec. 709

Большинство стандартов, относящихся к вещанию видеосигналов, выпущено Меж­ду­на­род­ным союзом элект­рос­вя­зи (International Telecommunication Union, ITU), органом ООН, в основном занимающимся информационными технологиями.

Рекомендация ITU-R BT.709 , которую чаще называют Rec. 709 - это стандарт, описывающий свойства HDTV. Первая версия стандарта была выпущена в 1990 году, последняя - в июне 2015 года. В стандарте описываются такие параметры, как соотношения сторон, разрешения, частота кадров. С этими характеристиками знакомо большинство людей, поэтому я не буду рассматривать их и сосредоточусь на разделах стандарта, касающихся воспроизведения цвета и яркости.

В стандарте подробно описана цветность, ограниченная цветовым пространством xyY CIE. Красный, зелёный и синий источники освещения соответствующего стандарту дисплея должны быть выбраны таким образом, чтобы их отдельные координаты цветности были следующими:

Их относительная интенсивность должна быть настроена таким образом, чтобы белая точка имела цветность

(Эта белая точка также известна как CIE Standard Illuminant D65 и аналогична захвату координат цветности распределения спектральной интенсивности обычного дневного освещения.)

Свойства цветности можно визуально представить следующим образом:


Охват Rec. 709

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

Теперь мы переходим к части стандарта, посвящённой яркости, и здесь всё становится немного сложнее. В стандарте указано, что «Общая оптико-электронная передаточная характеристика в источнике» равна:

Здесь есть две проблемы:

  1. Не существует спецификации о том, чему соответствует физическая яркость L = 1
  2. Несмотря на то, что это стандарт вещания видео, в нём не указана EOTF
Так получилось исторически, потому что считалось, что устройство отображения, т.е. телевизор потребителя и есть EOTF. На практике это осуществлялось корректировкой диапазона захваченной яркости в вышеприведённой OETF, чтобы изображение выглядело хорошо на эталонном мониторе со следующей EOTF:

Где L = 1 соответствует яркость примерно 100 кд / м² (единицу кд / м² в этой отрасли называют «нит»). Это подтверждается ITU в последних версиях стандарта следующим комментарием:

В стандартной производственной практике функция кодирования источников изображения регулируется таким образом, чтобы конечное изображение имело требуемый вид, соответствующий видимому на эталонном мониторе. В качестве эталонной принимается функция декодирования из Рекомендации ITU-R BT.1886. Эталонная среда просмотра указана в Рекомендации ITU-R BT.2035.
Rec. 1886 - это результат работ по документации характеристик ЭЛТ-мониторов (стандарт опубликован в 2011 году), т.е. является формализацией существующей практики.
Кладбище слонов ЭЛТ

Нелинейность яркости как функции приложенного напряжения привела к тому, как физически устроены ЭЛТ-мониторы. По чистой случайности эта нелинейность (очень) приблизительно является инвертированной нелинейностью восприятия яркости человеком. Когда мы перешли к цифровому представлению сигналов, это привело к удачному эффекту равномерного распределения ошибки дискретизации по всему диапазону яркости.

Rec. 709 рассчитана на использование 8-битного или 10-битного кодирования. В большинстве контента используется 8-битное кодирование. Для него в стандарте указано, что распределение диапазона яркости сигнала должно распределяться в кодах 16-235.

HDR10

Что касается HDR-видео, то в нём есть два основных соперника: Dolby Vision и HDR10. В этой статье я сосредоточусь на HDR10, потому что это открытый стандарт, который быстрее стал популярным. Этот стандарт выбран для Xbox One S и PS4.

Мы снова начнём с рассмотрения используемой в HDR10 части цветности цветового пространства, определённой в Рекомендации ITU-R BT.2020 (UHDTV). В ней указаны следующие координаты цветности основных цветов:

И снова в качестве белой точки используется D65. При визуализации на схеме xy Rec. 2020 выглядит следующим образом:


Охват Rec. 2020

Очевидно заметно, что охват этого цветового пространства значительно больше, чем у Rec. 709.

Теперь мы переходим к разделу стандарта о яркости, и здесь снова всё становится более интересным. В своей кандидатской диссертации 1999 года “Contrast sensitivity of the human eye and its effect on image quality” («Контрастная чувствительность человеческого глаза и её влияние на качество изображения») Питер Бартен представил немного пугающее уравнение:

(Многие переменные этого уравнения сами по себе являются сложными уравнениями, например, яркость скрывается внутри уравнений, вычисляющих E и M).

Уравнение определяет, насколько чувствителен глаз к изменению контрастности при различной яркости, а различные параметры определяют условия просмотра и некоторые свойства наблюдателя. «Минимальная различаемая разница» (Just Noticeable Difference, JND) обратна уравнению Бартена, поэтому для дискретизации EOTF, чтобы избавиться от привязки к условиям просмотра, должно быть верно следующее:

Общество инженеров кино и телевидения (Society of Motion Picture and Television Engineers, SMPTE) решило, что уравнение Бартена будет хорошей основой для новой EOTF. Результатом стало то, что мы сейчас называем SMPTE ST 2084 или Perceptual Quantizer (PQ).

PQ был создан выбором консервативных значений для параметров уравнения Бартена, т.е. ожидаемых типичных условий просмотра потребителем. Позже PQ был определён как дискретизация, которая при заданном диапазоне яркости и количестве сэмплов наиболее точно соответствует уравнению Бартена с выбранными параметрами.

Дискретизированные значения EOTF можно найти с помощью следующей рекуррентной формулы нахождения k < 1 . Последним значением дискретизации будет являться необходимая максимальная яркость:

Для максимальной яркости в 10 000 нит с использованием 12-битной дискретизации (которая используется в Dolby Vision) результат выглядит следующим образом:


EOTF PQ

Как можно заметить, дискретизация не занимает весь диапазон яркости.

В стандарте HDR10 тоже используется EOTF PQ, но с 10-битной дискретизацией. Этого недостаточно, чтобы оставаться ниже порога Бартена в диапазоне яркости в 10 000 нит, но стандарт позволяет встраивать в сигнал метаданные для динамической регуляции пиковой яркости. Вот как 10-битная дискретизация PQ выглядит для разных диапазонов яркости:


Разные EOTF HDR10

Но даже так яркость немного выше порога Бартена. Однако ситуация не настолько плоха, как это может показаться из графика, потому что:

  1. Кривая логарифмическая, поэтому относительная погрешность на самом деле не так велика
  2. Не стоит забывать, что параметры, взятые для создания порога Бартена, выбраны консервативно.
На момент написания статьи телевизоры с HDR10, представленные на рынке, обычно имеют пиковую яркость 1000-1500 нит, и для них достаточно 10 бит. Стоит также заметить, что изготовители телевизоров могут сами решать, что им делать с яркостями выше диапазона, который они могут отображать. Некоторые придерживаются подхода с жёсткой обрезкой, другие - с более мягкой.

Вот пример того, как выглядит 8-битная дискретизация Rec. 709 с пиковой яркостью 100 нит:


EOTF Rec. 709 (16-235)

Как можно видеть, мы намного выше порога Бартена, и, что важно, даже самые неразборчивые покупатели будут настраивать свои телевизоры на значительно большие 100 нит пиковые яркости (обычно на 250-400 нит), что поднимет кривую Rec. 709 ещё выше.

В заключение

Одно из самых больших различий между Rec. 709 и HDR в том, что яркость последнего указывается в абсолютных значениях. Теоретически это означает, что контент, предназначенный для HDR, будет выглядеть одинаково на всех совместимых телевизорах. По крайней мере, до их пиковой яркости.

Существует популярное заблуждение, что HDR-контент в целом будет ярче, но в общем случае это не так. HDR-фильмы чаще всего будут изготавливаться таким образом, чтобы средний уровень яркости изображения был тем же, что и для Rec. 709, но так, чтобы самые яркие участки изображения были более яркими и детальными, а значит, средние тона и тени будут более тёмными. В сочетании с абсолютными значениями яркости HDR это означает, что для оптимального просмотра HDR нужны хорошие условия: при ярком освещении зрачок сужается, а значит, детали на тёмных участках изображения будет сложнее разглядеть.

Теги:

  • rgb
  • пространства цветов
  • color spaces
  • стандарты видео
  • hdr
  • hdtv
Добавить метки

Модель RGB (Red - Красный, Green - Зеленый, Blue - Синий) описывает излучаемые цвета.

Модель R G B (Red - Красный, Green - Зеленый, Blue - Синий) описывает излучаемые цвета. Базовыми компонентами модели являются три цвета лучей - красный, зеленый, синий. При восприятии цвета человеком именно они непосредственно воспринимаются глазом. Остальные цвета представляют собой смешение трех базовых в разных соотношениях. Каждая составляющая может изменяться в пределах от 0 до 255, как было рассмотрено в предыдущей главе. Такой способ предоставляет доступ ко всем 16 миллионам цветов. При сложении (смешении) двух лучей основных цветов результат оказывается светлее, чем отдельные составляющие . Цвета этого типа называются аддитивными . Эта модель используется во всех мониторах , проекторах и других устройствах, которые излучают или фильтруют свет, включая телевизоры, кинопроекторы и цветные прожекторы. Web-дизайнер в своей работе ориентируется на такое устройство вывода, как монитор, поэтому мы будем учиться работать в основном с изображениями в модели RGB. Напомню, что она является трехканальной (имеет три составляющие) и 24-битной (цвет одного пиксела представляется 24 битами - по байту на канал).


Цветовое пространство модели удобно представить в виде цветового куба . По осям координат откладываются значения цветовых каналов. Каждый из них может принимать значения от нуля (нет света) до максимального (наибольшая яркость света). Внутренняя часть образовавшегося куба содержит все цвета модели. В начале координат значения каналов равны нулю (черный цвет). В противоположной точке смешиваются максимальные значения каналов, образуя белый цвет. На линии, соединяющей эти точки, располагаются смеси равных значений каналов, образуя серые оттенки от черного до белого - серую шкалу. Три вершины куба дают чистые исходные цвета, остальные три отражают двойные смешения исходных цветов. В обычном RGB-изображении каждый цветовой канал и серая шкала имеют 256 градаций (оттенков).


Изображение, созданное в цветовой модели RGB, может быть сохранено в любом графическом формате, поддерживаемом программой Photoshop, кроме формата GIF.


Недостатком режима RGB является то, что далеко не все цвета, которые могут быть в нем созданы, можно вывести на печать. Избежать потери цветов можно, редактируя изображение в режиме CMYK.

Модели CMY и CMYK.

Модель C M Y описывает отраженные цвета (краски). Они образуются в результате вычитания части спектра падающего света и называются субтрактивными . При смешении двух цветов результат темнее обоих исходных, поскольку каждый из цветов поглощает часть спектра. Иначе говоря, чем больше краски мы положили, тем больше вычли из белого, т.е. тем ниже будет результирующая яркость.


Для начала расшифруем название этой модели. C=Cyan (бирюзовый ), M=Magenta (пурпурный ), Y=Yellow (желтый ). Каналы CMY - это результат вычитания основных цветов модели RGB из белого цвета (то есть цвета маскимальной яркости). Запишем "формулы" получения этих цветов:

  • Бирюзовый = Белый - Красный
  • Пурпурный = Белый - Зеленый
  • Желтый = Белый - Синий

Можно сказать, что модель CMY обратна модели RGB . Посмотрите на рисунок - базовые цвета модели CMY находятся напротив базовых цветов модели RGB. Согласно модели RGB, белый цвет представляет собой сумму трех компонент максимальной яркости, т.е. можно записать:
Белый = Красный + Зеленый + Синий.
После нехитрых математических преобразований получаем следующее представление цветов модели CMY:

  • Бирюзовый = Зеленый + Синий
  • Пурпурный = Красный + Синий
  • Желтый = Красный + Зеленый

Сравните эти формулы с рисунком - все правильно. Желтый цвет лежит между красной и зеленой областями и т.д. Если это рисунок вас не убедил - посмотрите на рисунок модели RGB в предыдущей главе.


Развитием модели CMY является модель CMYK . Она описывает реальный процесс цветной печати на офсетной машине и цветном принтере. Пурпурная, голубая и желтая краски (полиграфическая триада) последовательно наносятся на бумагу в различных пропорциях, и таким способом может быть репродуцирована значительная часть видимого спектра. В области черного и темных цветов наносятся не цветные, а черная краска. Это четвертый базовый компонент, он введен для описания реального процесса печати. Черный компонент сокращается до буквы K (blacK или, по другой версии, Key ). CMYK - четырехканальная цветовая модель. Зачем в модель вводится черная краска? Реальные краски содержат примеси, и при смешении дадут не черный, а темно-коричневый цвет. К тому же при печати очень темных и черного цвета было бы необходимо большое количество каждой краски, что ведет к переувлажнению бумаги и неоправданному расходу красок.


Описанные цветовые модели являются аппаратно-зависимыми . При выводе одного и того же изображения на различных устройствах (например, на двух разных мониторах) вы, скорее всего, получите разный результат. То есть цвет зависит как от значений базовых составляющих, так и от параметров устройств: качества и марки данной печатной краски, свойств использованной бумаги, свойств люминофора и других параметров конкретного монитора, принтера или печатного пресса. Кроме того, существование разных моделей описания для излучаемых и отраженных цветов весьма неудобно при компьютерной подготовке цветных изображений. В полиграфический процесс входят системы, работающие как в модели RGB (сканер, монитор), так и в модели CMYK (фотонабор и печатная машина). В процессе работы приходится преобразовывать цвет из одной модели в другую. Поскольку эти модели имеют разный цветовой охват, преобразование часто сопряжено с потерей части оттенков. Поэтому одной из основных задач при работе с цветными изображениями становится достижение предсказуемого цвета. Для этого создана система цветокоррекции (Color Management System, СMS ). Это программная система, цель которой, во-первых, достичь одинаковых цветов для всех этапов полиграфического процесса, от сканера до печатного станка, а во-вторых - обеспечить стабильное воспроизведение цвета на всех выводных устройствах (например, на любом мониторе). Пространство этой модели аналогично пространству модели RGB, в которой перемещено начало координат. Смешение максимальных значений всех трех компонентов дает черный цвет. При полном отсутствии краски (нулевые значения составляющих) получится белый цвет (белая бумага). Смешение равных значений трех компонентов даст оттенки серого.



Модель CMYK предназначена специально для описания печатных изображений. Поэтому ее цветовой охват значительно ниже, чем у RGB (ведь она описывает не излучаемые, а отраженные цвета, интенсивность которых всегда меньше). Кроме того, как прикладная модель, CMYK жестко привязана к параметрам печати (краски, тип печатной машины и т. д.), которые очень разнятся для каждого случая. При переводе в CMYK нужно задать массу технологических характеристик - указать, какими конкретно красками и на какой бумаге будет отпечатано изображение, некоторые особенности печатного оборудования и т. д. Для разных заданных значений вид изображения на печати и на экране будет разным. Еще одной особенностью модели является теоретически не обоснованное введение дополнительного черного канала. Он предназначен для исправления недостатков современного печатного оборудования. В темных областях особенно хорошо видны погрешности совмещения, возможно переувлажнение бумаги, кроме того, смесь CMY-красок не дает глубокого черного тона. Все эти "узкие места" можно устранить применением дополнительной черной краски. При переводе в CMYK программа заменяет в темных областях триадные краски на черную. Эта замена производится по разным алгоритмам, в зависимости от состава изображения (черный цвет подчеркивает контуры предметов, визуально усиливая резкость), особенностей печати и других причин. Таким образом, в зависимости от установок перевода вид изображения меняется. Неудачный перевод в CMYK (цветоделение ) может привести к серьезным потерям качества. Цветоделение обычно предполагает печать тиража (иначе зачем CMYK), а это, в свою очередь, связано с большими финансовыми вложениями. Поэтому, если вам приходится выполнять подготовку файлов для типографии, необходимо изучить специальную литературу по предпечатной подготовке.


Рассмотрим каналы в CMYK-изображении. Для эксперимента нам потребуется файл photo.jpg . Как видите, в области заголовка окна также показана модель изображения. Сейчас это RGB. Чтобы перевести изображение в цветовой режим CMYK, выберите в меню Image команду Mode > CMYK . Откройте палитру Channels. Там присутствует пять строк - четыре строки цветовых каналов и одна строка совмещенного канала. Активизация и регулирование видимости каналов производятся точно так же, как для RGB - изображения.


Отключите видимость всех каналов, кроме голубого. Заметьте, что изображение стало много светлее. Каналы CMYK складываются так же, как краски, положенные на бумагу. Практически сейчас перед вами голубая форма для печати файла. Именно таким образом будет распределяться краска на отпечатке. Насыщенность цвета максимальна в голубой и синей областях. Они окрашены насыщенным голубым цветом. Голубой есть также в областях оттенков серого. Это означает, что в CMYK оттенки серого формируются из смеси равного количества всех компонентов модели. Область черного и очень темных оттенков изображается на печати черной краской, поэтому она пока остается белой.


Теперь активизируйте изображение черного канала, не отключая голубой. Вы видите форму, в соответствии с которой будет наноситься черная краска. Отключите видимость черного канала, добавьте к голубому отображение желтого канала. Как видите, смешение красок в модели происходит по гораздо более понятному принципу - при сложении голубой и желтой составляющих получаются оттенки зеленого. Зеленый цвет получили также серые участки, поскольку они состоят из равных количеств каждого из базовых компонентов. Отметьте, что изображение тем темнее, чем больше каналов видно на экране. Сделайте видимым и пурпурный канал. Изображение в средних и светлых тонах уже приобрело нормальный вид. В тенях же остались белые участки - все они будут напечатаны черным, а не смесью трех цветных красок.