Применение психотропных препаратов к обработке RAW

psychotropic_drugs.jpg В процессе подбора правильных психотропных препаратов для целей программирования правильного чтения черных рамок у RAW-файлов с камер Fuji (SuperCCD) я на эти данные внимательно посмотрел и... фалломорфировал удивился.

Если мы посмотрим в исходники dcraw (или результат работы dcraw -j), то увидим, что при распаковке файлов от Fuji SuperCCD делаются такие вот шаги:

  • Сначала при распаковке пересчитываются координаты, таким образом в выходной битмэп пишется изображение, повернутое на 45 градусов (для разных камер - вращения в разные стороны).
  • Потом это изображение вращается еще раз, уже с интерполяцией данных (в dcraw - билинейная интерполяция, про другие конверторы - не знаю).

Увидев один раз повернутое, я до сегодняшнего дня был убежден (не вчитываясь в код), что это отражает организацию сенсора: строки идут под 45 градусов по диагонали (длина строк, соответственно, разная), а дальше надо просто повернуть.

Сегодня же, выспавшись, полез разбираться в деталях. Детали, прямо скажем, удивительные относительно того знания, которое было в голове.

Если кратко, то:

  • Строки и столбцы у SuperCCD идут как у всех, вдоль сторон кадра.
  • А вот пикселы - вовсе не квадратные, а сильно вытянутые (причем, в разные стороны), aspect ratio от единицы отличается очень сильно.
    • Естественно, aspect ratio (неквадратность пиксела) связана с тем, что в одном "кванте" матрицы сенсоров два
    • И эти два могут быть расположены либо в вертикальном, либо в горизонтальном кластере.

При этом, разрешение (количество парных сенсоров) по одному из направлений у камер - сильно выше, чем у соответствующих по общей мегапиксельности "одноклассников". Скажем, у S5Pro размер RAW-изображения (каждого из двух, содержащихся в RAW) 4352x1440 пикселей (разрешение по горизонтали - как у 12-14-мегапиксельных "обычных камер"). У S2Pro размер RAW-данных 2144x2944, у этой камеры приоритет отдан разрешению вдоль короткой стороны кадра.

На картинке ниже - два кадра с S2Pro. Слева - после масштабирования, как ему и положено выглядеть (вертикальный кадр, отношение сторон 2x3), справа - в исходном aspect-ratio: горизонтальное разрешение (кадры повернуты!) очень так себе, вертикальное - отличное.

fuji-pics.jpg
в новом окне, 1024x551

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

Забавным следствием является то, что цифры DPReview по разрешению S5 похоже просто негодные. Либо должно быть много больше по горизонтали, чем по вертикали, либо (правильный конвертор) должно быть примерно как у Canon 5D, однако ж.

Заодно стало понятно, откуда и зачем в dcraw такая сложная обработка: на стадии распаковки изображение или просто не масштабируется (поворачивается в целых числах), или же сжимается вдвое по длинной стороне. В случае сжатия просто у пикселя получаются два ненулевых компонента, а не один. Поворот делается пусть и в bilinear, но одной и тоже несложной операцией. Альтернатива данному методу: масштабирование в нецелое число раз по двум осям, в смысле потери резкости это гораздо хуже.

Количество открытий в RAW-формате не перестает удивлять...

UPDATE Организация сенсора является диагональной в смысле порядка следования цветов у пикселов. Если двигаться по диагонали, то каждый второй пиксел будет зеленым, а если по горизонтали/вертикали, то все куда сложнее.

Comments

Уйа. Ненатуралы на марше © Саша Дилевский.

Лёша - завязывай с наркотой! Ты нам адекватный нужен! ;)

<q> цифры DPReview по разрешению S5 похоже просто негодные. </q>

Как они мошгут быть негодными, если прочитаны с чарта?
Лишнее фическое разрешение утеряно при конвертации изображения в нужное aspect ratio.

Кстати, разное разрещение у сканероы - обычное дело. Никто не морфирует. :-)

Со сканерами все понятно, у них по одной оси матрица (линейка), а по другой - дрожание левой ноги.

А вот Филовские цифры у S5Pro, несмотря на "считанность с матрицы" наводят на мысли. Например, об оптике. Или о качесве штатива, при таких размерах единичного фотосенсора оно уже заметно.

<q> наводят на мысли. Например, об оптике. </q>

"For each camera the relevant prime lens was used."

Ну может при коммунизме у каждого фотографа будет цейсовская оптика.

<q> Или о качесве штатива, при таких размерах единичного фотосенсора оно уже заметно.</q>

Вряд ли у него совсем паршивый штатив. А цифра, полученная в бетонном бункере на свиновом штативе практичской пользы не имеет.

Еще раз - если у камеры матрица 4350x1440(2880) пикселей, а разрешение измеренное составляет 1900x1700 линий по сенсору - это повод глубоко задуматься о жизни.
Из не названных выше причин - еще и о точности фокусировки, подъеме зеркала, выдержках и прочая.

Что же до практической пользы - ну так 99% фотографов будут снимать с рук, дешевым зумом и с автофокусом, может быть и измерение разрешения делать с рук?