Клинический случай

Статус
Закрыто для дальнейших ответов.

atutubalin

12 лет на форуме
Сообщения
411
Реакции
37
Ответ: Клинический случай

Nikolay_Po сказал(а):
IMHO, никчему расширять спецификацию на отрицательные XYZ. Какой смысл оставлять отрицательные координаты и невоспроизводимые "цвета" без правил их перевода в воспроизводимые? Ведь однозначные правила перевода отрицательных XYZ в реальные цвета не заданы и, скорее всего, не могут быть заданы универсально. Поэтому считаю, что вопрос стоит решить сразу, а исходные данные так оставить в RAW на память и никуда не переводить.

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

Далее, как я уже писал, матричный профиль удобен тем, что можно не делать баланс белого отдельной операцией.

Что же касается нереальных цветов, то они есть и в положительном квадранте XZ, тут мало что меняется от отрицательных величин.
 

atutubalin

12 лет на форуме
Сообщения
411
Реакции
37
Ответ: Клинический случай

pell сказал(а):
Thnx, про это забыл. Ведь ещё возможны и «честные» четырёх- и более- цветные системы захвата (та же Sony DSC-828F c RGBE сенсором, были и другие, возможно ещё будут).

У сони это просто была такая документированная фича.

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

Nikolay_Po

Частично освоивший
15 лет на форуме
Сообщения
588
Реакции
194
Ответ: Клинический случай

pell сказал(а):
Я, лично я, вижу в этом тупик. Именно, обход простого решения простой задачи (линейная характеризация линейного устройства) передовым методом, называемым в программировании «враппер над залипухой» — это когда решить задачу напрямую не получается из-за недостатка архитектуры, а времени на рефакторинг (переделку уже имеющегося решения) нет, то начинают громоздить из того что есть «лишь бы работало, а дальше пусть маркетинг с саппортом отдуваются».
По-моему, имеют смысл только те координаты XYZ, которые попадают в HVS (цветовой охват зрения). Остальные координаты должны преобразовыватся тем или иным способом. Как показывает практика, простейшая геометрическая притяжка XYZ в пределы HVS (или Lab, sRGB), приводит к ошибкам, например "blue turns purple". Настаиваю на переводе данных сенсора камеры сразу в HVS (CIE2000 Jab или Lab). И для этого не нужно выходить из стандарта ICC, достаточно рассчитать преобразование типа дивайс-линк и на выходе конвертера давать уже "человеческие" цифры.
Если уж переделывать, то идейно правильно. А идейно правилно в данном случае — расширить спецификации Input Matrix/TRC profile'ов, чтобы они описывали величины захвата, а не воспроизведения. Т.е., записывать матрицу не в виде кардиналов, которые, повторюсь, для любой системы захвата физически нереализуемы — то, что выше называлось псевдо-кардиналами, мнимыми кардиналами, XYZ Imaginary Primaries. Причём нужно разрешить этой матрице быть не только 3x3, но «три строки, хотя бы один столбец». Такое моё мнение.
Это целесообразно как альтернатива "чистому" RAW, хотя преимущества перед RAW сомнительны - появляется условное описание аппаратного пространства устройства при помощи "XYZ", да ещё с отрицательными значениями, которое всё равно в большой своей части не задаёт визуального соответствия. Поэтому или RAW(на край - дебайеризированные многоканальные данные), или сразу HVS (Lab, sRGB и иже с ними).
 

Nikolay_Po

Частично освоивший
15 лет на форуме
Сообщения
588
Реакции
194
Ответ: Клинический случай

atutubalin сказал(а):
Мы же о практике? Практика - штука сложная. Например, половинное разрешение (с байеровского сенсора) мало кого устраивает, а значит нужна интерполяция. Интерполяцию лучше делать в линейном пространстве, чтобы еще и об этом не думать, в качестве такового XYZ - вполне приличный кандидат. Хотя есть варианты, конечно.
Здесь согласен - подход через XYZ, даже отрицательные, будет энергитически корректен.
Что же касается нереальных цветов, то они есть и в положительном квадранте XZ, тут мало что меняется от отрицательных величин.
Именно поэтому я считаю пространство XYZ не подходящим для работы с цветом. Готов оставить за XYZ только ББ и дебайеризацию.
 

