профилирование

Про зеленые каналы

Тема "одинаковости зеленых каналов" регулярно всплывает. Понятно, речь не идет об очевидных случаях, вроде старых камер Olympus, которые при усреднении зеленого давали maze artifacts на небе (и, тем более, о RGBE-камере Sony F828). Речь идет об обычных рабоче-крестьянских, Сонях, Кэнонах и Никонах. Для них принято считать, что два зеленых - суть одно, можно усреднить, интерполировать эти каналы надо как одни данные, цветовые профили - трехканальные (из RGB в RGB) и так далее.

Помнится, на семинаре Ильи Борга на эту тему случилась дискуссия, причем Илья говорил что разница между каналами - существенная, а верили ему не очень (втч. и я).

И я давно собирался проверить, аппарат давно имеется, но все не доходили руки. А тут зацепились языками на форуме LL и дернуло же меня проверить на первом попавшемся кадре с колорчекером. Это был кадр с Sony SLT-A77. И понеслось.

Собственно, идея простая. Берем снимок с колорчекером (я беру их с Imaging resource), натягиваем в RawDigger сетку, экспортируем в Excel и смотрим на отношение среднего в каналах G и G2:

Первым мне попался кадр с Sony A77, затем с Leica M9, затем я пошел на Imaging Resource и взял там еще кадров для EOS 6D, Oly OM-D E5, Nikon D800 и Panasonic G5. Первые две камеры у меня есть и мне интересно, последние две - чтобы никонистам и братьям по micro-4/3 не было обидно (на самом деле вся обработка данных с одной камеры занимает в районе минуты и проверить любую камеру вы можете самостоятельно, основное время у меня заняло выведение результатов на суммарные графики).

И вот что получилось:

RawDigger 0.9.15 (RC1): удобное профилирование камер

Граждане фотографы!

В очередной раз предлагаю потестировать Release Candidate свежего RawDigger:

В версии 0.9.14 в RawDigger была добавлена удобная работа с цветовыми шкалами, но результат этой работы выводился в виде усредненных RAW-значений: в диапазоне значений камеры, без баланса белого, без гамма-коррекции. Как следствие, для нормального использования в программах профилирования эти данные приходилось предварительно обрабатывать в Excel или подобных программах: накладывать ББ, масштабировать, гамма-корректировать.

Версия 0.9.15 исправляет этот недостаток, теперь можно получить CGATS-файлы, пригодные для прямого скармливания в Profile Maker, Argyll и подобные программы.

Кроме этого, 0.9.15 умеет корректировать неравномерность освещения мишени.

Подробности:

О синем цвете и зеленых каналах: Panasonic G3

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

Чтобы не троллить больше владельцев Sony A77, возьмем для примера Panasonic G3. А именно, возьмем с imaging resource снимки мишени CoolorChecker и постараемся разобраться, что же камера с них выдает.

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

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

Для начала, сформулируем тезисы, которые ниже я пытаюсь проиллюстрировать.

Суть проблемы (профилирования)

Проблему я формулирую так:

  • Все поля мишени с точки зрения программы профилирования - равнозначны. В лучшем случае профилировщик учтет дисперсию сигнала в данном поле, да и то, скорее интегральную, а не поканальную.
  • С точки же зрения камеры, величина ошибки по полям и по каналам - очень разная. Тут и шум и разная чувствительность каналов и ступенчатость восприятия, особенно на высоких ISO.
Естественно, проблема касается не только профилирования, но и вообще захвата слабых каналов. Посмотрим с этой точки зрения на изучаемый панасоник.

О цветовой интерполяции

Навеяно вот этим вот обсуждением, пожалуй запишу.

Абстрагируясь от профилей камер, давайте представим себе профиль принтера.

К примеру, Monaco Profiler с удовольствием сделает вам цветовой профиль с таблицами 33x33x33. То бишь почти 108 тысяч коэффициентов (+тоновые кривые). Круто, да.

А на вход ему при этом подадут ну, скажем, 1728 патчей (12 в кубе). Так как жрет он не спектральные данные, а простой рабоче-крестьянский XYZ, то это будет примерно 5200 значений.

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

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

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

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

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

P.S. То что мишени для тех же принтеров генерируются, как правило, путем равномерной расстановки точек по всему пространству координат - отдельная печальная песня.

О линейности в светах

Смотрю тут на свеженамеряные данные по линейности Canon 5D Mark II (текст пишется, в ближайшие дни будет) и думаю вот какую думу:

