Датчик изображения — анализ формата RAW
Датчик изображения — анализ формата RAW

Формат RAW часто встречается в руководстве по данным датчика изображения. Раньше я искал стандарт формата RAW, но не смог его найти. Сегодня я смогу прояснить свою путаницу.

Это квантованное значение исходных данных, например десятичное представление RGB (A, B, C), а затем A, B, C представляются набором двоичных чисел, таких как 8-битная глубина, которая является значением канала. квантованного цвета от 0 до 255.

16 миллионов цветов, но все равно слишком мало

Посчитать?

Каждый пиксель занимает 3 байта = 24 бита (8 бит * 3).

Общее количество пикселей = 400 * 400 = 160 000 пикселей.

Размер изображения = байты на пиксель * общее количество пикселей Размер изображения = 3 байта/пиксель * 160 000 пикселей = 480 000 байт

Преобразование байтов в общепринятые единицы дает нам размер изображения 480 000 байт, что составляет примерно 468,75 КБ (1 КБ = 1024 байта).

Размер изображения в формате RGB разрешением 400x400 составляет примерно 468,75 КБ.

ДАННЫЕ RAW можно понимать как: Изображение RAW — это исходные данные, которые датчик изображения CMOS или CCD преобразует захваченный сигнал источника света в цифровой сигнал. Он не имеет потерь и содержит исходную информацию о цвете объекта.

Формат данных RAW обычно использует схему Байера, в которой для создания массива цветных фильтров (CFA) используется световой фильтр (CFA). Поскольку человеческий глаз более чувствителен к цвету зеленой полосы, формат данных Байера содержит 50% цвета. зеленая информация и по 25% информации каждого цвета.

Свет проходит через линзу и фильтром датчика разлагается на монохроматический свет. Датчик записывает значение интенсивности света в каждой точке, в результате чего получаются данные в формате RAW. Преобразуйте значения оттенков серого RAW в изображения следующим образом:

В RAW без постобработки есть только эта черно-белая мозаика.

Затем отобразите пиксели в каждом месте. Выглядит это так, но пока не понятно.

Следующий шаг – угадать цвет:

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

Возьмем, к примеру, желтый свет. Он состоит из смеси красного и зеленого света. После прохождения через слой фильтра пиксели под красной и зеленой точками будут иметь значения, а пиксели под синей точкой — нет. значение, поэтому осмотрите пиксель. Распределение цветов — есть красный и зеленый, но нет синего — можно сделать вывод, что исходный цвет этого пикселя должен быть желтым.

Процесс восстановления цветовой точки

станет таким

1. Изображение, наблюдаемое глазами человека 2. Исходное изображение в формате RAW 3. Выходное изображение в формате Байера 4. Выходное изображение после применения расчета интерполяции

Это 4 шага, а вычислительная нагрузка немалая.

После долгого разговора, как выглядит этот Байер?

Это единственная реальная вещь, которую я вижу

Разве половина + половина + четверть, разделенная на 3, не равна одной трети?

Входные данные изображения RAW Bayer преобразуются в данные домена RGB. В домене RAW каждый пиксель содержит только один из компонентов RGB, поэтому формат RAW имеет большой размер.

В идеальной ситуации каждый пиксель имеет 3 значения, но на самом деле R и B имеют только по 1/4, а G — по 1/2. Поэтому в изображении, полученном по шаблону Байера, только 1/3. содержание на самом деле реально, другие получены путем интерполяции на основе предварительных знаний. Это также показывает, что в естественных изображениях много избыточной информации.

Тогда алгоритм интерполяции — это то, что означает рисунок ниже. Вычислите неизвестные значения каждого канала и вставьте их:

Я должен был прояснить это

Линейная интерполяция. В этом алгоритме интерполяции недостающие цветные пиксели интерполируются с использованием значений соседних пикселей.

Например, для изображения в режиме Байера BGGR недостающий зеленый пиксель можно найти путем усреднения четырех соседних пикселей вокруг него. Для отсутствующих красных или синих пикселей это можно рассчитать, используя значения из соседних строк или столбцов.