sabos

Участник
Сообщения
1 909
Реакции
285
Ответ: Клинический случай

). Убираем это отличие. Чем еще он отличается, чем он лучше например lin sRGB. Если допустить отрицательные значения, то sRGB будет даже лучше, ибо также кроет полностью охват, но имеет лучшую эффективность кодирования. Я готов слышать и другие разумные предложения, например ортогональность, как в DEF, или удобство ББ-операций, как в LMS.

Вслед за pell - Если уж переделывать, то идейно правильно.
pell сказал(а):
записывать матрицу не в виде кардиналов
Здесь не понимаю. Кардинал - лишь базис пространства. Если не кардинал, то что тогда?
pell сказал(а):
нелинейность приёмника вполне можно засунуть в TRC
А еще выгоднее - в LUT камеры (который 3x1D LUT).
atutubalin сказал(а):
Что же касается шумов, то они (примерно?) одинаковые, только вот сигнал разный.
Разный когда? Среднее на 1000 снимков? Если мы облучаем матрицу преобладающим синим - логично, что у синего сигнал будет поболее зеленого и красного. Если мы облучаем матрицу серым - сигналы будут более-менее равны. Тут конечно есть нюансы, и серые бывают разными, и предусиление бывает регулируемым поканально. Пока не понимаю, что значит "синий во многих случаях самый проблемный".
atutubalin сказал(а):
Если бы эти 12 бит были бы - жизнь была бы проще. Во многих ходовых камерах (смотрю на данные по 450D) рабочих стопов - 5-6 даже не на экстремальных ISO
И что тогда нам дает повышение разрядности CMM?
atutubalin сказал(а):
Что же касается нереальных цветов, то они есть и в положительном квадранте XZ, тут мало что меняется от отрицательных величин
Снижается и так низкая эффективность использования colorspace преобразований.
atutubalin сказал(а):
матричный профиль удобен тем, что можно не делать баланс белого отдельной операцией.
С одним уточнением. ББ нельзя делать в XYZ, ББ методом XYZ-scaling очень неточен.
Nikolay_Po сказал(а):
не знаю ПО, которое могло бы строить профили многоканальных устройств ввода.
Здесь чуть приоткрою тайну - в дискуссии участвуют люди, способные написать собственное ПО.
 

atutubalin

12 лет на форуме
Сообщения
411
Реакции
37
Ответ: Клинический случай

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

Как только мы перестаем оставаться в области 0-1 (или 0-255) - разницы действительно никакой нет. И никакой разницы в эффективности кодирования тоже нет, какая разница "-1..+2" в XYZ или "-3...+5" в XYZ (цифры очень условные).
Плюс XYZ только в практике, можно использовать CMS для конверсии в пространство редактирования.

sabos сказал(а):
Разный когда? Среднее на 1000 снимков? Если мы облучаем матрицу преобладающим синим - логично, что у синего сигнал будет поболее зеленого и красного. Если мы облучаем матрицу серым - сигналы будут более-менее равны.
С чего вдруг они будут равны? У реальных камер чувствительность по синему на 0.5-1 стоп меньше чем по зеленому, чувствительность по красному - на 1-1.5 меньше чем по зеленому.

Имеется в виду уровень сигнала при дневном свете или около того.

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

Повторюсь: для красного это сделано специально, а для синего - от бедности, свойство кремния.

sabos сказал(а):
Пока не понимаю, что значит "синий во многих случаях самый проблемный".
Самое плохое отношение сигнал-шум в сложных по свету съемочных ситуациях, когда и сам сигнал мал (т.е. искусственное освещение недостаточное по интенсивности /и посветить побольше нельзя/: клубы, театры, рестораны, церкви и т.п.). При таком освещени красный-зеленый более-менее сбалансированы, а с синим полная катастрофа (вдобавок к задранному усилению в камере).

