Почему эффективные пиксели больше фактического разрешения?

На этой странице сравниваются камеры Canon EOS 550D и Canon EOS 500D и упоминаются

18,7 млн ​​эффективных пикселей

для 550Д. Однако наилучшее разрешение, возможное при использовании этой камеры,

5184 * 3456 = 17915904 ~ 17.9 million pixels

Что такое эффективные пиксели и почему в данном случае это число больше 17,9 миллиона?

Также имейте в виду, что «разрешение» имеет два значения. В компьютерах мы используем его для обозначения размера экрана или изображения в пикселях. А в компьютерном рисунке или сгенерированном изображении это обычно соответствует «реальному» разрешению — количеству деталей, фактически разрешенных в изображении. Но на фотографии это не обязательно так.
Это не то, что здесь происходит — просто дополнительный источник путаницы.
Хм. Что происходит, когда человек с дислексией пытается набрать 17,8? Могли ли они на самом деле войти в 18.7?

Ответы (4)

Часть того , что мы видим здесь, является (я достаточно уверен) не чем иным , как простой опечаткой (или чем-то в этом роде) со стороны DPReview.com. Согласно Canon , [PDF, стр. 225] количество лунок на датчике составляет «приблизительно 18,00 мегапикселей».

Затем они уменьшаются примерно до 17,9 мегапикселей, когда входные данные шаблона Байера превращаются в то, что большинство из нас считает пикселями. Разница довольно проста: каждая ячейка на датчике воспринимает только общее количество света, пропущенного через цветной фильтр, но пиксель, как вы обычно ожидаете на выходе (например, файл JPEG или TIFF), имеет три цвета для каждого пикселя. . На первый взгляд может показаться, что это будет означать, что файл будет иметь примерно одну треть пикселей от количества ячеек для датчиков во входных данных. Очевидно, это не так. Вот (упрощенный вид), как все работает:

упрощенный шаблон Байера

Каждая буква обозначает одну лунку на датчике. Каждая ячейка представляет собой один трехцветный пиксель, который будет отображаться в выходном файле.

Во «внутренней» части датчика каждый выходной пиксель зависит от входных данных четырех сенсорных лунок, но каждая сенсорная лунка используется в качестве входных данных для четырех разных выходных пикселей, поэтому количество входных и выходных сигналов остается прежним.

Однако по краям у нас есть сенсорные колодцы, которые дают только два пикселя вместо четырех. В углах каждый сенсор вносит свой вклад только в один выходной пиксель.

Это означает, что общее количество выходных пикселей меньше, чем количество лунок сенсора. В частности, результат меньше на одну строку и один столбец по сравнению с входными данными (например, в примере у нас есть датчик 8x3, но выходные пиксели 7x2).

+1 особенно за схему. Но я все еще озадачен, потому что это объяснило бы отсутствие 2(5184-1 + 3456-1) = около 17К пикселей, которые просто потерялись бы при округлении при вычислении 18,0 - 17,9 = 0,1М пикселей. Казалось бы, что по крайней мере в три раза больше пикселей должно быть отделено от границы (поскольку все, что меньше 50K, должно быть округлено до 0,0M). Возможно, демозаика использует более крупную окрестность, чем 2 x 2, показанные здесь: может быть, она использует окрестность 7 x 7?
@whuber: Навскидку, я не уверен, что могу напрямую объяснить остальное. Конечно, можно использовать больше датчиков для создания одного выходного пикселя, но у меня нет реального способа узнать, что делает Canon в данном случае. Необработанный файл с камеры даст точное количество сенсорных ячеек, но все же не скажет точно, как Canon переходит от входа X к выходу Y.
В хороших алгоритмах демозаики (например, адаптивных, ориентированных на однородность) каждый датчик вносит свой вклад в более чем четыре выходных пикселя, поэтому теряется не только одна строка или столбец. Чтобы получить окончательный ответ, достаточно просто взять недемозаичный вывод из dcraw и сравнить размеры изображения с выводом Canon DPP. Я попробую, когда у меня будет время.
@Matt Grum: Да, оглядываясь назад, мой предыдущий комментарий сформулирован довольно плохо. Я пытался понять, что существует несколько алгоритмов, которые могут (и будут) терять/отбрасывать ~3 строки/столбца пикселей, но одно лишь количество пикселей не скажет вам, какие из них они используют. Однако использование более сложного алгоритма, который использует больше датчиков на выходной пиксель, практически само собой разумеющееся.

Есть две причины, по которым эффективные пиксели меньше , чем фактическое количество пикселей сенсора (чувствительных элементов или сенсоров). Во-первых, сенсоры Байера состоят из «пикселей», на которые наложены цветовые фильтры, пропускающие больше света того же цвета, что и сенсоры. фильтровать свет разных цветов. Обычно мы называем их красным, зеленым и синим фильтрами, организованными парами строк в виде:

RGRGRGRG
GBGBGBGB

Один «пиксель», с которым большинство из нас знакомо, пиксель экрана компьютера в стиле RGB, генерируется датчиком Байера путем объединения четырех датчиков, квартета RGBG:

          R G 
(sensor)       -->  RGB (computer)
          G B

Поскольку для создания одного компьютерного пикселя RGB используется сетка 2x2 из четырех датчиков RGBG, по краям датчика не всегда достаточно пикселей для создания полного пикселя. Для этого на датчиках Байера обычно присутствует «дополнительная» граница пикселей. Дополнительная граница пикселей также может присутствовать просто для того, чтобы компенсировать полную конструкцию датчика, служить в качестве калибровочных пикселей и размещать дополнительные компоненты датчика, которые обычно включают в себя ИК- и УФ-фильтры, фильтры сглаживания и т. д., которые могут препятствовать полное количество света от достижения внешней периферии датчика.

