4.8. Калибровка на датчике¶
Необработанный выход ячейки пикселя ещё не готов к использованию. К нему применяется несколько коррекций, прежде чем данные покидают датчик – частично в кремнии чипа, частично в коде драйвера, программирующего чип – чтобы устранить дефекты, которые датчик вносит по ходу дела. Они выполняются в фиксированном порядке для каждого кадра: сначала подстройка столбцового фиксированного шума структуры (FPN), затем вычитание уровня чёрного, затем коррекция дефектных пикселей, затем коррекция затенения объектива. Знать, что делает каждая из них, важно, потому что изображение, доходящее до пользовательского кода, уже прошло через все.
4.8.1. Коррекция столбцового FPN¶
Каждый столбец датчика имеет собственный усилитель и столбцовый ADC, и небольшие производственные различия между ними означают, что каждый столбец считывается немного иначе, чем его соседи. Без коррекции эта фиксированная структура проявляется как слабые вертикальные полосы на выходе – полосы остаются на месте от кадра к кадру, потому что они исходят из самого кремния, а не из сцены. Датчик измеряет смещения и подстройки усиления по каждому столбцу на заводе, сохраняет их в своём калибровочном ROM и применяет их при каждом считывании до запуска любой дальнейшей коррекции. Выполнение этого первым позволяет остальной части конвейера предполагать, что каждый столбец ведёт себя одинаково, включая тёмные опорные пиксели, которые далее использует калибровка уровня чёрного.
4.8.2. Калибровка уровня чёрного¶
Ноль ADC – цифровой отсчёт, который должен соответствовать пустому фотодиоду – не идеально стабилен. Он дрейфует с температурой, с колебаниями напряжения питания и немного от одного пикселя к другому. Без коррекции идеально тёмный кадр не считывался бы как ноль; каждый пиксель нёс бы небольшое положительное тёмное смещение.
Стандартное решение – включить строки или столбцы на краю датчика, физически закрытые металлом, так что свет до них никогда не доходит. Их цифровые отсчёты дают истинную тёмную опору при текущих условиях работы. Датчик считывает эти закрытые пиксели в каждом кадре, усредняет их по строке или столбцу и вычитает среднее из каждого другого пикселя. Светочувствительные пиксели тогда выходят с нулевым отсчётом для неосвещённого фотодиода, независимо от температуры или дрейфа питания.
4.8.3. Коррекция дефектных пикселей¶
Небольшая доля пикселей в любом датчике является дефектной – они считывают постоянное значение (застрявшее высоко или застрявшее низко) независимо от того, сколько света до них доходит. Некоторые дефекты происходят из производственных различий, а больше их медленно накапливается в течение срока службы датчика (попадания космических лучей за долгие периоды работы – обычная причина).
Современные датчики справляются с этим на лету с помощью небольшого пространственного фильтра. В каждом кадре каждый пиксель сравнивается со своими соседями того же цвета; любой пиксель, лежащий достаточно далеко от локальной медианы, чтобы быть неправдоподобным, заменяется значением, выведенным из этих соседей. Фильтр улавливает как заводские дефекты, так и развивающиеся позже, без необходимости в откалиброванной для каждого датчика карте дефектных пикселей, и дефект становится невидимым на выходе.
4.8.4. Коррекция затенения объектива¶
Спад cos⁴ в сочетании с механическим виньетированием от корпуса объектива придаёт каждому нескорректированному кадру заметное затемнение углов. Аппаратная коррекция затенения объектива (LSC) на датчике компенсирует это, умножая каждый пиксель на усиление, зависящее от его положения в кадре – 1.0 в центре, плавно растущее к углам, чтобы следовать обратной кривой измеренного спада.
Датчик предоставляет аппаратный множитель, но сама карта усиления – это ответственность MCU. Драйвер записывает карту в регистры LSC датчика при запуске, либо из калибровки, которую драйвер хранит, либо из свежего измерения по плоской опорной мишени. Некоторые датчики сжимают карту до небольшого набора полиномиальных коэффициентов, чтобы её могли вместить регистры чипа.
LSC зависит от объектива. Замена объективов сдвигает кривую спада, так что карта LSC, откалиброванная для одного объектива, не подойдёт другому – неправильно применённая карта выглядит как тусклые углы (недокоррекция) или яркие пятна по углам (перекоррекция).