Максимальный уровень сигнала (на ISO100) в районе 14700. Даже если весь шум определяется исключительно фотонным шумом, среднеквадратичное отклонение будет в районе 120. А на самом деле оно и вовсе 250-260 (при измеряемой плашке 160x160 пикселов).

Получается, что если реальный уровень сигнала у нас, скажем, 14450 (на сигму меньше максимума), то порядка 16% пикселов (выходящих "за сигму" в положительную область) будут обрезаны по максимуму. Что, в свою очередь, приведет к смещению среднего значения для больших плашек (вроде неба или облаков), т.е. испортит "яркость".

Природа обрезки принципиального значения не имеет, это может быть и переполнение пиксела и и обрезка в АЦП и обрезка после АЦП, эффект чисто "математический".

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

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

О фовеонах

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

Второй день рассматриваю на мониторе разные колорчекеры, снятые разными сигмами и весь в печали. Независимо от используемого конвертора, никакого счастья нету.

На картинке - два результата конверсии Адобом (другие конверторы - дают другие результаты, но интегрально не лучше), две Сигмы (DP2 и SD14) и один 5DmkII. Попробуйте угадать где что.

Наиболее показателен, конечно, темно-красный патч C3, который правильный у Кэнона и совершенно разным способом неправильный у двух сигм. Но вообще, со всеми красно-оранжевыми цветами беда, да и с E3 тоже не подарок, да и вообще... SD9, кстати, еще хуже, там C2 и C3 вообще почти сливаются.

Нет, я понимаю, что счастье должно быть достижимо со специальным фильтром, но это теория такая, а на практике таких фильтров не существует.

Подумываю, что если из LibRaw дропнуть поддержку Foveon, то большой беды не будет, снимающих на *такие* камеры мне не жалко, а проблем оная поддержка создает несообразно много.

Expose to the Right? Expose Right!

Понятие об ETTR (Expose to the Right) было вброшено в фотографические массы Рейхманом в 2003-м году. Возможно, идея и не его, но популярен этот прием стал после его статьи.

Однако время идет, шум в современных камерах стал значительно меньше, битность АЦП - больше, поэтому польза ETTR уже не столь очевидна, а про вред говорить не принято. Кроме того, полезно помнить, что камерная гистограмма камеры показывает непонятно что (и даже UniWB не решает полностью проблемы т.к. остается еще контраст/насыщенность и прочие тоновые кривые, применяемые к JPEG-представлению, по которому строится гистограмма), поэтому оценить по камерной гистограмме, попали ли мы "вправо" нормально или пересветили (или недостветили) - непростая и в общем случае нерешаемая задача.

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

Приехавший ColorChecker Passport дал легкий способ как проиллюстрировать проблему, так и просто оценить порядок бедствия.

Паспортные данные

Несмотря на подразумеваемую "стандартность" ColorChecker, жизнь богаче. На картинке выше показана теоретическая разница между "Стандартным ColorChecker" (спектральные данные взяты из поставки Gretag/X-Rite ProfileMaker 5.0.8) и обсуждавшимся раньше ColorChecker Passport (спектральные данные из поставки программы Color Checker Passport, в версиях 1.0 и 1.0.1 они одинаковые). Расчет сделан Measure Tool из PM 5.0.8.

Остротупоконечники

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

  • Текущий подход к цвету на цифре выглядит так: давайте построим профиль камеры, который приведет все цвета к правильным. Идеально, чтобы этот профиль спрятал в себя все особенности камеры, освещения и всего остального, что еще бывает. Идеал: когда два снимка с двух камер неотличимы по цвету.
  • С пленкой поступали ровно наоборот: никому и в голову не приходило строить "сквозной профиль" для большинства работ (репродукцию вычеркиваем), у каждой пленки были свои особенности, их использовали осознанно. Не было и мысли взять вялый негатив и сделать из него Вельвию.

    Профили строились для сканеров и цель их была - получить одинаковый скан с одного слайда на разных сканерах.

То бишь подходы принципиально противоположны. А почему, собственно?

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

Там кому угодно паспорта дают

Тормоза на таможне счастливо завершились и ColorChecker Passport до меня счастливо добрался.

Имею сказать:

