ДонНТУ | Портал магистров ДонНТУ

Библиотека

Преобразование цветных изображений на базе FPGA

Жиданова Ю.И.

Донецкий национальный технический университет г.Донецк
Факультет компьютерных наук и технологий
Кафедра компьютерной инженерии
E-mail: nato_net06@mail.ru

Аннотация

Жиданова Ю.И.. Преобразование цветных изображений на базе FPGA. В данной статье рассматривается конвертер форматов цветных изображений RGB to YCrCb Color- Space Converter на базе FPGA.

Общая постановка проблемы.

Существует множество алгоритмов преобразования изображений из формата RGB в различные форматы для представления видео, графики или для печати изображений на принтере, например в YCrCb – цветоразностную модель используемая в цифровом видео. Основные требования предъявляются к скорости и качеству преобразования.

Постановка задач исследования.

На текущем этапе работы задача состоит в исследовании методов преобразования цветного изображения из одной модели в другую и реализация его на FPGA. На данный момент рассматривается модель преобразования изображения из формата RGB в цветоразностный формат YCbCr.

Решение задач и результаты исследований.

Как известно, производительность аппаратной реализации алгоритмов намного выше программной. Микросхема с архитектурой FPGA, полное название которой звучит как Field Programmable Gate Array (программируемые пользователем базовые матричные микросхемы), в настоящее время сосредоточила в себе последние технологические достижения микроэлектроники и предоставляет в распоряжение разработчиков наиболее расширенные функциональные возможности. Основной программируемый ресурс микросхем с архитектурой FPGA – так называемая логическая ячейка. В ее состав входят генератор логических функций, работа которого задается таблицей истинности (Look-Up Table – LUT), триггер и некоторое число специализированных ресурсов, упрощающих реализацию типичных для цифровой схемотехники узлов. [1]

В состав каждой логической ячейки относятся следующие вспомогательные устройства:

  1. Цепи ускоренного переноса, предназначенные для быстрой передачи бита переноса между логическими ячейками, что упрощает организацию многоразрядных узлов.
  2. Блочная память.
  3. Выделенные умножители: специализированные блоки, выполняющие умножение независимых 18-бит операндов на частотах до сотен мегагерц (для семейства Spartan-3E – 266 МГц). На определенном этапе развития ПЛИС выяснилось, что программируемая логика может рассматриваться как эффективный сопроцессор цифровой обработки сигналов (DSP). Возможность реализации параллельных вычислений на кристалле ПЛИС существенно улучшает их позиции по отношению к широко распространенным сигнальным процессорам. Эти условия реализуются в основном в тех случаях, когда решение задачи требует выполнения большого числа операций умножения с накоплением, в частности в алгоритмах преобразования различных форматов представления изображений.[2]

При реализации алгоритмов, использующих операцию умножения с накоплением для потока входных данных, часто один и тот же поток данных необходимо умножать одновременно на разные коэффициенты с накоплением суммы отдельно по каждому из каналов умножения. Для реализации подобных алгоритмов блоки умножения в микросхеме имеют дополнительный вход, который может каскадно соединяться с выходом предыдущего умножителя в колонке (рис.1).[2]

Рисунок 1 – Каскадное соединение умножителей

RGB to YCrCb Color-Space Converter это - упрощенный 3x3 матричный множитель, преобразовывающий три входных канала цвета в три выходных канала цвета за один CLK цикл. Оптимизированная структура использует только четыре множителя или DSP48 - слайсы, используя зависимости между коэффициентами в конвертируемой матрице RGB к YCrCb или RGB к YUV стандартам. Ядро эффективно использует 18x18-битные множители, сумматоры и регистры, построенные на блоках DSP Virtex ™-5, Virtex-4 и Spartan ™-3A DSP устройств, или интегрированные 18x18-битные множители в Virtex-II, Virtex-II Pro и Spartan 3, приводящие к высокоэффективному и оптимальному использованию ресурсов.[3]

Цветовое пространство RGB

Красный, зеленый и синий (RGB) цветовое пространство, широко используются в компьютерной графике. Красный, зеленый и синий три основных аддитивных цвета: отдельные компоненты добавляются вместе, чтобы сформировать требуемый цвет. [4]

YCbCr (или YCrCb) цветовое пространство

YCbCr или YCrCb цветовое пространство было разработано в ходе развития всемирного цифрового стандарта видео компонента. Y имеет диапазон от 16 до 235, Cb и Cr имеют номинальный диапазон от 16 до 240. [4]

Вывод преобразования уравнений

Эти уравнения могут быть непосредственно аппаратно реализованы, как показано на рисунке 2. Затемненные блоки на рисунке 2 представляют собой логические блоки, которые всегда реализуются на DSP блоках, если блоки DSP доступны в целевом устройстве.[3]

Пример временной диаграммы выполнения преобразования представлен на рисунке 3.

В исследованиях применена микросхема Spartan-3 с частотой работы 178 МГц (таблица 1). В результате получена производительность 4,4 мс для обработки кадра размером 1024х768 пикселей. Для сравнения, обработка такого же изображения в системе Matlab занимает 373 мс, что значительно превышает время выполнения на аппаратной платформе.

Рисунок 2 – схема преобразования

Рисунок 3 – Временная диаграмма выполнения преобразования

Таблица 1 – Таблица производительности

Выводы. Данная статья освещает исследование преобразования изображения на базе FPGA из цветовой модели RGB в цветоразностную модель YCbCr. Преимущества использования данной аппаратуры очевидно: быстродействие, простота замены аппаратных блоков и усовершенствования самого алгоритма.

Список литературы

  1. Кузелин М.О. , Кнышев Д.А., Зотов В.Ю. Современные семейства ПЛИС фирмы Xilinx: справочное пособие. – 440 с.
  2. Тарасов И.Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL – 252 c.
  3. RGB to YCrCb Color-Space Converter v1.0 DS659 March 24, 2008 Product Specification – 6 с., 15 с., 17 с.
  4. Гонсалес Р., Цифровая обработка изображений в среде MATLAB – 206 с., 216 с.
ДонНТУ | Портал магистров ДонНТУ