Научная статья на тему 'Особенности применения аппаратных устройств на базе FPGA для задач потоковой обработки изображений'

Особенности применения аппаратных устройств на базе FPGA для задач потоковой обработки изображений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
282
108
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПЛИС / ДИЗАЙН / АРХИТЕКТУРА / КОНВЕЙЕРЫ / ОБРАБОТКА ИЗОБРАЖЕНИЙ / FPGA / DESIGN / ARCHITECTURE / DATAFLOW / IMAGE PROCESSING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лысаков Константин Федорович, Шадрин Михаил Юрьевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Specific of using FPGA based devices for sequence of image processing

The article presents special approaches for processing sequence of images using FPGA. Several recommendations on schematics of processing blocks, realization of control modules and internal architecture of functional blocks are proposed using specifics of task.

Текст научной работы на тему «Особенности применения аппаратных устройств на базе FPGA для задач потоковой обработки изображений»

УДК 004.272.44 + 004.383.3

К. Ф. Лысаков, М. Ю. Шадрин

Институт автоматики и электрометрии СО РАН пр. Акад. Коптюга, 1, Новосибирск, 630090, Россия

Новосибирский государственный университет ул. Пирогова, 2, Новосибирск, 630090, Россия

E-mail: lysakov@sl.iae.nsk.su; mikesha@sl.iae.nsk.su

ОСОБЕННОСТИ ПРИМЕНЕНИЯ АППАРАТНЫХ УСТРОЙСТВ НА БАЗЕ FPGA ДЛЯ ЗАДАЧ ПОТОКОВОЙ ОБРАБОТКИ ИЗОБРАЖЕНИЙ

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

Ключевые слова: ПЛИС, дизайн, архитектура, конвейеры, обработка изображений.

Введение

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

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

Общая информация о FPGA

Вентильные матрицы, программируемые электрическим полем (Field Programmable Gate Array - FPGA), являются одной из разновидностей семейства программируемых логических интегральных схем (ПЛИС). Их отличительной характеристикой является использование распределенной матрицы межсоединений, позволяющей создавать кристаллы логической емкостью до 10 и более миллионов логических вентилей. Такая емкость позволяет реализо-вывать на них весьма трудоемкие математические алгоритмы обработки сигналов.

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

Сегодня опубликовано множество статей на тему использования FPGA в качестве аппаратного ускорителя для ряда математических алгоритмов примерами могут быть [1; 2].

ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2009. Том 7, выпуск 3 © К. Ф. Лысаков, М. Ю. Шадрин, 2009

Но предлагаемые подходы ориентированы либо на решение конкретных задач и не имеют технологической возможности для их использования в других сферах, либо слишком универсальны, что делает неэффективным их применение для решения возникающих задач. В качестве примера специализированного решения можно привести специализированные модули ускоренных вычислений в суперкомпьютере CRAY [3]. Универсальные же решения имеют в своем составе сигнальные процессоры, АЦП/ЦАП и т. д., что существенно увеличивает как габаритные размеры устройства, так и его характеристики энергопотребления. При этом зачастую в универсальных решениях используются различные внутренние шины для общения между вычислительными устройствами. Вследствие этого при передаче данных от ПК к FPGA возникают промежуточные участники, которые уменьшают пропускную способность и, как следствие, уменьшают итоговую производительность всего устройства.

Особенности устройств на базе FPGA и области их применения

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

• базовый модуль цифровой обработки сигналов (ЦОС) ADP6203PCI, производитель «Инструментальные системы» (г. Москва);

• специализированный вычислитель SLSP-1, производитель ЗАО «СофтЛаб-НСК»;

• специализированный вычислитель SLSP-2, производитель ЗАО «СофтЛаб-НСК»;

• специализированный вычислитель HDG, производитель ЗАО «СофтЛаб-НСК».

В качестве вычислителя на указанных устройствах использованы следующие кристаллы FPGA Xilix: XCV600E-6fg676, XC2V1000-4bg575C, XC2V3000-4bg728 и XC5VLX50T-FF665. Такой набор кристаллов разных семейств позволяет наиболее полно оценить преимущества и недостатки каждого в отдельности при реализации конкретных алгоритмов обработки данных.

