Reply to comment
Байеровский муар
Submitted by lexa on 1 December, 2010 - 14:35Об анализе RAW-конверторов
Существующее на сегодня многообразие RAW-конверторов и используемых в них алгоритмов порождает проблему выбора: какие конверторы лучше (и для чего). На интернет-форумах распространена очевидная методология: берется одно (или несколько) изображений, обрабатывается разными конверторами/алгоритмами/настройками и визуально сравнивается. Зачастую, результат выглядит так для изображения P лучше алгоритм Q, а для изображения A алгоритм Z с включенной галкой f+ .
Более того, анализ в терминах хуже/лучше просто неправилен, правильная постановка звучит как ближе/дальше от исходного изображения.
Проблема заключается в том, что мы имеем дело со сложной системой, включающей в себя
- Снимаемый объект и его освещение
- Оптический тракт камеры с аберрациями объектива и светорассеянием внутри камеры.
- Сенсор со всеми его конструктивными особенностями: противомуарным фильтром, цветными байеровскими фильтрами, микролинзами и так далее.
- Внутрикамерный процессинг, как аналоговый, так и цифровой.
- А, да, изучаемый RAW-конвертор тоже.
Даже если правильное исходное изображение известно (снималась синтетическая мишень с известными характеристиками), вклад каждой из перечисленных составляющих остается неясным.
Вместе с тем, никто не мешает исключить из процесса фотокамеру (и снимаемую сцену) и изучать только RAW-конвертор, подавая ему на вход специально сгенерированные данные. Эти данные не обязаны быть правдоподобными (т.е. такими, какие возможно получить с реальной камеры), многие интересные особенности алгоритмов конверторов лучше видны на нереальных данных.
Устойчивость к муару
В процессе изучения возможностей и подходов, родилась первая мишень, ставящая алгоритмы демозаики (байеровской интерполяции) в совершенно невыносимые условия.
Мишень состоит из линий шириной в 1 пиксел, расходящихся из общего центра и образующих круг:
- В правой половине круга радиусы проведены через два градуса, в левой через один градус.
- В верхней половине радиусы проведены с использованием antialiasing (средствами ImageMagick), в нижней без antialiasing.
Из мишени сформирован DNG-файл, таким образом что:
- Уровень белого на 2 стопа ниже уровня насыщения.
- Уровень черного на 4 стопа ниже уровня черного.
- Цветовая матрица диагональная с единичными коэффициентами.
- DNG построен без противомуарного фильтра т.е. просто копированием значений соответствующего цветового канала исходного TIFF-файла в DNG. Из реальной цифровой фотокамеры получить такие данные практически невозможно: даже если противомуарного фильтра нет (цифровой задник), какое-то рассеяние обязательно даст объектив. Впрочем, более реальные (размытые) мишени мы ниже тоже рассмотрим.
К этому DNG-файлу были последовательно применены все 12 методов интерполяции, имеющиеся в LibRaw 0.12, результаты сведены в таблицу ниже (все картинки кликабельны и открываются в полный размер 1000x1000). Картинки в табличке сделаны такими маленькими намеренно, чтобы читатели смотрели полный размер, а не превьюшки, ибо алгоритм формирования превью сам подвержен муару. Для экономии трафика, полноразмерные картинки приведены к 8-битному виду, видимых глазом отличий с исходным 24-битным вариантом практически нет
Как мы видим, все рассмотренные методы демозаики порождают обильный цветной муар (что неудивительно для такой мишени), включая и half (биннинг 4 пикселов в 1). Ни один из методов не породил удовлетворительной картинки, однако у трех из 11 методов картинка ощутимо лучше прочих: AMaZE, LMMSE и AHD (немодифицированный) дали наименьший муар (перечислены в порядке ухудшения качества).
Идентификация алгоритмов
Интерференционные картинки, выдаваемые алгоритмами демозаики на рассмотренной мишени настолько показательны, что возникает непреодолимое желание идентифицировать алгоритмы, используемые в коммерческих программах. В этих целях были опробованы:
- Adobe Camera Raw 6.3
- Capture One 5.2.1
- HDR PhotoStudio 2.15.42
Использовались настройки по умолчанию с единственным исключением: для Camera One пришлось отключить sharpening, слишком уж он сильно он работает на такой контрастной мишени.
Для двух из них методика сработала:
Adobe ACR 6.3 Adobe Camera Raw использует алгоритм, необычайно похожий по результатам на modified AHD by Paul Lee . Конечно, с точностью до яркости, ACR несколько осветлила изображение.
HDR Photostudio
Результаты работы HDR PhotoStudio до крайности похожи (с учетом мельчайших особенностей) на отсутствие "настоящей" демозаики, это полный аналог dcraw -q 0 (bilinear interpolation традиционно не считается "настоящей интерполяцией").
Capture One 5.2.1
Алгоритм Capture One идентифицировать не удалось, пятно цвета magenta на 10:30 (северо-запад) ни в одном из алгоритмов LibRaw не встречено.
Ближе к реальности
Если сформировать DNG из размытой мишени (размытие делалось ImageMagick, метод Gaussian Blur, sigma=1.0), то задача становится куда ближе к фотографической реальности.
Такая мишень ТОЖЕ имеет цветной муар для всех 12 методов интерполяции, имеющихся в LibRaw. Дабы не загромождать статью, покажу 5 из них (три самых лучших из предыдущего теста, DCB и half который почему-то считается наиболее защищенным от артефактов интерполяции).
Half interpolation
|
AHD-интерполяция (алгоритм dcraw)
|
DCB-интерполяция
|
LMMSE-интерполяция
|
AMaZE-интерполяция
|
Заключение
Первые же эксперименты с подсовыванием RAW-конверторам искусственно сгенерированной мишени доставили автору истинное наслаждение. Эксперименты будут продолжены, авторы конверторов трепещите.
А, да, поклонникам пиксельной резкости хочу отдельно напомнить, что если ваша камера/объектив вдруг умеют создавать на матрице контрастный объект пиксельного размера, то какого он будет цвета (и будет ли этот цвет хотя бы отдаленно напоминать исходный) предсказать невозможно.
Для самостоятельных упражнений
- porcupine.dng - неразмытая мишень.
- porcupine-blur.dng - размытая мишень.
