sabos сказал(а):
И что тогда нам дает повышение разрядности CMM?
Видите ли, для LUT-профилей с гаммой 1.0 я (2 года назад, для корректности) получил ошибки
- до 14 бит (из 16) для Microsoft CMM
- до 13 бит (из тех же 16) для Colorsync
- до 11 бит для Adobe.
Это closed loop: RGB-Lab-RGB (тот же) и сравнение результатов, при этом исходный RGB внутри Lab помещается.
Ссылки: http://blog.lexa.ru/2007/12/09/oshibki_pri_obrabotke_cveta_chast__v_tablichnie_pr.html (про Lut-профили)
http://blog.lexa.ru/tags/cmm - вся серия.

Надо было, конечно, в dE считать, но мне в битах проще думать.

Поэтому если у меня 6 значащих бит (а может быть и 9-10 если камера получше и свет поярче), а CMM их доводит до двух, это уже перебор. Да и до пяти (Adobe CMM) - тоже перебор.

Собственно потому и матричные профили - при всех их особенностях, точность работы существующих CMM с ними на голову выше.
 

pell

Участник
Сообщения
221
Реакции
0
Ответ: Клинический случай

sabos сказал(а):

Не понял вопроса.

sabos сказал(а):
Более интересным считаю всеобщее воодушевление с отрицательными XYZ. Пока мне это решение напоминает «враппер над залипухой».

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

sabos сказал(а):
Здесь не понимаю. Кардинал - лишь базис пространства. Если не кардинал, то что тогда?

Именно. Кардиналы — базис пространства (стимулов). А устройство ввода = тройка (или другое число) ковекторов в сопряжённом пространстве (спектральные чувствительности). Описание устройства ввода — это описание кобазиса в сопряжённом пространстве.

У нас есть принципиально разные величины:
а) стимулы (векторы) — это то, что излучается/поглощается;
б) детекторы (ковекторы) — это то, что поглощает, преобразуя энергию ЭМИ в, условно, число.

Если мы моделируем стимулы векторным пространством, то детекторы моделируются векторным же пространством сопряжённым к пр-ву, моделирующему стимулы. Несмотря на то, что математически это одинаковые пр-ва, их следует различать — эти пр-ва моделируют различные физические феномены. Тут математика играет с людьми злую шутку — формальное применение теоремы Рисса о представлении (или, проще, неявное отождествление всех трёхмерных евклидовых пространств) приводит к заблуждению, что пр-ва различной природы можно отождествить. С точки зрения математики да, можно. С точки зрения базовой колориметрии, нельзя — мы с С.Н. неоднократно обращали внимание на то, что дуальные базисы в паре пр-в «стимулы—детекторы» физически нереализуемы (тройке детекторов отвечает Imaginary Primaries, тройке кардиналов отвечают физически нереализуемые детекторы с местами отрицательными откликами).

И то, и другое моделируется линейным трёхмерным вещественным пространством. Но это разные линейные трёхмерные вещественные пространства. Их нельзя смешивать.
 

atutubalin

12 лет на форуме
Сообщения
411
Реакции
37
Ответ: Клинический случай

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

Основная проблема в этом месте чисто практическая: хочется использовать наработанный . даже не понятийный аппарат, а code base, чтобы не писать таки свою CMM.
 

pell

Участник
Сообщения
221
Реакции
0
Ответ: Клинический случай

sabos сказал(а):

На всякий случай опишу подробно процедуру вычисления охвата «идеального принтера».

Вводные:
* спектральное распределение энергии источника (я взял D65)
* CMF CIE XYZ 1931 с шагом 1нм в диапазоне [360нм,830нм]

