Обработка RAW

Обилие демозаик

Тем временем, вышла LibRaw 0.12 (beta).

Усилиями контрибьюторов (как их писать на нашем, "вкладчики"?) была добавлена большая пачка разнообразных методов демозаики.

К несчастью, лицензионные ограничения не позволяют распространять все это богатство на тех же условиях, что и LibRaw (LGPL/CDDL), поэтому часть этих методов раздается отдельно, под соответствующими лицензиями:

  • Демозаика DCB и шумопонижение FBDD (автор: Jacek Gozdz) добавлена в основную LibRaw, ибо лицензия позволяет.
  • LibRaw-demosaic-pack-GPL2 включает в себя:
    • Алгоритмы, реализованные в Modified DCRAW by Paul Lee: VCD, modified AHD, AHD+VCD и модифицированные медианные фильтры.
    • Алгоритмы из Perfect Raw by Manuel Llorens (удивительно, но не нашел куда нормально дать ссылку): AFD и LMMSE
  • LibRaw-demosaic-pack-GPL3: AMaZE из RawTherapee 3 и подавление хроматических аберраций оттуда же.

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

LibRaw 0.11.2

По традиции, поспамлю тут немножко.

Вышла LibRaw 0.11.2 в которой:

  • Вычитание уровня черного производится всегда на стадии постпроцессинга (про что я тут уже писал), что сильно упрощает жизнь, особенно если у вас постпроцессинг свой: не надо разные камеры обрабатывать разными способами, черный или всегда сами вычитаете или всегда зовете LibRaw::subtract_black().
    Для пользователей постпроцессинга LibRaw в этом месте ничего вообще не изменилось, API старый, вычитание делается прозрачно для вас.
  • Сильно порефакторена AHD-интерполяция, если используется OpenMP, то на 4-процессорной машине оно теперь раза в полтора быстрее чем раньше (тоже с OpenMP) на полной обработке, т.е. AHD-стадия быстрее разика в 2-2.5
  • Новый I/O-layer, сделанный на iostreams, что для мультипоточных программ на Win32 и Linux сильно быстрее (на этих системах в FILE* I/O явно переборщили с блокировками). На FreeBSD/MacOS разницы никакой нет, что мне говорит об отсутствии там лишних блокировок (а кому-то еще - об убогости тамошней реализации iostreams :).
  • Поддержан мешочек новых камер (импортирована свежая dcraw 9.05):
    • Canon: G12, SX120, 60D,
    • Hasselblad H4D, Nokia X2, Olympus E-5,
    • Nikon: D3100, D7000, P7000,
    • Panasonic: FZ40, FZ100, LX5,
    • Pentax: K-r, K-5, 645D,
    • Samsung GX20, WB2000
  • Ну и по мелочи много поправлено, читайте Changelog.

Ну и на закуску: основная ветка разработки теперь дублируется на GitHub: github.com/LibRaw/LibRaw, отчего участие в наших развлечениях для сторонних желающих сильно облегчилось. Увы, но сил на дублирование всего репозитория не хватило, поэтому релизные боковые ветки - бэкпортятся в master, но вот самих боковых веток на github нету.

LibRaw 0.10 и 0.11

Некоторые пользователи LibRaw тусуются здесь, поэтому я тут и поспамлю немножко.

LibRaw 0.10 Release
Это формальный выпуск, признание того факта, что версия 0.10 - стабильна, каких-то значимых нареканий на нее за лето не было. Значимых отличий от 0.10-Beta3 нет.
LibRaw 0.11 Beta1
А это, наоборот, дивный новый мир с дополнениями и изменениями:
  • Выходное изображение (результат) можно кропать. Кроппинг делается до постпроцессинга, поэтому для маленького выходного размера постпроцессинг будет очень быстрым*.
  • Сильно изменена обработка вычитания уровня черного: теперь для всех камер (за единственным, но никому не интересным исключением, которое я просто протестировать не могу**) на этапе распаковки RAW-данных вычитание черного не производится. Дальше можно вычитать одним из трех способов: постпроцессинг (dcraw_process()) сделает все сам, если вы делаете демозаику и т.п. сами - вам подойдет новый вызов LibRaw::subtract_black(), ну и полностью самостоятельно все можно делать, данные черной рамки доступны и все такое.
  • Ну и всякие изменения по мелочи, скажем аллоцированное dcraw_make_mem_image()(_mem_thumb()) теперь надо освобождать через dcraw_clear_mem(), обсуждению этого парадокса посвящен предыдущий пост.

Беда, коль сапоги начнет печи...

Вот, казалось бы, хорошая идея - давить пиковые выбросы прямо в RAW-данных. Hot pixels так можно задавить. Вот мне для LibRaw такой патч и прислали, причем, как я понимаю, он уже вовсю работает в одном опенсорсном RAW-процессоре.

