Сравнение цветовых профилей, созданных разными программами

  • Автор темы Автор темы Samsonov
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Samsonov

Участник
Топикстартер
Сообщения
886
Реакции
89
Есть профиль, построенный некоей программой. Хотелось бы сверить его с тем, что построил бы ProfileMaker (возможно, с помощью иного измерительного прибора). Какие есть варианты?

На ум сразу же приходит функция Comparing в утилите ColorLab. Но она сравнивает только сохранённые в профиле промеры патчей. А если генератор профилей ничего такого не сохранял (просто маленький матричный профиль), то и сравнить ничего не получается.

Поэтому вопрос сводится к тому, как применить к описанию тестчарта некоторый профиль, чтобы сымитировать данные промеров. Собственно говоря, не вижу причины, по которой следовало бы ограничиваться только исходными промерами — хотелось бы сравнить профили на произвольном наборе патчей. Иначе это не сравнение профилей, а сравнение двух приборов.

Да, в ColorLab есть функция Filter • Mode • XYZ (или Lab), но она действует по какой-то заранее заданной схеме, не спрашивая о предполагаемом профиле для исходных RGB-значений чарта.
 
Ответ: Сравнение цветовых профилей, созданных разными программами

Если ColorLab версии 2.8.13 там есть функция Filter\ICC-profile conversion (Ctrl+M). Дальше разберетесь.
Если ColorLab версии 2.7.7, то такая функция тоже есть, но горячие клавиши не помню.
 
Ответ: Сравнение цветовых профилей, созданных разными программами

Alexey Shadrin сказал(а):
Если ColorLab версии 2.8.13 там есть функция Filter\ICC-profile conversion (Ctrl+M). Дальше разберетесь.
Да вот как раз-таки я не настолько слепой, чтобы не заметить самой функции, но каким образом она может помочь в данной задаче — ума не приложу.

Это ведь не назначение профиля, а именно конверсия между двумя «устройствами». Был на входе RGB — на выходе тоже RGB, только с другим колориметрическим смыслом. Но и даже сам этот «смысл» нигде не сохраняется, кроме нашей памяти.

Можно, конечно, чисто зрительно полюбоваться на изменения при переходе от одного профиля к другому — так для этого и ColorLab не нужен, достаточно Фотошопа. А численно-то как оценить разницу? Оно, конечно, показывает некое DeltaE в окне Compare, но на самом деле это DeltaRGB, то есть сравнение слонов с табуретками. Результаты соответствующие: отклонение до 85 попугаев (25 попугаев в числе 10 % лучших) при очень слабых визуальных различиях. О чём говорят эти абстрактные величины?
 
Ответ: Сравнение цветовых профилей, созданных разными программами

Samsonov сказал(а):
Да вот как раз-таки я не настолько слепой, чтобы не заметить самой функции, но каким образом она может помочь в данной задаче — ума не приложу.

Берется, например, СМУК референс ЕСИ2002 и конвертится из профиля СМУК1 в профиль Лаб. Сохраняется файл 1.ТХТ.
Затем опять берется СМУК референс ЕСИ2002 и конвертится из профиля СМУК2 в профиль Лаб. Сохраняется файл 2.ТХТ.
После чего в КОмпаре сравниваются эти два Лаб-файла. И получаются самые что ни на есть настоящие дельта Е.
 
Ответ: Сравнение цветовых профилей, созданных разными программами

Samsonov сказал(а):
Да вот как раз-таки я не настолько слепой, чтобы не заметить самой функции, но каким образом она может помочь в данной задаче — ума не приложу.
Все очень просто.
Вы выполняете конверсию из RGB в Lab в режиме Absolute (Lab.icm можно найти в корневом каталоге PM) -- это и есть назначение профайла. Только в случае Фотошопа результат конверсии висит в ОЗУ, а здесь фактически. Сохраняете результаты конверсии в текстовый файл. Дальше понятно.
На всякий случай аттач.
P.S. А вообще в книге по мониторам все написано :)
 

Вложения

Ответ: Сравнение цветовых профилей, созданных разными программами

А-а-а, вот если задавать выходной профиль — Lab.icc, тогда другое дело. Потому что если просто конвертировать через Filter • Mode • Lab, то получается полная ахинея, никак не связанная с конкретным устройством.

Но и тут не всё гладко. PM5 по умолчанию создаёт display-профили в формате ICC 2.4, причём не только без адаптации белого, но ещё и без единичной нормировки — он записывает величины по отношению к 100 кд/м². В таком виде Absolute intent даёт совсем уж улётные значения, а корректно ли использовать для таких целей Relative, я не знаю.

Если переключить PM5 в режим ICC 4.0, то профиль выходит нормальный, но ColorLab однозначно и гарантированно вылетает, как только к нему возвращается управление после диалога выбора ICC-файла. Хотя другие программы не ругаются: тот же Фотошоп отлично применяет любые профили, и разницы между PM5/2.4 и PM5/4.0 не ощущает. Выдаваемые Фотошопом значения LAB близки к тому, что ColorLab показывает для PM5/2.4-Relative; точно не скажу, ибо Фотошоп округляет до целого.



