FastRawViewer 1.5.2: любителям плоского и неконтрастного

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

Если говорить о продуктах Adobe, то в них

  1. Есть скрытая экспопоправка (baseline exposure correction), приводящая яркость среднего тона проявленного RAW (при нулевом движке exposure) к яркости внутрикамерного JPEG. Подробнее про это см. например тут: Adobe’s Silent Exposure Compensation
  2. Применяется S-образная тоновая кривая (и другие скрытые поправки).

Наши эксперименты показали, что вполне хорошей линейности можно добиться в Adobe Process 2010 (теперь он называется Process Version 2), если поставить линейную тоновую кривую и переставить движки в 0 (подробности тут: Forcing a Raw Converter to Render Tones Accurately).

Поскольку FastRawViewer пишет XMP-файлы, мы решили добавить поддержку высоколинейного режима прямо в FRV, для этого добавлены две настройки:

  • XMP - Exposure, Contrast, WB - Force Adobe software to match FastRawViewer  brightness (exposure)
    По-умолчанию эта настройка запрещена скрыта (даже не disabled) и будет доступна только если отключить настройку Image Display - Exposure - Apply Adobe hidden exposure correction.
    При включении Force Adobe... - в записываемые XMP-файлы будет писаться значение crs:Exposure отличающееся от FRV-шного на 'минус Baseline exposure', то есть яркости среднего тона в FRV и Adobe будут совпадать.
  • XMP - Exposure, Contrast, WB - Write linear curve to XMP files
    Эта настройка тоже запрещена в стандартном случае и становится доступной только если:
    • В настройке Image Display - Contrast curve type выбрать любую настройку кроме Variable contrast
    • В настройке XMP - Exposure, Contrast, WB - Adobe process version поставить Version 2 (2010)
    После этого - новая настройка появится на странице настроек. Еесли ее включить, то при записи Adobe-совместимых тегов для экспозиции и баланса белого в XMP-файлы:
    • Будет записана линейная тоновая кривая
    • будет записан тег crs:Shadows=0
    • Будет записан тег crs:ProcessVersion=5.7 (независимо от предыдущего значения тега, если XMP-файл уже существовал)
    • Будут удалены теги crs:ToneCurvePV2012, crs:ToneCurvePV2012Red, crs:ToneCurvePV2012Green, crs:ToneCurvePV2012Blue
    Что, в свою очередь, приведет к flat, dull, плоскому и неконтрастному изображению, каковое некоторые фотографы предпочитают как стартовую точку редактирования.

Поскольку FastRawViewer пишет теги процессинга только для программ Adobe (нам не удалось найти внятного описания что и куда нужно записать для других популярных конверторов), этот новый режим, естественно, действует только на программы Adobe (Camera RAW, Lightroom).

Кроме того, в очередной раз хочется напомнить, что Лайтрум не читает XMP-(sidecar) файлы с removable media (карточек в ридерах, камер подключенных в режиме mass storage и /в большинстве случаев/ внешних дисков), чтобы созданные XMP-файлы воспринимались Лайтрумом, нужно либо сначала скопировать импортируемые файлы на фиксированный диск или на сеть, либо (в случае Windows) использовать трюк с доступом к removable media по сети.

Кроме того

Добавлена поддержка камер Panasonic S1, S1R

Ссылки для скачивания

Берите тут, тут ссылки обновляются: https://www.fastrawviewer.com/blog/FastRawViewer-1-5-2-adobe-accurate-tone-rendeding-support

Comments

Смешно, что если переключить ACR в из 5 (стандарт сейчас) в 2 а потом обратно в 5, то в экспокоррекции появляется -1, в контрасте тоже не 0, и кривая становится custom хотя была linear (у меня всё по нулям в дефолте).

Почему смешно, это просто все в беспамятстве делается, так и должно выйти, мы это даже описывали.

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

А вот у меня например в FRV стоит в том числе след. запуск external editor'а = "C:\Program Files\Phase One\Capture One 12\CaptureOne.exe" и окно ейное (процесс при этом уже запущен уже и живет себе в своем окне) наверх не вылазит... как бы поправить ситуацию ибо надоело уже все время ALT-TAB туда ?

Z / V

Не знаю как поправить.

неужели никакого там API нет чтобы существующее окошко наверх послать ?

Z / V

Мне не удалось найти вменяемого API.

Оно вероятно таки есть (потому что autohotkey умеет), но я не понимаю с какой стороны подходить к снаряду.

