Среди фотографов известно, что на "больших" камерах использование 14-битного считывания по сравнению с 12-битным может положительно сказаться на детализации теней. Как же дело обстоит с маленькими сенсорами в камерах смартфонов?
Введение
В прошлый раз мы разбирались, как наиболее точно измерить динамический диапазон сенсора камеры. Сегодня я хотел бы представить похожий эксперимент, но уже исследующий другую ситуацию - стоит ли ставить в модуль камеры смартфона 12-битный АЦП?
У подавляющего большинства смартфонов 10-битные АЦП (также чаще всего используется 16-битный контейнер), исключения составляют, например, все(?) новые iPhone, HTC 10 и OnePlus 9 Pro (правда, это Quad Bayer сенсор, поэтому 12 бит в 12МП режиме получается из четырёх 10-битных сигналов). Последний и будет использоваться для эксперимента в данном посте
Методология и результаты
Как и в прошлый раз, я буду использовать квадратик из шума и сделаю серии кадров на разных значениях ISO и выдержки. Для чистоты эксперимента серия с 10-битным считыванием будет проведена отдельно, а не просто получена из 12-битных файлов. Для переключения режима считывания я буду использовать приложение MotionCam, где RAW10 - 10-битный режим, а RAW_SENSOR - 12-битный. Будем использовать обычные подсчёты SNR вместо каких-либо других, более сложных измерений так же для чистоты эксперимента. Как и во FreeDCam, использовавшейся в прошлый раз, в MotionCam тоже отсутствуют очень короткие значения выдержки, из-за чего графики немного перекошены, но данных всё равно достаточно для оценки уровня шума. На графиках измерения начинаются с 4 стопов ниже насыщения, так как нас в первую очередь интересуют тени
Итак, 10 бит:
Получается вполне ожидаемый график, не могу отметить явное присутствие шумодава. Я не знаю, что произошло с ISO 100 в этом замере, но с большой вероятностью это моя ошибка - при повторном измерении всё было в порядке (здесь прикладываю график первого теста из-за большей схожести освещения и значений с графиком 12 бит ниже)
А теперь самое интересное, 12 бит:
К моему удивлению, четырёхкратное увеличение точности считывания не привело к увеличению SNR - здесь можно обратить внимание на линии высоких ISO. В каких-то случаях даже можно заметить ухудшение SNR - внимание, например, на 4 стоп ISO 1600.
Также можно попробовать использовать 12-битный референсный кадр для 10-битной серии:
Ситуация сильно не изменилась (но интересно, что линия ISO 100 теперь в норме).
Выводы
Результаты эксперимента получились неожиданными для меня - изначально я хотел показать, как использование 12-битных АЦП улучшит сигнал в тенях, но, как мы видим, этого не произошло. Именно поэтому (и из-за заваленного графика ISO 100 ????) я и называю свой эксперимент провальным.
Основываясь на полученных результатах, можно было бы сделать вывод, что камерам смартфонов даже с достаточно большим размером сенсора пока не нужны 12-битные АЦП - уровень шума просто слишком высок. Это можно подтвердить, посмотрев, опять же, на измерения на Photons To Photos, где все протестированные смартфоны даже с шумодавом не дотягивают до 9 стопов динамического диапазона, а значит точности 10-битного АЦП будет достаточно. Однако я бы хотел отметить, что современные смартфоны используют методы вычислительной фотографии, где несколько кадров могут быть наложены друг на друга - в таком случае дополнительная точность не будет лишней, ведь итоговый динамический диапазон после склейки вполне может вырасти выше 10 стопов. Кроме того, тот факт, что исследуемый сенсор не имеет исходного 12-битного считывания мог повлиять на результат. Производителям смартфонов могу только порекомендовать провести углублённое исследование для конкретной модели и конкретных алгоритмов обработки и склейки, чтобы узнать, стоит ли включать 12-битное считывание у модуля или доплачивать за модуль с такой характеристикой.
А что о результатах думаете Вы? Действительно ли всё так, или я где-то допустил ошибку? Пожалуйста, поделитесь своим мнением в комментариях
Комментарии (23)
iShrimp
08.10.2023 14:05Можно вопрос: речь идёт о глубине цвета в линейной шкале или с учётом гамма-коррекции?
Как известно, гамма sRGB даёт примерно в 12 раз лучшее разрешение в тёмных оттенках, чем линейная шкала яркости.
gfx_pro Автор
08.10.2023 14:05+5Всё полностью линейное - RAW формат сам по себе (в большинстве случаев) представляет линейные данные прямиком с сенсора, а далее обработка и подсчёт SNR проводились с 16-битными линейными TIFF файлами в качестве контейнера, как и в прошлом посте
iShrimp
08.10.2023 14:05Ясно, спасибо. Но я всё равно считаю, что лучше полностью отказаться от гаммы и везде использовать 16-битный линейный цвет.
vanxant
08.10.2023 14:05+116 бит линейного не хватит. Тёмный подъезд на фоне залитой полуденным солнечным светом стены будет темнее в миллион раз (20 стопов).
V_Scalar
08.10.2023 14:05+2Не стоит, место только много занимать будут. Лучше сделать большую матрицу и выдвижной объектив. Или же сделать на каждый из 3 цветов свою камеру/матрицу, тогда пиксели можно увеличить в размере в 3 раза, как в старых видеокамерах было, точнее будет и чувствительность и цветопередача
PowerMetall
08.10.2023 14:05+3Лучше сделать большую матрицу и выдвижной объектив
Было, но не взлетело, увы
Samsung Galaxy Camera
Или же сделать на каждый из 3 цветов свою камеру/матрицу
А с параллаксом как бороться? ))
gfx_pro Автор
08.10.2023 14:05Я думаю, тут имеется в виду 3CCD система, где призма разбивает поток света на 3 части для 3 сенсоров - https://en.wikipedia.org/wiki/Three-CCD_camera. Такие системы достаточно громоздкие, для использования в телефоне придётся использовать 3 очень маленьких сенсора, а тогда с большой вероятностью нивелируется выигрыш в светочувствительности
V_Scalar
08.10.2023 14:05+1Я думаю, тут имеется в виду 3CCD система, где призма разбивает поток света на 3 части для 3 сенсоров - https://en.wikipedia.org/wiki/Three-CCD_camera. Такие системы достаточно громоздкие, для использования в телефоне придётся использовать 3 очень маленьких сенсора, а тогда с большой вероятностью нивелируется выигрыш в светочувствительности
нет, просто 3 отдельных камеры, Три матрицы/камеры цветных с низким разрешением и одену черно белую матрицу с высоким разрешением. Так устроены палочки и колбочки в человеческом глазу, черно белых колбочек больше
V_Scalar
08.10.2023 14:05-1Это было слишком нишевое устройство, а я предлагаю обычный смартфон.
Как бороться? Просто бороться программно. Надо сделать 3 матрицы цветных с низким разрешением и 1 черно белую матрицу с высоким разрешением. Так устроены палочки и колбочки в человеческом глазу, черно белых колбочек больше
Veselyi_kot
08.10.2023 14:05А с параллаксом как бороться? ))
Нейросеть натравить, как вариант. Хай сводит. Датасет — наборы из «трехкамерных» фото и нормальных снятых с той же точки как образец «правильно сведенных». Один черт в современной технике фото через десяток нейросетей-«улучшалок» проходит, одиннадцатая факта не изменит.
pvvv
08.10.2023 14:05+3в погоне за большими мегапикселями (маркетинговыми, так как оптика столько всё равно давно уже не вывозит) и микронными пикселями, ёмкость пикселей в электронах стала <10-20к электронов, и даже если сделать идеальное считывание без шумов, просто из статистики корень из этого числа имеет право шуметь, поэтому там физически (без жульничества с постобработкой) максимально возможный SNR даже до 8 бит не дотягивает.
evtomax
08.10.2023 14:05При наложении нескольких кадров шум будет работать, как дизеринг, из-за чего повышенная разрядность по-прежнему будет ненужной.
gfx_pro Автор
08.10.2023 14:05Про дизеринг действительно так, но не соглашусь про ненужную разрядность - для получения аналога 12-битной точности потребуется в лучшем случае 4 кадра, и если для этих 4 кадров использовать исходно 12-битные изображения вместо 10-битных, мы, в теории, можем получить чуть более чистые тени (далее отредактировано), так как теперь у нас на 2 стопа выше динамический диапазон и мы можем упереться в порог точности
NikaLapka
08.10.2023 14:05+3Очень хочу, чтобы в ближайшие годы разговоры про камеру в новых телефонах оканчивались лишь "+ присутствует", как в своё время канули в лето разговоры и обзоры звуковых ЦАП в новых телефонах, а пока вынужден только пользоваться и огорчаться из-за неудобной ерунды: 50-100-500 пикселей, рыбьего глаза, специальной для широко, макро, узко...
WASD1
Так мы по нескольким кадрам не только шум можем убрать, но и дополнительную информацию вытащить (грубо говоря как среднее арифметическое значений (квадратов значений?)).
Грубо говоря те несколько кадров что у нас есть - это и есть "больше информации".