демозаик FastvideoБыстрый демозаик высокого качества по технологии CUDA

Основной результат: для изображения с разрешением 1920 х 1080, загруженного в оперативную память компьютера, программа GPU Debayer выполняет демозаику за 1,25 мс на видеокарте NVIDIA GeForce GTX 580, что соответствует производительности более 1600 Мегапикселов в секунду или частоте 800 кадров в секунду при разрешении Full HD. При этом среднее значение PSNR для полученных изображений равно 39 дБ.

Как известно, в большинстве фотоаппаратов и видеокамер цветное изображение формируется с помощью программной обработки данных, полученных от матрицы. Сама матрица покрыта решёткой цветных фильтров так, что в каждом квадрате 2х2 есть два зелёных пиксела, один красный и один синий. На базе этих значений выполняются расчёты по восстановлению отсутствующих компонент цвета в каждом пикселе. Чаще всего такой алгоритм "зашит" в фотоаппарат или видеокамеру, но для получения качественного снимка всё же рекомендуется сохранять изображения в RAW формате и впоследствии использовать программное решение для цветовой интерполяции. Такое программное обеспечение также называют демозаиком или дебайером. При правильном выборе алгоритма, задачу по восстановлению цвета можно распараллелить, т.е. разбить на маленькие кусочки и делать расчёты независимо для каждого блока изображения. Таким образом можно добиться значительного увеличения производительности.

Российская компания "Фаствидео" (Дубна, Московская область) создала программное обеспечение GPU Debayer по технологии NVIDIA CUDA для восстановления цвета изображений, полученных с помощью байеровской решётки. Программа выполняется на видеокарте NVIDIA, а параллельная реализация алгоритмов демозаики позволяет получить исключительные результаты с точки зрения скорости работы при очень высоком качестве. Одним из дополнительных преимуществ демозаика на видеокарте является разгрузка центрального процессора, потому что его работа в таком случае минимальна и он может использоваться для других задач.

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

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

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

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

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

Программа GPU Debayer распространяется бесплатно и её можно скачать с сайта производителя. Данная версия работает в Windows-7/8 (32/64) с видеокартами NVIDIA, у которых CC (compute capability) не ниже 2.0. Этому критерию соответствуют все видеокарты NVIDIA серий 400, 500, 600 и 700.

Компания Фаствидео выполняет заказные разработки быстрых библиотек для обработки изображений и их сжатия по технологии CUDA для вычислений на видеокартах NVIDIA. С текущими проектами по созданию скоростных видеокамер и программного обеспечения можно ознакомиться на сайте компании Фаствидео.

Ссылки:
Сайт компании Фаствидео: www.fastvideo.ru
Страница с описанием и ссылкой для загрузки программного обеспечения Fastvideo GPU Debayer Software

Ключевые слова:
быстрый демозаик, цветовая интерполяция, восстановление цвета, байеровский шаблон, fast debayer, demosaic, bayer pattern, CUDA, GPU, NVIDIA

Форма для отправки запроса

Эта форма сохраняет имя и адрес электронной почты.