О линейности RAW: Nikon D5x00
Модифицировал свой тул для дампа RAW-кривых, так что он стал понимать не только кривые из EXIF (как у Sony), но и кривые, хранящиеся вместе с RAW-данными. И смотрю, значит, в Nikon D5xx.
Вот какие большие огурцы продают теперь в магазинах какая кривая накладывается на распакованное из RAW в Nikon D5000 (после чего данные становятся линейными, а до того они были пожаты обратной кривой):
Масштаб осей - логарифмический, 1 клеточка по вертикальной оси - стоп, отчего тонкие особенности загиба не видны, а общая картина видна прекрасно:
- Всего разных RAW-значений - 769 (минимум кривой - 0, максимум 768). То есть больше градаций просто не будет никогда. Это "9.6 бит".
- На выходе: 12 линейных бит, диапазон 0-4095
- Число градаций в верхних 5 стопах: 229-161-116-86-64. Что, естественно, хуже, чем у честной 12-битной камеры (2048-1024-512-256-128), но для самых важных 4-5-го стопов сверху (полутона) это лучше чем было бы у линейной 10-битной (512-256-128-64-32).
- Дальше в тени все линейно, как у "обычной" камеры без RAW-кривой.
Какие из этого есть следствия:
- ETTR почти бессмысленен. Ну переехали вы из зоны -5EV (от насыщения) в -4EV, ну так градации не удвоились, а из 64 стало 86.
- Градаций в полутонах безобразно мало. Честные рабоче-крестьянские 12 бит в полутонах дали бы в 2-3 раза больше градаций и, соответственно, гораздо больший простор для редактирования.
- Для чего Nikon делает так - портит линейную 12-битную картинку (предполагая, что там линейный 12-битный АЦП, что, вообще говоря не факт) - я не знаю. Ну то есть ради компактности RAW, конечно. Т.е. ради скорости съемки серией, например.
У D5100 все совершенно аналогично, но в 4 раза толще:
Кривая практически полностью повторяет кривую у D5000, но входные и выходные значения, число градаций и т.п., всего в 4 раза больше:
- 3073 градации всего (11.6 бита)
- 4-й стоп сверху - 340 градаций, остальные - по аналогии.
- Загогулина вверху с наклоном 5 осталась, но уже не на 16 входных уровней, а на 64. Остальные значения наклона - такие же, насколько точно они повторяют кривую D5000 не проверял, но очень похоже, что достаточно точно.
- 256-340 уровней на стоп в полутонах - достаточно.
- Все преимущества 14-битного АЦП в тенях (бОльшее число уровней) - на месте.
- А много уровней в светах и не нужно, их и в сжатом виде более чем достаточно. Ну вот в верхнем стопе - 907 уровней, без кривой было бы 8192. Оба варианта - избыточны.
Для желающих повторить своими руками дарю хинт: если в LibRaw после вызова LibRaw::unpack() сдампить значение imgdata.color.curve[], то это и будет именно ОНО. Хачить можно любой пример, самый компактный - dcraw_half.
Comments
D0x00 ;)
D0x00 ;)
Сони с Никоном дошли до
Сони с Никоном дошли до нелинейности. Ждём третий пятак от Кэнона.
Интересное исследование. Я про такое слышал года 4 (5?) на
Интересное исследование.
Я про такое слышал года 4 (5?) назад, тогда шла речь про D50.
Сколько лет прошло, а Никон все тот же, в дешевых моделях по мелочи ворует полутона.
А нет ли данных по Сони и Кэнонам ?
Про Sony я уже писал: http://blog.lexa.ru/2011/10/28/o_linei
Про Sony я уже писал: http://blog.lexa.ru/2011/10/28/o_lineinosti_raw_i_ettr.html
Но там все-таки полутонов достаточно остается (11 бит входных значений)
У Canon: в 14-битных камерах все линейно и просто. В 12-битных CR2 - формат предусматривает тоновую кривую, но живьем я ее не видел (возможные кандидаты 1D и 1Ds первые, руки не доходят посмотреть)
Что нужно сделать, чтобы узнать то же самое для старушки-40D
Что нужно сделать, чтобы узнать то же самое для старушки-40D?
В магии кода не разбираюсь.
В первом попавшемся под руку кадре с Canon 40D - "кривая лин
В первом попавшемся под руку кадре с Canon 40D - "кривая линейна". ISO400, возможно это имеет значение.
Спасибо. Значение имеет всё. Кроме размера , пожалуй.
Спасибо.
Значение имеет всё. Кроме размера , пожалуй.
Собственно, 14-битная камера. Там при любом ISO распаковка "
Собственно, 14-битная камера. Там при любом ISO распаковка "as is", кривая не применяется.
а что пишeт Panasonic в своих
а что пишeт Panasonic в своих мелких сенсорах (18mp GH2, 16mp G3, 12 mpGF3) ?
G3 - 12 бит,честные. На
G3 - 12 бит,честные. На остальные не стал смотреть.
А почему из малого числа строк таблицы делается вывод о разр
А почему из малого числа строк таблицы делается вывод о разрядности выходного файла? Там вполне может быть интерполяция для данных между отсчетами. Чтоб такую кривую описать 769 точек вполне достаточно. Кстати, в пользу моей версии говорит и странное число отсчетов 769. На самом деле таблица содержит круглое число - 768, но не точек, а отрезков. А по отрезкам - линейная интерполяция.
Потому что я другим глазом смотрю на процедуру распаковки. К
Потому что я другим глазом смотрю на процедуру распаковки.
Которая выглядит как out = curve[pixel-value-unpacked-from-raw]
Нет тут места для интерполяции.
Понятно, что это некошерная распаковка, не прямо от никона, а от хакера-Коффина. Но линейность (в первом приближении) дает, да и вообще никто не жаловался.
"в первом приближении" => "как минимум в первом приближении"
"в первом приближении" => "как минимум в первом приближении"
Да, это я невнимательно читал. Про 769 строк таблицы описыва
Да, это я невнимательно читал. Про 769 строк таблицы описывающей кривую я прочел, а про то, что реальный диапазон значений RAW тоже 0..768 - как-то мимо прошло.
P.S. Вообще-то подобный формат называть RAW-ом уже неправомерно. Это уже никак не сырые данные с сенсора. И ради чего все это затеяно было, ради 30% сжатия?
Для 14 битного варианта - у меня претензий нет. Ну кому нужн
Для 14 битного варианта - у меня претензий нет. Ну кому нужны 8к уровней в самом светлом стопе, их на все изображение столько не надо.
С D5000 не так однозначно, 64 уровня в 5-м стопе сверху - все-таки обидно, шансы влететь в постеризацию растут.
А что называть RAW - вопрос философский. Вон у RedOne там вообще lossy-компрессия (JPEG2000) и ничего. А у D1 там и баланс белого был
"По процедурному вопросу" -
"По процедурному вопросу" - чтобы не давать к графикам в логарифмическом масштабе длинных пояснений о вариациях наклона, хорошо раскрашивать их какой-нибудь радугой, пропорционально производной. Так люди, как правило, лучше видят. И загогулина в верхнем правом углу была бы видна. :)
Я по старинке, в экселе. Он
Я по старинке, в экселе. Он умеет такое?
По сути же - это все несущественно. То есть все это трепыхание происходит в светах, на которые по большому счету наплевать...
Вроде Excel не умеет. Я
Вроде Excel не умеет. Я думал, тут еще более "по-старинке" - gnuplot :) Я так, об общем случае, тут-то все и так ясно.
"ETTR почти бессмысленен" - ну здрасте! Кроме шумов хранени
"ETTR почти бессмысленен" - ну здрасте!
Кроме шумов хранения есть шумы камеры, это раз.
Контрастные области никто не отменял - это два.
Контрастные <b>тени</b>? Основной вопрос с ETTR заключается
Контрастные тени?
Основной вопрос с ETTR заключается в том, как быть с профилями. Много раз уже тут обсуждали.
Тени в контрастных сюжетах. В случае матричных профилей я
Тени в контрастных сюжетах.
В случае матричных профилей я не понимаю, какие могут быть проблемы. Там всё линейно.
У кэнона профили табличные. Там да. Но это говорит, скорее, и том что табличные нелинейные профили - не очень хорошо.
Проблема с профилями в том, что в темно-зеленых плашках очен
Проблема с профилями в том, что в темно-зеленых плашках очень слабый синий (да и красный) канал. С шумом.
В большинстве же реально контрастных (>8-9EV) сюжетов у нас присутствуют активные света, которые ярче среднего тона больше чем в 5.5 раз. В результате мы средний тон не передерживаем, а недодерживаем (относительно того, что с него считал экспонометр), а потом наоборот вытягиваем, сжимая света.
По моему, сейчас дискуссия пришла к тому, чтобы математическ
По моему, сейчас дискуссия пришла к тому, чтобы математически точно описать ETTR
Особенно с учётом того, что в контрастных сценах есть совершенно черный, и совершенно яркий белый (например, источники света).
Не, я о другом. Давайте постепенно. Тезис1: Главный объект
Не, я о другом. Давайте постепенно.
Тезис1: Главный объект на отпечатке - в подавляющем количестве случаев - будет печататься в светлоту "18%" (Lab50), ну плюс-минус стоп.
Двигаться дальше имеет смысл только если Тезис1 принят т.е. черные квадраты, черные силуэты на фоне солнца и т.п. - не рассматриваем.
Ну вообще говоря <a href="http://en.wikipedia.org/wiki/Low-k
Ну вообще говоря бывает разное.
То есть, взять и выкинуть целый жанр low-key фотографии - это как-то...
Но, я готов на разговор "рассмотрим, что нам нужно делать для этого варианта".
Да, довольно сознательно и силуэты и low-key (и high-key ту
Да, довольно сознательно и силуэты и low-key (и high-key туда же).
Так вот. Экспозиция "по экспонометру по главному объекту" сделает нам желаемое автоматически. Плюс-минус калибровка экспонометра, конечно, но так и будет.
А ETTR - это переэкспонирование относительно такого замера.
Так вот,
Тезис2: в "контрастных сценах" (контраст сцены больше 7-8-9Ev) с главным объектом (и Тезисом1) у нас контраст создается светами а не тенями.
Т.е. разбег яркостей от "главного объекта - 18%-й серой карты" в света будет больше чем 2.7-3 стопа. Даже если исключить из состава светов то, где нам детализация вовсе не нужна (и переэкспонирование, соответственно, ничего не портит, про блюминг забудем).
Не очень понял. В случае сюжета "Я на фоне неба - солнца" м
Не очень понял.
В случае сюжета "Я на фоне неба - солнца" метод ETTR - это недоэкспонирование. Иначе небеса уйдут в белое.
Ну, я люблю проработанное небо, а лишний стоп шумов на объекте, - да фиг с ним, всё равно тут ISO малошумящее.
Ага. Вот и выяснилось - я под ETTR понимаю исключительно сд
Ага. Вот и выяснилось
- я под ETTR понимаю исключительно сдвиг вправо с переэкспонированием главного объекта относительно того, что по нему спотметр намерял.
- а вы - "вдумчивое заполнение ДД объектами"
Против второго метода я ничего не имею, сам так и делаю. Но на реальных контрастных сценах (где "контраст создается светами") это приводит к недоэкспонированию "главного объекта". Как следствие, мы часто тянем "полутона вверх", "сжимаем света" и почти никогда не делаем обратного.
А в чем смысл?
А Никон проводил такие рассчеты?
Смысл - поэкономить 20%
Смысл - поэкономить 20% ненужных данных. И для 14-битной камеры я даже согласен.
comment
Понятно, хотя блондинкам очень долго доходит=)
занятно
Очень интересно было бы посмотреть на такую информацию по "народному ФФ" от никона - то бишь D700. Спасибо.
Там же какие-то разные режимы
Там же какие-то разные режимы у RAW, правильно? Где бы взять образцов, чтобы быть точно уверенным в режиме?
а в каких режимах и что
а в каких режимах и что снять?
А какие будут RAW - из тех и
А какие будут RAW - из тех и вынем кривую. Если она там есть.
Есть там "compressed RAW" ? Вот там может быть кривая.
сюжеты и бб важен?
сюжеты и бб важен?
Для этого места (кривая в
Для этого места (кривая в RAW) - нет, не важны.
Ну то есть скажу аккуратнее - у всех кадров с D5000/5100, что я смотрел - кривые строго одинаковые. Возможно, что камера что-то там думает и кривые делает разные для разных сюжетов - и это интересно было бы пронаблюдать.
ББ точно не важен (для этого теста) т.к. одна кривая применяется ко всем каналам одинаково.
да, но в д700 можно загнать
да, но в д700 можно загнать свой профиль который можно сделать самой в Picture controls utility, кстати в д5100 эта возможность появилась тоже.
На распаковку RAW он, похоже,
На распаковку RAW он, похоже, не влияет. И применяется где-то позже.
Во всяком случае, ваши примеры с "FUJI" кривой и с SD - имеют одинаковую RAW-кривую там, где она есть.
сделала, куда давать ссылку?
сделала, куда давать ссылку?
Cюда, или сюда или сюда. Но