- Дебайер на CUDA. Восстановление цвета на CUDA. GPU дебайер. Цветовая интерполяция на видеокарте. Дебайеризация изображений. Демозаик на GPU.
высокоскоростная съёмка скоростная съёмка
ГЛАВНАЯ
  ВИДЕОКАМЕРЫ
  ПРОГРАММЫ
  РЕШЕНИЯ
  ПРОЕКТЫ
  НОВОСТИ
  ИНФО
  ВАКАНСИИ
  АДРЕС
  КАРТА САЙТА
  ENGLISH VERSION
 
  Поиск по сайту:

Интерполяция цвета (дебайер) на CUDA

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

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

Основные алгоритмы, используемые для восстановления цвета

  • простейшее усреднение по соседним пикселам (билинейная интерполяция, AN3)
  • фильтры для окрестностей 5х5, 7х7 и т.д.
  • учёт локальных изменений цветовых разностей G-R и G-B
  • учёт локальных вертикальных и горизонтальных градиентов
  • учёт шума и его влияния на восстановление цвета
  • адаптивные методы для улучшения локальных оценок

Поскольку задача восстановления цвета после байеровского шаблона является локальной, то её можно эффективно распараллелить и оптимизировать для создания программного обеспечения на основе технологии CUDA. Такое решение позволит существенно поднять скорость цветовой интерполяции и даст возможность в онлайне обрабатывать большие потоки данных, например, от цветных скоростных видеокамер или от камер с очень большим разрешением. Программное обеспечение GPU Debayer является высокопроизводительным решением на базе видеокарт NVIDIA для интерполяции данных от байеровскоих паттернов.

Что может дебайер на видеокарте

Основной результат: для 8-битного байеровского изображения с разрешением 1920 х 1080, загруженного в оперативную память компьютера, программа GPU Debayer восстанавливает цвет за 0,83 мс на видеокарте NVIDIA GeForce GTX 980, что соответствует производительности более 2400 Мпикселов в секунду или частоте 1200 кадров в секунду при разрешении Full HD. Это в 200 раз быстрее аналогичного алгоритма AHD из библиотеки Intel IPP-7.1 на Core i7 2600 (3,4 ГГц).

Для тестирования использовались необработанные изображения, полученные от матрицы фотоаппарата или видеокамеры. У этих изображений на один пиксел приходится 1 байт данных, а после дебайера получаются цветные изображения с прежним разрешением, у которых на один пиксел приходится уже 3 байта, т.е. размер изображения увеличивается в 3 раза. В случае, если исходное изображение находится в памяти компьютера, то для выполнения вычислений на видеокарте нужно эти данные сначала передать в видеокарту через шину PCI-Express, затем провести расчёты, потом вернуть увеличившиеся в 3 раза данные по шине PCI-Express назад, в оперативную память компьютера. По сравнению с работой программ на центральном процессоре, при вычислениях на видеокарте получаются две дополнительные стадии по пересылке данных в видеокарту и обратно, которые вносят дополнительную задержку.

При использовании набора изображений Кодака, на котором обычно выполняется стандартное тестирование программ по восстановлению цвета, был получен результат 39 дБ, что очень неплохо, причём визуальное качество получилось очень хорошим. К примеру, самый качественный дебайер (алгоритм AHD) из библиотеки Intel IPP-7.1 на этом же наборе изображений даёт среднее значение порядка 37,4 дБ, а производительность алгоритма AHD при многопоточной реализации составляет 12 Мпикселов в секунду на процессоре Core i7 2600.

В программе GPU Debayer на данный момент реализованы два алгоритма дебайера: HQLI и DFPD. Качество интерполяции при использовании этих алгоритмов заметно выше, чем при билинейной интерполяции, которая считается самым простым и самым быстрым алгоритмом. Были получены следующие результаты по производительности для различных алгоритмов на компьютере с Core i7 4790, 8 ГБайт оперативной памяти, видеокартой NVIDIA GeForce GTX 980 и OC Windows-7 (64):

 
Алгоритмы восстановления цвета
Полученные результаты Fastvideo HQLI Fastvideo DFPD Intel IPP-7 AN3 Intel IPP-7 AHD
Только вычисления на CPU
82 Мпикс/с
20 Мпикс/с
630 Мпикс/с
12 Мпикс/с
Только вычисления на GPU
18200 Мпикс/с
5250 Мпикс/с
--
--
Вычисления на GPU с учетом копирований в видеокарту и обратно
2400 Мпикс/с
1800 Мпикс/с
--
--
Среднее значение PSNR
36 дБ
39 дБ
30,4 дБ
37,4 дБ
Среднее значение SSIM (RGB)
0,965
0,978
0,873
0,968