Расчёт:
* для данного уровня отражения 0<=k<=1 расчитываем XYZ значения серого (просто k*XYZ D65);
* для каждой длины волны в диапазоне [360нм,830нм] накапливаем XYZ значения в узкой (насколько получится) спектральной полосе до исчерпания хотя бы одной из XYZ компонент серого, расчитанного на предыдущем этапе. Иначе, суммируем узкие (шириной 1нм) дельта-импульсы до исчерпания возможного отражения.
 

pell

Участник
Сообщения
221
Реакции
0
Ответ: Клинический случай

atutubalin сказал(а):
Основная проблема в этом месте чисто практическая: хочется использовать наработанный . даже не понятийный аппарат, а code base, чтобы не писать таки свою CMM.

Да. Поэтому в качестве любого линейного пр-ва разумно выбрать PCS XYZ. Чтобы не пришлось существующие CMS переписывать заново (этим просто никто не будет заниматься, какой бы волшебно хороший стандарт ни придумали).
 

pell

Участник
Сообщения
221
Реакции
0
Ответ: Клинический случай

Nikolay_Po сказал(а):
Здесь согласен - подход через XYZ, даже отрицательные, будет энергитически корректен.

А откуда они, отрицательные XYZ, могут взяться? Любое ЭМИ имеет всюду неотрицательную функцию спектрального распределения энергии (SPD = Spectral Power Distribution). Его (ЭМИ) XYZ значения — это интегралы от произведений SPD на CMF (Color Matching Functions). CMF тоже нигде не отрицательны. Интеграл — монотонный функционал. Итого, XYZ любого ЭМИ всегда неотрицательны.
 

pell

Участник
Сообщения
221
Реакции
0
Ответ: Клинический случай

Nikolay_Po сказал(а):
По-моему, имеют смысл только те координаты XYZ, которые попадают в HVS (цветовой охват зрения). Остальные координаты должны преобразовыватся тем или иным способом.

Остальные, лежащие вне локуса, XYZ значения не могут (по модулю точности измерений) быть получены при захвате, так как локус выпукл. Любое ЭМИ раскладывается в ряд (последовательность, функцию и т.д. в зависимости от подхода) спектрально чистых ЭМИ и его XYZ значения автоматически попадают в локус, как неотрицательными линейная комбинация его (граничных) точек.
 

sabos

Участник
Сообщения
1 909
Реакции
285
Ответ: Клинический случай

atutubalin сказал(а):
И никакой разницы в эффективности кодирования тоже нет
Это навскидку, или были проведены расчеты? Если расчеты - можно их увидеть? Ибо противоречие вижу, угол между primaries сильно на эффективность влияет.
atutubalin сказал(а):
Плюс XYZ только в практике, можно использовать CMS
Видимо "можно использовать готовый CMS". Или точнее, "можно использовать готовый код CMМ, лишь изменив unsigned". Неубедительно imho.
atutubalin сказал(а):
У реальных камер чувствительность по синему на 0.5-1 стоп меньше чем по зеленому
В каких величинах здесь "больше-меньше"? Для какого "дневного" белого? NSNS (north sky, no sun) проверяли?
atutubalin сказал(а):
для синего - от бедности, свойство кремния.
Хм, здесь у меня пробел в образовании. Навскидку проблем в синем не вижу (см. аттач). Может толщина кремния в сенсоре ограничивает... Нужно будет подучить вопрос.
atutubalin сказал(а):
искусственное освещение недостаточное по интенсивности
Здесь понимаю. Нет в природе совершенства. Увы, здесь лишь по пути пленочников - или делать специально матрицы, сбалансированные под лампы накаливания, или фильтры.
atutubalin сказал(а):
Видите ли, для LUT-профилей с гаммой 1.0...Ссылки...
Спасибо, попытаюсь поизучать. Вы уверены, что это ошибки CMM, а не профиля? Round Trip Test профилям делали? LUT-профили часто этим страдают, а уж для экстремальных гамма 1.0 и подавно.
 

