В последние 2-3 недели в узких кругах вдруг приобрел невиданную популярность "новый" (предложенный в 2006 г.) метод интерполяции байеровских изображений: Variance of Color Differences или сокращенно VCD.
На сегодня доступны две реализации данного алгоритма, я не удержался и потестировал одну из них.
Теория и реализации
Теоретические основы метода VCD изложены его авторами (King-Hong Chung and Yuk-Hee Chan) в статье Color Demosaicking Using Variance of Color Differences, причем в алгоритме используется метод подавления артефактов ECI, описанный в Hybrid color filter array demosaicking for effective artifact suppression.
На сегодняшний день алгоритм VCD реализован:
- в виде патча к dcraw: sites.google.com/site/demosaicalgorithms/modified-dcraw;
- в последней версии Raw Photo Processor.
В связи с тем, что RPP дает существенно более высокое качество результирующих изображений (как минимум, для других методов интерполяции), тестировался второй вариант.
Быстродействие
В моих тестах VCD работает на 10-15% быстрее, чем AHD. Это соотношение верно и для работы с виртуальной машиной с файлами на (гигабитной) сети и для работы с настоящим MacBook Pro с файлами на локальном диске.
Качество изображения
Детализация
На рисунке 1 (откроется в отдельном окне если кликнуть на картинку-preview) вы видите сравнение детализации на "фактурном" предмете (трикотажная детская шапочка) для трех видов интерполяции в RPP (Half, AHD, VCD) и, для сравнения, результат работы Adobe Camera RAW 5.2 (этот же кадр использовался в старом тексте Не все RAW-конверторы одинаково полезны).
Как видим, AHD и VCD в варианте RPP на данном изображении дают практически одинаковое качество детализации, Adobe - ощутимо худший, а вариант Half приведен вообще только для целей сравнения.
Несложно найти кадры, на которых VCD работает лучше AHD. На рисунке приведен "пейзажный" кадр и увеличенная область галечного пляжа (для использованной камеры Kodak SLR/c это довольно неприятное место, на таких объектах легко образуется муар т.к. у камеры нет anti-alias фильтра). Как и в предыдущем случае, интерполяция Half приведена в общефилософских целях, а на увеличенных участках мы видим, что VCD не проигрывает в детализации и одновременно не дает типичных для AHD "удлиненных прямоугольных артефактов" (удлиненные прямоугольники, размером в несколько пикселов, расположенные горизонтально или вертикально).
AHD-артефакты довольно часто проявляются на листве, траве и подобных объектах. На рисунке 3 их видно очень хорошо на самом левом дереве (для лучшей видимости, изображение подвергнуто Unsharp Mask с радиусом 0.3). Показанный на рисунке фрагмент взят с исходного изображения, показанного на рисунке 2.
В то же время, оказалось несложно найти исходное изображение, применение VCD к которому дает не столь радужные результаты. На рисунке 4 показано изображение целиком и фрагмент центральной части с сильным увеличением. Как мы видим, на цветочной поляне VCD дал гипер-модуляцию в виде "сеточки" по каналу яркости (кроме того, что не видно на примере, но было встречены отдельные микро-объекты, которые сохранили правильный желтый цвет после AHD-интерполяции, а VCD повысил им яркость с одновременной потерей цвета). Конечно, на печати эти артефакты видны скорее всего не будут, да и сам объект съемки - крайне неприятен для цифровой камеры, но факт неверной интерполяции - налицо.
Заключение
Протестированный алгоритм VCD во многих случаях работает лучше привычного всем AHD. Вместе с тем, в тестах были зафиксированы не слишком значительные артефакты. Однако если они мешают, то сложно придумать что-то лучшее, чем вернуться для этих кадров на AHD. Хочется надеяться, что большая часть артефактов VCD может быть подавлена программно, путем усовершенствования алгоритма.
Comments
Майкл Рейхман похвалил RPP :)
http://www.luminous-landscape.com/reviews/cameras/a900-one-month.shtml
Если бы он ещё Batch Mode
Если бы он ещё Batch Mode освоил, то хвалил ещё пуще. А то, видишь ли, ему неудобно,
Напишите ему на форуме. Он
Напишите ему на форуме. Он активно читает своих читателей.
Андрей ему в личном письме
Андрей ему в личном письме дал разъяснения :)
Потестил тоже, действительно,
Потестил тоже, действительно, разница в проработке деталей, в сравнении ACR - весьма заметна. Жаль, что нет вин-версии RPP.
А в текущей версии LibRAW уже
А в текущей версии LibRAW уже имеется поддержка этого чудного алгоритма?
Или хотя бы планируется?
В текущей - нету. Насчет
В текущей - нету.
Насчет будущих - есть сомнения т.к. постпроцессинг - это не задача LibRaw (как мы ее видим), а вставленный постпроцессинг из dcraw - это чтобы было что-то сразу.
спасибо за статью. уже
спасибо за статью. уже опробовал. результаты есть. но видно их только на 100% кропе.
но при этом, уже ~50% кропе заметны артефакты.
в волосах особенно заметно. так что в оригинальном масштабе резкостью в волосах "не полюбуешься".