Цветопередача
Душным летом 1995 года в моей квартире появилось чудо техники — цветной струйный принтер. Все столь обыденные сейчас действия — установка драйверов, калибровка картриджей, прочистка головок были маленькими проблемами, которые решались, оставляя радостное чувство победы над заморскими технологиями. И на общем фоне совершенно не выделялась маленькая проблемка — как сделать так, чтобы синий цвет, печатаемый принтером был похож на синий цвет на мониторе...
И вот — прошли годы, производители принтеров получили тысячи патентов на различные технологии, написаны миллионы строк кода драйверов и систем контроля цвета, пролиты моря чернил и вырублены на бумагу леса — а вразумительного ответа на вопрос так и не существует. Так что же это за зверь такой — цветопередача?
Известно, что цвет — это длина электромагнитной волны, регистрируемой нашим глазом. В дальнейшем придётся отталкиваться от такого объективного определения, хотя на самом деле воспринимаемый нами цвет есть понятие глубоко субъективное и зависящее от множества принципиально неучитываемых параметров — от меню за последние пару дней до просто настроения. Но измерением цвета по длине волны занимаются разве что физики, а для практических нужд используется тот факт, что глаз выделяет из света три компоненты, которые условно соотносят к красному, синему и зелёному. Смешивая лучи этих цветов в разных пропорциях можно получить любой видимый глазом цвет. Это и есть основа цветовой системы RGB, в которой и работают практически все мониторы, что прекрасно видно, если рассмотреть точки экрана под лупой.
Однако уже на этом шаге не всё так просто. Для понятий «красный», «синий» и «зелёный» определены точные длины волн — но на самом деле колбочки сетчатки чувствуют совсем не их! Ещё в 1931 году CIE (Commission Internationale de l’Eclairage) были замерены реакции глаза на свет различной длины волны, и оказалось, что кривые отзыва очень далеки от логически удобоваримых. (рис.1)
Их, не мудрствуя лукаво, назвали X, Y и Z и решили принять их за основу измерения цвета, а чтобы немного удобнее ориентироваться в получаемом цвете разработали модель xyY — где Y есть уже параметр яркости, а x и y получаются из X, Y и Z: x=X/(X+Y+Z), y=Y/(X+Y+Z). Иногда вводят и z=Z/(X+Y+Z), но, очевидно, z=1-x-y. В координатах xy обычно отображают локус — набор всех цветов, воспринимаемых глазом. (рис.2, рис.3)
Однако такая система чересчур неравномерна — например, изменив один параметр на единицу, мы можем почти не заметить разницы в цвете, а изменив на ту же единицу другой — получить нечто совсем новое. Степень нелинейности достигает при этом 1:80! (рис.4).
Чтобы хоть как-то компенсировать это, начали придумывать новые системы, производные от XYZ: YUV, Lab, Luv и прочие. YUV, Luv и иже с ними используются, как правило, в телевизионном деле, а вот Lab используется в компьютерной вёрске всё чаще. (См., например, статью про JPEG-артефакты. Более того, в 1981 году выяснилось, что непосредственно в мозг глаз передаёт информацию в очень похожем формате (хотя и не точно таком).
Но главная беда всех производных систем цветопередачи — они относительны. В них передаётся информация о том, как цвета разных точек изображения соотносятся друг с другом — но не как они должны выглядеть! Если вы читаете этот текст с монитора и видите его на белом фоне, который передаётся на монитор как максимум красного, синего и зелёного, это вовсе не значит, что этот белый фон имеет такой же цвет, как и у меня. Достаточно просто тронуть регулировки яркости и контрастности — или изменить внешнее освещение — чтобы увидеть, как изменяется цвет.
Сказаное выше касается излучаемого света, или аддитивного цвета — то есть когда при складываении каналов мы увеличиваем яркость. А любая распечатка передаёт цвет отражением части спектра падающего на него света, так называемым субстрактивным цветом — при добавлении красителей мы уменьшаем яркость. И здесь снова проявляется проблема внешнего освещения: ярким солнечным днём на улице и поздним вечером за тусклой лампочкой одна и та же распечатка будет смотреться совсем по-разному (рис.5).
Но это, всё-таки, проблемы, от компьютерной темы отдалённые; а как быть нам, обладателсям мегабайт и гигагерцов? Что сделано в этой области для нас, домашних пользователей?
Идея контроля цвета в компьютерных системах достаточно проста: выбирается некое подмножество цветов, а каждому устройству приписывается профиль — правило пересчёта из цветового пространства данного устройства в это подмножество. Стандарт на профили устройств был разработан в 1993 году (хотя работы ведутся до сих пор) международным консорциумом по цвету, ICC. Рабочее подмножество описывается в координатах XYZ, а в файле профиля указывается тип устройства (сканер, монитор, принтер), цветовой охват и таблицы для пересчёта из пространства устройства в XYZ или Lab. Причём, поскольку пересчитывать можно по-разному, хранятся четыре варианта таблиц: absolute colorimetric — когда считается, что белый цвет одинаков, relative colorimetric — когда осуществляется пересчёт и белого цвета, perceptual — когда искажаются цвета не только вне цветового охвата, но и близкие к его краям: это обеспечивает лучшее восприятие цвета глазом, и, наконец, saturation — искажение цветов ради получения наиболее насыщеных оттенков, что важно для рисунков и бизнес-графики.
Заниматься сквозным контролем цвета всех изображений, проходящих через компьютер, призвана Color Management System — система управлений цветом, которых, на самом деле, существует достаточно много — Kodak, Agfa, Apple с разной степенью агрессивности продвигают именно свои системы. Одна из них, от Microsoft, встроена непосредственно в Windows; собственно, она не сильно отличается от других, но профессиональные программы — такие как Adobe PhotoShop и иже с ним — позволяют пользоваться любой другой системой, а так же создавать свои собственные профили. В качестве же универсального цветового пространства Microsoft совместно с Hewlett-Packard продвигают стандарт sRGB — «урезаный» вариант, посильный для middle-end-техники.
Казалось бы, какие могут быть проблемы, когда за дело берутся такие гиганты рынка? Увы, как ни странно, особого облегчения CMS не приносит. Во-первых, все цветовые преобразования являются необратимыми. Простейший пример — нарисуйте в PhotoShop несколько прямоугольничков разного цвета, для примера, в RGB. Запишите их цвета и переведите картинку в любой другой режим — Lab, CMYK… а потом — обратно. Смею вас уверить, что не изменится только белый (потому что преобразования абсолютные), и, в лучшем случае, некоторые серые оттенки. А ведь файл в CMS претерпевает по меньшей мере два преобразования — на входе со сканера или камеры и на выходе — при печати. (рис. 6).
Во-вторых, никуда не исчезла проблема белого цвета. До тех пор, пока лист бумаги не будет выглядеть так же, как и белый экран монитора — похожесть цветов может быть только относительной. В третьих, два принтера одной модели — или даже один и тот же принтер, но в разных условиях — может выдать очень малопохожие распечатки для одних и тех же файлов. И это уже не вдаваясь в такие подробности, как недостаточность таблиц профилей — зачастую в них идут восьмибитные данные…
Кстати, тех, кто активно печатает дома с прицелом на некоторую профессиональность и подготавливает файлы в CMYK ожидает сюрприз от Microsoft: подсистема печати Windows понимает только RGB! И если вы оправляете на печать из того же PhotoShop CMYK-картинку, то сначала сам PhotoShop переведёт её в RGB, а уже потом драйвер принтера пересчитает обратно в CMYK. Именно поэтому если вы хотите получить на принтере чистый мажентовый цвет, надо использовать не CMYK (0,100,0,0) а RGB (255,0,255). Единственным спасением для CMYK в Windows является использование postscript-принтера, чем и пользуются профессиональные дизайнеры и цветоделители.
Так как же быть? Совет стар и прост: расслабится. У вас есть фотография, вы сканируете её, печатаете на цветном струйнике и получается похоже. Более или менее. Если вам так уж интересно выбрать оптимальный вариант — распечатайте её в четырёх-пяти экземплярах, с различными установками цветопередачи. Но не стоит рассчитывать, что найденное сочетание установок даст столь же хорошую распечатку у вашего друга… или даже на следующей фотографии.
А синий — он и в Африке синий.