Вложения

  • Silicon_Quantum_efficiency.png
    Silicon_Quantum_efficiency.png
    4.3 КБ · Просм.: 930

atutubalin

12 лет на форуме
Сообщения
411
Реакции
37
Ответ: Клинический случай

sabos сказал(а):
Это навскидку, или были проведены расчеты? Если расчеты - можно их увидеть? Ибо противоречие вижу, угол между primaries сильно на эффективность влияет.
Просто из общих соображений - если мы хотим покрыть какие-то точки на плоскости XZ (включая отрицательные значения для общности) треугольником, то совершенно неважно какого размера у нас единица на этой плоскости.

sabos сказал(а):
Видимо "можно использовать готовый CMS". Или точнее, "можно использовать готовый код CMМ, лишь изменив unsigned". Неубедительно imho.
"Можно представить данные в таком виде, чтобы можно было использовать готовый имеющийся CMS". Чем сейчас производители RAW-конверторов и занимаются (с переменным успехом).

sabos сказал(а):
В каких величинах здесь "больше-меньше"?
В фотографических стопах. Мы же о фотокамерах.

sabos сказал(а):
Для какого "дневного" белого? NSNS (north sky, no sun) проверяли?
Как правило, я делаю эксперименты при "северо-западном" небе в том смысле, что окна у меня на запад, а эксперименты делаю до полудня.

sabos сказал(а):
Хм, здесь у меня пробел в образовании. Навскидку проблем в синем не вижу (см. аттач). Может толщина кремния в сенсоре ограничивает... Нужно будет подучить вопрос.
Я писал выше, прямо в этом треде откуда это берется:
Фотон должен не просто поглотиться где-то в сенсоре, а должен это сделать в таком месте сенсора, где накопленный заряд не пропадет. Коротковолновые фотоны имеют тенденцию поглощаться выше (того места, где конденсатор).

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

sabos

Участник
Сообщения
1 909
Реакции
285
Ответ: Клинический случай

pell сказал(а):
У нас есть принципиально разные величины
Насколько они принципиально разные? Если преобразование энергии в число у детектора линейно, разве я не могу этому числу размерность «Джоули» дать? Да, числа - это уже не физическая реальность, это модель реальности. Разве я должен писать «модель Джоуля». Да, если мой детектор энергии нелинеен, его ответ еще не есть «Джоули», его ответ нужно к этим «Джоулям» привести. Но после приведения я могу уже говорить «энергия», и излучить это число без проблем. Чуть строже - энергия обратима во времени, симметрична к смене направления причина-следствие, детектор-излучатель здесь эквивалентны. Мы знаем эту симметричность как закон сохранения энергии.
 

sabos

Участник
Сообщения
1 909
Реакции
285
Ответ: Клинический случай

atutubalin сказал(а):
Просто из общих соображений
Ok, давайте из общих. Есть выпуклая фигура, пусть круг. Я её могу вписать в равносторонний треугольник, а могу в остроугольный. В каком случае стороны (периметр) треугольника меньше?
atutubalin сказал(а):
хочется использовать ... code base, чтобы не писать таки свою CMM...
"Можно представить данные в таком виде, чтобы можно было использовать готовый имеющийся CMS".
Так причиной лень или совместимость? Ведь совместимость можно обеспечить и без internal XYZ colorspace.
atutubalin сказал(а):
В фотографических стопах...
Фотон должен не просто поглотиться где-то в сенсоре, а должен это сделать в таком месте сенсора, где накопленный заряд не пропадет.
Т.е. в величинах квантовой эффективности. Она падает по технологическим причинам. В дешевой матрице коротковолновые фотоны имеют тенденцию поглощаться выше (того места, где конденсатор). Правильно понимаю?
 

atutubalin

12 лет на форуме
Сообщения
411
Реакции
37
Ответ: Клинический случай