Также указанные вычислительные модули отличаются коммуникационными возможностями: PCI у ADP6203PCI, 32-битный PCI-X у SLSP-1, 64-битный PCI-X у SLSP-2 и PCI-E у HDG. Такие возможности позволяют подобрать наиболее удобное устройство для конкретной задачи исходя не только из требований пропускной способности, но и архитектуры используемого ПК.

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

Схемотехническое проектирование

При решении задач потоковой обработки данных и изображений в режиме реального времени важно минимизировать потоки данных как внутри устройства, так и при внешнем общении (например в ПК) [4; 5]. Но при реализации нелинейных многопроходных алгоритмов необходимо неоднократно обращаться к исходным данным. В задачах по обработке изображений размер кадра обычно сравним с объемом доступной памяти на кристалле, поэтому рекомендуется выбирать решение, имеющее в своем составе статическую или динамическую память необходимого объема.

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

Ниже перечислены рекомендации по схемотехническому проектированию устройства для задач потоковой обработки изображений:

1) наличие стандартной интерфейсной шины для общения с ПК;

2) возможность автономной работы без связи с ПК;

3) наличие собственного генератора тактовой частоты;

4) наличие памяти (статической или динамической), связанной с FPGA;

5) наличие интерфейсов для подключения периферийных устройств и отладки.

Такой набор рекомендаций позволяет получить максимальную производительность за счет минимизации потерь времени на передаче данных между вычислителем и ПК, а также использовать память в режиме максимальной производительности.

В качестве примера ниже приведена структурная схема аппаратного решения SLSP-2 (рис. 1).

DHS

62

/»—^ ч—V

г

5V 3.3V

V_у

А-

V-

(XC2V3000)

ITU

656

Рис. 1. Блок-схема SLSP-2

Контроллеры PCI / PCI-X / PCI-E

В настоящее время для общения устройств с ПК и передачи данных чаще всего используются различные шины PCI. Необходимо отметить, что шины PCI и PCI-X являются параллельными шинами, и сегодня их все больше замещает последовательная шина PCI-E. Это происходит из-за более высокой пропускной способности, при том что цены на решения уже практически не отличаются.

Сегодня некоторыми фирмами (в частности Xilinx) предлагаются готовые решения контроллеров всех шин PCI. Стоимость таких ядер составляет около 40 тыс. долларов. К тому же такие ядра не позволяют добиться максимальной производительности при передаче данных, что обусловлено особенностями операций на шине и универсальностью предлагаемых решений. По этим причинам, если поставленная задача требует достижения максимальной производительности, необходимо либо изменять готовое решение, либо даже полностью создавать контроллер шины.

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

Для достижения максимальной пропускной способности шин PCI используется механизм прямого доступа к памяти без участия процессора (DMA - Direct Memory Access). При этом используется известный механизм Scatter/Gather Lists, суть которого заключается в том, что в памяти ПК создается структура объемом 4 Кб (одна страница памяти), и в ней хранятся данные по 32 бита, представляющие собой адрес страницы с данными (рис. 2).

Рис. 2. Организация списка адресов страниц данных

Такая организация позволяет передать устройству только адрес страницы, содержащей адреса страниц данных. После чего устройство самостоятельно одним пакетом считывает всю эту структуру во внутреннюю память и далее может без дополнительных временных затрат оперировать данными объемом до 1024 страниц - 4 Мб.

Но в ряде задач необходимо оперировать объемами памяти до нескольких Гб, а готовые решения, использующие механизм Scatter/Gather Lists, не позволяют получить максимально возможную пропускную способность, вынуждая разбивать данные по 4 Мб.

В состав представляемого программно-аппаратного комплекса входит контроллер шины PCI-X, позволяющий адресовать до 4 Гб данных [6]. Для обеспечения такой возможности используется «список списков страниц данных» (рис. 3).

Рис. 3. Организация списка списков адресов страниц данных

Динамическая память. Контроллер DDR

