Fuji SuperCCD

Fuji SuperCCD: сложно о сложном

Расположение пикселов разной чувствительности и цвета на сенсоре SuperCCD, помимо того, что маркетинг Fuji изрядно запудрил всем уши, само по себе нетривиально. Я не уверен, что у меня получится легко про него рассказать (хотя это уже третий пост на данную тему), но буду пробовать.

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

LibRaw 0.7.0 Alpha-3: еще более RAW

Я точно знаю, что есть люди, читающие анонсы LibRaw именно здесь, остальным придется потерпеть.

В третьей альфе LibRaw 0.7.0 случились две группы существенных идеологических изменений и одна группа несущественных:

  1. Данные для камер FujiFilm распаковываются без поворота на 45 градусов. Это открывает путь к легкому получению 12-мегапиксельных картинок с Fuji S5Pro и прочим подобным радостям. При этом, горизонтальное разрешение должно быть заметно лучше, чем у 6-мегапиксельных, выдаваемых dcraw и всеми использующими этот код.
    Посмотреть на реальные RAW-данные Fuji можно с помощью примера unprocessed_raw, очень поучительно (чтобы извлечь второй кадр, используйте ключ -s 1).
  2. Не менее сильно поработали над PhaseOne:
    • Придуман и для PhaseOne реализован режим (не)фильтрации данных, отключающий тоновую кривую для RAW (более raw-данных вы еще не видели!). Идея мне настолько понравилась, что в следующих версиях тоновую кривую можно будет отключить для всех случаев, когда она есть (Nikon NEF, Adobe DNG, далее везде).
    • Рассчитанные камерой уровни черного доступны в метаданных
    • Исправлена ошибка расчета уровня черного, имеющаяся в dcraw (впрочем, на результат она влияет не очень сильно).
  3. Ну и по мелочи: баги, ключ -s у unprocessed_raw, импортирована свежа версия dcraw.

Более подробно и более формально в changelog, скачивать с той же страницы

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

Еще о Fuji S5

fuji_ccd_layout.jpgЧтобы не писать очередного update к предыдущей записи напишу я новую.

Все упражнения с поворотом, а затем с масштабированием файлов Fuji S5, которые проводятся в dcraw - они конечно интересны. Но ровно до тех пор, пока в руки не попадется "12-мегапиксельный" JPEG, который делает сама камера. Из его размеров становится очевидным, что камера делает очень просто: растягивает файл вдоль короткой стороны, отчего он из (примерно) 4300x1400 становится 4300x2800. И все, собственно.

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

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

Меж тем, Fuji - не первая компания, использующая сей нехитрый трюк. Как мне напомнили, у Nikon D1X та же фигня: пиксели прямоугольные, разрешение сенсора 4028x1324, правда камера масштабировала эту картинку в примерно 6 мегапикселей, а не в 10.5. При этом, разница горизонтального и вертикального разрешения у D1X (по DPReview) очень даже есть.

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

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

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

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

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

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

Subscribe to Fuji SuperCCD