Модифицированная билинейная интерполяция: это более точный алгоритм интерполяции, который улучшает линейную интерполяцию.

В этом алгоритме недостающие цветные пиксели интерполируются с использованием соседних пикселей и соседних с ними пикселей. Этот алгоритм может обеспечить лучшие результаты при обработке изображений с высоким уровнем искажений. Эм, разве это не просто билинейная интерполяция за притворство крутым снимут один балл?

Здесь так много пикселей, что их можно считать зеленой буквой B.

Значения четырех соседних пикселей в области 2*2 возле исходного изображения вычисляются методом взвешенного усреднения. Качество увеличенного изображения алгоритма билинейной интерполяции выше, и не будет прерывистых значений пикселей. Однако этот алгоритм имеет природу фильтра нижних частот, который повреждает высокочастотные составляющие, поэтому контур изображения может в определенной степени размыться.

Ищите себя

Существует также линейная интерполяция с коррекцией градиента, разработанная Microsoft Research. Этот алгоритм используется функцией демозаики в Matlab.

Основной принцип этого алгоритма: в окне 5*5 значение градиента цвета пикселя центральной точки используется для компенсации результатов интерполяции других цветов. Среди них R и B рассматривают градиенты в четырех направлениях: вверх, вниз, влево и вправо; G не только учитывает градиенты в четырех направлениях: вверх, вниз, влево и вправо, но также учитывает градиенты в четырех направлениях: вверх, вниз, влево и вправо; четыре диагональных направления. Это должно быть связано с тем, что количество пикселей G в 2 раза больше R и B, а человеческий глаз более чувствителен к зеленому цвету.

Эффект

Эта картина более ясна

Матрица цветных фильтров (CFA)

Вышеизложенное является более научно-популярным. Обычно мы используем датчики и смотрим на выходной формат OV2640:

Давайте сначала поговорим о том, где эти форматы подходят для использования:

  1. Raw RGB:
    • Применимые сценарии: профессиональная фотография、Обработка изображений, компьютерное зрение и другие области. Данные Raw RGB предоставляют максимальную информацию о цвете и гибкость, обеспечивая точную коррекцию цвета при постобработке.、Такие операции, как регулировка баланса белого и улучшение изображения.
  2. RGB (RGB565/555):
    • Применимые сценарии: встроенные системы, драйверы дисплея, графические процессоры и т. д. RGB565 и RGB555 представляют собой представление цветовой информации RGB.,Подходит для сценариев с ограниченными ресурсами хранения или там, где требуется эффективная передача данных.,Например, встраиваемые устройства, разработка игр и т. д.
  3. GRB422:
    • Применимые сценарии: обработка видео, передача и сжатие полей. Формат GRB422 более распространен в сфере видео.,Может использоваться для захвата, обработки и передачи видеоданных,Обеспечивает одновременно высокую точность цветопередачи и яркости.
  4. YUV (422/420):
    • Применимые сценарии: кодирование и декодирование, приложения для связи и хранения. YUV422 и YUV420 — это форматы кодирования для выборки цветности цветных изображений.,Может эффективно уменьшить объем данных и обеспечить лучшее качество изображения.,Обычно используется в цифровых стандартах сжатия видео и изображений.
  5. YCbCr (4:2:2):
    • Применимые сценарии: Цифровое видеокодирование., транслировать, стриминг и видеоконференции и многое другое. ИКБ 4:2:2является общимвидеоформат цветового пространства,Часто используется в видеокодеках,Обеспечивает качественное видеосжатие и передачу,сохраняя при этом высокое качество изображения.

Несколько часто используемых типов данных Байера:

(Стоит сказать, что RAW8, 10 и 16 — это методы кодирования, специально используемые для передачи байеровских изображений, что неверно...)

RAW8, RAW10 и RAW16 — это форматы, используемые для представления необработанных данных изображения, которые представляют битовую глубину 8, 10 и 16 бит на пиксель соответственно.