На картике слева (кликабельна, по клику увидите как оно на экране при 150%) показан результат применения этого веселого подхода к снимку resolution target. Сверху - результат фильтрации, снизу - без фильтрации. Холст, масло, Canon 500D, снимок взят с imaging-resource.

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

И ведь не индус какой прислал этот патч, а вполне уважаемый человек, помянутый RAW-процессор пишет, который даже многим нравится.

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

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

P.S. Второй содержательный патч из того же источника - не тестировал пока, хотя он мне идеологически тоже не нравится. Он давит maze artefacts, но должен и малоконтрастные детали тоже сгрызать.

LibRaw 0.9

Я знаю, этот блог читают разработчики нескольких софтин, использующих LibRaw, поэтому я и сюда немножко поспамлю.

Вышла LibRaw 0.9, из нового, крупными мазками:

  • Отдельных полной/-Lite/-коммерческой версий больше нет, есть одна LibRaw. Поддерживать три немножко разных библиотеки очень мучительно.
  • Никакого GPL. LGPL/CDDL/собственная лицензия, на выбор пользователя (точнее, разработчика программы, использующей LibRaw).
  • Фовеона тоже больше нет. Унаследованный из dcraw код его поддержки был GPLed и при этом кисть хороший цвет не давал. Пусть пользователи Сигм как-нибудь сами...
  • Розовые облака правятся автомагически, по-умолчанию эта функциональность включена. Можно выключить, смотрите документацию (это место рулится через adjust_maximum_thr).
  • Много существенных исправлений в обработке RAW с камер Fuji, теперь если вы делаете постпроцессинг сами, то не нужны многие дополнительные пассы (обязательные ранее).
Прошу любить и жаловаться если вдруг что.

Ши-дэвыр 2

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

Исходник (кликабельно):

Результат наложения профиля Velvia 50 (тоже кликабельно):

Я не собираюсь утверждать, что это что-то феноменальное, кривая по L, потом Lab Color Boost от Маргулиса сделают что-то довольно похожее. Но вышепоказанное преобразование накладывается одной кнопкой и выглядит вполне "в меру". Ну и тени посинели, чистая вельвия :).

Это конверсия RAW со стандартными параметрами плюс профиль, больше вообще ничего.

Кнопка Шыдевыр

Павел Косенко, заполучив непубличную бету Raw Photo Processor с профилями пленки, дразнит своих читателей результатами финальной обработки.

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

Кроме того, я терпеливо дождался появления этой функциональности в публично доступной версии, вчера вышел RPP 4.1.3 в котором профили пленок есть.

На картинке слева - фрагмент изображения (жмякните, чтобы увеличить), к левой половине применен профиль V50 (Velvia 50) и снижен до -6 контраст (для изображения с богатыми тенями профиль Вельвии излишне контрастен), правая половина - рендеринг по-умолчанию. Впечатление, как вы можете видеть, что левую половину просто протерли тряпкой от пыли.

Естественно, подобный эффект легко достижим через, например, HIRALOAM (Unsharp Mask с HIgh-RAdius-LOw-AMount), но важно что профильное преобразование - локальное, с каждым пикселем отдельно, никаких нелокальных побочных эффектов вроде гало - не возникает.

Тайна розовых облаков

Если вы пользователь RAW-конверторов Adobe последних версий, то с проблемой, показанной на картинке слева, вы скорее всего никогда не сталкивались (или сталкивались, но не в таком масштабе). Большинство остальных конверторов, особенно основанных на dcraw (и LibRaw) имели ее в полный рост на многих камерах, в том числ на кэноновских (и для них - особенно заметно на дробных ISO, для последних моделей камер самые неудачные в этом смысле чувствительности находятся в ряду 160-320-640-1280).

Причина проста, тривиальна, но заслуживает рассказа о ней.

Вот берем, к примеру, Canon 50D.

14-битная камера, значит максимальное значение (насыщение) мы вправе ожидать равным 16383. Ну, после вычитания уровня черного - на ~1000 поменьше.

В реальности же это значение порядка 15750 (до вычитания черного) для ISO 200-250-400-500, 13400 - для ISO 100 и 125, 12800 для ISO 160-320-итд. И только для 6400 и 12800 имеем честные 16383, соответствующие общей теории всего.

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

О фовеонах

Несмотря на то, что существует некое подобие консенсуса, дескать у сенсоров 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 дал легкий способ как проиллюстрировать проблему, так и просто оценить порядок бедствия.

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

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

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

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

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

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

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