нагуглил https://www.nirsoft.net/utils/nircmd.html , буду теперь командный фай запускать с

nircmd.exe win activate title "Untitled Session"
nircmd.exe win max title "Untitled Session"
C:\Program Files\Phase One\Capture One 12\CaptureOne.exe %1

Z / V

или вот даже универсальнее

nircmd.exe" win activate process "CaptureOne.exe"
nircmd.exe" win max process "CaptureOne.exe"

чтобы искало по имени executable

Z / V

@ECHO OFF
Set ProcessName=CaptureOne.exe

TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%">nul

IF %ERRORLEVEL% NEQ 0 (
rem ECHO %ProcessName% is not running
******************************* Запускаем....
)
) else (
rem ECHO %ProcessName% is running
******************************* Активирум...
)
)

запускать его все равно всегда - ибо CaptureOne.exe должен получить raw из FRV ...

Z / V

можно ли показывать (опционально) точку фокусировки для камер где это возможно? например viewnx-i такое делает на никонах.

wbr, Deesy

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

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

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

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

тем не менее, за продукт - спасибо

wbr, Deesy

Я пользы как фотограф не вижу ;)
А как "разработчик" - не сильно люблю говорить "это экспериментальная фича" в ответ на вопрос, почему Nikon View показывает одно, а FastRawViewer - другое.
Никакой помощи от пользователей в этом месте не будет, тут надо формат знать - примеры, "где не работает", пойдут тоннами, пользы от них мало. Реальная помощь "от пользователей" - написать модуль к LibRaw и сопровождать его хотя бы лет 10. Я вот лично на такое не рассчитываю.
Я просто объясняю свою позицию, ни в коем случае не стремясь поддеть или обидеть.

К сожалению, данные о точках фокусировки
- различаются от вендора к вендору
- различаются от камеры к камере
- могут, вероятно, меняться с версией firmware
- и не документированы толком.

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

Мы работаем над этим, но быстрого результата не ждите.

большое спасибо за надежду. будем ждать :)

wbr, Deesy

Линейный профиль в LR задаётся так: выбрать Process = Version 2 и сбросить все настройки. При этом Blacks = 5, Brightness = +50, Contrast = +25, Curve = Medium Contrast. Эти настройки задают _линейную кривую_. Остаётся только выставить Exposure.

При выборе PV5 сжимаются верхние тона и понижается их насыщенность. Это становится заметно при L>75.

Нет,этот рендер не будет линейным. Проверить очень просто

  • Возьмем Q13 в DNG
  • Проверим что отношение соседних патчей - фиксировано (1.25) в RawDigger
  • Откроем этот DNG в Lr/ACR, поставим настройки которые вы сказали
  • Выведем в Adobe RGB (не в sRGB т.к. там не просто гамма, а начальный линейный участок)
  • Откроем в фотошопе, пипеткой считаем значения
  • Переведем значения в линейную шкалу (RGB^2.2) и посчитаем контраст соседних патчей.

Этот контраст а) не 1.25  б) переменный по шкале, света сжаты, тени нет.

Вот экселька у меня такая вот вышла

https://www.dropbox.com/s/8hl2jobz2fkf2p7/linrender.png?dl=0

Q13 DNG (simulation): http://www.rawdigger.com/data/img/Q13_RGBG16.dng

При помощи dcamprof (с GUI - Lumariver Profiler Designer) я сделал DCP-профиль с линейной кривой. Кривая в нем задается двумя точками - 0,0 и 1,1. Если применять этот профиль к цветовым мишеням, на основе которых он сделан, то:

1. При выборе PV2, линейного профиля и с настройками по умолчанию (Blacks = 5, Brightness = +50, Contrast = +25, Curve = Medium Contrast) в цветах LAB я вижу колориметрически точную цветопередачу. Цвета патчей равны тем, что получены при измерении спектрофотометром.

2. При выборе PV5, линейного профиля и с настройками по умолчанию плашки с L<~70 сохраняют цвет, более яркие - придавливаются по экспозиции. Это можно компенсировать так: выставить экспозицию -1EV и кривой поднять экспозицию +1EV. В этом случае верхние тона не сжимаются. Кривую для увеличения экспозиции я построил с учётом гаммы sRGB: https://drive.google.com/file/d/1GF2ipCHNtaycMOLCychA8JwdnoPh2rU8/view?u...

Какой из этого вывод? Если вам нужна колориметрическая точность, LR для этого подходит не лучшим образом. Вероятно, DNG с встроенным профилем и RAW (у меня NEF) с внешним DCP-профилем обрабатываются по-разному.