Существует множество способов формирования пикселя:

  1. RGBФормат:
    • Красный канал (R): представляет красный компонент пикселя.
    • Зеленый канал (G): представляет зеленый компонент пикселя.
    • Синий канал (B): представляет синий компонент пикселя.
    • Например, для пикселя в формате RGB888 каждый компонент обычно занимает 8 бит, всего 24 бита (3 байта).
  2. BayerФормат:
    • Канал красного фильтра (R): указывает яркость пикселя, использующего красный фильтр.
    • Канал зеленого фильтра (G): указывает яркость пикселя, использующего зеленый фильтр.
    • Канал синего фильтра (B): указывает яркость пикселя, использующего синий фильтр.
    • В формате Байера каждый пиксель содержит информацию только одного цветового канала.
  3. YUV/YCbCrФормат:
    • Яркость (Y): указывает яркость пикселя.
    • Chroma Blue (Cb): указывает на синюю цветность пикселя.
    • Цветность красного цвета (Cr): указывает на красную цветность пикселя.
    • Эти форматы обычно используются для видеокодирования и передачи.,Канал яркости (Y) содержит информацию о яркости изображения.,Каналы цветности (Cb и Cr) содержат информацию о цвете.
  4. 灰度Формат:
    • Содержит только один канал, представляющий уровень серого или уровень яркости пикселя.
    • Например, для 8-битного изображения в оттенках серого каждый пиксель содержит только 8 бит информации в оттенках серого.

Похоже, надо еще раз выделить конкретный RAW.

Обычно каждый цветовой канал (красный, зеленый, синий) имеет определенную битовую глубину (например, RAW8 — 8 бит на канал, RAW10 — 10 бит на канал).

Необработанные данные RGB не обрабатываются и напрямую представляют интенсивность каждого цветового канала.

RAW8:

Raw8 использует 8 бит для представления одного компонента G/R/B/G вместо использования 8 бит для представления четырех компонентов RG/GB.

RAW10:

Raw10 использует 10 бит для представления одного из вышеупомянутых G/R/B/G, но данные 16-битные, а старшие 6 бит бесполезны.

Почему кажется, что их намного больше?

RAW12:

Raw12 использует 12 бит для представления одного из вышеупомянутых G/R/B/G, но данные 16-битные, а старшие 4 бита бесполезны.

Сравнивать

Вы можете видеть, что последний самый деликатный.

RGB(RGB565/555):RGB565иRGB555это цветкодирование Формат,Каждый Пиксель представлен 16 битами. RGB565 использует 5 бит для представления красного цвета.,6 бит представляют зеленый цвет,5 бит представляют синий цвет,RGB555 использует 5 бит на цветовой канал. Эти форматы обычно используются для отображения,Из-за их компактного представления.

Каждый пиксель представлен 16 битами, занимающими 2 байта, а компоненты RGB используют 5 бит, 6 бит и 5 бит соответственно.

565

Каждый пиксель представлен 16 битами, занимающими 2 байта, а компоненты RGB используют 5 бит (старший бит не используется).

555

YUV(422/420):YUV422иYUV420давидеосжатиеи传输中使用的颜色空间Формат。

YUV422 имеет 8 бит на пиксель для яркости (Y) и 8 бит для насыщенности синего (U) и насыщенности красного (V).

YUV420 использует выборку цветности, обычно 8 бит для яркости (Y) и 8 бит, общие для синей (U) и красной (V), но имеет меньше информации о цветности, чем YUV422.

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

Книга старая, но ее еще можно прочитать.

Книга о сэмплировании, 180 страниц.

КМОП-пакет

Это тоже возможно, если у меня будет возможность сделать датчик

Анализ интерфейса OVM6946 — происхождение AntLinx

Наконец я понял это после того, как использовал внутреннюю камеру OV6946, чтобы испортить ситуацию.

Выпущена USB-карта захвата без потерь OV6946 «Xiao Peep»!

Аппаратное обеспечение OV426-CCU (блок управления камерой)

Используйте OVM6946 и OV426 для проектирования эндоскопов!

DIY капсульная эндоскопия

Это предыдущие статьи для справки.

Язык кода:javascript
копировать
https://snapshot.canon-asia.com/article/eng/videography-faq-what-do-422-and-420-mean
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose