В рейтинге самых популярных вопросов по работе с цветом первое место по праву принадлежит вопросу: «Как сделать так, чтобы на принтере (печати) было то же, что на экране?» Корректный ответ должен заключать краткий курс теории цвета, с объяснением, почему это невозможно сейчас и на интересующем вас принтере. Некорректный — набор бессмысленных рекомендаций по «настройке системы». Впрочем, судите сами.
Возьмём среднестатистическую компьютерную систему, в состав которой, помимо системного блока, входит принтер, монитор (скорее всего, ЖК), в качестве устройств ввода используются сканер и цифровой фотоаппарат, а для работы с цветом — Adobe Photoshop, из него же осуществляется вывод на печать.
Теоретически, всё должно работать, если каждому устройству сопоставлен адекватный цветовой профиль. Применительно к задаче «получить то же, что на экране» ситуация такова.
Вы открываете изображение в Photoshop. В соответствии с идеологией управления цветом, открытому документу сопоставлено некоторое рабочее цветовое пространство, которое обеспечивает однозначную интерпретацию RGB-данных файла (скажем, sRGB). Для корректного отображения цветов на экране система управления цветом пересчитывает координаты цветов документа в цветовое пространство устройства отображения (монитора). На экране изображение, скорректированное с учётом профиля монитора. И если профиль не соответствует фактической цветопередаче видеосистемы, то дальнейшее решение задачи становится бессмысленным.
Вывод: прежде чем приступать к решению задачи «что вижу, то и получаю», нужно провести характеризацию или калибровку монитора. А поскольку в отсутствие серьёзного измерительного оборудования характеризацию ЖК-монитора не провести, то перспективы не самые радужные.
Но предположим, вам повезло, и профиль монитора от производителя оказался адекватным (не так уж нереально). Тогда картинка на экране максимально соответствует цветам рабочего цветового пространства. Полдела сделано.
А что происходит, когда вы отправляете изображение на печать? В зависимости от настроек печати в Photoshop есть два варианта:
- Photoshop управляет цветом печати (а на самом деле цветовыми преобразованиями) (Let Photoshop Determine Colors);
- принтер управляет цветами печати (Let Printer Determine Colors).
В обоих случаях драйвер принтера из управления цветом не исключить. А цветоделение во всех современных принтерах надёжно спрятано, и повлиять на него никак нельзя. Остаётся довериться производителю. Описывать же настройки для всех устройств печати — дело неблагодарное. И даже если предположить, что все настройки выполнены правильно, никто не поручится за аккуратность цветовых преобразований в драйвере.
Условий слишком много, и каждая ошибка фатальна.
Метод чёрного ящика
Использование системы в качестве копира
Попробуем подступиться к задаче с другой стороны. Представим компьютерную систему в виде чёрного ящика, обеспечивающего вывод на печать при фиксированных настройках. Каждое устройство реализует некоторую функцию цветового преобразования; обозначим их C(x) — для сканера, П(x) — для принтера. Обе нам в общем случае неизвестны (в системе управления цветом за их описание отвечают цветовые профили, но мы предполагаем, что CMS по какой-то причине не справляется с задачей).
На входе системы — изображение-файл, которое мы обрабатываем в Photoshop, а на выходе — отпечаток. Чтобы обеспечить обратную связь, отсканируем отпечаток и сравним с исходным файлом-изображением. Разумеется, сканер вносит цветовые искажения, но нас это пока не смущает. Сможет ли такая система позволить нам настроить печать?
Мы имеем дело со «сквозной калибровкой». Поскольку нельзя обеспечить точность на каждом этапе, ограничимся только конечной точкой, невзирая на искажения в цепочке цветовых преобразований.
Для простоты представим, что устройство печати чёрно-белое. Исходное изображение — калибровочный RGB-образец Xо в градациях серого с равномерным шагом приращения по светлоте. Отпечатаем его. Принтер преобразует входные координаты цвета Xо электронного шаблона в яркости отпечатанных полей Xпо. При сканировании отпечатка поля Xпо преобразуются в яркости отсканированного RGB-файла Xспо.
Если теперь построим кривую, которая переводит входные значения, полученные после сканирования Xспо, в соответствующие значения исходного калибровочного изображения Xо, то получим функцию K(x) — компенсации цветовых отклонений в системе (важно сгладить полученную кривую во избежание эффектов постеризации). Поскольку аналитически функцию не описать, её можно просто табулировать или представить в виде тоновой кривой.
Если теперь к любому отсканированному изображению применить эту функцию и сразу напечатать, на выходе должно быть изображение, идентичное сканируемому! По крайней мере, в теории. Формально изображение может многократно проходить через цепочку «принтер—отпечаток—сканер—коррекция—принтер…», всякий раз возвращаясь в исходное состояние. Цепочка может начинаться с любого места; взяв её в сочетании «отпечаток—сканер—коррекция—принтер—отпечаток», получим копир, даже не имея никаких сведений о цветопередаче принтера и сканера! И всего-то понадобился один тестовый отпечаток серой шкалы!
Да, процедура не может гарантировать корректное отображение на экране монитора, ни до компенсирующей коррекции, ни с ней. Цветов «как на экране» так не добиться, ведь нам не отделить искажения, внесённые принтером, от возникших при сканировании. Если только неизвестна цветопередача сканера! А ведь его цветопередача зачастую более чем удовлетворительна (благо технология набила «шишки» лет 10 назад). В крайнем случае, можно выполнить характеризацию сканера с помощью стандартного тестового эталона. Стоимость калибровочной «мишени» несоизмеримо меньше стоимости спектрофотометра, необходимого для характеризации того же принтера.
Как только сканер в системе становится «прозрачным звеном», мы автоматически получаем, что все искажения вносятся только принтером, а рассчитанная обратная функция нужна только для печати. Если ваш сканер имеет нормальную цветопередачу, то и на экране будут правильные цвета!
Недостаток метода один — перед печатью надо всякий раз применять компенсирующую коррекцию. Но это всё же лучше, чем отсутствие решения.
Так почему же тогда сквозная калибровка не используется повсеместно? Причин много: сложность решения задачи для «цветного» случая, различия в цветовых охватах сканера, принтера и проч., низкая устойчивость алгоритма к шумам, проблемы с метамерностью печатных красителей. Но главное — сквозная калибровка плохо укладывается в идеологию систем управления цветом. Более того — подрывает её!
Так не рано ли мы отказались от «дедовских» методов, тем более что они работают?! По крайней мере, проблема «что-то принтер печатает темнее, чем надо» решается этим способом в два счёта.
Разумеется, апологеты систем управления цветом приведут тысячу аргументов, почему сканер не может быть использован в качестве измерительного устройства и погрешность будет чудовищной. Но всё-таки она вертится! И не случайно внутренние сканеры самокалибровки стоят в некоторых ЦПМ.
Ещё раз подчёркиваю: описанная процедура гарантированно решает только проблему корректной передачи светлоты отпечатков. Для коррекции цветовых отклонений требуются более сложные печатные тесты. При сканировании необходимо полностью исключить операции автоматической цветокоррекции и повышения резкости. Все операции по выводу тестового образца, равно как и финальный вывод, нужно осуществлять при идентичных настройках управления цветом. Вывод на печать — из модели RGB.
Конечно же, остались без ответов вопросы:
Как выглядит калибровочный шаблон для цветной печати?
Сколько итераций требуется для обеспечения достаточной точности?
Какова максимально гарантированная точность?
Можно ли реализовать механизм сквозной калибровки в механизмах системы управления цветом, например, в виде специального профиля?
Есть о чём подумать в будущем году!
Об авторе: Александр Миловский (www.milovsky.ru), эксперт по цветокоррекции и обработке изображений, преподаватель Санкт-Петербургского политехнического университета, сертифицированный эксперт Adobe.