Вот интересное же упражнение - взять синтетических мишеней (в DNG), построить профиль и посмотреть на результат.

Как обрабатывается DCP (и что у вас за DCP - это же отдельный вопрос) - я не вдавался.

Лучше взять реальные фото мишеней. На dpreview.com можно скачать фото мишеней с Q13 и ColorCheker, снятых на любую камеру. Берем, например, NEF с D5300: https://www.dpreview.com/reviews/image-comparison/download-image?s3Key=3...

Для начала открываем в RawTherapee (там можно выбирать кривую независимо от профиля камеры), ставим линейную кривую, выставляем экспозицию по светлой плашке, проверяем цвета в Lab. Получаем референсные значения Q14 (https://deltae.picturae.com/wiki?title=Kodak_Gray_Scale).

Теперь открываем тот же NEF в Camera Raw. Выбираем профиль с линейной кривой (нужно создать самому), выставляем экспозицию по светлой плашке и описанные выше настройки (Process = Version 2, Blacks = 5, Brightness = +50, Contrast = +25, Curve = Medium Contrast). Получаем в Lab те же цвета, что и в таблице референсных значений (в пределах +-1, что для реальных кадров нормально).

Скриншоты: https://drive.google.com/open?id=1vIm2uAj8n1exEEbatiqTszWY8GierZF_

Ну знаете, да, если "профиль создать самому" то можно чего угодно добиться.
Можно ж ведь и без профиля.

> Можно ж ведь и без профиля.

в ACR/LR никак нельзя - там прямо в коде есть запасные на случай если внешних профилей не обнаруживается

Z / V

Вы тяни-толкая создаете, Ваш профиль компенсирует нелинейность установок ACR. Зачем это, рост шумов же происходит. Вот эта нелинейность https://www.rawdigger.com/howtouse/overriding-raw-converter-default-adju... - "Practical Part: How You Can Override Default Adjustments". Дело, конечно, Ваше.

Профиль камеры не привязан к RAW-конвертеру. Он не может ничего "компенсировать", т.к. в процессе его создания ACR даже не запускается.

"Нелинейность" по вашей ссылке из-за кривой, зашитой в стандартные профили от Adobe (Adobe Standard, Adobe Color etc.). В спецификации DNG это ProfileToneCurve. В ACR кривую ProfileToneCurve нельзя выключить, она применяется последовательно с кривой, заданной пользователем. Даже когда выбирается PV2 и линейная кривая, кривая профиля ProfileToneCurve по-прежнему применяется, поэтому измерения тона плашек Q13 по вашей ссылке не совсем корректны.

""What happens to my mid-tones? I set exposure using exposure meter; open the shot in Adobe Lr (or Adobe Camera Raw, or some other converter) - the shot looks overexposed and everything starting from mid-tone and up looks very flat." — это потому, что зашитая в профиль Adobe Standard кривая поднимает средние тона (см. DNG SDK, dng_render.cpp, dng_tone_curve_acr3_default::Evaluate). Именно поэтому в профиле задаётся отрицательное значение BaselineExposure.

В синтетическом DNG нет ProfileToneCurve, камерный профиль не применяется, поэтому вы получаете правильные тона плашек.

"Профиль камеры не привязан к RAW-конвертеру" -ага, ага. Дело Ваше, я ж сказал.

>> В синтетическом DNG нет ProfileToneCurve, камерный профиль не применяется, поэтому вы получаете правильные тона плашек.

1) если бы вы сходили бы по ссылке - то увидели бы (наверное), что там работают с реальным RAW-файлом из реальной камеры, а не с синтетикой.

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

Еще, кстати, полезно бывает задуматься, одинаково ли значение Baseline Exposure для разных камер/разных ISO, а если нет, то можно ли его компенсировать одной обратной кривой...

зачем Baseline Exposure компенсировать кривой - есть же тэг в dcp профиле для компенсации оного ? и потом (если уже не сказали) к тому что писалось кем то выше от независимость dcp профиля и конвертера... baseline exposure оно ж в коде конвертера записано (ACR в данном случае) - так это кусок в dcp профиле таки привязан к тому что adobe пишет в коде... или мы компенсируем ACR/LR в dcp профиле или нет - с другим конвертером применение того же самого dcp профиля не приведет обязательно к тем же самым результам

Z / V

> Цвета патчей равны тем, что получены при измерении спектрофотометром

фантастика... прямо таки любое dE* = 0.000000 ?

Z / V