sabos сказал(а):
Ok, давайте из общих. Есть выпуклая фигура, пусть круг. Я её могу вписать в равносторонний треугольник, а могу в остроугольный. В каком случае стороны (периметр) треугольника меньше?
Сравнивать надо с площадью, а не с периметром, но в обоих случаях равносторонний будет выгоднее чем любой другой заранее известный (включая sRGB).

Соответственно, если волнует плотность кодирования (в 16 битах - волнует, в 32 - нет), то под каждый набор отсчетов нужен свой треугольник, а не заранее определенный.

sabos сказал(а):
Так причиной лень или совместимость? Ведь совместимость можно обеспечить и без internal XYZ colorspace.
Нет, ну конечно делать свою CMM не хочется и идея надурить имеющиеся - очень позитивная. Но и 14-битной ошибки (из 16) тоже не хочется.

sabos сказал(а):
Т.е. в величинах квантовой эффективности. Она падает по технологическим причинам. В дешевой матрице коротковолновые фотоны имеют тенденцию поглощаться выше (того места, где конденсатор). Правильно понимаю?

Я не знаю что вы подразумеваете под дешевой матрицей, дорогие задники имеют ровно тот же (качественно) разбаланс (посмотрел данные для P45 и Синар e75).

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

sabos

Участник
Сообщения
1 909
Реакции
285
Ответ: Клинический случай

atutubalin сказал(а):
Сравнивать надо с площадью, а не с периметром
Что определяет размерность, площадь или длина стороны треугольника (подскажу - треугольник здесь есть базис координатной системы)?
atutubalin сказал(а):
под каждый набор отсчетов нужен свой треугольник
В качестве тестового набора отсчетов возьмите весь HVS (мы же максималисты-перфекционисты).
atutubalin сказал(а):
Но и 14-битной ошибки (из 16) тоже не хочется.
Повторяю вопрос - 14-бит ошибки пришло из профиля или из CMM? Может совершенствовать нужно профилировщик?
atutubalin сказал(а):
Я не знаю что вы подразумеваете под дешевой матрицей
Я лишь вижу, что физических ограничений в кремнии нет. Причина "коротковолновые фотоны имеют тенденцию поглощаться выше" не есть физическое ограничение, это ограничение технологическое. Кремний, что использует мой спектрофотометр, легко работает и в коротковолновом диапазоне. Кремний, что я видел в PowerPhase FX, бывало даже перенасыщался в коротковолновом диапазоне от газоразрядных имитаторов D50, и даже от галогенки 3200 °K отдача была под 90%. Кремний, что применяется в УФ-детекторах, дает практически бесшумовой ответ при освещенностях менее 1 Вт/м2. Кремний, что применяется в матрице телескопа Hubble... Физику не обманешь, если за эффективностью ответа в синем диапазоне следить, то сбалансировать человечий RGB можно без проблем.
 

atutubalin

12 лет на форуме
Сообщения
411
Реакции
37
Ответ: Клинический случай

sabos сказал(а):
Что определяет размерность, площадь или длина стороны треугольника (подскажу - треугольник здесь есть базис координатной системы)?
Брюс Линдблюм вообще велит сравнивать объемы того что нужно закодировать и того что можно закодировать. И этот подход мне кажется разумным.

sabos сказал(а):
Повторяю вопрос - 14-бит ошибки пришло из профиля или из CMM? Может совершенствовать нужно профилировщик?
14 бит ошибки (это, конечно, наихудший случай, пикселов таких мало в тестовом множестве) получаются при просто closed loop sRGB-Lab-sRGB и микрософтовском CMM (в девичестве Linotype-Hell, вторая часть названия полностью оправдывается).
Link: http://blog.lexa.ru/2007/11/22/oshibki_pri_obrabotke_cveta_ii_16_bit_gamma_22_mat.html
Без всяких ошибок профилировщиков и т.п.

Adobe и Apple в этих условиях ведут себя получше, там ошибочных бит всего 7, что ниже видимой ошибки при гамме 2.2
 
Статус
Закрыто для дальнейших ответов.