О странностях Nikon D800

Вот задали мне тут вопрос в почте, решил сам посмотреть и Фалломо.. удивился, вот!

Возьмем с Imaging-resource какой-нибудь кадр с серой шкалой. Я взял с ISO200 и самой короткой выдержкой, которую нашел (1 секунда).

Откроем его в RawDigger и поставим самплов (Alt-Click) по серой шкале (более светлые квадратики на серых плашках):

Дальше, соответственно, открываем табличку самплов (Ctrl-L или Menu-Windows-Samples) и втыкаем в нее:

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

Я перенес все в Excel (в таблице самплов - Ctrl-A чтобы выделить все строки и пимпа Selected to Clipboard) и стал смотреть на канал G2, а именно на среднее, стандартное отклонение, дисперсия (квадрат стандартного отклонения) и отношение сигнала к дисперсии (как некий аналог отношения сигнал-шум):

NoG2avgσσ2G2avg/σ2
1204.517.14 293.60.69
2559.723.35 545.021.03
3119935.57 1265.20.94
42203.543.89 1926.61.14
53641.365.26 4259.40.85
65551.589.78 8060.90.69
Что мы думаем, глядя на эту кучу битого кирпича таблицу? А вот что:
  • В тенях отношение сигнал-шум (сигнал/дисперсия, если быть точным) меньше, чем в полутонах (тени шумнее полутонов). Это нормально, в тенях помимо фотонного шума значимым становится шум считывания, тепловой шум, ошибки АЦП и так далее.
  • От теней к полутонам отношение сигнал-шум растет немонотонно, но данных для изучения этого эффекта на одном снимке недостаточно, надо бы посмотреть на других снимках/ISO, но пока лень, меня эта камера сугубо теоретически волнует.
  • В светах отношение сигнал-шум тоже меньше, чем в полутонах (света - шумнее полутонов). Это, наоборот, совершенно ненормально, как только мы вылезли заметно выше уровня теневых шумов, так сразу шум у нас - преимущественно фотонный, а там отношение сигнала к дисперсии постоянно.
Что в связи с этим можно предположить? У меня две гипотезы, как их отличить не знаю:
  1. Либо в камере есть какое-то адаптивное шумопонижение, которое работает, преимущественно, по полутонам (на света наплевать, все едино их скомпрессируют, а в тенях ожидать большого эффекта не следует, да и вообще хрен с ними). А может и по полутонам+теням, главное что света явно затронуты этим процессом меньше.
  2. Либо сенсор - исходно нелинеен (см. Aptina), а затем его линеаризует АЦП. Теоретически, на фотонный шум это повлиять не должно, а практически - хрен их знает, что они там могли сделать.

Comments

обосновать не могу, но поставил бы на изначальную нелинейность сенсора.

Что при этом будет с фотонным шумом? Казалось бы - ничего?

очень страшные вопросы задаешь, начальник :))

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

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

В светах (и вообще, по всему диапазону) есть фотонный шум. Который простой как правда - количество фотонов (при фиксированном среднем световом потоке), пролетевших через какой-то пиксель имеет распределение Пуассона. Т.е. дисперсия равна сигналу.
Это их естественное свойство, очень легко доказывается: http://blog.lexa.ru/2011/03/18/o_fotonnom_shume.html
Стандартное отклонение, соответственно - равно квадратному корню из (среднего) числа фотонов. Или из числа образовавшихся в пикселе электронов, это неважно.

А есть еще шум всей остальной конструкции (сенсор, АЦП, итп) - который можно оценить, например, если фотонов в систему не запускать (крышечкой закрыть).
Он - при разумных ISO и выдержках - невелик, порядка нескольких единиц АЦП.

Ну и соответственно, в самых светах (скажем, 16 тыс отсчетов с АЦП, Unity Gain т.е. 16 тыс электронов) у нас фотонный шум порядка 100-120, а тепловой-итп - порядка нескольких единиц. Понятно что тепловой в светах незаметен.

Я бы сказал - 1+2. В пользу 1 говорит и то, что вычитание черного кадра на D800 и в еще большей степени на D4 стало существенно менее полезным (по сравнению с предыдущими моделями Nikon).

Если (приватное) соображение, что сенсор Д7000 = Д800(по сути/конструкции, только размеры больше), и Unity Gain близкО к исо 100 (*), то как быть с тянучестью теней: с ростом ИСО картинка ведь не становится сначала 12, потом 10, потом 8 бит и т.д. ...
В экстремуме должны получаться эстампы! А люди тянут +5 ступеней в конвертере, и картинка эстампом не выглядит.

