Цветовая, говорите, наука?

О сколько нам открытий чудных....
Пушкин
А ты, Вовочка, молчи, а то мы всю физику к ..уям сведем...
анекдот

О консенсусе

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

Ну вот есть файл (RGB), к нему прилагается профиль (ICC), следует ожидать что на одном и том же устройстве (LCD мониторе, чтобы быть конкретным) он при включенном Color Engine отобразится более-менее разумно и одинаково.

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

Конечно, жизнь несколько богаче и 2.5 года назад я уже исследовал проблему точности CMM (Color Management Module) и написал про это серию статей. Но я наблюдал в эксперименте разумные ошибки - 5-6, а для хороших CMM и 8 бит данных сохранялись, отклонения от смены CMM в худшем случае были заметны глазом, но не были фатальными.

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

Да, на картинке слева вы видите кусочек из этого файла, показанный на одном и том же мониторе, с одним и тем же профилем монитора, одним и тем же профилем при цветовых данных файла, одной и той же программой (Adobe Photoshop) с одними и теми же настройками за исключением одной....

Показ файла

Начнем с картинки, которая шокировала автора исходного письма в Colorsync-users. Берем Мак (с Snow Leopard), берем Photoshop CS4, ставим Apple Colorsync в качестве Color Engine и видим отличные розовые облака. Скажите, где вы такую траву берете почему вы стали художником если вы так видите:

Необходимое лирическое отступление: картинки здесь и далее получены следующим образом:

  • Сделан скриншот (фотошоповских окошек). Скриншот у color-aware программы будет в цветовом пространстве монитора.
  • Результаты скриншота сконвертированы в sRGB.
  • Результат конверсии визуально проконтролирован, с учетом того, что написано в данной статье, - это необходимо.

А теперь возьмем и поменяем Color Engine на Adobe CMM:

Почувствуйте разницу....

Но и это не все. Идем на PC, открываем тот же файл в Фотошопе, видим что для Adobe CMM результаты для PC и Mac визуально близки (точнее нам в этом эксперименте не надо, весь текст даже не про видимую разницу, а про бросающуюся в глаза), включаем Microsoft CMM. На PC, чтобы увидеть эффект, нужно перестартовать фотошоп (на маке разница при смене CMM видна сразу), перестартуем и видим:

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

Преобразование в sRGB

Попробуем сделать еще одну операцию: преобразование исходного файла сначала в Lab, а затем в sRGB, сохраняя предыдущие результаты.

Micorosoft CMM, слева направа: исходник, конверсия в Lab, конверсия из Lab в sRGB:

Adobe CMM, порядок тот же:

Apple ColorSync, порядок тот же:

Мы видим следущее:

  1. У Microsoft CMM все три изображения выглядят визуально одинаково (а точнее нам и не надо). Предположительно, конверсия из исходного RGB в дисплейное представление у этой CMM происходит через промежуточный пересчет в Lab.
  2. Adobe CMM пересчитывает в Lab (а затем и в sRGB) визуально так же, как и Microsoft CMM. Показ на мониторе резко отличается, по всей видимости механизм gamut mapping (см. ниже) в данной CMM работает иначе (например, пересчет происходит через XYZ, а не через Lab).
  3. Colorsync по смыслу эквивалентен Microsoft (пересчет через Lab), однако gamut mapping считается совершенно иначе.

Анализ

Профиль изучаемого изображения имеет гигантский цветовой охват, на ряде уровней яркости выходящий даже за пределы видимой человеком области. На диаграмме показан охват для L=26 (синяя кривая), для сравнения показан Adobe RGB (желтый треугольник):

Широкий охват (даже выходящий за пределы видимой области) - это относительно нормально для цифровых камер: они чувствительны и к ИК и УФ. Проблема заключается в том, что CMM должны преобразовывать эти данные (включая и "невидимые цвета") в что-то видимое, а с этим очевидные проблемы.

Возьмем диаграмму охвата на уровне L=76 и добавим туда точки с нашего изображения:

На этой диаграмме:

  • Внутренний 4-угольник - охват sRGB.
  • Два близких промежуточных 4-угольника - охват Adobe RGB (светлый) и моего монитора (темный).
  • Внешний 4-угольник - охват рассматриваемого профиля.
  • Синие точки - точки изображения.

Если оставить на диаграмме только точки изображения из проблемных облаков (розовых в ColorSync), то картина будет выглядеть так (это L=74):

Синтез, он же мораль

