4.12. Конвейер ISP

Процессор обработки сигнала изображения (ISP) – это аппаратный конвейер, который превращает необработанные значения пикселей с датчика в готовое цветное изображение. Поправки на уровне пикселей в самом датчике являются первыми этапами этого конвейера. После их выполнения остальная часть конвейера выполняет цветовую обработку и форматирование вывода в фиксированном порядке для каждого кадра.

Вертикальная диаграмма конвейера с восемью подписанными блоками сверху вниз: извлечение статистики, автоматический баланс белого, дебайеризация, цветовая матричная коррекция, гамма-коррекция, масштабирование изображения, обрезка изображения и упаковка пикселей. Стрелка сверху подписана "скорректированные пиксели Байера", а стрелка снизу подписана "готовый кадр".

Этапы цветовой обработки и вывода в ISP. Конвейер выполняет каждый этап над всеми пикселями кадра прежде, чем начнётся следующий.

4.12.1. Этапы

Каждый этап по очереди применяет одно чётко определённое преобразование. Порядок имеет значение – более поздние этапы предполагают, что более ранние уже выполнены, а пара этапов также берёт входные данные из вывода предыдущего кадра.

  1. Извлечение статистики измеряет среднюю яркость по регионам и суммы по каналам из скорректированного кадра Байера. Эти числа подаются в контуры управления автоэкспозицией, автоусилением и автоматическим балансом белого, которые затем обновляют настройки датчика для следующего кадра.

  2. Усиления автоматического баланса белого масштабируют каждый пиксель Байера на множитель, зависящий от цвета – красные пиксели на усиление R, зелёные на усиление G, синие на усиление B, – подтягивая белый эталон сцены к нейтральному серому, чтобы записанные цвета выглядели так, как их видел глаз. Множители берутся из статистики AWB предыдущего кадра.

  3. Дебайеризация восстанавливает два недостающих цветовых канала в каждом пикселе из мозаики Байера, превращая необработанные данные с одним каналом на пиксель в трёхканальный RGB. (См. Дебайеризация.) Всё после этого этапа работает с RGB-пикселями, а не с мозаикой Байера.

  4. Цветовая матричная коррекция (CCM) применяет умножение на матрицу 3x3 к каждому RGB-пикселю, отображая собственный красно-зелёно-синий отклик датчика в стандартное цветовое пространство. Фильтры каждого датчика имеют свой спектральный отклик, который не вполне соответствует ожиданиям какого-либо стандарта; матрица – это откалиброванное для каждого датчика преобразование, превращающее «RGB датчика» в «стандартный RGB».

  5. Гамма-коррекция применяет к каждому каналу нелинейную кривую, которая сжимает линейный сигнал датчика в кодировку, согласованную с восприятием. Глаз замечает различия между тёмными тонами сильнее, чем различия между яркими тонами, поэтому кодировка, которая тратит большую часть своего битового бюджета на тёмную часть, захватывает больше видимых деталей при заданной разрядности.

  6. Масштабирование изображения изменяет размер кадра с собственного разрешения датчика до целевого выходного разрешения. Большинство приложений работают при меньшем, чем полное, числе пикселей датчика, и уменьшение масштаба снижает как полосу пропускания, так и нагрузку на память во всём, что следует далее.

  7. Обрезка изображения извлекает суб-прямоугольник из масштабированного кадра и отбрасывает пиксели вне его. Используется для захвата области интереса, согласования с определённым соотношением сторон или удаления рамки, которая приложению не нужна.

  8. Упаковка пикселей преобразует внутреннее представление по каналам (обычно 10 или 12 бит на канал) в выбранный выходной формат и записывает результат в RAM.

4.12.2. Обратная связь контура управления

Этапы 1 и 2 образуют контур управления, охватывающий несколько кадров. Статистика, извлечённая из кадра N, сообщает датчику, насколько яркой была сцена и каким был её цветовой баланс в этом кадре; контроллеры автоэкспозиции, автоусиления и автоматического баланса белого используют эти числа, чтобы выбрать новые значения регистров экспозиции, усиления и баланса белого для кадра N+1. Новые значения вступают в силу при считывании следующего кадра, статистика нового кадра возвращается обратно, и контур замыкается.

Для неизменной сцены контур сходится за несколько кадров и остаётся на постоянной настройке. Для сцены, яркость или цветовой оттенок которой меняется – например, когда камера панорамирует от помещения к освещённому солнцем окну, – контур отслеживает изменение в течение нескольких кадров, и пользователь видит кратковременный дрейф яркости или цвета на пути к новому устойчивому состоянию.

4.12.3. Где выполняется ISP

Распространены две конфигурации.

  • ISP на датчике выполняет весь конвейер внутри чипа датчика и выдаёт готовое RGB-изображение. MCU лишь собирает результат.

  • ISP вне датчика располагается в хост-MCU или SoC. Датчик выдаёт необработанный Байер; кремний MCU (или его драйверный код) выполняет конвейер, прежде чем передать готовый кадр пользовательскому коду.

Это разделение влияет на то, какие выходные форматы датчик может выдать пользователю напрямую. Датчик с полным ISP на кристалле позволяет пользователю выбрать любой готовый формат, который поддерживает чип. Датчик без него выдаёт только Байер, и преобразования форматов выполняются в кремнии MCU или программно.