2. Опять же, выходит, что фул-вэл = ~16тыс для того и другого Никонов, а для Пядвака - 57тыс, то почему практическая тянучесть Пядвака (как бы) хуже??? и ...

3. ... видимых шумов у Пядвака гораздо больше?! ...

sensorgen намерял Full Well capacity для D800 в районе 40 с хвостом тысяч.

Но, с учетом того, что измерение по полутонам и по светам дает разный результат - я не знаю как к этому относиться.

Про "тянучесть" и прочее - ничего не знаю, D800 не пользовался.

Я, очевидно, много не понимаю, но:
если юнит гэйн (по моим прикидкам) - при ИСО100 и равно 16283, то как быть с высокими ИСО?,
Если овер 40 тыс, то что делать с "сигма_квадрат"?

Здесь конкретная модель камеры НЕ ПРИЧЁМ, имхо.

Я не понял вашего вопроса совсем.

Отвечу на другой: я не понимаю (о чем и написал в посте), отчего отношение дисперсии к сигналу растет в светах, ибо фотонный шум должен быть постоянен в этой метрике (дисперсия равна сигналу).
Как следствие, какой на этой камере Unity Gain, какая емкость пикселя - не понимаю.

Если (приватное) соображение, что ... ВЕРНО ...

> Либо в камере есть какое-то адаптивное шумопонижение

Шумопонижение - в .nef?? Впрочем, Никону не привыкать...

> Либо сенсор - исходно нелинеен (см. Aptina), а затем его линеаризует АЦП

Либо искусственная нелинейность встроена между сенсором и АЦП (чтобы наиболее критичные к абсолютному значению уровня шума участки - тени и полутона - растянуть, а менее критичные света сжать), а линеаризует, например, вообще процессор, уже в цифре. Шумит, соответственно, усилитель (или тот самый нелинейный элемент).

Покажите, пожалуйста, какого характера шумопонижение в NEF имелось у предыдущих камер Nikon'а.

Что-то похожее на медианный фильтр, применяемый до записи в nef, как минимум в некоторых камерах - неотключаемый.

Подробнее - в гугле по "Nikon median filter", например (http://www.astronomy.ru/forum/index.php?topic=44254.20), (http://www.astrosurf.com/buil/nikon_test/test.htm), ну и вообще на форумах, посвящённых астрофотографии, много про этот фильтр писали - "фотографировать звёздочки" он сильно мешает.

Насколько я помню, это для длинных выдержек и высоких ISO. И никакого отношения к данной теме не имеет?

Даже не знаю, как и ответить-то. Именно этот пример - вроде как не имеет, тут ISO низкое. Но я всего-то упомянул, что "Никону не привыкать [использовать шумодав в nef]" (а значит, они могут пойти чуть дальше, и применять какой-то шумодав и на низких ISO - всё равно способов достоверно обнаружить его присутствие, можно считать, нет - это я не писал, но подразумевал), и по Вашей же просьбе привёл пример уже имеющегося шумоподавления в камерах Nikon.

У Вас есть какие-то возражения, замечания или дополнения к какому-то из моих утверждений? Мне просто не очень понятно, о чем мы сейчас дискутируем - пока это подозрительно похоже на попытку раздуть флейм из трёх слов "Никону не привыкать".

> пока это подозрительно похоже на попытку раздуть флейм из трёх слов "Никону не привыкать".

Хотя и сами эти 3 слова подозрительно похожи на flamebait, речь сугубо не о том. Адаптивное шумоподавление - это отнюдь не "чуть дальше", это вовсе из иной оперы.

Если честно - не вижу принципиальной разницы (если, конечно, я правильно понимаю, что имеется в виду под "адаптивным шумоподавлением"). Шумоподавление может быть локальным (значение в данной точке вычисляется без учёта значений в соседних точках, например, вычитанием темнового кадра), и нелокальным - при этом значение в данной точке зависит от значения соседних точек (и получается, например, усреднением или медианой). Локальное шумоподавление в RAW - вполне "честный" метод, поскольку при этом вместе с шумом не уничтожается полезная часть информации. Нелокальное шумоподавление в RAW - "нечестно", поскольку уничтожает (в общем случае невосстановимо) часть полезной информации. Медиана-то, в общем случае, даже подеструктивней будет, поскольку значения "выпадающих" точек просто выбрасываются, а не усредняются к соседним :-)