Если честно, то всяких глубоких выводов про особенности Gamut Mapping делать не хочется (рассмотренных данных маловато), мораль сугубо практическая.

  1. Очевидно, что изучаемый профиль - "плохой". Плох он в том смысле, что допускает неоднозначную интерпретацию существующими CMM.
  2. В то же время, построенные стандартными методами профили цифровых камер и будут такими "плохими" - с очень большим охватом и стандартные CMM обязательно будут "напрягаться" при показе данных в цветовом пространстве ЦФК. Собственно, охват ЦФК выходит за видимую человеком область и проблемы неизбежны.
  3. Самый практический вывод: допустим, у вас есть профиль под вашу камеру и результаты съемки (визуализированные вашим CMM) вас устраивают. У вас PC (и адобовский CMM в фотошопе), вы посылаете файл в типографию, там его редактируют какой-то маковской программой (да хоть фотошопом, но с Colorsync, а не Adobe CMM), будучи в полной уверенности что "управляют цветом" и печатают тираж. У вас на экране была картинка 2, в типографии - 1, вы действительно считаете, что цветом "управляют"?

Comments

Алексей, кстати, просто для информации - под Linux есть любопытный CMM:
http://www.littlecms.com/
Мало ли, ежели будете экспериментировать, может интересно будет.
А нам будет интересно почитать о результатах экспериментов :)

Да я знаю, но как-то сил не хватило сделать конверсию -Lab-sRGB еще и lcms и Argyll.
И так этот текст рождался в муках дня три, урывками.

Но вообще, ожидаю у lcms плохих результатов, а у Argyll - хороших :)

А Argyll - это тоже линуксовая штука? А почему так ожидаете плохих :) Мы на работе в свое время проводили чисто практические эксперименты с LittleCMS, А.Шадрин по нашей просьбе результаты конвертации изучал и весьма впечатлился ими.

Argyll - опенсорс, собирается везде. Как и lcms.

А ожидаю плохих результатов т.к. они на других моих тестах были плохие:
http://blog.lexa.ru/2007/12/09/oshibki_pri_obrabotke_cveta_chast__v_tabl...
и вообще вся серия
http://blog.lexa.ru/tags/cmm

Конечно, несколько лет прошло, версия обновилась, надо еще смотреть.

Но я данный текст писал в первую очередь для фотошопных пользователей, у которых выбор из двух CMM на каждой из ОС.

Спасибо за информацию!

А как это дальше пойдёт на печать, интересно?
У меня на днях отпечатки одного файла на разной бумаге очень разошлись в цвете.
Глянец смотрелся как и задумано, а металлик выдал примерно такую же розовую облачность.

Надо смотреть, soft proof что показывал?

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

Softproof, кстати, надежнее делать, когда исходник в Lab. Одна из причин, похоже, близка к обсуждаемой проблеме, gamut mapping "через Lab" или "через device link построенный на лету"

Как откалибруюсь, перелопачу варианты.
До того что-либо утверждать малоосмысленно.
Не присоветуете калибратор из вороха Spyder-ов и Eye-One-ов?
Win7, 2690WUXi, SpectraView II, задача - подстроиться под конкретную фотолабу (тут наверное икнул).
Принтер тоже бы недурно отпрофилировать, но бюджет на ColorMunki и т.п. не растягивается.

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

Оно за срок эксплуатации окупается даже просто на лишних пробах.

Под конкретную фотолабораторию не надо подстраиваться, это неправильно. Это как оркестр, который настраивается "контробас под вокал, а вокал под пианино". Для этого есть "камертон" - спектрофотометр. Вот под него и надо настраиваться. А если лаба (или типография, и т.п. нужное подчеркнуть) поддерживает CMS полноценно и грамотно, то автоматически цветопередача получится корректной. Калибратор для монитора советую i1 Display. Про Спайдер и прочие Хуи лучше забыть сразу :) Вот тут некоторые рекомендации даны, в том числе по выбору калибратора:

http://www.fotoproekt.ru/port/msk/ru/support/profiles/monitor/

Да, i1 Display 2 вам Павел правильно советует, если сумеете найти, то надо брать. Но их вроде как давно не делают?

P.S. А хотите i1pro revision A за разумные деньги :)? Типа, за полцены? А я себе свежий ревижн куплю, давно очень собираюсь.

Очевидно-ж - спайдер 2 или 3 экспресс.

Под конкретную фотолабораторию не надо подстраиваться, это неправильно

Это такая теория. И с точки зрения теории - вы правы.

А с точки зрения практики написана статья, которую мы тут комментируем. Берем файл (с цветовыми данными т.е. с профилем), берем CMS, берем фотошоп который "полноценно и грамотно" (ну, так принято считать).