А книгу вашу, Алексей, я прочёл ещё два с лишним года назад. ;) Предложенный там способ проверки профилей не подходит, потому что он предназначен для поиска ошибок, допущенных в процессе калибровки и характеризации. Мне же хотелось бы именно сравнить качество двух профилей как законченных продуктов.

Ну ладно, допустим, сравнить TRC можно и вручную, хотя мне никто так и не ответил на [THREAD=31346]вопрос[/THREAD], что же можно считать мерой различия передаточных характеристик. А как же быть с хроматическими свойствами кардиналов, если каждый прибор измеряет их по-своему? А если профиль не матричный? Всё-таки средняя ΔEoo видится более адекватной величиной различия профилей, нежели погрешности TRC (линейные, заметьте!) или Δxy (не менее линейная, и оторванная от светлоты).
 
Ответ: Сравнение цветовых профилей, созданных разными программами

Samsonov сказал(а):
Если переключить PM5 в режим ICC 4.0, то профиль выходит нормальный, но ColorLab однозначно и гарантированно вылетает.
Никак оно смерти моей захотело — я чуть не умер от смеха, когда стало ясно, что у ColorLab размер буфера для имени файла (без расширения) ограничен 50-ю байтами. Если имя длиннее — сразу вылетает. Вообще, продукты GretagMacbeth что-то уж очень неблагосклонны к длинным именам файлов. Если профилей много, то даже непонятно, как их отличать — в таких-то узких списках.


Samsonov сказал(а):
PM5 по умолчанию создаёт display-профили в формате ICC 2.4, причём не только без адаптации белого, но ещё и без единичной нормировки — он записывает величины по отношению к 100 кд/м². В таком виде Absolute intent даёт совсем уж улётные значения, а корректно ли использовать для таких целей Relative, я не знаю.
Соответственно, удалось проверить: оказывается, результаты идентичные Absolute для нормального профиля.
 
Ответ: Сравнение цветовых профилей, созданных разными программами

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

Проблем несколько. Во-первых, как уже упоминалось, методика Шадрина имеет целью сравнить эталон и реальное устройство. То есть насколько хорошо [матричный] профиль моделирует поведение монитора.

Во-вторых, преобразование тестчарта из RGB в LAB происходит не так, как происходит преобразование промеров в LAB. В первом случае светлота белого патча всегда получается примерно 90, независимо от наличия или отсутствия тэга luminance в проверяемом ICC-профиле (используется формат ICCv4, так что всё должно быть чики-пуки). Что же касается промеров, то светлота получается из реальных значений путём нормировки по 100 кд/м². Соответственно, разброс между прогнозом и реальностью никак не меньше 10–20 dE.

Наверное, я чего-то не понимаю. Попытки выполнять конверсию с разными параметрами (intent для RGB-LAB, illuminant и CAT для spkt-LAB) не дают сколь-нибудь существенных изменений.
 
Ответ: Сравнение цветовых профилей, созданных разными программами

Samsonov сказал(а):
используется формат ICCv4, так что всё должно быть чики-пуки
Как любит повторять один из участников форума, «было бы величайшей ошибкой думать…» — как раз-таки если создавать профили в PM5 в режиме ICCv2 и Measured white point (ни в коем случае не D50/D65, даже если цветовая температура совпадает), то можно добиться желаемого эффекта. То есть прогноз светлоты будет соответствовать реальным свойстам экрана (замерам), с прямым соответствием между L*=100 и Y=100.

Но такое подходит только для профилей, сделанных в ProfileMaker, и только с вышеуказанными установками. Либо если реальная яркость экрана в точности соответствует 88,7–89,5 кд/м² — тогда можно использовать стандартный прогноз без дополнительных телодвижений.

В общем случае нужен слегка усложнённый метод — с дополнительным растяжением:
  • Открываем референс, по которому хотим сделать прогноз на основе профиля.
    • Как и у Шадрина, преобразуем в CIELAB (Filter • ICC Profile Conversion или Ctrl+M) с абсолютным интентом, используя наш RGB-профиль в качестве исходного пространства. Вот здесь как раз надёжнее именно ICCv4-профили — у них с точкой белого всё однозначно.
    • Самый хитрый шаг: масштабируем по светлоте. Для этого делаем Ctrl+R (Filter • Colorimetry • Colorimetric interpretation), используя режим Relative lightness — так надёжнее, чем Relative white, потому что лишний раз можно проверить, что конечный белый равен (100, 0, 0) несмотря ни на что.
  • Открываем файл измерений.
    • Если в файле спектральные данные, то сразу переводим их в XYZ (Filter • Conversion • CIE colors) с параметрами по умолчанию, то есть без смены хроматической адаптации.
    • Лучше сразу перейти к LAB-представлению, чтобы не путаться в числах (Filter • Mode • Lab).
    • Опять делаем хитрый шаг с масштабированием (Ctrl+R), только уже в режиме Relative white, если цветовая температура экрана не совпадает с D50.
  • Всё. Вот теперь можно сравнивать (Ctrl+P или Special • Comparing).
Такие дела.
 
Статус
Закрыто для дальнейших ответов.