Про Sony A900 и compressed raw

Тут пришлось тестировать правильность работы LibRaw (со свежими правками) со всякими Sony. Проще всего это сделать, открыв файл в RawDigger.

В процессе открылось смешное конкретно для Sony A900, у которой есть два режима сохранения RAW: нежатый и cжатый (такой же как у NEX/A7 и свежих Axxx)

1. В режиме "несжатый RAW без потерь" у A900 c самими RAW-данными все нормально, а вот в EXIF ерунда:

  • Присутствует та же тоновая кривая, что и в compressed-RAW режиме (но при распаковке она не используется).
  • В тегах с уровнем черного написано 512 (как и для compressed-RAW), тогда как правильное значение равно 128.
Более-менее понятно, почему в dcraw делят уровень черного (и сигнал для compressed Sony RAW) на 4 - так в случае A900 оба варианта RAW загоняются в один диапазон ("на самом деле нет": реальный максимум в случае compressed RAW не 16383, а вовсе даже 16628, но про это позже).

2. В случае compressed RAW все сильно хуже.

  • Весь сигнал растягивается на диапазон 0..16628 (то есть, гм, домножается на 4 с небольшим хвостиком? Какая конкретно механика - не знаю).
  • Дальше накладывается тоновая кривая обратная вот к этой: света сжимаем, полутона и тени оставляем как есть.
  • Дальше пишется в соневском 11/7-битном формате
Даже в полутонах и тенях этот метод гарантированно теряет один (с небольшим хвостиком) бит данных: формат записи подразумевает не более 211 уровней, но 256 из них уходит "ниже уровня черного", остается чуть менее 1800.

На самом же деле ситуация еще хуже. Возмем стандартный снимок с сахарницей с Imaging-Resource и посмотрим там гистограмму в тенях (ISO100):

Что мы там видим:
  • Дырки. Каждого второго значения просто нет. Это ожидаемо, данные 11-битные, а перед наложением тоновой кривой их умножают на два, получаются только четные значения (а кривая в этой части диапазона - это просто прямая с наклоном 1).
  • Дальше хуже. В каждой шестерке уровней мы видим три дырки (см. выше), одну высокую палочку, одну среднюю и одну низкую. Далее этот ритм повторяется.
И если с дырками все понятно, то вот тройной ритм удивителен:
  • Если бы 12-битные линейные значения просто умножали бы на 4, а потом обрабатывали бы вышеупомянутой кривой, то в линейной части кривой из 6 значений были бы 3, примерно одинаковые по высоте.
  • Если бы умножали "на 4 с небольшим", мы имели бы небольшое количество дополнительных дырок (как мы видим у Никона в красном/синем каналах за счет WB Preconditioning
  • Тут же - что-то странное и непонятное.
Впрочем, разгадка, кажется вот (обнаружил случайно):

Возьмем маленький квадратик в нижнем правом углу на ровном сером фоне и его гистограмму:

Палочки идут "через 6, иногда через 4" (если бы бит не обрезали, были бы "через 3, иногда через 2", более-менее типичное цифровое поведение после домножения на целую константу.

Совершенно аналогичная картинка в нижнем левом углу, только позиции палочек другие.

А вот если расположить пробный квадратик практически по центру (по ширине), чтобы он немножко заехал на левую половину, а ~80% его были бы на правой, то гистограмма начинает выглядеть так:

То есть получается, что для правой/левой половинок картинки - немножко разная постобработка. Может быть что-то компенсируется (ну там два АЦП, их коэффициенты усиления капельку разные).

Если предполагать, что у A900 такие же следы от степпера как у Nikon D3 (да, я знаю, что у A900 сенсор примерно общий с D3X, надо проверять), то даже понятно, что именно они пытаются скомпенсировать.

В полноценном 12-битном режиме тоже наблюдается странная гребенка на полном кадре:

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

Итого

  1. RAW-данные у Sony A900 - явно обработаны. И в нежатом RAW и в жатом.
  2. Как при этом можно иметь общий на весь сенсор уровень черного - для меня загадка.
  3. В жатом режиме теряется гораздо больше уровней, чем ожидалось. Ожидалась гребенка "через один", а она "через шесть". Т.е. ~1.5 лишних бита потеряны, тени соответствуют 9.5-битной камере (света не изучал, битность там достаточная).
  4. Причин использовать жатый RAW нет.
  5. Такое следствие общего плана: размах данных (больше 214 в данном случае) никак не связан с битностью АЦП (12 бит в данном случае).

Comments

Алексей, а для alpha700 -- то же самое -- потери в cRaw?

А у A700 есть оба режима?

UPD: да, два, нашел два примера, и так и сяк.

Да, там примерно то же самое.

Разве только "две гребенки" в двух половинках не выражены так остро (а может мне кадр попался такой)

увы :-(. спасибо!

ну ничего, флешки большие нынче...

А для А99, раз уж пошла такая пьянка? ;)

А у A99 разве есть несжатый 12-битный формат?

У A99:
- никаких следов uncompressed raw в интернете не нашлось
- у жатого (11/7 бит данных, ~14 bit размах) в тенях уровни идут "через 1" и там все почти хорошо, за исключением провалов в гистограмме через 20 уровней (10 ненулевых значений). Провалы не до нуля, уравниванием половинок матрицы не объясняются т.к. есть и на малых выборках).

Короче, все примерно как у A7R (у нее тоже есть провалы, но через 64).

Спасибо.
Хм! Они действительно разного размера, т.е. все пожатые.
Я в меню когда-то не увидел переключателя сжатый/несжатый - думал оно всегда распакованное.
Еще и dpreview в заблуждение людей вводит: Uncompressed format RAW ;)

Они разного размера т.к. embedded jpeg разного размера.

Сам RAW - 8 бит на пиксель.

Я мало что понял их этой статьи. Как нравился цвет из a900(a850) так и нравится. Конкурентам далеко! А в каких ещё камерах есть несжатый raw и такой цвет?

цвет вопрос вкуса, а нежатые равы есть в любых старших никонах, например (там полная свобода выбора в меню - 12/14 бит, нежатый, lossless жатый и просто жатый)

Тоесть, Вас вполне устраивает по цвету у функционалу A7r? Я просто думаю, надо ли мне a900(a850), может одной A7 смогу обойтись?

Вопрос же в целях.

Как задник для (мануальной) оптики от других зеркалок, съемка со штатива, невысокие ISO - более-менее да.

Как единственная камера - нет (с поправкой на то, что у меня горка оптики для Canon и покупать еще такую же соневскую - дорого).

Что там будет с родной оптикой - тоже вопрос. Три зума и два фикса - ну смешно ж.