Для пространства HSV максимально увеличить координату V для какого-нибудь цвета означает получить самый яркий цвет для данной пары тон-насыщенность. Для пространства HSL максимально увеличить координату L означает получить белый цвет, независимо от значений остальных координат.
Такие «странности» приводят к тому, что вместо этих пространств стараются использовать цветовую модель CIELAB. Особенно тогда, когда важно четко отделить цветность от яркости.
В пространствах HSV, …сохраняется неоднородность по восприятию, присутствующая в исходных RGB-пространствах. Для того чтобы точно определить цвет, выраженный в координатах этих пространств, необходимо знать свойства того RGB-пространства, от которого они произведены (базовые цвета, точку белого и формулу гамма-коррекции).
В заключение приведем таблицу, содержащую значения некоторых параметров модели RGB для перечисленных выше цветовых пространств. В таблице даны значения координат CIEXYZ, пересчитанные по формулам x=X/(X+Y+Z), y=Y/(X+Y+Z).
На этом закончим краткий обзор модели RGB. Скажем еще, что существуют устройства, использующие цветовые модели с количеством базовых стимулов большим трех. Например, модели RYGB и RYGCB (в телевизорах фирмы Шарп). Гамут последней цветовой модели покрывает 99 % гамута Пойнтера.
2.5. Цветовые модели CIELAB и CMYK
В цветовой модели CIELAB сделана попытка учесть особенности восприятия цвета человеком. Все пространства этой модели получены определенным нелинейным преобразованием пространства CIEXYZ, подобранным так, чтобы улучшить соответствие тому, как человек воспринимает разности цветов. То есть, пространства CIELAB являются более однородными по восприятию, чем CIEXYZ и CIERGB. Другими словами, в CIELAB воспринимаемое различие между двумя близкими цветами приблизительно пропорционально расстоянию между соответствующими точками. Пространство CIELAB иногда записывается в виде L*a*b* с тем, чтобы подчеркнуть его отличие от цветового пространства Lab, которое было придумано Хантом ранее.
В модели CIELAB используется один параметр: точка белого. Иногда аббревиатура CIELAB означает не модель, а пространство с точкой белого, равной D50. Полезность пространства CIELAB объясняется следующими свойствами.
• Яркость (координата L*) отделена от цветности (координаты a* и b*). Поэтому манипулирование с яркостью и контрастом практически не затрагивает цветность. И наоборот.
• CIELAB является более однородным по восприятию, чем sRGB.
• Цветовой охват CIELAB включает в себя цветовые охваты sRGB, Adobe RGB и CMYK.
• Это пространство является устройство-независимым. То есть, цвета определены без учета возможностей какого-либо устройства, на котором они воспроизводятся или с помощью которого они считываются. Если же в качестве точки белого выбрана самая яркая точка, которую может воспроизвести какое-нибудь устройство, то такое пространство LAB уже окажется устройство-зависимым.
Это пространство нормировано: L*=0 для точки черного и L*=100 для точки белого. Для нейтрально серого цвета a*=0 и b*=0. CIELAB-пространства тоже могут быть представлены в полярных координатах, например, CIELCH.
Пространство CIELAB удобно использовать в качестве промежуточного формата для аппаратно-зависимых пространств. Из-за большого цветового охвата CIELAB все преобразования в нем следует проводить с глубиной цветности не менее, чем 16 бит на канал.
Другими примерами пространств, в которых яркость отделена от цветности, служат пространства, используемые при описании модели восприятия цвета CIECAM02. Модели CIECAM02 посвящен отдельный параграф ниже.
Перейдем к цветовой модели CMYK (произносится «смик»), которая моделирует отображение цветов принтерами и обычно является аппаратно-зависимой. Каждая тройка чернила-принтер-бумага в рамках этой модели может иметь свое собственное цветовое пространство. Смысл числовых значений координат CMYK по сравнению с RGB обратный: 0 – это максимальное количество цвета данного канала, 255 для 8-битной глубины цветности – это отсутствие цвета данного канала. Если преобразование RGB-координат в CMY-координаты элементарно простое, то пересчет из CMY в CMYK можно выполнить по-разному. Один из простейших вариантов: {C, M, Y} – > { K = min(C, M, Y), C – K, M – K, Y – K, }. Реальные варианты гораздо сложнее и учитывают многие характеристики чернил, бумаги, оборудования и даже температуру и влажность воздуха возле печатной машины.
В пространстве CMY нейтральные цвета определены как C = M = Y. В пространстве CMYK – как C = M = Y = 0.
Распечатанное изображение гораздо сильнее зависит от условий просмотра, чем изображение на экране монитора. Чтобы вычислить видимый цвет малого кусочка картинки, нужно взять спектр источника освещения и умножить его на спектральные коэффициенты отражения чернил, которыми закрашен этот кусочек, и просвечивающей сквозь них бумаги. Полученный спектр отраженного от этого кусочка света и позволит определить искомый цвет, воспринимаемый человеком. Усложняет дело то, что, если заменить источник освещения другим, имеющим тот же самый цвет, но другой спектр (метамерный), то видимый цвет кусочка может измениться!
Цветовой охват CMYK для обычных принтеров больше цветового охвата sRGB (в светло-голубых и светло-зеленых тонах), но меньше цветового охвата Adobe RGB (1998).
Четырехцветная печать CMYK не всегда может отобразить светлые насыщенные цвета. Поэтому часто используют шестицветную печать CcMmYK и даже еще более многоцветную.
А теперь вспомним то, о чем говорилось в предыдущей главе и опишем процессы, происходящие в сетчатке глаза, в терминах цветовых пространств. Рецепторы сетчатки реагируют на видимый цвет и выдают сигнал, похожий на значения координат в пространстве RGB (точнее, в пространстве «колбочковых ответов» LMS). Затем спектрально оппонентные ганглиозные клетки преобразуют rgb-сигнал, опять же приблизительно, в координаты CIELAB.
Зачем могло понадобиться использовать такие нетривиальные координаты в зрительной системе человека? Этот факт может быть объяснен тем, что цветовое зрение в процессе эволюции возникло на основе черно-белого. К рецепторам-палочкам, дающим сигнал только о яркости (значение координаты L*), добавились колбочки. Сигналы от трех видов колбочек (приблизительно – красный, зеленый и синий цвета) нейроны сетчатки преобразуют только в две дополнительные цветовые координаты a* (разность зеленого и красного) и b* (разность синего и желтого). Что вместе с координатой L* и дает цвет. В пространстве RGB объединить сигнал палочек и колбочек было бы сложнее. Простое добавление трех координат RGB к координате L привело бы к избыточности (четыре значения вместо трех). Упразднение координаты L и рецепторов-палочек вызвало бы потерю зрения в сумерках.
Кстати, то, что не бывает красно-зеленого и сине-желтого цветов, как раз и объясняется тем, что такие цвета невозможно описать в координатах a* и b*.
2.6. Колориметрические отображения
После того как были определены цветовые пространства, нужно объяснить, как преобразовывать изображения из одного цветового пространства в другое. В процессе компьютерной обработки неизбежно приходится это делать, явно или неявно. Так, картинка, полученная сканером или цифровой фотокамерой, представляет собой множество точек (пикселей), координаты которых даны в цветовом пространстве данного устройства. Эта картинка преобразуется в независящее от устройства рабочее цветовое пространство графического редактора. Затем, для просмотра – в цветовое пространство монитора. И, наконец, после обработки в редакторе – в цветовое пространство принтера. Если эти преобразования не делать, то камера запишет в файл одни цвета, монитор покажет другие, а принтер напечатает третьи, несмотря на то, что во всех трех случаях числовые значения координат цвета в файле будут одними и теми же. И останется только надеяться, что все три цветовых пространства не будут сильно различаться.