4.12. Конвеєр ISP

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

A vertical pipeline diagram with eight labelled boxes, top to bottom: statistics extraction, auto white balance, debayering, colour matrix correction, gamma correction, image scaling, image cropping, and pixel packing. An arrow at the top is labelled "corrected Bayer pixels" and an arrow at the bottom is labelled "finished frame".

Стадії обробки кольору та виводу ISP. Конвеєр виконує кожну стадію для кожного пікселя кадру, перш ніж почати наступну.

4.12.1. Стадії

Кожна стадія по черзі застосовує одне чітко визначене перетворення. Порядок має значення – пізніші стадії припускають, що попередні вже виконались, і деякі стадії також беруть вхідні дані з виводу попереднього кадру.

  1. Видобування статистики вимірює середню яскравість по регіонах і суми по каналах зі скоригованого кадру Баєра. Ці числа живлять контурні петлі автовитримки, автопідсилення та автоматичного балансу білого, які потім оновлюють налаштування датчика для наступного кадру.

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

  3. Debayering реконструює два відсутніх колірних канали в кожному пікселі з мозаїки Баєра, перетворюючи сирі дані з одним каналом на піксель у тришканальне RGB. (Дивіться Debayering.) Усе після цієї стадії працює на RGB-пікселях, а не на мозаїці Баєра.

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

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

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

  7. Обрізання зображення виділяє підпрямокутник масштабованого кадру і відкидає пікселі за його межами. Використовується для захоплення області інтересу (ROI), відповідності певному співвідношенню сторін або відкидання рамки, яка не потрібна застосунку.

  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 або програмному забезпеченні.