1. Если вы сторонник таскания ColorChecker на природу (и вообще на выезд), то эта штука как раз для вас: отличный форм-фактор (как паспорт в обложке), 100 граммов веса. Всяко лучше, чем ColorChecker Mini вставлять в коробку от DVD (хотя по данной ссылке у мужика самопальный): компактнее, жестче.

2. Часть, предназначенная для тонкой настройки баланса белого (верхняя половинка на фото) мне очень понравилась. И идея хорошая и реализация хорошая и пользоваться удобно.

3. ColorChecker (нижняя половинка разворота) - он ColorChecker и есть. Я свой пока не проверял, промеряю со временем, сравню со спектральным референсом (идет в комплекте софта), расскажу. Спектрального референса верхней половинки в поставке софта нет, при расчете профиля он не используется.

4. Второй разворот (их два т.к. "паспорт" кроме обложки содержит одну страничку) не такой прикольный, там карта для установки баланса белого (не очень нужная с учетом пункта 2) и напоминание о том, что производитель рекомендует заменять данный девайс раз в два года. Конечно, вместо надписи хотелось бы видеть каких-то других ништяков, более полезных, например серую карту (18%). Придется свою изрезать и туда вклеить.

Raw Photo Processor: профилирование камер

В верси 4.1.0 Raw Photo Processor появилось профилирование камер (только для "донаторов").

С раздачи поддерживается только ColorChecker24, у меня в наличии был только ColorChecker SG, но описание мишени (в .cie-формате) понимается, соответственно можно использовать любую промеряную мишень (хотя с ColorChecker и встроенными в RPP промерами скорее всего будет лучше).

Я брал корректированные промеры для CC-SG отсюда, в силу некоторых причин они должны работать лучше, чем даже самому померять.

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

Имею сказать.

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

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

О консенсусе

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

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

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

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

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

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

FireFox 3.5: верните ICC v4

Я уже писал о поддержке ICC в браузерах:

И там уже упоминал, что Firefox 3.0 поддерживает и ICC v2 и ICC v4.

А вот у Firefox 3.5 это бл.. не так, поддержку ICC v4 пролюбили.

Я несколько раз ставил 3.5, получал кислотные цвета, тупо смотрел в настройки (где с color management все было нормально), ничего не понимал и сносил. Сейчас вот потратил лишние две минуты и, наконец, осознал.

Придется, соответственно, для монитора строить два профиля, один для всех программ, а второй - для этого уродца.

А причина всего этого безумия - это отказ разработчиков от lcms и замена ее собственной мозильской (как я понял) разработкой. Быстрой и недоделанной.

Про профили камер и про линейность

Вот этот вот комментарий, как мне кажется, заслужил отдельного обсуждения.

В самом деле, имеет место некий фенОмен (который виден, например, по dE т.е. инструментально):

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

Я тут вижу несколько соображений:

  • Во-первых, блюминг. И, наоборот, всякие антиблюминговые решения, которые должны характеристическую кривую загибать.
  • Во-вторых, всякие игры RAW-конвертеров (которые тоже характеристическую кривую загибают).
  • В-третьих, следующий интересный эффект:
    1. Давайте представим себе профилировочную таблицу, вроде ColorChecker SG. Вот на ней есть зеленый патч E9, который на 1.5-2 стопа (на глазок) ниже среднесерого.
    2. Уровень красного в этом зеленом будет еще на пару стопов ниже (красного в нем мало), потом у красного канала чувствительность на стоп-полтора хуже т.е. красным мы попадем куда-то в -5 от среднего тона (или -8 от самых светов).
      Это, на минуточку, вообще на пределе какого-то сигнала в красном.
    3. Но красный канал нужен, чтобы отличить сине-зеленый от зелено-синего т.е. в этом месте профиля красный будет с очень большим весом (т.к. сам сигнал - маленький).
    4. Но красный - зашумлен, в рассматриваемом месте он уже сильно нелинеен (по причине шума)
  • Собственно, вот: профиль для таких "предельных" цветов будет как-то компенсировать нелинейность слабых каналов, а если мы переедем на 3 стопа вверх - то перекомпенсировать (ибо на три стопа вверх в красном канале уже все отлично).

Такие дела.

Не все профили одинаково полезны

rpp-profiles.jpg
покрупнее
 

В версиях 3.9.5/3.9.6 Raw Photo Processor обновились профили большого количества камер. Результат вы видите: разделение зеленого стало на голову лучше, да и вообще фотошопной работы поменьше (для сомневающихся - новый вариант слева). Камера: Kodak SLR/c.

