Давно ничего не писал, но вот же, пишу )
Кто в курсе, что такое сабж, могут пропустить, кэп сейчас немного побаянит.
Остальным стоит почитать, благо немного.
Некоторое время назад в сети появилась группа энтузиастов, которые занялись реверсивным инжинирингом программного обеспечения нескольких популярных зеркалок от Canon. Результатом их работы стала прошивка, позволившая камерам делать много вкусных вещей, которые злые маркетологи запихнули лишь в самые топовые тушки, либо не запихнули вообще никуда. Назвали прошивку Magic Lantern.
Еще спустя некоторое время кэноновское программное обеспеченение было настолько хорошо разобрано по косточкам, что многие программисты получили возможность писать модули к этой прошивке опираясь на уже известную информацию о том, как все устроено (видимо что-то типа фреймворка).
И вот один такой замечательный человечек докопался до очень забавной фигни по низкоуровневому управлению аналого-цифровым преобразователем: оказывается можно с одного и того же снимка считывать разные строчки пикселей используя разное напряжение (читай с разной чувствительностью). Что же это могло дать нам, простым смертным?
Здесь я сделаю небольшое теоретическое отступление про особенности DSLR от Canon.
В принципе про любой АЦП можно сказать, что чем слабее сигнал, тем больше будет дисперсия у считавшегося значения, но вот про Кэнон нужно сказать особо: у него очень ярко выражена эта зависимость, она заставляет плеваться кучу фотографов уже многие годы: сигнал, для измерения которого достаточно трех-четырех младших бит АЦП, измеряется с такой дисперсией, что она выходит одного порядка с самим сигналом. Говоря по-простому, любой недоэкспонированный кэноновский рав, будучи тянутым в софте в плюс по экспозиции, обрастает в тенях жутким шумом, в котором зачастую теряются важные детали изображения.
С другой стороны неплохо бы вспомнить, что считывать с матрицы сигнал можно с разной чувствительностью. При этом, чем больше чувствительность, тем опять же больше дисперсия измеряемого значения - все логично.
Зная эти два факта по отдельности, никаких интересных выводов сделать не получится. Однако, если сравнить эти зависимости, можно сделать одно очень далеко идущее открытие: оказывается, дисперсия на ослаблении сигнала растет быстрее, чем на увеличении чувствительности, то есть, если компенсировать ослабление сигнала увеличением чувствительности, то дисперсия уменьшается, а SNR растет!
Этим замечательным фактом, а так же описанной выше возможностью считывания одной картинки с матрицы на разных iso и воспользовался один из разработчиков ML под ником A1ex. По факту, он сделал то же самое, что
делал я, но на гораздо более близком к железу уровне, уровне управлением АЦП: из нечетных строчек считанных на высоком исо извлекалась информация о тенях, из четных, считанных на базовом iso - все остальное, потом полученных таким образом рав скармливался программе, нормировавшей значения пикселей, считанных на высоком исо (тем самым убивая шум) и делая блендинг между четными и нечетными строчками наподобие того, как делается байеровский демозаик.
К чему я все это сейчас рассказал, спросите вы? А к тому, что неделю назад у меня наконец появилась нормальная камера (господи, наконец-то!). Камера под названием EOS 6D. И по счастью она прекрасно шьется Мэджик Лантерном. И конечно же я попробовал в деле модуль Dual ISO. И таки имею вам сказать пару слов: ни у какого никоновского/соневского рава тени так не тянутся, а динамический диапазон снимка доходит до 14.5 стопов. Сказать, что я охуел после многих лет знакомства с кэноновскими тенями - это не сказать ничего.
Ссылки:
Проект Magic LanternВетка форума ML про модуль Dual ISOИсходники модуляPDF c теорией Так что в интересное время живем, котаны! Stay tuned!