Наконец, датчики Байера должны быть «демозаичными» для получения нормального RGB-изображения компьютерных пикселей. Существует множество различных способов демозаики датчика Байера, однако большинство алгоритмов пытаются максимизировать количество пикселей RGB, которые можно извлечь, смешивая пиксели RGB из каждого возможного перекрывающегося набора квартетов 2x2 RGBG:

Демозаика Байера

Для датчика с 36 одноцветными датчиками можно извлечь в общей сложности 24 пикселя RGB. Обратите внимание на перекрывающийся характер алгоритма демозаики, посмотрев анимированный GIF выше. Также обратите внимание, что во время третьего и четвертого проходов не использовались верхний и нижний ряды. Это демонстрирует, как краевые пиксели датчика не всегда могут использоваться при демозаике массива сенсоров Байера.

Что касается страницы DPReview, я считаю, что они могут ошибаться в своей информации. Я полагаю, что общее количество сенсоров (пикселей) на сенсоре Canon 550D Bayer составляет 18,0 МП, в то время как эффективные пиксели или количество компьютерных пикселей RGB, которые могут быть сгенерированы из этих базовых 18 МП, составляют 5184x3456 или 17 915 904 (17,9 МП). Разница будет сводиться к тем граничным пикселям, которые не могут полностью составить полный квартет, и, возможно, к некоторым дополнительным граничным пикселям, чтобы компенсировать конструкцию фильтров и монтажного оборудования, которые идут перед датчиком.

Я только что заметил, что неправильно посчитал сенсоры в своем анимированном изображении. На первых двух шагах он не объединяет 8 сенсоров... он объединяет 28 сенсоров в 8 пикселей. На последних двух этапах он объединяет 14 сенсоров в 4 пикселя. Извините за неточность. Я постараюсь исправить это в ближайшее время.

Не знаю, почему DPReview использует термин "эффективный", но есть пара причин несоответствия количества фотосайтов (пикселей) на чипе размеру в пикселях получаемых изображений.

Некоторые датчики камеры имеют полосу замаскированных пикселей с каждой стороны. Эти пиксели идентичны основной массе пикселей на датчике, за исключением того, что они не получают света. Они используются для обнаружения помех и вычитания их из сигнала, создаваемого светочувствительными пикселями.

Во-вторых [хорошие] алгоритмы демозаики используют множество «операций по соседству», это означает, что значение пикселя в некоторой степени зависит от значения его соседних пикселей. Пиксели на крайнем краю изображения не имеют соседей, поэтому вносят вклад в другие пиксели, но не увеличивают размеры изображения.

Также возможно, что камера обрезает датчик по другим причинам (например, круг изображения объектива не полностью закрывает датчик), хотя я сомневаюсь, что это относится к 550D.

Используются ли граничные пиксели для устранения помех или просто для установки черной точки?
Оба, я думаю, если бы не было никаких помех (включая тепловую реакцию), точка черного была бы 0
Описание DPReview . Мне кажется, что оно идет туда-сюда между двумя противоположными понятиями, и я не вижу, чтобы оно на самом деле определяло термин, разве что имплицитно. Ваш ответ, я думаю, немного помогает, но все же заставляет меня задуматься, почему «эффективные» пиксели будут больше , чем на реальных фотосайтах, хотя страница dpreview действительно дает некоторые возможности. Эффективно: используется для обработки данных изображения? Или дата изображения в конечном счете так произведена? (примечание: эффект глагола с e: создание существования.) Мне все еще интересно, что они означают.
DP Review, вероятно, использует эффективные пиксели , потому что Canon использует тот же термин при описании своих сенсоров. Но в случае Canon количество эффективных пикселей равно размерам (без поправки на дисторсию объектива) из JPEG-файлов камеры и ВСЕГДА меньше, чем количество реальных фотосайтов на поверхности сенсора. Я думаю, что в данном случае кто-то из DP Review просто ввел неправильный номер.

Извините, что разочаровал, но ни одно из этих объяснений не соответствует действительности. На каждом датчике есть область за пределами области изображения, которая также содержит фотосайты. Некоторые из них отключены, некоторые включены полностью, а некоторые используются для других целей мониторинга. Они используются для установки уровней усиления и баланса белого в качестве «набора управления» по сравнению с теми, кто делает фактическое изображение.

Если вы возьмете данные датчика RAW с любой камеры Powershot, совместимой с CHDK, и используете dcraw для их преобразования, вы можете получить полное изображение датчика, включая эти 100% черные и 100% белые области.

Что интересно, так это то, что разрешение размера изображения RAW в камере всегда больше, чем результаты JPG в камере. Причина в том, что более простые и быстрые методы интерполяции, используемые в камере для перехода от RAW к JPG, требуют, чтобы окружающие фотосайты RGB определяли окончательный цвет каждого пикселя. Краевые и угловые фотосайты не имеют этих окружающих цветовых ссылок со всех сторон, чтобы сделать это. Выполнение процесса позже, хотя и на компьютере с лучшим программным обеспечением для интерполяции RAW, позволит вам восстановить немного большее разрешение размера изображения, чем то, что можно получить из JPG в камере.

ps Рецензенты DPReview и авторы статей никогда не должны восприниматься кем-либо как истина. Я нашел так много дыр в их тестах и ​​вопиющих примеров, когда тестировщики даже не знали, как пользоваться камерами, что я пренебрег их советами много лет назад.

Несмотря на ваш комментарий о том, что «ни одно из этих объяснений не соответствует действительности», другие ответы уже охватывают это.