Всплыло тут в одном разговоре, хочу озвучить....

    Фотопленки обладают кучей особенностей и по цветопередаче и по контрасту и по зерну и по массе других, менее формализуемых, параметров. По идее, выбор пленки зависит от задачи и все.

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

    И это я только о слайде, выбор ч/б пленки и процесса проявки еще более религиозен.

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

    Так почему же не видно остроконечников и тупоконечников любителей байеровских фильтров Nikon на сенсорах Sony и противоположных им во всем любителей фильтров Sony на сенсорах Sony?

    Спорят же о том, какая Вельвия более православная правильная? Почему старый и новый 5D не имеют своих поклонников? Ну вот разве что фовеонцы есть, да и то не слышно их последние лет несколько....

    Только ли в том дело, что переключение стоит дороже, чем ролик пленки?

Update: дискуссия, на мой взгляд, пошла не совсем туда. Я перезадал вопрос в совсем других терминах:

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

Тормоза на таможне счастливо завершились и 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) с одними и теми же настройками за исключением одной....

О семинаре Маргулиса

Как и собирался, побывал в пятницу на мастер-классе Маргулиса. Имею сказать

  • Натурально, рулит. Действительно выступал примерно 6 часов в сумме, конечно на английском семинаре впихнул бы в слушателей больше (был последовательный перевод, процентов 20-30 времени терялось, хотя некоторые короткие реплики Дэна были на русском).
  • Если будут другие семинары в Москве - пойду обязательно.
  • Видеокурсы от Kelby (есть на торрентах.ру) стали сильно понятнее, как по логике (после того, как весь workflow был несколько раз разжеван, каждая отдельное упражнение понятно), так и по английскому (но я 6 часов просидел прямо под Дэном и английский его научился понимать).

Интегрально - определенно стоит потраченных денег и времени. О самом PPW четко сложившегося мнения не имею.

Цитата из лектора (о некоей коррекции):

это как литр водки: очевидно что много, но сама идея - неплохая

Ну и "фе" организаторам: на подобных семинарах в Штатах пользователи имели какие-то напечатанные материалы (workbook) и это не та PDF-ка, которая доступна по секретной ссылке (ибо PDF-ка на этот workbook ссылается). Т.е. в сочетании с пиратскими видеокурсами - нормально, а без них - доза получается явно недостаточной. В остальном организация - приемлемая.

Мастер-класс Маргулиса

Не на правах рекламы, а от чистого сердца.

Если кто не знает: 18 сентября 2009 года, в Москве, в "Метрополе", будет однодневный семинар Дэна Маргулиса, посвященный преимущественно Picture Postcard Workflow (PPW) - новому быстрому workflow от Дэна.

Я уже которую неделю маленькими кусочками смотрю видео от Kelby Training, продираясь через устный английский, ибо без этого обсуждение в ACT (которое по следам видео) на душу не ложится. Умучался неимоверно и решил, что пусть лучше мне за 120 баксов устроят синхронный перевод.

Если кто-то считает нужным перепостить это в тематические сообщества (по фотошопу, по обработке фото), то сделайте это пожалуйста.

P.S. Сожалею что не могу дать общедоступную ссылку в ACT, ибо рассылка Applied Color Theory даже для чтения требует одобрения модератора, которое, впрочем, легко дают.

P.P.S. А видео от Kelby есть на torrents.ru

О хроматических аберрациях и RAW-конверторах

CA-1.jpg В предыдущем посте про Lens Align я мимоходом прошелся по Adobe ACR, дескать смотрите какую хроматику он дает, а в JPEG-превьюшке с камеры ничего такого нет. При этом камерное превью - уменьшенное, конечно, но как раз примерно до того же размера, до которого уменьшена картинка в заметке т.е. всю лишнюю хроматику уменьшатор должен был бы сожрать.

Тема оказалась богаче, чем я думал, поэтому пришлось потратить еще полчасика на разбирательство в том, кто виноват.

Развлекался я с исходным кадром (см. ниже), снятым на Canon 5D Mark II, объектив 90/2.8 TS-E, неповернутый-несдвинутый, наводка на резкость вручную, освещение - лампы дневного света 5500K.

Интересующая нас область расположена практически в центре кадра, говорить о существенных хроматических аберрациях на неплохом среднеформатном (этот TS кроет примерно 70-мм круг) объективе было бы странно. Однако оные аберрации неплохо видны даже на уменьшенной в ~7 раз (50 по площади) картинке. Обрабатывалась данная картинка Adobe Camera Raw 5.4.0.57 (последняя версия, принесенная Adobe Update) с дефолтными настройками.

CA-full-frame.jpg

Так как на ACR я всегда ругаюсь, то появился повод в очередной раз сравнить его с RPP, тем более что RPP сегодня обновился.

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

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

В самом деле, имеет место некий фенОмен (который виден, например, по 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).

Pages

Subscribe to Обработка RAW