И на одном и том же мониторе с одними и теми же настройками имеем три разных результата. Если взять еще две CMS/CMM - будет еще два результата.

И это, кстати, при Relative Colormetric, который никаких таких вольностей в Gamut Mapping не допускает, все что в гамуте - должно остаться на месте, а что вне охвата - скопиться на краю нового охвата.

Без всяких сложностей вроде CIECAM02, простейшая операция, а цветовая наука стоит с полными штанами известно чего.

Такой ли это частый случай? Облака, конечно, не похожи на внегакмутные, но мало ли... Мы просто на работе тысячи файлов ежедневно конвертим с помощью LittleCMS и печатаем (уже более года), и честно говоря, принципиальных различий от Адобовского CMM'а не ощущаем. Перед тем, как внедрить автоматическую конвертацию, провели много тестов с участием Шадрина того же - полгода тесты гоняли и изучали вопрос. Иногда, редко, бывают конечно некоторые косяки, но как правило, связаны с исходным перенасыщением файлов клиентами.

Такой ли это частый случай?

Ну вот же ваш клиент (если я правильно понял) прямо в этом треде жалуется на металлик?

Пример - конечно не частый, а выдающийся. Но вправе ли мы ожидать *такой фигни* в столь простом и рафинированном случае (вывод на один монитор, Relative Colormetric intent)? Нет, это очень простой случай, все *должно работать* (предсказуемо и одинаково), но не работает.

Понятно, что если исходник в sRGB/Adobe, то жить становится сильно проще, а это небось 99% всех исходников.

Косяки с перенасыщением - отдельная тема. Казалось бы, косяк это - только если плывет тон (а не насыщенность), а у вас что плывет?

Клиент, судя по всему, помог обнаружить небольшой косяк в нашем CMS :) Причем глупый, просто забыли профиль обновить при смене поставщика бумаги. Но это мы в понедельник точнее проверить сможем, когда перепечатаем.

сРГБ и АдобеРГБ, это думаю даже более чем 99%. Причем то, что остается, как правило... это как правило профиль чьего-то монитора :) Народ чтобы не заморачиваться с цветом - бабах основным пространством профиль монитора в ФШ, и щастие типа.

У нас косяки с насыщенностью не из области математики, а из области психологии по моим наблюдениям. Дело в том, что Noritsu не поддерживает профили. Калибровать сама себя она умеет, а характеризовать и работать с профилями - не умеет. Поэтому если на нее подать АдобеРГБ или сРГБ (который все равно шире охвата бумаги), то получится классическая кастрация - трупная кожа и тухлые фрукты. Народ годами, или даже десятилетиями, привык решать эту проблему в лоб - "подбавлю ка я насыщенности для печати". Получалось вроде как симпатичнее. А потом мы ввели автоматическу конвертацию на уровне автоматизированной системы. И тут такое началось :) Ааа, что вы такое делаете, у меня лица стали краснющими! Смотрим - действительно. Открываем файл - а он и есть краснющий. И ежели Proof Colors посмотреть, то вся краса и на экране видна. Год приучали клиентов, привыкли, теперь они уже обратно не хотят :) Но некоторые все равно находятся, новички как правило. Математически - все видно через цветопробу виртуальную на самом деле, и в подавляющем большинстве случаев (можно считать почти во всех) так и выходит на печати. Ну не считая того, что ежели профиль монитора прикреплен, тут уж такое бывает, что и объяснить то трудно :)

Ну не считая того, что ежели профиль монитора прикреплен, тут уж такое бывает, что и объяснить то трудно :)

Не, ну с sRGB/Adobe было бы странно ожидать неотстроенного процесса.

Однако цветовая наука *гарантирует* нам разумный результат и с профилем монитора тоже :)

В теории разницы между теорией и практикой быть не должно. Но на практике эта разница есть :)

Облака, конечно, не похожи на внегакмутные, но мало ли...
Еще раз кратко формулирую претензию: даже если они внегамутные, я ожидаю
1) Одинакового вида на мониторе для трех CMM для внутригамутных цветов (Relative colormetric) и близкого для внегамутных
2) Одинакового отображения до конверсии в Lab и после (превед, Adobe!) - потому что это по смыслу так (Lab - это же *все* что человек видит)

1 - логично, я тоже так ожидаю. Но в плане СММ имею пока только некоторый (кстати, не очень большой) опыт визуального (только лишь) сравнения Адобе и ЛиттлЦМС. Так что ваша заметка меня самого заставила задуматься. Думаю :)

Кстати, я не уверен, что Lab - это то что человек видит. Есть такой дядя, Брюс Линдблюм, может стакиваись. Он построил каким-то образом цветовое тело человека, и оно как-то в Лаб совсем не умещается. А местами меньше.