В реальной ситуации производительность клиентских программных приложений по цветовой интерполяции ограничена скоростью загрузки данных от HDD/SSD/RAID, хотя значительное ослабление нагрузки на ЦПУ будет актуально всегда. Тем не менее, существуют промышленные серверные приложения, когда такая высокая скорость действительно требуется. Поток данных от видеокамер, в том числе и от высокоскоростных, может достигать гигапикселов в секунду и выше, поэтому производительность расчётов в таких случаях играет огромную роль. Для дальнейшего увеличения производительности можно использовать более мощные видеокарты, компьютер с шиной PCI-Express 3.0, а также можно устанавливать в компьютер сразу несколько видеокарт, на которых одновременно будут выполняться вычисления.

Программа GPU Debayer распространяется бесплатно и её можно скачать по ссылке, приведенной ниже. Данная версия работает в Windows-7/8 (32/64) с видеокартами NVIDIA, у которых CC (compute capability) не ниже 2.0. Для корректной работы необходимы драйверы версии 310.90 или старше. В программе также реализованы те же самые алгоритмы для CPU, есть возможности создания байеровских изображений, измерения времени выполнения интерполяции, можно оценивать результаты по методикам PSNR и MSE. Подробности есть в описании программного обеспечения.

загрузить приложение GPU Debayer

GPU Debayer 1.0

Размер архива: 2,26 МБ
Издатель: Fastvideo
Дата выпуска: 11 марта 2013
ОС: Windows-7/8 (32/64)
Лицензия: Freeware
Видеокарты NVIDIA Fermi, Kepler, Maxwell

Возможности программного обеспечения GPU Debayer

  • Поддерживаются все основные байеровские паттерны (RGGB, BGGR, GBRG, GRBG)
  • Алгоритм создания байеровских изображений (CFA) из 24-битных файлов формата PPM
  • Входной формат байеровских изображений – PGM
  • На выходе программа создаёт 24-битные изображения формата PPM
  • Минимальное разрешение 128 x 128
  • Максимальное разрешение до 12000 х 12000
  • Производительность программы (учитываются только вычисления, изображения формата Full HD) на видеокарте NVIDIA GeForce GTX 980:
    • Алгоритм HQLI (High Quality Linear Interpolation) - до 18,2 Гпикс/с, среднее значение PSNR = 36,5 дБ для набора изображений Kodak
    • Алгоритм DFPD (Directional Filtering and a Posteriori Decision) - до 5,25 Гпикс/с, среднее значение PSNR = 39 дБ для набора изображений Kodak
  • Производительность с учётом загрузки данных в видеокарту и выгрузки из видеокарты в оперативную память компьютера для NVIDIA GeForce GTX 980:
    • Алгоримт HQLI - до 2400 Мпикс/с
    • Алгоритм DFPD - до 1800 Мпикс/с
  • Программа включает реализации алгоритмов HQLI и DFPD для CPU
  • Оценка результатов цветовой интерполяции по метрикам MSE и PSNR
  • Измерения времени выполнения и производительности каждого алгоритма
  • Программа работает на видеокартах NVIDIA (Compute Capability >= 2.0), драйвер 310.90 или старше
  • Консольное приложение для Windows-7/8 (32/64)

Таким образом, показана возможность восстановления цвета с высокой производительностью и отличным качеством на графических картах NVIDIA по технологии CUDA. Производительность видеокарты GeForce GTX 980 для цветовой интерполяции значительно выше, чем возможности самых последних CPU. Полученные данные говорят о том, что есть возможность использовать более сложные алгоритмы для быстрого и высококачественного восстановления цвета и обработки изображений на видеокартах.

Rambler's Top100 НПО Астек - официальный дилер "Фаствидео"
Москва, 129344, ул. Искры 17А, корп. 3, тел: +7 (495)-542-04-49
высокоскоростные камеры