На скриншотах результат работы с дефолтными настройками (а не с обычным для пейзажа поднятием contrast/saturation), в фотошопе не трогалось (только скриншот сконвертирован в sRGB).

Argyll CMS + dispcalGUI + калибровка монитора = фиаско

В качестве алаверды к предыдущему посту имею сообщить, что хвалимый многими модуль дисплейной калибровки Argyll CMS мне не понравился:

  • Задача-максимум: добиться одинакового визуального воспроизведения нейтральных плашек на двух мониторах не достигнута. Формально dE меньше единицы, но реально глаз видит разницу (которую можно устранить кривой в зеленом, но удобных средств редактирования LUT монитора у меня под рукой не было).
  • Задача-минимум, собственно калибровка и профилирование, выполняются относительно неплохо, но калибровка идет средствами LUT видеокарты (т.е. 8-битной таблицы на DVI), точность работы средств, пищущих в LUT монитора - сильно выше (это видно при рассмотрении серого ступенчатого клина). Матричные профили имени Argyll мне при этом вполне нравятся, табличные - не нравятся.
  • Использовать сам Argyll (коммандлайновые утилиты) необычайно мучительно, GUI сильно упрощает процесс. dispcalGUI задачу управления вполне решает.

С учетом вышесказанного, остался жить с basICColor.

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

  • Калибровка и рабочий профиль у меня совпадают по точке белого (D50) и тоновой кривой (L*).
  • Берем ступенчатый серый клин (я использую мишень от Norman Koren) в пространстве sRGB (D65 и степенная гамма-кривая), выводим фотошопом на экран, получаем (видимую) разноцветность по патчам.
  • Image->Convert to RGB -> Beta-Lstar (рабочий профиль) - разноцветность патчей пропадает.

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

Vuescan

Вот пишут мне знакомые в почту, что всем российским покупателям Vuescan автор предлагает халявно проапгрейдиться по случаю появления русского перевода. Даже тем, кто стандартную версию покупал с годом апгрейдов. Я, правда, не сумел вспомнить E-mail на который свою копию регистрировал и подозреваю, что это был профуканый мой мейлбокс на rambler.ru.

Сходил Vuescan-у на сайт, прослезился, вспомнил молодость. Оказывается, впрочем, разовый бесплатный апгрейд предлагают всем покупателям, по случаю 10-летия программы.

О мониторном софтпруфинге

srgb-proof-400.jpg Проект LibRaw стал настоящим — у нас завелся живой форумный тролль. Как от многих таких троллей, от него есть и некоторая польза: если кормить его вдумчиво, то можно заодно разобраться с какими-то вещами, до которых не доходили руки. В данном конкретном случае я разобрался с мониторным softproof (т.е. эмуляцией одного монитора на другом) и с пользой от этой техники для обработки изображений:

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

Все эти вещи - интуитивно понятны, но их систематизация оказалась полезной и выродилась в отдельный текст:

Мониторный Softproof и Gamut Warning в Adobe Photoshop
...мониторный софтпруф может быть полезен тем, кто публикуется на фото-сайтах и подобным электронным образом, особенно для тех, кто обзавелся монитором с расширенным охватом и/или использует в качестве рабочего пространства - RGB пространство с охватом, много большим чем мониторный (например, Adobe RGB на обычном мониторе).
Помимо этого, вполне возможна ситуация, когда монитор не способен отобразить все цвета изображения - и это надо вовремя детектировать.

NEC 3090WQXi: софт SpectraView разных видов

Калибровка NEC 3090 заняла существенно больше времени, чем я рассчитывал. Одновременно, читатели задавали всякие вопросы, а у меня на них теперь есть ответы.

Ниже мы рассмотрим такие темы

  • работает ли SpectraView Profiler с NEC 3090;
  • работает ли SpectraView II и что из этого получается;
  • работает ли SpectraView Profiler и как;
  • разумная (на мой взгляд) процедура калибровки в многомониторном случае

О новых веяниях в калибровке мониторов

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

Потратив изрядное время на их рассмотрение, решил задокументировать. Первый текст из двух запланированных:

О калибровке мониторов в современных условиях

Рассмотрены (c теоретической точки зрения) всякие новшества последних лет:

  • "аппаратная калибровка" LCD-мониторов;
  • мониторы с расширенным цветовым охватом;
  • тоновая кривая L*;
  • работа с несколькими мониторами;

Pages

Subscribe to профилирование