В динамической памяти (Dynamic RAM) ячейки построены на основе областей с накоплением зарядов, занимающих гораздо меньшую площадь, нежели триггеры. При записи бита в такую ячейку в ней формируется электрический заряд, который сохраняется в течение нескольких миллисекунд; для постоянного сохранения заряда ячейки необходимо регенерировать - перезаписывать - содержимое для восстановления зарядов.

DDR (Double Data Rate) представляет собой дальнейшее развитие технологий динамической памяти с целью увеличения пропускной способности. Стандарт DDR предусматривает передачу данных на двойной частоте тактового сигнала, т. е. передача данных осуществляется по обоим фронтам сигнала. При этом все биты разбиты на группы по 8 бит, и каждой группе соответствует свой тактовый сигнал DQS. Именно этот сигнал, а не тактовый сигнал памяти, определяет своим фронтом валидность данных, в то время как общий тактовый сигнал используется для определения команд чтения / записи и регенерации.

Сложность реализации контроллера DDR-памяти на базе ПЛИС заключается в ограниченном количестве внешний тактовых сигналов, по которым может работать внутренняя логика ПЛИС. Для кристалла Xilinx Virtex2 XC2V3000 это 5 внешних тактовых сигналов. Таким образом, невозможно соблюсти рекомендации стандарта DDR по тактовым сигналам для синхронизации с данными, так как для 64-битной памяти их требуется не менее 9 штук (8 DQS и 1 общий тактовый сигнал).

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

Но существует еще проблема дрейф фронта сигналов DQS, обусловленный температурой кристалла памяти. В проведенных экспериментах дрейф сигналов DQS достигал 30 % от периода сигнала при частоте работы памяти 108 МГц при температурных режимах от 20 до 90 градусов Цельсия. Такой дрейф делает невозможным корректную регистрацию данных при неизменном тактовом сигнале приема данных. Решением проблемы дрейфа является использование специального модуля синхронизации, который имеет возможность изменять фазу тактового сигнала приема данных.

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

Разработанный контроллер DDR позволяет получать максимально возможную пропускную способность памяти при потоковых обращениях за счет установки следующих приоритетов операций: чтение / запись, подстройка фронта DQS, операции регенерации. Это позволяет читать данные из памяти и записывать данные в нее со скоростью до 850 Мб/с одновременно (либо до 1,68 Гб/с в одну сторону) при тактовой частоте 108 МГц при ширине данных 64 бита [7].

Структурное решение внутренних программных модулей FPGA

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

• контроллер взаимодействия с ПК;

• контроллер взаимодействие с памятью;

• модуль обработки данных.

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

1. Контроллер шины - выполняет задачу передачи блока данных размером 4Кб (максимальный размер блока данных для стандартов PCI). Этот модуль целиком привязан к конкретной шине и не является переиспользуемым.

2. Контроллер Scatter/Gather Lists - взаимодействует с контроллером шины и контроллером памяти. Является независимым от типа используемой шины, так как оперирует общими принципами организации списков данных.

3. Контроллер памяти - обеспечивает работу с памятью, реализуя все особенности конкретной памяти. Полностью зависим от используемой памяти.

4. Контроллер внутреннего пространства - обеспечивает управление работой всего дизайна. Внутри реализует пространство управления подобное Configuration Space в PCI. Взаимодействует с контроллером шины, управляет контроллером Scatter/Gather Lists и внутренним модулем обработки данных.

5. Модуль обработки данных. В нем происходит реализация всех реализуемых алгоритмов обработки данных.

В качестве примера ниже приведено внутреннее структурное решение программных модулей для SLSP-2 (рис. 4).

Рис. 4. Общая структура модуля SLSP-2

Оценка производительности FPGA

Производительность кристаллов FPGA определяется количеством примитивов, имеющихся на кристалле (вентиль или Slice), а также частотой их работы.

Для примера рассмотрим кристалл Xilinx семейства Virtex2 xc2v3000, имеющим 3 млн логических вентилей и 96 блоков однотактовых умножителей двух 18-битных чисел. На таком количестве вентилей можно реализовать 36 умножителей с плавающей точкой для данных типа float (32 бита) и 96 целочисленных умножителей на встроенных блоках умножителей. Реальная частота работы этого кристалла с учетом разводки составляет 200 МГц. Таким об-

