Вообще, я бы назвал данную статью “Программная или аппаратная накрутка ISO?”
Матрица фотоаппарата – сложное устройство. Матрица считывает свет (излучение видимого спектра), которое проецирует на нее объектив. Дозатором света служит диафрагма и выдержка. А вот на общую экспозицию кадра влияет еще и значение ISO, которое часто упускают с пары “выдержка-диафрагма”.
Как увеличивается или уменьшается время выдержки – можно выразить в секундах и их долях. Открытость или закрытость диафрагмы можно выразить в соотношении диаметра к фокусному расстоянию. В любому случае, изменение выдержки и диафрагмы можно увидеть, услышать – проще говоря, они заметны невооруженным глазом. А вот изменение ISO – это внутрикамерная магия. Как фотоны превращаются в электрические сигналы, как сигналы оцифровываются и превращаются в биты, байты Jpeg-и и Raw-ы обычные смертные никогда не видели.
В общем случае ходит мнение, что матрица фотоаппарата работает следующим образом: фотоны (свет, который прошел через объектив) падают на матрицу. Фотоны выбивают в каждом из суб-пикселей матрицы электроны, от количества электронов возрастает напряжение в ячейках. Напряжение измеряется с помощью аналого-цифрового преобразователя (АЦП), который аналоговый сигнал напряжения преобразует в цифровую последовательность единиц и ноликов. Дальше, центральный процессор берет цифровую последовательность и кодирует из данных готовое изображение. Под кодировкой подразумевается огромный объем вычислений, который в конечном итоге, формирует файл изображения JPEG и\или RAW. После чего, файл записывается на карточку памяти. Центральный процессор может и не особо сильно обрабатывать данные, а просто записывать их в сырой (не обработанный) форма RAW. Фактически, RAW – это данные после работы АЦП.
Вопрос в том, где во всей этой последовательности изменяется ISO, да и вообще, к чему его привязать? В общем случае говорят, что ISO отвечает за усиление уровня считывающего сигнала для чтения информации с матрицы. Чем сильнее напряженнее, тем больше вероятность получить неточные данные, а на изображении это выразится в качестве шумов – но это может быть и не так. Вторая версия, что никакого усиления напряжения нет, а АЦП просто умножает считанный сигнал на какой-то коэффициент, который и принимают за ISO.
Я больше склоняюсь ко второму варианту, по крайней мере для матриц типа CCD на основе проведенного ниже эксперимента.
Первое фото снято с нормальной экспозицией на ISO 100, 1/10s. Чтобы получить такую же экспозицию на ISO 1600 при той же диафрагме – нужно уменьшить выдержку в 16 раз, то есть, тогда выдержка на ИСО 1600 будет равняться 1/160. Экспозиция для ISO 100, F2.0, 1/10s и ISO 1600, F2.0, 1/160 будет одинаковая.
Второе фото сделано тоже на ISO 100, но с выдержкой в 16 раз короче нормальной – на 1/160 и увеличением экспозиции на 4 ступени (другие настройки автоматические). Третье фото снято на ISO 1600 и тоже с выдержкой 1\160.
Идея такая – АЦП не изменяет напряжение для считывания сигнала с матрицы, а просто умножает уровень сигнала на коэффициент, который зависит от ISO. Если мы снимаем в RAW, то по идее, то же самое умножение сигнала мы можем сделать и при съемке в формате RAW, просто “умножение” можно выполнить на компьютере с помощью поправки экспозиции. Если сделать поправку на ISO 100 на 4 ступени (эквивалент изменения выдержки или ISO в 16 раз), то мы должны получить такое же изображение, которое делает камера на ISO 1600 с такой же выдержкой, что, собственно, и подтвердилось.
После проведения эксперимента, выходные данные показывают, что гипотеза близка к истине, так как оба изображения (доработанное недодержанное на ISO 100 и нормальное на ISO 1600) практически идентичны (смотрите размеры 1 к 1 выше).
Вывод напрашивается сам собой – чем ниже ISO, тем лучше, так как камера не подымает ISO аппаратно, а делает только программную накрутку при преобразовании в АЦП. Точно так, программную накрутку ISO в сторону более низких значениях делают на некоторых камерах – можете взглянуть на мою статью про ISO Lo1.
Прошу обратить внимание, что я сделал вывод только на основе CCD матрицы моего Nikon D200. Но то же самое, можно легко повторить с CMOS матрицами, например для Nikon D90. И в любом случае, камера сделает все более аккуратно при кодировании изображения на высоких ISO, нежели «вытягивание» из RAW. Можете ознакомиться с еще одной интересной статьей – вытягивание снимков – RAW VS JPEG.
Вывод:
У многих камер нет аппаратной реализации изменения значения ISO, а матрица дает наилучший результат только при минимальном «родном» значении ISO. Потому, снимать на низких ISO остается золотым правилом до сих пор.
Спасибо за внимание. Аркадий Шаповал.
Интересное наблюдение, нужно будет со своим D5100 подобный эксперимент провести :)
Спасибо за очередной интересный обзор. Но…
“…Первое фото снято с нормальной экспозицией на ISO 100, 1/10s. Чтобы получить такую же экспозицию на ISO 1600 при той же диафрагме — нужно УВЕЛИЧИТЬ выдержку в 16 раз, то есть, тогда выдержка на ИСО 1600 будет равняться 1/160. Экспозиция для ISO 100, F2.0, 1/10s и ISO 1600, F2.0, 1/160 будет одинаковая…”
По-моему здесь противоречие – для сохранения заданной экспозиции при неизменной диафрагме и увеличенном в 16 раз значении ИСО нужно выдержку УМЕНЬШИТЬ в 16 раз, т.е. до 1/160 сек., как и написано далее по тексту. Похоже просто опечатка?
Да, просто опечатка, в примерах данные говорят сами за себя. Спасибо за помощь.
Интересный эксперимент. А не может ли так быть, что ИСО 100 тоже программный продукт? К примеру, физически матрица имеет светочувствительность ИСО 200, а потом просто уменьшается на 2. То есть как выяснить реальную светочувствительность? Или я где то допустил ошибку в понимании процессов?(
З.Ы. Очень рад, что попал на Ваш сайт, почерпнул очень много интересного. А так же поразился выдержке читая комментарии к теме “ПЗС против КМОП”. Спасибо Вам.
В некоторых камерах так и есть, там базовое исо 200, а 100 реализовывается методом пересвета. Проверить довольно сложно.
Скажите ,почему при фотографировании я выставляю ИСО 200,а при просмотре потом фотограффии на экране появлется информация о том ,что фото сделано с ИСО 800 ?
Скорее всего, у Вас включена функция АВТО ISO, либо снимаете в зеленом автоматическом режиме. Такое бывает часто и Вы не первый задаете такой вопрос :)
снимаю в ручном и авто исо выключено
Проблема в том, что при светочувствительности 100-400 любая динамичная сцена, снятая в условиях недостаточной освещенности, будет смазана :-) Лучше б Вы придумали способ, как программно уменьшить светочувствительность))) У меня тоже d200, но я все чаще склоняюсь к мысли сменить его на d300. Как бы не ругали КМОП-матрицу, но за ней будущее, от производства ПЗС-матриц все отказываются. Сейчас любой современный фотик идет с КМОП-матрицей, они меньше шумят на высоких исо, что существенно расширяет сферу их применения. D200 хорошо снимает только при идеальных условиях съемки, позволяющих снимать на низкой светочувствительности :-) Ну еще можно практиковать ночную съемку, когда высокая светочувстительность не нужна. А для всего остального КМОП, иначе шумы жуть просто.
Я здесь не рассматривал сферы применения низких светочувствительностей.
В третий абзац можно вставить это видео от Discovery http://www.youtube.com/watch?v=7LeV3OWTHS4, где всё наглядно показывается.)
Сделал подобную проверку на Pentax K-5. Картинки с ISO=3200 тут: fotki.yandex.ru/users/aleksejj-dmitrijevich-kuznecov/album/355477/
Условия съёмки примерно те же (нормальная экспозиция – при 1/8 секунды, F=1/2.4, ISO=100).
При изменении на 4 ступени разница между ISO=100 с обработкой на компьютере и ISO=1600 почти незаметна. На 5 ступеней – внутрикамерная обработка (или всё же аналоговое увеличение чувствительности?) заметно даёт заметно лучший результат.
Забавно что на последних вырезках у вас на 3200 шумов меньше чем на 100
На последних вырезках – имеются в виду фрагменты справа? Нижний сделан при 3200 iso (по меньшей мере, такую чувствительность я установил на фотоаппарате). А верхний сделан при 100 iso, но потом на компьютере было добавлено 5ev, за счёт этого и шумы.
Аркадий, всё гораздо интереснее. На матрицу для повышения светочувствительности подается большее напряжение, что увеличивает её потребление и нагрев. Так как она является полупроводниковым прибором, то имеет собственные шумы прямо пропорциональные к*T, где к-постоянная Больцмана, а T- температура в Кельвинах (чем выше температура тем выше шум).
То есть, если я делаю достаточно большую серию снимков на высокой чувствительности, то на последнем снимке в целом должно быть заметно больше шумов, чем на первом? (Скажем, фотоаппарат только что включили, матрица перед серией остыла и т. п.) Посмотрим на досуге.
Здравствуйте, Аркадий.
Не могли бы Вы пояснить мне, а то я не понимаю, как так вышло? У Вас получилось, что обе фотографии в этой статье (2-я и 3-я фотографии по счету), по результату почти не отличающиеся друг от друга. Они сделаны с F2.0, выдержкой 1\160, но разной ISO. В первом случае – это 1600, во втором – 100. Да, во втором случае стоит поправка экспозиции на 4 ступени, но в таком случае, в зависимости от режима съемки, один из параметров бы поменялся. Если ISO выбрано намерено 100, то либо выдержка, либо диафрагма поменялись бы.
Разве нет?!
+4 e.v. компенсации с помощью ПО.
А,тогда понял. Хорошо. Спасибо за ответ!
И, спасибо за статью!
оч. волнует этот вопрос поскольку заметил на своем D5200 сильные шумы на низких исо вплоть до минимального ISO 100.
После не большого теста понял что при осветлении снимка с минимальными ИСО они становятся ничем не отлечимы от тех же снимков на высоких ИСО.
Первое что лезит в голову это то что фотоаппарат снимает только с какимт-о определенным ИСО а потом подгоняет программно под наши настройки.
Тогда не имеет смысла повышать исо а просто на компьютере добавлять +экспозицию
Так ли это или я что то путаю?
Отличный эксперимент!
Интересные рассуждения, но что-то в моей голове не может с этим примириться, а фраза “ АЦП просто умножает считанный сигнал на какой-то коэффициент, который и принимают за ISO” просто коробит сознание. Не логично так поступать: “считываем, потом множим на чувствительность и выдаем за результат”. Я конечно согласен что продают нам не всегда то что хотелось бы, но это уж было бы слишком.
Давайте подойдем к рассуждению сугубо абстрактно: отбросим фильтр Байера и рассмотрим ч/б матрицу. Опуская процесс построчного/столбцового считывания возмем напряжение с однй ячейки. Допустим что при чувствительность ISO100 мы считываем 12 бит значения. При этом мы можем получить любое из чисел от 0 до (2^12)-1. Эти данные как есть идут в RAW(если повар нам не врет). Далее ставим ISO200. Чувствительность в 2 раза выше. Согласно изложенному в статье – умножаем считанное на 2 (тут правда вопрос в линейности преобразования, но это точно монотонно возрастающая функция и особо сути не изменит). Тогда все значения будут четными, а это означает потери в тоновых переходах. Ну да ладно “однобитовые дыры” это не страшно, но перейдя к ISO1600 получаем 4 ступени, т.е. 4 бита, а это уже приравняет 12-bit RAW к 8-bit JPEG. Т.е. при сохранении в тот же JPEG фотоаппарат ужимает 12-bit в 8-bit (читать “уберет битовые дыры”) и получится что при таком ISO абсолютно никакой разницы в каком формате снимать. Я уж молчу про то, что ISO6400 съест половину диапазона 12-бит и сведет к аналогу 6-битного изображения, а это уже будет очень сильно заметно при переходах. Есть конечно вариант что фотоаппарат проинтерполирует соседние пиксели и сгладит эти ступеньки, но это уже вычисления и опять таки “размытие” изображения. Тут правда можно списаться на то что уровень шумов при такой чувствительности весьма высок, да и детализация весьма теряется. Так что все может быть.
Но есть другая идея. Можно либо варьировать коэффициент усиления АЦП от того же ISO, но как и Вам мне эта идея не очень, хотя технически никаких препятствий нет, да и результат будет согласовываться с поведением фотоаппаратов. Либо вариант второй: считывать с матрицы заведомо большее колличество бит, скажем 18-20 бит. Тогдя для ISO100 мы возмем 12 старших разрядов, для ISO200 – отбросим один старший, возмем следующие 12, а незначащие забудем, и т.д. пока не дойдем до 12-ти младших разрядов. Никаких потерь значений, никакой интерполяции. К слову сказать, насколько мне известно, то в CMOS применяются SAR АЦП, а в таком случае мы можем начать оцифровывать с нужного нам разряда и закончить считывание на нужном нам колличестве бит. Можно было бы сохранить все 18-20 бит как есть, но вот толку в таком диапазоне не особо много, да и обрабатывать в два раза больше, а следовательно и хранить. Получается с точность Ваш вариант, но только не умножать самую низкую чувствительность, а делить самую высокую.
Есть несколько мыслей по проверке своей камеры SLT-A37 с CMOS матрицей, как проверю – отпишусь.
Похоже таки все мои философские рассуждения неверны. Если посмотреть на графики предоставленные на http://www.clarkvision.com/articles/digital.sensor.performance.summary/ , то один стоп ISO дает потерю одной единицы динамического диапазона, что особенно линейно на значениях более 400. Да и сами АЦП имеют разрядность таки 12 или 14 бит, ну и сомнительно про коэффициент усиления. Так что похоже на некое умножение на коэффициент. Хотя поэкспериментировать таки стоит, для качественного сравнения.
Точно знают только сами конструкторы. А моя заметка может быть актуальной только для ссд матрицы только д200, на котором я провел эксперимент.
Прошу прощения за многословность, но наконец то нашел ответы на многие вопросы на ресурсе http://www.clarkvision.com/articles/iso/ . Согласно нему, то ISO это таки коэффициент усиления сигнала с фотодиода перед преобразованием в АЦП. Усиление обязано быть, т.к. детектировать заряд 2-4 электронов компаратор АЦП не будет. Там же рассказано и про 12 бит. При этом не утверждается что 14 это плохо, просто математически они не дают никакого преимущества для динамического диапазона, хотя время идет и все меняется. Интересен вид кривой на рисунке 2, из него видно. что на самом малом ISO самый большой динамический диапазон. Но интересен характер кривой, а именно сильная пологость до ISO 400, что может сыграть наруку при выборе диафрагмы и выдержки. Ведь фотограф не астрофизик, и за величиниой динамического диапазона не бедет докапываться с точность до сотых.
Так что число ISO для камеры это не просто пересчет после АЦП. Хотя согласно того же графика для Canon 5D Mark II для каждой ступени ISO после 1600 происходит потеря одного стопа динамического диапазона. А это можно приравнять по эффекту к потере младшего значащего разряда в считаном значении, т.е. просто можно читать значение с ISO на ступень ниже и умножить на 2.
Относительно выводов Аркадия всё сошлось потому, что сравнение приведено визуальное, а не числовое. И сыграл факт 4-х стопов, т.к. это приблизительно 4 биты разницы между RAW и тем что показывает монитор и хранит JPEG. Практически получился отличнейший пример того, что из RAW можно вытянуть +4 единицы экспозиции без какого либо визуального дефекта.
Аркадию огромная благодарность за поднятый вопрос.
Вам также спасибо за полезную информацию :)
Не могу не отмеить еще один ресурс на тему шумов: http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/index.html .
Много чего интересного про параметры и составляещие цифрового шума на фото. И ещё в предпоследнем абзаце пункта 2.C сказано, что начиная с определенного ISO камера просто умножает значение уже после АЦП, что также соответствует графикам с ресурса ClarkVision из предыдущего обсуждения.
По поводу усиления сигнала с фотоэлемента я сегодня усомнился. По крайней мере это относится к Nikon d5000-d5300 серии. А суть вот в чем – открывая .nef в стороннем RAW проявщике – RAWTherapee, фотографии, сделанные на D5300 (поддерживаемого профиля для этой фотокамеры нет в этом ПО) выгдядят черно-мрачно-зеленющими. И лишь только поднятие экспозиции приводит все на свои места. К примеру, фото с моей D52000, поддержка которой заявлена в этом проявщике, выглядят как и во View NX2. Так что есть повод задуматься…
Аркадий, очень интересная тема, спасибо. Меня давно интересует вопрос сопряжённый с данной темой: какие процессы текут в камере при установке режима качества с L на М (с 18мп до 4,5мп). Сигналы с пикселей складываются или выбиваются из общего ряда и как это сказывается на ISO и шумах?
Существуют разные алгоритмы ресэмплинга, о них вам расскажет гугл
читайте про интерполяцию
Вообще, никон же пишет, что реальный диапазон исо это аппаратное решение (как раз повышение напряжения на матрице, из-за повышения силы магнитного поля на каждом субпикселе, индуцированный ток создает погрешности на соседних субпикселах, этот самый цветовой шум), а расширения ло123 и хай123 это уже действительно программное расширение, кстати из рава последнии версии фотошопа вытягивает лучше чем сама камера (во всяком случае на д700)
А я всегда считал что чем ниже ISO, тем меньшее напряжение прикладывается к матрице для считывания информации.А потом уже, когда на максимальном ISO применили максимальное напряжение для считывания, и большее к данной матрице применить нельзя, включается программное расширение.Короче всё как и с любым полупроводниковым прибором,типа транзистора в усилителе, чем больше питающее напряжение, тем выше коэффициент усиления. А матрица и является набором полупроводников.
У меня 600д и я практикую ночные пейзажи на сверхдлинных выдержках. по 10-20 минут :)
Так вот заметил что реально можно использовать на моем фотоаппарате только исто 100-200. дальше уже лезет дикий шум. его не видно на быстрых выдержках и на вытягивании с рава недоэкспонированного кадра но на длинной выдержке только исо 100 или 200 без шумов. никакие встроенные шумодавы не использую – портят картинку.
Кроме того все ещё ищу “умный” рав конвертер. Суть в том что я не хочу иметь 18 мегапикселей где каждый соседний пиксель имеет по два субпикселя общего с любым его окружающим пикселем.
У меня прям в центре матрицы есть выбитый субпиксель. в результате даже на РАВ изображении я имею 5 убитых пикселей в форме игровой кости с номером 5 (1-3-5-7-9 на клавиатуре калькулятора) И это не выбитый пиксель а пискель с суперчувствительностью! на сверхкоротких выдержках его нет! вот я и хочу получать один пиксель изображения из ровно 4-х независимых непересакающихся с соседями субпикселов. да я тогда свои 18.1 мегаСУБпиксель превращу в 4,5 мегапикселей реального изображения – так ведь реально так оно и есть?
Почему в мониторе 1920х1080 не пишут что каждая из 1920 точек это на самом деле три ячейки разного цвета? Получилось бы просто космическое – 5760х1080 = 3,2 мегапиксела :) круто же :) как и 18 мегапикселов на моем 600д.
Может кто знает как сделать из рава моего фотоаппарата ” реальные” пиксели ?
“Второе фото сделано тоже на ISO 100, но с выдержкой в 16 раз короче нормальной — на 1/160 и увеличением экспозиции на 4 ступени (другие настройки автоматические). Третье фото снято на ISO 1600 и тоже с выдержкой 1\160.”
– Похоже – второе и третье местами попутано – поправьте описание, или поменяйте местами фото, а то “збиває з пантилику”
А почему программное увеличение ISO считается хуже аппаратного? Я, как человек занимающийся обработкой сигналов, могу с уверенностью сказать: почти всегда стараются усиливать сигнал программно, потому что аппаратная реализация даст намного БОЛЬШЕ шумов, чем программная. Да, возможно сделать менее “шумящую” схему, но для одного пиксела, для десяти, а для вашей матрицы такая схема займет пол квартиры.
если у вас 12-битное число, Вы можете его увеличить в 2 раза, оно станет 13-битным, но в младшем бите у вас будет 0
да и вообще Ваши слова насчет аппаратного усиления сигнала без примера для простого обывателя примерно то же самое, как в фильмах про хакеров увеличивают картинку, увеличивают (цифровым зумом) и …. вуаля … автомобильный номер крупным планом, и лицо во всех деталях
Какой пример Вам нужен? Вам показать реальные размеры операционного усилителя для ОДНОГО канала? Он не большой, но если вы умножите его площадь на количество пикселей Вашей матрицы, то будете неприятно удивлены.
А если операционник будет усиливать не каждый пиксель, а строчную развёртку с матрицы? Их понадобится всего 3 штуки.
1. Это значительно снизит быстродействие.
2. Для этого нужно выполнить и матрицу и ОП на одном кристалле. Есть серьезные технологические проблемы с интеграцией аналоговой схемы в цифровую. Это очень сложно. Если и сделать, то стоимость матрицы неоправданно возрастает.
3. Также есть проблемы с экранированием ОП от цифрового шума матрицы. Кроме полезного сигнала он будет усиливать еще и “звон” от прямоугольных импульсов цифровой схемы. В результате он будет ничуть не лучше программной обработки.
Но таки да, когда-нибудь это будет возможно. Возможно, уже сейчас идет разработка, но мне об этом не известно.
А на сегодняшний день стараются как можно раньше преобразовать сигнал в цифровой код, без всяких промежуточных аналоговых преобразований и ОП в том числе, потому что ЦОС вносит гораздо меньше шума и искажений.
помница мне где-то читал изыскания одного доморощенного иженера, так он делал астрокамеру на базе мартицы от D40, операционник был один на пути от матрицы до АЦП, правда схемка у него сложилась огого, застбилизировал питане всего до чего дотянулся
и сигнал с матрицы с какого перепуг цыфровой
Если следовать абсолютной логике то выводы о ISO на D200 не справедливы. Для того что бы об этом размышлять нужно знать на 100% как работает “увеличение экспозиции на 4 ступени”. Если оно задействует механизм поднятия ISO, то эксперимент в корне неверен. D200 это не дешевая камера и там очевидно, что могли задействовать самые оптимальные алгоритмы для увеличения экспозиции. Автор же предполагает, что увеличение экспозиции не задействует ISO, но это нужно знать наверняка, что бы строить убеждения.
А в этом что-то есть, но можно проверить. Задрать iso до верха, а потом ещё и поправку вверх и если вы правы то ничего из этого не выйдет.
Не факт, если следовать абсолютной логике. Повторюсь D200 это не дешевая камера и там очевидно, что могли задействовать самые оптимальные алгоритмы для увеличения экспозиции. Предполагаю, что если функция может поднять ISO то она его подымет, а если не сможет то программно. Не зная как устроена функция сложно определить её действия. Не корректно предполагать без подтверждения, что функция линейная. Но Вам 5 баллов за творческое мышление.
А я наоборот сомневаюсь что они продублировали возможности. Либо подмена поправки за счет iso, либо програмно. Хотя почему бы и нет, до одних цыфр так, а потом совсем другой алгоритм.
Логика это когда исходные параметры известны на 100%. Если не 100 (даже 99.9) то это Гадание. :)
Вы не дочитали мое третье предложение в сообщении.
Я всё дочитал. Я написал в общем, а не в противовес. В принципе если поставить достаточное количество грамотных экспериментов то можно приблизиться к реальному пониманию функции.
нельзя дальше ответить Георгию, отвечу себе. Цель задаться можно , но но цель экспериментов точно бессмысленна и никому не нужна.
На самом деле результаты измерений интегрируются, т.е. чтобы захватить 1 кадр – производится несколько измерений, чем больше исо, тем больше измерений в кучу. Именно поэтому при длительном цифровом исо можно “рисовать” линии источником света. Естественно, что с каждым измерением кол-во наложившихся шумов увеличивается.