Движок сбора статистики (дсс)
Рис. 16. Расположение ДСС на потоке обработки видео
IP-ядро движка сбора статистики используется для сбора различных статистических данных о изображении, таких как:
· гистограммы интенсивности
· гистограммы цветов
Рис. 17. Гистограммы цветов
МАТРИЦА КОРРЕКЦИИ ЦВЕТА (МКЦ)
Рис. 18. Расположение МКЦ на потоке обработки видео
IP - ядро матрицы коррекции цвета отвечает за различные виды коррекции цвета: баланс белого, яркость, контраст, насыщенность.
Человеческий глаз и электронные устройства воспринимают цвета по-разному, поэтому цвет изображения, полученный с электронного устройства будет отличаться о наблюдаемого человеческим взглядом.
Матрица коррекции цвета умножает каждый из трех каналов полученных с камеры на определенные коэффициенты, с целью придания цветам изображения наибольшего реализма.
Рис. 19. Примеры коррекции цвета
КОРРЕКЦИЯ ГАММЫ (КГ)
Рис. 20. Расположение КГ на потоке обработки видео
IP-ядро коррекции гаммы используется для создания таблиц.
Данные таблицы используются для преобразования линейного спектра RGB изображения окружающей среды, в нелинейные характеристики дисплея. В лучшем случае гамма коррекция выглядит следующим образом:
, где значения
На рисунке приведен пример коррекции гаммы:
Рис. 21. Пример коррекции гаммы
ПРЕОБРАЗОВАНИЕ ПРОСТРАНСТВА ЦВЕТОВ (ППЦ)
Рис. 22. Расположение ППЦ на потоке обработки видео
IP-ядро преобразования пространства цветов используется для перевода изображения из пространства цветов RGB в пространство цветов YCrCb.
УЛУЧШЕНИЕ ИЗОБРАЖЕНИЯ (УИ)
Рис. 23. Поток обработки видео
IP-ядро улучшения изображения используется для уменьшения шумов на изображении, выделения контуров изображения, подавления ореола, а также строит карту контуров, которая необходима для корректной работы шумоподавления. С помощью карты контуров контролируется сила и направление шумоподавления.
После выполнения выделения контуров по карте и шумоподавления, запускается опциональный модуль подавления ореола.
ПРОГРАММНАЯ ПЛАТФОРМА
Программная платформа написана для ОС Linux с ядром версии 3.x. Платформа представляет собой многопоточное приложение для обработки видео. Приложение также отвечает за соединение с ПК через USB или веб - интерфейс.
На блок схеме изображена архитектура приложения:
Рис. 24. Архитектура приложения
Программа состоит из трех основных процессов:
1. Процесса Main (main.c)
2. Процесса обработки видео(vipp_stats_handler)
3. Процесса управления веб-сессией
Следующая блок схема показывает файлы исходного кода для работы с видео камерой:
Рис. 25. Файлы исходного кода для работы с видео камерой
Файл fmc_imageon_demo.c включает в себя практически весь высокоуровневый код для инициализации камеры. Файлы avnet_console_* отвечают за работу с текстовым командным интерфейсом. Они используются для предоставления пользователю контроля через стандартные потоки ввода/вывода (STDIN, STDOUT). Этот интерфейс также используется для общения веб-интерфейса с приложением.
ПРОЦЕСС MAIN
Главный метод модуля Main – main(), который инициализирует основные компоненты программы. Он также инициализирует графический сенсор VITA, потоковую обработку изображения и графический буфер, а также запускает процессы управления веб-сессией и обработки видео.
Как только инициализация завершена, пользователю становится доступна работа с программой через стандартные потоки ввода-вывода(STDIN, STDOUT).
Исходный код файла main.c выглядит следующим образом:
Рис. 26. Исходный код файла main.c
ПРОЦЕСС ОБРАБОТКИ ВИДЕО
Процесс обработки видео запускается сразу же после инициализации потока обработки видео. Данный процесс периодически считывает статистику изображения с сенсора и производит следующие операции:
1. Автоматическую коррекцию коэффициента усиления
2. Автоматическую коррекцию экспозиции
3. Автоматический выбор настроек баланса-белого
4. Автоматические настройки контраста
Блок - схема, показывающая как обработчик видео изображения взаимодействует с потоком обработки видеоизображения приведена ниже:
Рис. 27. Взаимодействие обработчика видео изображения с потоком обработки
Поток обработки видеоизображения состоит из следующих частей (IP-ядер):
1. Коррекции битых пикселей
2. Цветовой фильтрации
3. Сбора статистики по изображению
4. Цветовой коррекции
5. Коррекции гаммы
6. Улучшения изображения
IP-ядро сбора статистики напрямую связывается с программой Linux Image Statistics Handler. Оно собирает статистические данные об изображении, поступающие с камеры, включая гистограммы интенсивности уровня цветности сигнала, использующиеся для автоматической подгонки изображения для улучшения качества.
Процесс обработки видео изображения предоставляет несколько примеров для обработки изображения, основанных на работе с IP-ядрами, а именно:
1. Автокоррекцию баланса белого
2. Автоматическую коррекцию коэффициента усиления
3. Автоматическую коррекцию экспозиции
4. Автоматическую настройку контраста