И адаптивное, и медианное шумоподавления - нелокальны, и потому "нечестны" примерно одинаково. Никон уже ловили на нелокальном шумоподавлении в nef. Или я неправ, и адаптивное шумоподавление - и правда что-то совсем другое?

Адаптивное шумоподавление в данном случае - не нелокальное (поэтому я и упомянул вычитание, при нелокальном - в Вашей терминологии - вычитание черного кадра остается весьма полезным). Оно скорее глобальное, то есть зависит как от сцены в целом, так и от ее фрагментов. На D4 мне это видно по характеру flare и потере контраста (и видимого разрешения) при съемке пейзажа при дневном свете и при съемке портрета при смешанном освещении (окно за спиной, помещение освещено лампами накаливания). Контрольные снимки делались на D3X и D3. Совсем другой коленкор.

"Не нелокальное" - то есть, локальное? В таком случае я неправ, и это в самом деле другое дело.

Но - чрезвычайно интересно, для общего образования, узнать про то, как же устроено это шумоподавление? Я не представляю себе локальных алгоритмов (то есть работающих без учёта близлежащих пикселей (расположенных в пределах, скажем, 3-4 пикселей от текущего), пусть даже завязанных на какие-то "глобальные средние" значения кадра (усреднённые с линейным размером не менее десятков-сотен пикселей)), способных уменьшить пространственный шум на масштабах порядка того "серого квадратика". При этом гугль на "адаптивное шумоподавление" выдаёт какие-то слуховые аппараты, википедия тоже не очень помогает...
Вас не затруднит привести какую-нибудь ссылку с описанием такого алгоритма? Очень интересно (пока мне вообще кажется что это математически невозможно, но поскольку я не специалист, вполне возможно я ошибаюсь).

> (поэтому я и упомянул вычитание, при нелокальном - в Вашей терминологии - вычитание черного кадра остается весьма полезным).

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

Про вычитание - первый коммент к посту (не в этой ветке, а выше)

Действительно, пропустил :-)

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

Ну я тоже не знаю, что имел в виду Илья. Настанет более человеческое время на басурманщине - он нам расскажет, я думаю.

Но вообще, раз Никон уже замечен в медианной фильтрации (пусть для длинных выдержек/ больших ISO), не вижу причин ему не фильтровать так же (или похоже) и на коротких выдержках\низких ISO.
Возможно "глобальность" (в терминах Ильи) тут в том, что применяется этот фильтр только если медиана получилась в области полутонов.

Казалось бы, на низких ISO/больших сигналах вклад усилителя не должен бы быть заметным относительно фотонного шума.

А этот самый фотонный шум - дисперсия равна сигналу (на Unity Gain, за счет деления - меньше). В любом случае, поведение по серой шкале (полутона и света) меня удивляет

А кстати, шум АЦП не может зависеть от величины сигнала? Не "шум квантизации" - он всегда равен "одному биту в последнем разряде", а именно погрешность, связанная с конкретным методом преобразования аналога в цифру. Например (начинаю фантазировать - я не знаю, как оно на самом деле), если преобразование делается "поразрядным сравнением и вычитанием заряда", а погрешность вычитания равна (к примеру) 0.1%, то пока сигнал слабый, и для старших разрядов вычитания не делается - ошибка небольшая, а когда сигнал подрос - растёт и ошибка.
Поскольку АЦП должен работать быстро (вводить все эти мегапиксели менее чем за секунду), он вполне может быть неоптимален по шумам.

Марианна измеряла шум на серой шкале в этой серии экспериментов?

без понятия
пока я выполняю роль посредника :)

> без понятия

Возможно, человек, на которого Вы сослались, невнимательно прочел или постинг Марианны, или постинг Алексея. У Марианны, в частности, сказано: "Exmor sensor nonlinearities above approximately 50% of FWC tend to inflate the calculated FWC figure."

Однако странности начинаются ниже.
Вот на данном кадре (в посте) G2avg - 5500 т.е. на полтора стопа ниже насыщения. 30%, даже не 50.

Экспериментально - на D4 приходится ставить коррекцию экспозиции в минус на 1.3 ступени, в противном случае в светах мыло, разрешения нет. Хорошо видно, например, на снимках листа с каплями воды.

Я чего хочу сказать: я что увидел, то и спел.
Использованный кадр - общедоступен (но, возможно, у него в EXIF можно найти, что какое-то шумопонижение было включено), RawDigger - тоже общедоступен и бесплатен.

То есть можно вот просто взять, повторить, проинтерпретировать.

Я увидел странность - и на нее обратил внимание, а проинтерпретировать вовсе не могу.