http://www.brucelindbloom.com/

UPLab лишен некоторых неприятных особенностей Lab (т.е. константный a/b дает константный тон, а в Lab - не дает), но в смысле охвата это вроде бы то же самое.

2-й однозначно в пролёте, если дело качается расширенного цветового охвата.
Ссылку с ходу не воспроизведу, интересно - погуглите на нековских сайтах.
В 3-м часть косяков поправили, все ли - большой и хороший вопрос.

Хм... учитывая, что на прилавках спложной "Спайдер и прочие Хуи" - как минимум, заинтересован узнать пол-ценника ;о)

а что, фотопроект уже научился настраивать свои машины так, чтобы на всех был одинаковый результат? года два-три назад это было не так, увы :(

Арифметика простая: новый i1 Basic получается ~$1200, что тут покупать, что на B&H с растаможкой. Вот и делите пополам. Всякие более дешевые места доставляют только DHL, с растаможкой опять один хрен 1200-1300 получается.

У меня i1 Photo т.е. с родным Eye-One Match он лицензирован на профили монитора и принтера (про камеру не уверен т.к. родным софтом не пользовался), но принтер - по простым мишеням.

Но Profile Maker 5.08 лежит на torrents.ru, монаку тоже несложно найти.

Но:
1) это Revision A, там относительно низкая чувствительность (относительно новой Revision D) и с некоторыми LCD-мониторами есть проблемы с поляризатором. С моим 30" NEC такой проблемы нет (специально строил профили с двумя ориентациями спектрофотометра и они были практически идентичны), но вообще народ нарывается.

2) Оно не новое. Т.е. да, домашняя эксплуатация, нагрузка почти никакая, я его еще продую от пыли на стекле, но никаких гарантий что там лампа не ушла - у меня естественно нет и проверить не на чем. Хотя качество принтерных профилей меня устраивает.

Да, Display 2 на B&H in stock.

Вы бы еще вспомнили что было 5 лет назад :) Жизнь не стоит на месте! То, что было 3 года назад и что сейчас даже сравнивать невозможно, настолько принципиально все изменилось. И дело тут не в настройке машин, а в комплексных подходах к управлению цветом.

Этот монитор у меня два года работает в паре с i1. Купил оба вместе. Без претензий.

а машина была одна и та же?

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

Это очень давно было :) Сейчас управление цветом происходит с помощью полноценного CMS с конвертацией по профилю конкретной бумаги конкретной машины, все машины при этом калибруются не менее 2-х раз в сутки для каждой бумаги + при зарядке каждого нового рулона. Различий при печати на разных машинах вы не увидете, а повторяемость результата близка к стопроцентной.

ну, раз что довели до ума. будет время - надо будет проверить :)

понапридумывают нечеловеческих пространств, а потом мучаются.

и математика мэппинга вроде простая должна быть, а вот поди ж ты...

sRGB должно хватать всем простым смертным.

А вот попробуй охарактеризовать камеру, какой там из общих соображений будет охват?

я, честно сказать, не очень понимаю точное значение термина "охват" применительно к камере.

но то что в камере создается отклик на внегамутные (по отношению напр sRGB или локусу) цвета, это ясно.

Ага.

А какой тип профиля нам предлагает ICC для этого? Сканер, я извиняюсь.

так у сканера ж лампа типа с известным спектром и за его пределы ничего выйти не может...

чудно.

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

вторую часть проблемы (превед, adobe!) это правда не снимает, там вообще я не очень понял что случилось.

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

Только почему эта здравая мысль за 10 лет не дошла до International Color Consortium? Ну там что для ЦФК нужен особый тип профилей, с особой обработкой и там вообще все иначе?

Второй части проблемы как бы особо и нет, то что Adobe строит device link - это совершенно правильно (другой вопрос, что в данном случае получились спецэффекты).

Формально ICC поддерживает гамуты только с положительными значениями координат XYZ. Lab должен быть ограничен 0..100 по L, -128..+128 для a и b. Что будет происходить с профилями цифровых камер - не гарантировано.

Что-то это очень похоже на клинический не совсем реальный случай. Очень уж забавный оригинал.

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

Не поленился, посмотрел, как ведет себя гейделевский движок из Newcolor 7000 v2. Ведет себя примерно так же, как Microsofs CMS, что еще раз подтверждает происхождение последней. Кстати, переключение между CMS в ФШ CS4 под Вистой х64 у меня почему-то на лету происходит, без перепуска ФШ.

У меня на лету не переключалось, не знаю почему. Win7/x64.