разом, максимальная производительность составляет 6,4 х 109 умножений с плавающей точкой (FLOP - floating point operation) плюс 19,2 х 109 целочисленных умножений (IPS -instruction per second).

В рамках работы были реализованы некоторые известные алгоритмы для обработки последовательности изображений, получаемых при съемке из космоса поверхности Земли. Обработка состоит из трех этапов (рис. 5).

1. Производится внутрикадровая обработка изображения из текущего кадра (ВКО1), заключающаяся в фильтрации изображения, компенсации фона и выявлении экстремумов, создается список интересующих объектов.

2. Выявляется зависимость между изображениями из текущего и предыдущего кадров (МКО) - производится компенсация целочисленного сдвига изображений и субпиксельных сдвигов фрагментов изображений.

3. Для изображения со сместившимися объектами производится внутрикадровая обработка (ВКО2), строится список сместившихся объектов.

Рис. 5. Блок-схема алгоритма обработки последовательности изображений

Подробное описание алгоритмов и их реализации на базе ПЛИС приведено в трудах конференции «Pattern Recognition and Image Analysis» и «Multi-Conference AUTOMATION, CONTROL, AND APPLICATIONS (ACIT-ACA)» [8; 9].

В результате тестирования реализованных алгоритмов показано, что время обработки одинаковых последовательностей изображений на базе SLSP-2 примерно в 50 раз меньше по сравнению с реализацией на базе сигнального процессора ADSP 21060.

Заключение

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

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

• бортовой спецвычислитель для летательных аппаратов;

• решение задач обработки телевизионных изображений для телевидения высокой четкости (HDTV);

• решение задач математического моделирования с большими потоками данных;

• автоматизация физических экспериментов.

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

1. Gokhale M. et al. Stream oriented FPGA computing in Streams-C. // 8th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, April 2000.

2. Li Y., Callahan T., Darnell E., Harr R., Kurkure U., and Stockwood J. Hardwaresoftware co-design of embedded reconfigurable architectures // Proc. 37th Design Automation Conference, 1999.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Kevin Morris Cray Goes FPGA. Algorithm Acceleration in the New XD1. FPGA and Programmable Logic Journal. April 5, 2005.

4. Разработка систем цифровой обработки сигналов на базе ПЛИС. М.: Горячая линия -Телеком, 2007.

5. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL. М.: Горячая линия - Телеком, 2005.

6. Lysakov K. F., Shadrin M. Y. SLSP - Special Processor for Image and Video Processing // Proceedings of the IEEE International Siberian Conference On CONTROL AND COMMUNICATIONS SIBCON-2007. Russia, Tomsk, April 20-21, 2007. P. 140-144.

7. Gromilin G. I., Devjataikin A. M., Lysakov K. F., Shadrin M. J. Hi-performance co-processor based on FPGA // Proceedings of the Second IASTED International Multi-Conference AUTOMATION, CONTROL, AND APPLICATIONS (ACIT-ACA). Russia, Novosibirsk, June 20-24, 2005. P.89-92.

8. Gromilin G. I., Devjataikin A. M., Lysakov K. F., Shadrin M. J. Real time FPGA realization of a small-size object searching algorithm. 7-th International Conference on Pattern Recognition and Image Analysis: New Information technologies, Conference proceedings. Russia, St. Petersburg, 2004. P. 497-498.

9. Devjataikin A. M., Lysakov K. F., Shadrin M. J. FPGA implementation of sub-pixel images matching algorithm // Proceedings of the Second IASTED International Multi-Conference AUTOMATION, CONTROL, AND APPLICATIONS (ACIT-ACA). Russia, Novosibirsk, June 20-24, 2005. P.93-97.

Материал поступил в редколлегию 31.03.2009

K F. Lysakov, M. Yu. Shadrin

SPECIFIC OF USING FPGA BASED DEVICES FOR SEQUENCE OF IMAGE PROCESSING

The article presents special approaches for processing sequence of images using FPGA. Several recommendations on schematics of processing blocks, realization of control modules and internal architecture of functional blocks are proposed using specifics of task.

Keywords: FPGA, design, architecture, dataflow, image processing.

i Надоели баннеры? Вы всегда можете отключить рекламу.