ну, я поэтому и дал линк на этот пост людям, которые значительно лучше чем я разбираются в этих вопросах )

Спасибо за интересный и грамотный пост.

Спасибо также lesnoybrodyaga, который прислал мне ссылочку на этот пост..

К сожалению, в Ваши вычисления закралась неточность. Для вычисления сигнал-шум надо делить не на сигма в квадрате, а просто на сигма. Получается следующая монотонная (как и следовало ожидать) последовательность:

11.93115519
23.97002141
33.70818105
50.2050581
55.79681275
61.83448429

т.е. сигнал-шум монотонно возрастает. Аномалии нет.

Смотрите о чем я:
1) есть фотонный шум, который на низких ISO и средних-высоких сигналах (не в тенях) является преобладающим (над read noise и прочими)
2) У фотонного шума дисперсия равна сигналу (распределение Пуассона). В силу его природы.
На этом основано, в частности, измерение емкости пиксела и поиск unity gain.

Как следствие, отношение дисперсии к сигналу в полутонах-светах мы вправе ожидать одинаковым. Ну, с какой-то точностью. А для данной камеры - это не так. Что удивительно.

Ну и соответственно (при преобладании фотонного шума) при росте сигнала вдвое (от 4 до 6 сампла, к примеру, тут чуть больше чем вдвое, но неважно), сигнал/шум (т.е. сигнал/сигма) должен вырасти в корень из двух. От 50 до, соответственно, 70. А на этой камере растет до 60, маловато.

Мысль понял. Вводит в заблуждение то, что названо в статье соотношением сигнал-шум. Лучше вообще не использовать этого термина.

>> сигнал/дисперсия, если быть точным
это гораздо лучше.

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

Если мы добавляем шумы чтения, то эта величина (по идее) должна меняться монотонно от нуля (в тенях) до почти единицы в светах.

Аномалия заключается в том, что мы имеем четкий максимум порядка единицы в мидтонах и уменьшение этой величины на 30% в светах.

Правильно ли я понял Вашу мысль?

сигнал/дисперсия равны единице если по дороге не было усилителя (или делителя), ну и конечно нет других источников шума.
Собственно, по этому признаку астронофотографы и ловят Unity Gain. Они еще read noise вычитают, но на практике он невелик и можно пренебречь.

А аномалия, да, именно в том, что сигнал/дисперсия падает в светах (т.е. дисперсия растет).

Спасибо, понял.

Если измеряем сигнал в электронах (а дисперсию соответственно в количестве электронов в квадрате), то, чисто теоретически, соотношение сигнал/дисперсия должно равняться единице.

Вы берете данные прямо из RAW файла, они в ADU. На ISO 200 (то ISO, на котором Вы проводили измерения) 1 ADU = 1.49 электронов (если я правильно подсчитал это по данным Билла Клаффа по шумам чтения).

Таким образом, соотношение сигнал/дисперсия в идеале должно быть близко 1.5.

Измеренный же Вами на практике диапазон этой величины от 0.69 до 1.14.

То есть, мало того, что мы максимум в мидтонах имеем, так у нас еще и мощный источник шума откуда-то появился.

Читающим в ЖЖ: дискуссия переехала вот сюда: http://forum.photokaravan.com/default.aspx?g=posts&m=72826#post72826

Дублировать в ЖЖ лично мне уже надоело :)

В очередной раз дискуссия переехала. Выделил дискуссию в отдельную ветку с переносом всех предыдущих постов:

http://forum.photokaravan.com/default.aspx?g=posts&t=930

Не могли бы Вы прокомментировать мультиэкспозицию?
Начало примерно тут:
http://forum.photokaravan.com/default.aspx?g=posts&m=74044#post74044
Речь не о усреднении нескольких кадров максимально доступного качества, а о сложении нескольких сильно недодержанных кадров, до получения значений как в однократно снятом, но с правильной экспозицией.

У вас в блоге столько математики, теории на уровне мельчайших технических подробностей и подобного. У меня один вопрос на кого ориентирован этот блог? Нужно ли это всё знать фотографу или это скорей некое технодрочерство ради него самого?

Ну вот на конкретном примере D800, который обсуждается в данном посте:
- имеет место некоторая странность в светах.
- как минимум, имеет смысл ее изучить. Не только в цифрах, но и в том, какое влияние она оказывает на изображение
- и если влияние вдруг не понравится, то может быть на низких ISO на этой камере лучше недодерживать на пару стопов? Ну,к примеру. Динамического диапазона хватит, шумы в тенях на этих ISO низкие.

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