О линейности RAW и ETTR

Рядовой Иванов, о чем вы думаете, глядя на эту кучу кирпича?

На картинке - кривая, которая применяется к RAW-данным камеры Sony NEX-C3 при их распаковке. NEX-C3 просто первая попалась под руку, в компрессированных RAW A77 или A900 совершенно такая же по смыслу кривая, немножно отличается в деталях.

После наложения этой кривой, RAW-данные становятся линейными. Соответственно, при упаковке используется обратная кривая, линейная в тенях и полутонах и загибающаяся в светах (последних 3 стопах диапазона). По сути, три верхних стопа диапазона сжали в 1 стоп сигнала.

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

Собственно, ничего плохого в такой компрессии светов нет. От того, что в верхнем стопе будет не 2048 градаций (предполагая 12-битный АЦП), а "всего" около 600 - становится только хорошо, потому что поэкономленные 1400 градаций переезжают на второй и третий стопы сверху (полутона и следующий стоп за ними).

В случае Sony градаций на самом деле меньше: прежде чем наложить кривую, RAW-значение умножается на 2, т.е. реальная битность RAW-данных не 12, а 11. Cоответственно, в светах у нас примерно по 300 градаций на стоп, а в тенях - обычное линейное убывание, но в 4-м сверху стопе будет не 1024 градаций, а 512, в 5-м - 256 и так далее.

Следствий из этого я вижу два:

  1. Если на вашей камере есть выбор между нежатым и жатым RAW (как он есть на A900), используйте нежатый. Вы не для того снимаете в RAW, чтобы сходу терять бит из данных, там их всего 12.
  2. Для рассматриваемого же формата получается интересный вывод относительно ETTR:
    • Больше всего градаций - в 4-м сверху стопе. Т.е. "полутонах", "средне-сером".
    • Во всех стопах светлее средне-серого и в 5-м сверху - градаций около 300.
    • И только в более глубоких тенях количество градаций в данных начинает уменьшаться
    Как следствие, сдвигать, к примеру, 4-ю зону (по Адамсу) в 6-ю нет никакого смысла, градаций не прибавится. А вот гемороя прибавится т.к. цветовые профили поползут.

Помимо Sony, подобные кривые, хранящиеся в метаданных, есть у большинства снимающих в 8-битный RAW камер, у некоторых камер Kodak, некоторых 12-битных камер Canon (подозреваю 1D/1Ds, но пока не проверял), кинокамер Red. Но содержимое кривых на этих камерах я пока не смотрел. Хотя по смыслу должно быть похоже, ибо делается для одного и того же.

Ну и в DNG тоже есть, но тоже не исследовал, используется ли, кем и как.

Comments

Sony теперь нам не дает выбора. На новых камерах оставили только такой корявый RAW. :(

Есть мнение, что при этом нелинейность делается "до АЦП" (или на нелинейном АЦП)

Что сильно меняет дело т.к. рабочий диапазон получается сравним с 14-битной камерой.

У меня новых нексов пока нет т.к. не знаю что с ними делать, но если кто снимет серую шкалу с разной экспозицией с размахом стопов 12 - я бы на RAW посмотрел.

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

>У меня новых нексов пока нет т.к. не знаю что с ними делать,
Как что? Некс это такой цифрозадник для мануальной оптики т.к. на самый короткий рабочий отрезок можно надеть какой угодно объектив от какой угодно системы.

Не, не знаю я кто на ком стоял.

Конкретно для соней процедура такая:
1) читаем таблицу из exif
2) linear_value = table [ pixel-from-raw * 2 ]

Вот эту таблицу я и нарисовал.

А "нелинейность" и "деление на 2" может делаться как из относительно многоразрядного АЦП в софте (так, вероятно, происходит для А900), так и нелинейным малоразрядным (11 bit) АЦП. Второй случай, вроде бы, NEX-5N.

А задник для любой оптики - штука такая, страная. Вот у меня micro-4/3 есть, но по факту пользуюсь я там родной оптикой, а не пересаженой. С одним исключением в виде 35/1.4 под леечный байонет.

А как получить pixel-from-raw?
dcraw -4 -o 0 -r 1 1 1 1 подойдет?
или dcraw сам знает про эту таблицу? а про умножение на 2?

Судя по вопросу, вы мне и на почту написали и я вам только что ответил :)

А во втором Пятаке как?

А во втором пятаке все скучно линейно. 14 бит АЦП, черный не вычтен, сигма у нулевого сигнала (с крышечкой) порядка 4 или 6 (не помню уже), т.е. бит 11-12 условно рабочих.

А безусловно рабочих меньше: http://blog.lexa.ru/2011/03/24/o_lineinosti_v_tenyakh.html

>Где именно происходит процесс сжатия...выяснить нельзя...
А если порыться здесь:
http://www.sony.net/Products/Linux/DI/NEX-5.html
или здесь:
http://elektrotanya.com/?q=showresult&megnev=sony&megnev2=nex-vg10&kateg...
ничего нельзя раскопать?

Не, ну а как отличить "нелинейный АЦП" от "цифрового сжатия"? Ну разве что по дыркам от округления, но там деление на 2-4-8 и дырок не будет.