Получив некоторое представление о том, как работает зрительная система человека, перейдем к нашей основной теме – фотографии. Но сначала нужно напомнить суть основных понятий, относящихся к цвету и восприятию цвета человеком. В детали вдаваться не станем, а затронем только то, что будем использовать в остальной части этой книжки. Кто захочет, всегда сможет изучить любой вопрос более глубоко, отталкиваясь от упомянутых здесь терминов и воспользовавшись поиском в интернете.
Во многих случаях, хотя, может быть, и не всегда, художник или фотограф хочет, чтобы цвета его картины или фотографии воспринимались зрителем точно так же, как их видит сам автор. Независимо от того, рассматривается ли изображение в виде твердой копии или в виде картинки на экране. Да еще и независимо от условий просмотра (освещение, фон, геометрия просмотра, окружение), которые могут быть не такими, как у автора. Системы управления цветом в компьютерных программах как раз и призваны решить эту задачу настолько, насколько это возможно. Для понимания сути происходящего необходимо знакомство с азами науки о цвете, которые и излагаются в этой главе.
Конечно, сходные проблемы возникают и в других творческих профессиях. Передача нужного смысла слова (строчки, абзаца) от писателя или поэта к читателю. Передача впечатления от музыкального произведения от композитора к слушателю. В отличие от передачи цвета в последнем случае едва ли возможна какая-то формализация. Слишком многое зависит от культурного уровня и опыта читателя/слушателя. Впрочем, аналогия просматривается очень четко, так что, вероятно, все-таки это будет сделано. Но пока можно считать, что фотографам еще повезло. Или не повезло, смотря как к этому относится.
Как известно, воспринимая видимый свет, человек ощущает его яркость (интенсивность) и еще нечто, называемое «цвет». Интенсивность можно измерить физическим прибором, а цвет – напрямую нет. Но для того, чтобы работать с цветом на компьютере, нужно сначала цвет оцифровать, то есть, каждому видимому цвету поставить в соответствие число (или несколько чисел).
Можно было бы характеризовать цвет видимого излучения его спектральным распределением энергии, которое можно измерить. Тем более что излучение с одним и тем же спектром воспринимается разными людьми с нормальным зрением как имеющее один и тот же цвет. Но в то же время существуют пары излучений с очень разными спектрами, которые человеком воспринимаются как имеющие совершенно одинаковый цвет (явление метамеризма). Кроме этого, ставить в соответствие цвету не числа, а функции, неудобно.
Как оцифровать цвет проще, помогают понять законы Грассмана (Hermann Grassmann), открытые эмпирически еще в 1853 году в экспериментах по смешиванию лучей света разных цветов:
1) цвет трехмерен, то есть одному цвету нужно ставить в соответствие три числа;
2) при непрерывном изменении цвета только одного из смешиваемых лучей цвет смеси тоже меняется непрерывно;
3) цвет смеси зависит только от смешиваемых цветов и не зависит от их спектров.
Отсюда следует, что все видимые цвета должны образовать некоторую непрерывную область (тело) в трехмерном пространстве. Каждая точка этого тела будет соответствовать определенному цвету. Если выбрать два разных цвета и соединить соответствующие им точки отрезком прямой, то этот отрезок будет определять все оттенки, которые можно получить, смешивая эти два цвета. Причем в случае линейного пространства пропорция смеси будет равна отношению длин частей отрезка, на которые цвет смеси делит его.
Поскольку отрезок, соединяющий два любых видимых цвета, содержит только видимые цвета, то он полностью находится внутри тела видимых цветов, а это значит, что это тело должно быть выпукло (без впадин и ямок).
По форме тело видимых цветов похоже на продолговатый фрукт, у которого один бок срезан. Точки поверхности «фрукта» (кроме среза) соответствуют монохромным цветам разной длины волны и разной интенсивности, то есть, имеющим максимальную насыщенность (монохромны, например, цвета радуги). Поверхность «отрезанной» части тела (кроме среза) соответствует «цветам» монохромных инфракрасных и ультрафиолетовых излучений, которые глаз не видит. Если выбрать какой-либо цвет на поверхности тела и понижать его насыщенность, добавляя все возрастающее количество белого цвета, то соответствующая точка начнет перемещаться вглубь тела и в пределе достигнет точки этого белого цвета, которая будет находиться где-то в середине «фрукта». Точки снаружи от поверхности, образованной цветами монохромных излучений, соответствуют «цветам», имеющим насыщенность бо́льшую, чем насыщенность монохромных цветов, что физически невозможно. Для получения такой насыщенности нужно было бы из монохромного цвета вычесть какое-то количество белого цвета, что физика не может сделать. А математика – пожалуйста.
Нейтрально серые цвета образуют линию, проходящую внутри тела видимых цветов и соединяющую самую темную точку (черную) с самой яркой (белой). Возникает важный вопрос, как определить, что такое нейтрально белый, серый и черный цвета. На глаз тут полагаться нельзя из-за хроматической адаптации (привыкнув к любому почти белому цвету, глаз начинает воспринимать его как чисто белый). Поэтому, работая с цветом математически, нужно каждый раз оговаривать, что в данном конкретном случае подразумевается под белым (и, как следствие, серыми и черным цветом). В теории черный цвет (излучение с нулевой интенсивностью) тоже имеет цветность, которую глаз, конечно, не видит.
Одну и ту же трехмерную фигуру (конечно, также как и фигуры любой другой размерности), можно рассматривать в различных координатных системах, линейных и нелинейных. Различные координатные системы, в которых может рассматриваться тело видимых цветов, называются цветовыми пространствами. Один и тот же цвет в разных цветовых пространствах записывается наборами разных чисел. В некоторых из этих пространств можно изобразить только часть видимых цветов и тело приобретает вид куба, конуса, биконуса или другую форму. Линейное преобразование цветового пространства соответствует тому, что мы как-то поворачиваем это тело и изменяем его размер равномерно и пропорционально. Нелинейное преобразование означает, что мы растягиваем или сжимаем тело видимых цветов так, что разные его части сжимаются или растягиваются по-разному.
Различных цветовых пространств (как и систем координат) можно придумать бесконечно много. На практике применяются только те из них, которые обладают некоторыми полезными свойствами. К общим свойствам цветовых пространств (ЦП) относятся:
• цветовой охват;
• линейность по восприятию;
• однородность по восприятию;
• зависимость от устройства;
• нормированность;
• точка белого и точка черного.
Цветовой охват (gamut, гамут, вкусное слово, думаю, оно приживется в русском языке) – это совокупность всех таких видимых цветов, которые могут быть представлены в данном ЦП. Кроме видимых цветов в некоторых ЦП могут быть представлены и физически невоспроизводимые цвета.
Линейность по восприятию (perceptually linear) означает, что изменение координат цвета приводит к изменению воспринимаемого цвета примерно в той же пропорции. Для однородного по восприятию цветового пространства (perceptually uniform), кроме того, близким разностям цветов соответствуют близкие по длине отрезки, соединяющие эти цвета.
Если при определении ЦП используются характеристики конкретного устройства (сканера, монитора, принтера), то такое пространство называется устройство-зависимым (или аппаратно-зависимым). Аппаратно-зависимое ЦП удобно для использования при работе с этим самым устройством. Если ЦП определяется с помощью величин, не связанных с каким-либо конкретным устройством, то оно называется устройство-независимым. Устройство-независимое ЦП предназначено для выполнения общих операций с цветом таких, как редактирование изображений или преобразования из ЦП одного устройства в ЦП другого устройства. Поскольку при этом отсутствуют ограничения, связанные с возможностями какого-либо устройства, то все такие операции могут быть выполнены без потерь.
Цветовой охват аппаратно-независимых ЦП обычно большой и может содержать физически нереализуемые цвета. Но даже если в процессе преобразования получится промежуточное изображение, в котором часть цветов окажутся физически нереализуемыми, при дальнейшей обработке эти цвета могут благополучно (и правильно!) вернуться в область воспроизводимых цветов.
При сравнении цветовых охватов устройств и цветовых пространств часто используется гамут Пойнтера (Michael R. Pointer). Гамут Пойнтера – это аппроксимация совокупности всех таких цветов, которые могут быть получены окрашиванием поверхности. То есть, с помощью вычитания цветов. Гамут Пойнтера является частью множества всех видимых цветов (которое получается сложением цветов).
Нормировку ЦП и выбор точек белого и черного обсудим в следующем параграфе.
Вначале вернемся к вопросу о том, как объективно определить, что такое белый цвет. Для этого рассмотрим поверхность, которая отражает все длины волн видимого света полностью, без поглощения. Осветим такую поверхность излучением, которое имеет постоянный спектр, то есть, интенсивность излучения одна и та же для всех длин волн (физически измеряемая, а не воспринимаемая!). Естественно назвать цвет такой поверхности при таком освещении белым. Но при освещении этой же поверхности лампами накаливания, в первый момент она покажется желтоватой, а затем, после завершения процессов цветовой адаптации зрительной системы, станет казаться опять белой (возможно, с желтоватым оттенком).
Если сфотографировать какую-нибудь сцену, например, интерьер, освещенную некоторым источником света (illuminant, осветитель), и представить полученное изображение в каком-либо цветовом пространстве, то в качестве цветности точки белого этого ЦП нужно выбрать цветность этого источника освещения. Это позволит называть белыми те предметы, которые, как мы знаем, являются белыми, и будет находиться в согласии с восприятием цвета человеком (а именно, с механизмом хроматической адаптации). При этом результат будет соответствовать 100 %-й адаптации зрительной системы человека. Таким образом, чтобы исключить влияние цветности источника освещения на цвета предметов, нужно считать белым цвет источника освещения.
Поскольку в реальности встречается много разных вариантов освещения, то необходимо определить несколько типичных источников. Каждый источник полностью описывается своим спектром. Воспринимаемый цвет источника однозначно вычисляется по его спектру. Некоторым из осветителей можно поставить в соответствие цветовую температуру. Цветовая температура выражается в градусах Кельвина и равна температуре абсолютно черного тела, при которой его спектр излучения наиболее близок к спектру источника освещения. Стандартные источники освещения сгруппированы по сериям, которые обозначаются следующими буквами:
• A (лампы накаливания, 2856 К),
• D (дневной свет),
• E (постоянный спектр),
• F (флуоресцентные лампы),
• L (световые диоды) и другие.
Для фотографов особенный интерес представляет серия D (дневной свет, приведены также координаты цвета в пространстве CIEXYZ, см. ниже):
• D50 (свет горизонта, теплый дневной свет на восходе или закате, 5003 К), CIEXYZ=[0.9642, 1.0000, 0.8251 (или 0.8249)].
• D55 (дневной свет в середине утра или после обеда, 5503К), CIEXYZ= [0.9568, 1.0000, 0.9214].
• D65 (полуденный свет, состоит из прямого солнечного света и рассеянного света от ясного неба, 6504 К), CIEXYZ= [0.9504, 1.0000, 1.0888 (1.0889)].
• D75 (северное небо, пасмурное небо, 7504 К), CIEXYZ=[0.9496, 1.0000, 1.2261].
Цветности источников освещения серии D различаются:
• оттенками от желтого к голубому, учитывающими соотношение облачности и прямого солнечного света,
• оттенками от розового к зеленому, учитывающими наличие в атмосфере воды в виде пара или дымки.
Перейдем к точкам белого и черного цветовых пространств. Есть смысл отдельно рассматривать яркость и цветность этих точек. Если в качестве яркостей этих точек задать предельные значения, воспроизводимые на конкретном устройстве, то полученное ЦП будет аппаратно-зависимым. Цветность точки белого аппаратно-независимого ЦП обычно задается указанием стандартного источника освещения. Для некоторых аппаратно-независимых ЦП точки белого и черного не заданы, и клиппирование (замена цветов, выходящих за гамут, цветом, лежащим на границе гамута, см. ниже), вызванное их существованием, отсутствует.
Для многих реальных устройств цветности точек белого и черного не совпадают. Для мониторов на электронно-лучевой трубке цветность точки белого зависит от цветностей и относительных яркостей люминофоров, а цветность черного – от отражающих свойств поверхности экрана. Для принтера – соответственно, от цветности бумаги и от цветности чернил. Все это приводит к тому, что линия, содержащая нейтрально серые цвета не является прямой, а плавно изгибается во всех трех измерениях цветового пространства.
В ненормированном ЦП значения координат могут являться физически измеряемыми величинами, выраженными в каких-нибудь единицах, например, в канделах на квадратный метр для оси яркости. Такие значения являются абсолютными, то есть, имеющими самодостаточный смысл.
Для нормированного цветового пространства значения координат безразмерны и линейно преобразованы так, чтобы все они укладывались в отрезок значений с удобными для восприятия (и вычислений) границами. Обычно наибольшее возможное значение выбирают равным единице, 100 % или степени двойки без единицы, а наименьшее возможное значение – равным 0 или степени двойки без единицы с минусом (например, –127). Если для ЦП заданы точки белого или черного, то их координаты также могут служить наибольшими и наименьшими возможными значениями. Значения координат нормированного пространства являются относительными. Их смысл зависит еще и от нормировки, то есть, от того, что принято за граничные значения.
Иногда нормировка ЦП делается так, чтобы была разрешена яркость больше, чем яркость точки белого. Этот «запас» яркости используется для отображения бликов.
Цветовой моделью называют способ построения семейства цветовых пространств. Модели эти параметрические, поэтому, чтобы задать конкретное ЦП, входящее в эту модель, нужно задать конкретные значения параметров модели. Поскольку большинство параметров являются действительными числами, для каждой модели можно определить бесконечно много цветовых пространств. Для обработки фотографий чаще всего используются ЦП, входящие в следующие модели (в скобках перечислены параметры):
• цветовая модель RGB: цвет раскладывается на смесь трех базовых цветов: красный, зеленый и синий, и координатами служат коэффициенты этого разложения (параметры: три базовых цвета, точка белого, функция гамма-компрессии, см. ниже);
• цветовая модель CIELAB: одна координата цвета соответствует яркости, две остальные – цветности (параметр: точка белого);
• цветовая модель CMYK: цвет раскладывается на смесь четырех базовых цветов, голубой, лиловый, желтый и черный (параметры: три базовые цвета CMY, точка белого, алгоритм вычисления координат CMYK).
Вопросами, связанными с восприятием цвета, занимается Международная комиссия по освещению (CIE, Commission internationale de l'éclairage). Отсюда – начало аббревиатуры CIELAB и других.
Прежде чем рассматривать конкретные ЦП этих моделей, нужно описать еще два первичных ЦП, с которых все и началось. Поскольку цвет нельзя измерить физическим прибором, а можно только определить с помощью системы «глаз-мозг», то для того, чтобы сопоставить точкам какого-либо ЦП реальные цвета, без экспериментальных данных о восприятии цвета человеком не обойтись.
Поэтому, сначала опытным путем были получены функции, которые каждому монохромному излучению ставили в соответствие тот цвет, который человек видит, наблюдая это излучение. При этом использовались некоторые эталонные красный, зеленый и синий цвета (кардинальные стимулы). Наблюдаемый монохромный цвет записывался в виде трех чисел, равных таким интенсивностям этих эталонных цветов, при которых цвет смеси (на глаз) совпадал с наблюдаемым монохромным. Результаты усреднялись по некоторому числу наблюдателей с нормальным зрением. Интенсивности эталонных цветов были выбраны так, чтобы равные количества стимулов давали белый цвет, определенный стандартом, действующим в то время. В других аналогичных экспериментах использовался несколько иной способ определения интенсивностей эталонных цветов.
Используя полученные функции, оказалось возможным вычислять воспринимаемый цвет для любого спектра видимого излучения (благодаря законам Грассмана). Таким способом было построено CIERGB, первое ЦП, позволившее оцифровать восприятие цвета зрительной системой человека. Для системы CIERGB белым цветом считается цвет гипотетического равноэнергетического источника, который излучает равномерно на всех длинах волн видимого спектра. А координаты CIERGB были отнормированы так, что для цвета этого источника всегда выполнялось равенство R=G=B, смысл которого состоит в том, что белый цвет не должен быть смещен ни к одному из эталонных цветов.
Линейным преобразованием пространства CIERGB было получено ЦП CIEXYZ, которое оказалось более удобным, чем CIERGB, по следующим причинам.
• Координата Y в CIEXYZ выбрана так, чтобы ее значения задавали яркость цвета.
• Каждый из видимых человеком цветов отображается в этом ЦП так, что все три координаты X, Y, Z неотрицательны.
Кроме этого, CIEXYZ, как и многие другие ЦП, обладает следующими полезными свойствами.
• Если выбрать два цвета и соединить их отрезком, то точки этого отрезка будут соответствовать цветам смесей, которые можно получить, смешивая эти два цвета.
• Если выбрать три цвета и соединить их отрезками так, чтобы получился треугольник, то точки внутри треугольника будут соответствовать цветам смесей, которые можно получить, смешивая эти три цвета.
Пространство CIEXYZ не является однородным по восприятию. Двум сильно различающимся цветам могут соответствовать близкие точки и, наоборот, близким цветам могут соответствовать далекие друг от друга точки. Это ЦП не нормировано и координаты оси Y (яркость) измеряются в канделах на квадратный метр. Нормированный вариант CIEXYZ обозначается nCIEXYZ, в нем Y = 1 для точки белого.
Любопытно, что базовыми стимулами для CIEXYZ являются «цвета», которые не только не воспринимает человек, но и которые нельзя получить с помощью излучения с каким бы то ни было спектром. Но для математики, которая, отталкиваясь от физической реальности, описывает объекты, не существующие в природе, это обычное дело. ЦП CIEXYZ широко используется в качестве эталонного как в теории цвета, так и на практике, в чем легко убедиться, продолжая читать эту книжку.
Перейдем к любимой фотографами цветовой модели RGB. Эта модель была предназначена для описания цветов, воспроизводимых типичными дисплеями на электронно-лучевой трубке. И, следовательно, ЦП этой модели являются устройство-зависимыми. Все ЦП этой модели – это определенные области пространства CIEXYZ, получаемые линейным преобразованием и, следовательно, как и CIEXYZ, являются неоднородными по восприятию. Действительно, если изобразить базовые цвета и цветовой охват какого-либо RGB-пространства в более однородном ЦП, таком как CIELAB, то станет видно, что эти базовые цвета обладают разной яркостью и насыщенностью.
В RGB-модели предполагается, что базовыми стимулами являются красный, зеленый и синий цвета, но не уточняется, какие именно. Если уточнить (и задать остальные параметры модели), то получим конкретное RGB-пространство. Пока уточнение не сделано, координаты цвета являются относительными, измеренными относительно базовых (неизвестных) цветов. В противном случае координаты цвета являются абсолютными, и такое RGB-пространство тоже называется абсолютным.
Другим параметром этой модели является точка белого, которая задает тот оттенок белого, который в этом ЦП будет считаться чисто белым. Если все три координаты равны, то для любого ЦП этой модели получим серый цвет, цветность которого равна цветности заданной точки белого, а яркость тем больше, чем больше это одинаковое значение координат. Все RGB-пространства нормированы так, что точка черного задается координатами {0, 0, 0}, а точка белого – {100 %, 100 %, 100 %}. Вместо 100 % может быть 255, 65535 и так далее, в зависимости от глубины цветности.
Последним параметром этой модели является функция гамма-компрессии. Такая функция описывает опять же свойство электронно-лучевой трубки: яркость пятна на экране примерно пропорциональна напряжению на электродах в степени 2.2. Если требуется, чтобы яркость пятна была пропорциональна значению rgb-координаты, то нужно каждое значение rgb-координаты предварительно возвести в степень 1/2.2. Это и будет функция гамма-компрессии. Разные RGB – пространства могут иметь функции сжатия с разными значениями гамма, не обязательно 2.2. Для случая отсутствия гамма-сжатия можно считать, что величина гамма равна единице. Применение гамма-компрессии приводит к повышению детализации в тенях за счет уменьшения таковой в светлых частях изображения, но об этом ниже.
Рассмотрим конкретные ЦП этой модели.
Пространство sRGB (standard RGB) определено стандартом IEC 61966–2–1, который фиксирует следующие величины параметров RGB-модели:
• конкретные базовые цвета в координатах CIEXYZ, которые примерно соответствуют цветам люминофоров, применяемых в типичных дисплеях на электронно-лучевой трубке;
• точку белого, соответствующую дневному свету D65;
• функцию гамма-компрессии, состоящую из линейной части в окрестности нуля и экспоненциальной части с гамма 2.4 вне этой окрестности, что в целом приблизительно соответствует гамме 2.2 на всем интервале.
Это ЦП полезно тем, что его цветовой охват примерно равен цветовому охвату типичного монитора на электронно-лучевой трубке. sRGB отлично подходит для изображений, предназначенных для интернета или для принтеров невысокого качества. В отличие от других RGB-пространств sRGB иногда называют независимым от устройства. Наверно, потому, что оно опирается на характеристики не одного, а целого класса устройств.
В тех случаях, когда есть файл изображения, но неизвестно, в каком из цветовых пространств даны его координаты, принято считать по умолчанию, что используется sRGB. К сожалению, разные компьютерные программы понимают под sRGB не совсем одно и то же. Если это критично, то в таких случаях всегда лучше принудительно использовать одно и то же определенное описание sRGB, взятое, например, из пакета файлов программы ArgyllCMS или программного обеспечения камер Canon (оба источника считаются точными).
Пространство Adobe RGB (1998) было создано с целью расширить цветовой охват sRGB так, чтобы в него вошли цвета, воспроизводимые на современных принтерах (в основном, в области светлых зеленых и голубых тонов). Пространство Adobe RGB отличается от sRGB тем, что зеленый базовый стимул отодвинут дальше от точки белого (становятся доступны более светлые значения зеленого, чем в sRGB) и используется более простая формула гамма-компрессии (без линейного участка). В результате Adobe RGB охватывает примерно 50 % видимых цветов, отображаемых в CIELAB (а sRGB – только 35 %). Это ЦП подходит для мониторов с широким цветовым охватом и для коммерческой печати. sRGB и Adobe RGB также используются в качестве рабочих пространств графических редакторов.
Пространство ProPhoto RGB или ROMM RGB (Reference Output Medium Metric, гамма = 1.8) используется при обработке фотоизображений высокого качества, особенно для печати на принтерах с широким цветовым охватом. Цветовой охват ProPhoto очень большой, более 90 % цветов, возможных в CIELAB, и практически 100 % цветов, встречающихся в реальном мире. Базовые цвета в ProPhoto выбраны так, чтобы минимизировать изменение цветности при нелинейных преобразованиях яркости. Расплачиваться за широкий охват пришлось тем, что около 13 % точек в нем являются псевдоцветами, то есть, не соответствуют реальным цветам. Использование ProPhoto RGB в качестве рабочего пространства графического редактора требует осторожности, так как для этого нужна большая глубина цветности и монитор с широким гамутом (иначе – работа вслепую).
Пространство scRGB использует те же самые базовые цвета и точки белого и черного, что и sRGB, но значения координат в нем могут больше единицы и меньше нуля (от -0.5 до примерно +7.5). Благодаря этому scRGB содержит бо́льшую часть цветов XYZ (кроме светлых зелено-голубых) и совместимо с sRGB. Кроме того, scRGB позволяет представлять изображения с диапазоном яркостей большим, чем это возможно в sRGB. Хотя и меньшим, чем в цветовых пространствах, предназначенных специально для HDR-изображений. Но цена этого удовольствия состоит в том, что около 80 % цветов scRGB нереализуемы физически. Для scRGB определены две кодировки: 12 бит на канал и 16 бит на канал. Это пространство используется в некоторых компонентах операционной системы Windows 7 (Direct3D, Windows Color System и другие).
Пространство RIMM RGB (Reference Input Medium Metric) предназначено для использования в качестве устройство-независимого пространства для обработки исходных raw-изображений, полученных с помощью обычных входных устройств, таких как цифровые камеры и сканеры. Изображения, закодированные в этом пространстве, могут быть помещены в архив в качестве исходных, не подвергавшихся редактированию (изменению цвета). Определены кодировки 8, 12 и 16 бит на канал. Базовые цвета в RIMM RGB те же, что и в ROMM RGB, которое, напомню, предназначено для редактирования изображений, уже переведенных из raw-формата (подвергавшихся редактированию).
В RIMM RGB предполагается, что цвета сцены воспринимаются при определенных условиях просмотра, в качестве которых выбраны типичные условия съемки на природе (точка белого D50, яркость не менее 1,600 кд/м2 и так далее). Это, конечно, не означает, что снимать нужно именно при таких условиях. Способ кодировки значений координат цвета для RIMM RGB задан исходя из свойств «обобщенного» входного устройства (базовые цвета, точки белого и черного и другие).
RGB-пространства могут быть преобразованы к полярным координатам. Целью такого преобразования является попытка приписать координатам цвета более понятный смысл, чем R, G, B, а именно: тон, насыщенность и яркость. Представить наглядно, как это делается, поможет следующее рассуждение. Возьмем какое-либо RGB-пространство. Напомню, что это – куб, в котором нейтрально серые цвета расположены на диагонали из вершины {0, 0, 0} в вершину {100 %, 100 %, 100 %}. Повернем этот куб так, чтобы эта диагональ стала вертикальной, а черная вершина куба оказалась внизу. Нелинейным преобразованием «скруглим» куб, чтобы он превратился в биконус. Получим цветовое пространство HSL. Остальные ЦП этой серии получаются другими нелинейными преобразованиями куба RGB, стоящего на вершине {0, 0, 0}.
Поскольку для перехода от RGB к полярным координатам используются примитивные формулы, не учитывающие особенности восприятия цвета человеком, то свойства полученных координат сильно отличаются от заявленных. Так, например в пространстве HSV (hue, saturation, value или HSB, brightness) среди точек, имеющих 100 %-е насыщение, светлые точки кажутся гораздо менее насыщенными, чем темные. В пространстве HSL (L – lightness) насыщенность фактически определена как доля от наибольшей насыщенности, возможной при данной яркости. Насыщенные желтый и голубой цвета, имеющие в этих пространствах одинаковые значения координат «яркость» и «насыщенность», на глаз воспринимаются как цвета с разной яркостью.
Для пространства HSV максимально увеличить координату V для какого-нибудь цвета означает получить самый яркий цвет для данной пары тон-насыщенность. Для пространства HSL максимально увеличить координату L означает получить белый цвет, независимо от значений остальных координат.
Такие «странности» приводят к тому, что вместо этих пространств стараются использовать цветовую модель CIELAB. Особенно тогда, когда важно четко отделить цветность от яркости.
В пространствах HSV, …сохраняется неоднородность по восприятию, присутствующая в исходных RGB-пространствах. Для того чтобы точно определить цвет, выраженный в координатах этих пространств, необходимо знать свойства того RGB-пространства, от которого они произведены (базовые цвета, точку белого и формулу гамма-коррекции).
В заключение приведем таблицу, содержащую значения некоторых параметров модели RGB для перечисленных выше цветовых пространств. В таблице даны значения координат CIEXYZ, пересчитанные по формулам x=X/(X+Y+Z), y=Y/(X+Y+Z).
На этом закончим краткий обзор модели RGB. Скажем еще, что существуют устройства, использующие цветовые модели с количеством базовых стимулов большим трех. Например, модели RYGB и RYGCB (в телевизорах фирмы Шарп). Гамут последней цветовой модели покрывает 99 % гамута Пойнтера.
В цветовой модели 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*.
После того как были определены цветовые пространства, нужно объяснить, как преобразовывать изображения из одного цветового пространства в другое. В процессе компьютерной обработки неизбежно приходится это делать, явно или неявно. Так, картинка, полученная сканером или цифровой фотокамерой, представляет собой множество точек (пикселей), координаты которых даны в цветовом пространстве данного устройства. Эта картинка преобразуется в независящее от устройства рабочее цветовое пространство графического редактора. Затем, для просмотра – в цветовое пространство монитора. И, наконец, после обработки в редакторе – в цветовое пространство принтера. Если эти преобразования не делать, то камера запишет в файл одни цвета, монитор покажет другие, а принтер напечатает третьи, несмотря на то, что во всех трех случаях числовые значения координат цвета в файле будут одними и теми же. И останется только надеяться, что все три цветовых пространства не будут сильно различаться.
Но, как правило, цветовые охваты входного и выходного цветового пространства далеко не одинаковые. Например, как уже многократно упоминалось, некоторые светлые зелено-голубые оттенки обычный струйный принтер может воспроизвести, а обычный монитор – нет. Поэтому при переходе сохранить все цвета не удастся, и нужно решить, чем можно будет пожертвовать и каким образом.
Чтобы определить, каким цветом выходного пространства изобразить данный цвет входного (то есть, задать gamut mapping, соответствие цветовых охватов), таблицу соответствия, конечно, не составляют. Вместо этого задают алгоритм такого преобразования (это еще называется «вид колориметрического отображения» или «тип цветопередачи», rendering intent).
Для обработки пейзажей важны два следующих алгоритма преобразования цветовых пространств: перцептивный и колориметрический. Первый пытается сохранить общий вид картинки в ущерб точности цветов. Второй, наоборот, пытается точно воспроизвести цвета, даже если при этом общий вид картинки пострадает.
Колориметрических алгоритмов тоже два: относительный (относительно точки белого среды, то есть, бумаги, экрана монитора, пленки слайда или виртуальной среды аппаратно-независимого ЦП) и абсолютный. Абсолютный старается передать цвета без каких-либо изменений, а относительный – изменяет цвета так, чтобы точка белого входного пространства изображалась цветом точки белого выходного пространства.
В первом приближении эти алгоритмы можно описать так (для случая, когда цветовой охват выходного пространства меньше).
Перцептивное, или воспринимаемое, отображение равномерно (или S-образно) сжимает входное цветовое пространство так, чтобы оно целиком вошло в выходное. При этом изменяются все цвета, даже и те, которые входят в оба пространства и, вообще говоря, могли бы не изменяться при преобразовании. Сделано это для того, чтобы сохранить соотношение для всех цветов, а не только для воспроизводимых в выходном пространстве. Если не сжимать все цвета входного пространства, то чтобы «втиснуть» в выходное пространство новые цвета не было бы места. Таким образом, при перцептивном отображении сохраняется правильное соотношение между всеми цветами входного пространства, но теряется идентичность цветов из общей части обоих пространств (при переходе такие цвета тоже изменяются).
Сохранение соотношения всех цветов означает, что для любых двух цветов выполняется следующее:
• если до преобразования один цвет был светлее другого, то и после преобразования он останется светлее, хотя яркость обоих цветов может измениться;
• если до преобразования один цвет был насыщеннее другого, то и после преобразования он останется насыщеннее, хотя насыщенность обоих цветов может измениться;
• если до преобразования один цвет был, например, зеленее другого, то и после преобразования он останется зеленее, хотя цветовой тон обоих цветов может измениться.
При сжатии ЦП, контраст и насыщенность всегда падают. S-образное сжатие позволяет лучше (по сравнению с линейным случаем) сохранить контраст в средних тонах. Но за счет еще большего уменьшения контраста в темных и светлых частях изображения.
Разумеется, если выходное пространство больше входного, то перцептивное отображение растягивает входное цветовое пространство, а контраст и насыщенность при этом возрастают.
Все это только в первом приближении. В идеале перцептивное отображение должно использовать цветовой охват не всего входного пространства, а гамут конкретного изображения, представленного в этом пространстве. Последний часто существенно меньше, и требует меньшего сжатия и, следовательно, не такого сильного уменьшения насыщенности и контраста.
На практике перцептивное отображение использует некоторую промежуточную степень сжатия ЦП, которая зафиксирована в профиле соответствующего устройства. Такую степень каждый автор профиля определяет по-своему, исходя из цветового охвата устройства и некоторой оценки того цветового охвата, который обычно встречается в фотографиях.
Относительное колориметрическое отображение преобразует яркости линейно и так, чтобы точка белого входного пространства попала в точку белого выходного пространства. Таким образом, детали светлых частей изображения не будут потеряны, но за счет ухудшения других цветов. Так, если точка белого выходного пространства темнее, то и вся картинка станет темнее, и может произойти потеря деталей в тенях. Если цветности точек белого входного и выходного пространств разные, то цвета входного пространства изменяются соответственно. Например, если точка белого выходного пространства голубее, то все цвета входного пространства смещаются в голубую сторону.
Для того чтобы смягчить недостатки относительного отображения, применяют «компенсацию точки черного». Идея этого алгоритма состоит в том, чтобы с помощью линейного (или нелинейного) преобразования цвета в области теней добиться того, чтобы, дополнительно, точка черного входного пространства попала в точку черного выходного пространства. Таким образом, детали сохраняются и в светлых и в темных частях изображения, но падает общий контраст и насыщенность.
В том случае, когда точка черного выходного пространства светлее точки черного входного пространства, тени получаются светлее, а цвета в тенях менее насыщенными. В этом случае результат применения этого алгоритма можно представить как добавление небольшого количества белого цвета ко всем или только к темным цветам картинки (эффект тумана). Или вычитание (туман рассеялся), если точка черного выходного пространства темнее.
А что происходит с цветностью? В отличие от перцептивного отображения, при относительном отображении идентичность цветов из общей части обоих пространств сохраняется, но только в относительном смысле, относительно точки белого. Например, точка белого бумаги часто более желтая, чем точка белого монитора. Выравнивание точек белого приведет к тому, что области фотографии, выглядящие белыми на мониторе, будут напечатаны желтоватыми и все остальные цвета сдвинутся в желтую сторону на величину, равную разности между этими двумя точками белого. Кроме этого, поскольку в выходном пространстве нет места для цветов входного пространства, отсутствующих в выходном, то такие цвета заменяются наиболее близкими к ним цветами выходного пространства (например, с помощью понижения насыщенности). В результате происходит клиппирование цвета, то есть, два разных цвета входного пространства могут перейти в один и тот же цвет выходного пространства.
Если печатать картинку на бумаге разного оттенка с помощью относительного отображения, то принтер будет в каждом случае использовать одно и то же количество чернил для соответствующих точек изображения. Плотность красок будет одна и та же, но картинки, размещенные рядом друг с другом, могут выглядеть по-разному, потому что глаза не смогут одновременно адаптироваться к разным цветам бумаги и будут воспринимать цвета картинки в сумме с цветом бумаги. Если картинки сравнивать по очереди, так, чтобы глаза успевали переадаптироваться, то обнаружить разницу будет труднее.
Абсолютное колориметрическое отображение полностью сохраняет идентичность цветов из общей части обоих пространств, не учитывая различие точек белого и черного. В рассмотренном выше примере цвета, воспроизводимые и на мониторе и на принтере, будут напечатаны без изменений. Цвета, невоспроизводимые на принтере, будут клиппированы. В частности, области фотографии, выглядящие белыми на мониторе, будут напечатаны белыми, если белый цвет воспроизводится на принтере с желтоватой бумагой. Если же нет, то белый цвет будет клиппирован (например, заменен на желтоватый).
Если нужно посмотреть на экране монитора, как будет выглядеть эта же картинка, напечатанная на бумаге, то какое отображение следует использовать? Для простоты рассмотрим случай, когда цветовой охват картинки полностью вписывается в цветовой охват монитора. В случае абсолютного колориметрического отображения на экране воспроизведется желтоватый цвет бумаги, а для относительного – нет.
Абсолютное колориметрическое отображение используется, в частности, для того, чтобы напечатать картинку на одном принтере так, чтобы она выглядела так же, как если бы была напечатана на другом принтере или на печатной машине. При этом, если точка белого входного пространства темнее точки белого выходного, то белые области изображения будут напечатаны темнее, чем точка белого выходного пространства. При данном отображении, в отличие от относительного, могут возникать границы между пустым пространством (полями) и белыми областями картинки.
Если печатать картинку на бумаге разного цвета с помощью абсолютного отображения, то принтер учтет разные точки белого и будет использовать разные количества чернил для соответствующих точек изображения. Плотность красок будет разная, но картинки, размещенные рядом друг с другом, могут выглядеть одинаково.
Чтобы наглядно продемонстрировать разницу между двумя видами колориметрического отображения, я подкорректировал профиль принтера так, чтобы сместить точку белого в сторону желтого цвета. Точка белого в профиле была задана в пространстве CIEXYZ, поэтому я уменьшил значение координаты Z. На рисунке 2.1 показана получившаяся точка белого и результаты имитации распечатки принтера на экране монитора (softproof), для двух видов колориметрического отображения (река Немда, недалеко от города Советск, Кировская область).
Рис. 2.1. Имитация распечатки принтера на экране монитора с использованием разных колориметрических отображений: а) точка белого, заданная в профиле; б) абсолютное колориметрическое; в) относительное колориметрическое. Получено с помощью программы RawTherapee (пояснения в тексте).
Видим, что относительное колориметрическое отображение построило картинку относительно точки белого монитора, что привело к исчезновению влияния точки белого для принтера.
Так какой же вариант колориметрического отображения выбрать? Ответ на этот вопрос зависит от разных факторов:
• от цветового охвата конкретного изображения,
• от цели обработки изображения (нужного уровня цветовоспроизведения, см. ниже).
Например, если цвета, которые были бы клиппированы при относительном отображении, составляют незначительную часть данной картинки, и детали в этих цветах несущественны, то, возможно, следует выбрать именно этот вид отображения.
Понимая свойства колориметрических отображений, можно предвидеть (и подтвердить экспериментально), что произойдет с конкретным изображением. Упрощая, можно сказать, что перцептивное отображение изменяет все цвета, но сохраняет то, как изображение воспринимается, а колориметрическое сохраняет некоторые цвета, а другие портит. Перцептивное отображение вписывает изображение в цветовой охват и диапазон яркостей выходного пространства, а колориметрическое копирует цвета (для относительного – с учетом разницы между точками белого), которые находятся внутри цветового охвата выходного пространства, и минимальным образом искажает цвета, которые находятся вне его. Перцептивное отображение создает визуально-комфортное изображение, например, насыщенность может быть повышена, если выходное ЦП это позволяет. Перцептивное отображение используется, когда нужно правильно изобразить плавные переходы и градиенты цвета на границе цветового охвата выходного пространства. Колориметрическое (оба варианта) используется тогда, когда важнее обеспечить тождественность цветов. Но при этом не используются дополнительные цвета выходного ЦП (если они есть) и может произойти клиппирование цвета.
Если точки белого входного и выходного ЦП совпадают, то оба колориметрических отображения дадут одинаковый результат.
Если цветовой охват принтера очень большой (например, как у принтера Canon imagePROGRAF PRO-500, использующего 11 видов чернил), то абсолютное колориметрическое отображение может дать более точную цветопередачу для фотографий.
Одним из подходов к повышению качества алгоритмов преобразования цветовых охватов состоит в том, что для одного ЦП задают многооболочечный цветовой охват (multishelled), состоящий из нескольких вложенных друг в друга цветовых охватов: справочного или типового (reference gamut), правдоподобного (plausible gamut) и возможного (possible gamut). И алгоритмы сопоставления цветовых охватов применяют разные правила для разных областей, на которые эти оболочки разбивают ЦП. Например, типовой гамут может иметь точку белого темнее точки белого правдоподобного гамута. Первая используется для чисто белого цвета, а вторая – для изображения бликов. Аналогично точка черного типового гамута может использоваться в качестве предела при изображении деталей в тенях, а точка черного правдоподобного гамута быть еще темнее.
Как определить, что нужно сделать с цветом конкретной фотографии, что можно, а что нельзя? Различают несколько вариантов подхода к решению этой проблемы. Выбор конкретного варианта (уровня цветовоспроизведения), естественно, зависит от того, как будет в дальнейшем использоваться изображение. Возможны следующие уровни цветовоспроизведения:
• произвольное (как получится),
• визуально-комфортное (приятное на вид, pleasing color reproduction),
• колориметрическое (используются калибровка и профилирование, условия просмотра одинаковы, см. следующий параграф),
• по восприятию (колориметрическое с учетом разных условий просмотра),
• приоритетное (целенаправленная манипуляция цветом ради достижения нужного эффекта, color preference reproduction),
• оптимальная репродукция: максимальное сохранение цветового тона, минимальное масштабирование светлоты с сохранением отношений и среднего уровня, масштабирование насыщенности с сохранением отношений.
В пейзажной фотографии чаще всего применяют визуально-комфортное и приоритетное цветовоспроизведение. Но повышение насыщенности и контраста в целях визуально-комфортного цветовоспроизведения является в то же время и частичным учетом разницы в условиях просмотра реального пейзажа и отпечатка фотоснимка, то есть цветовоспроизведением по восприятию.
Визуально-комфортному цветовоспроизведению способствует, помимо всего прочего, и применение формальных правил типа «правила третей» или правила «60–30–10». Последнее правило используется дизайнерами и состоит в том, что доминантный цвет должен занимать 60 % площади картинки, а два акцентирующих цвета – соответственно 30 % и 10 %. Не знаю, применимо ли это правило к снимкам пейзажей. Скажем, зелень – 60 %, синее небо – 30 % и что-нибудь необычное – 10 %?
Колориметрические отображения, описанные в предыдущем разделе, определяли способ преобразования одного цветового пространства в другое. Модели восприятия цвета (color appearance model) используются для описания преобразования цвета с учетом не только разных цветовых охватов используемых пространств и разных точек белого, но и еще двух обстоятельств:
• условий просмотра конечного изображения (viewing conditions),
• возможного целенаправленного изменения цвета изображения (image preference adjustments).
Под целенаправленным изменением цвета изображения подразумевается намеренное искажение цвета для того, чтобы получить нужный эффект. Для пейзажей часто усиливают насыщенность оттенков, зелень листвы, синеву неба. В этих случаях считают более важным добиться желаемого впечатления, нежели воспроизвести реальные цвета.
К условиям просмотра относятся:
1) спектральное распределение энергии источника освещения (при просмотре),
2) уровень фотометрической яркости изображения, фона и окружения,
3) размер цветного образца, расстояние и геометрия просмотра,
4) степень адаптации зрительной системы наблюдателя.
То, какой цвет человек видит, рассматривая предмет, определяется не только спектральным распределением энергии отраженного света, но и размером, формой, структурой предмета, фоном, а также состоянием адаптации зрительной системы наблюдателя и его личным опытом предыдущих наблюдений этого предмета. Для того чтобы уменьшить влияние условий просмотра, художники, в частности, используют серый холст, а графические редакторы – темно-серый фон.
Кроме перечисленного на восприятие изображения оказывает влияние посторонний свет, отраженный от поверхности картинки (veiling glare), например, отблеск, вызванный глянцем. Такой отблеск осветляет и уменьшает контраст темных частей картинки.
Обнаружено много ситуаций, в которых воспринимаемый цвет, яркость, и другие свойства отличаются от фактических. Например:
• симультанный контраст (simultaneous contrast): изменение воспринимаемой яркости и цветового тона при изменении яркости и цвета фона;
• эффект Бецольда-Брюкке (Bezold-Brucke): изменение воспринимаемого цветового тона при изменении фотометрической яркости (luminance);
• эффект Эбнея (Abney): изменение воспринимаемого цветового тона при изменении насыщенности (например, при добавлении белого цвета);
• эффект Ханта (Hunt): увеличение воспринимаемой полноты цвета (colorfulness) с увеличением фотометрической яркости;
• эффект Стивенса (Stevens): увеличение воспринимаемого контраста (brightness contrast) с увеличением фотометрической яркости;
• эффект Бартлесона-Бренемана (Bartleson-Breneman): воспринимаемый контраст уменьшается при затемнении окружения (surround);
• эффект размера (color size effect): воспринимаемая яркость и цветность (lightness and chroma) увеличиваются с ростом размера цветового образца;
• эффект Гельмгольца-Кольрауша (Helmholtz—Kohlrausch): воспринимаемая яркость возрастает с ростом насыщенности.
Воспринимаемая яркость очень сильно зависит от степени адаптации зрительной системы к (изменившейся) яркости освещения. Если яркость освещения возросла, говорят об адаптации к свету, то есть, об уменьшении чувствительности зрительной системы. Если яркость освещения, наоборот, уменьшилась, говорят о темновой адаптации, то есть, об увеличении