В этом примере показано, как работать с многокомпонентным мультипикселем пиксельным потоком. Многокомпонентная мультипикселем потоковая передача включает обработку в режиме реального времени видеопотоков цвета или высокой частоты кадров с высоким разрешением.
Чтобы продемонстрировать работу с таким видеопотоком, этот пример реализует известный метод последующей обработки эффекта цветка изображений. Эффект цветка вводит или улучшает свечение источников света в изображении.
Каждый пиксель пиксельного потока или высокой частоты кадров с высоким разрешением моделируется как NumPixel-by-NumComponent матрица. Матричные типы данных поддерживаются для генерации HDL-кода в рамках проекта, но не для портов верхнего уровня susbsystem. В этом случае поток входного пикселя разделен в три 4 1 векторы во входе DUT, и затем повторно объединен при выходе в 4 3 матрица для блока Pixels To Frame.
Модель в качестве примера выполняет эти три шага, чтобы добавить эффект цветка во входное изображение.
Подсистемы MultiPixelColorSpaceConverter и BrightSpotFilter находят яркие пятна в изображении интенсивности путем проверки пиксельных значений по порогу.
15x15 подсистема Размытости распространяет яркие пятна путем применения Гауссова фильтра.
Подсистема BlendBloom добавляет Улучшенные гауссовым образом яркие пятна назад в оригинальное изображение.
Модель использует В Каждом подсистемы для повторных операций параллельно, который приводит к более чистой модели и сокращает количество файлов HDL, которые сгенерированы.
Блоки обработки окружения Vision HDL Toolbox™ могут работать с векторными входными параметрами, но сделать не входные параметры таблицы поддержки. Буфер линии, используемый в блоках, возвращает NumPixels-by-KernelHeight матрицу. Используя многокомпонентные входные параметры привел бы к NumPixels KernelHeight выходной матрицей NumComponents, однако, 3-D матрицы не поддержаны для генерации HDL-кода. Для Каждого подсистемы поддерживают генерацию HDL-кода со скалярными и векторными входными параметрами, но не с матричными входными параметрами. Чтобы работать вокруг этой проблемы, модель сглаживает NumPixels-by-NumComponents матрицу в NumPixels*NumComponents-by-1 вектор, и затем использует настройки раздела на В Каждом подсистемы, чтобы повторить операцию через каждый срез вектора.
Модель кодирует пиксельный вектор двумя различными способами. Первое кодирование представляет пиксели как четыре значения RGB, конкатенированные вместе в 12 1 вектор, как показано в этой схеме. Модель устанавливает параметр ширины Раздела подсистемы MultiPixelColorSpaceConverter к 3
. Подсистема реализует четыре операции RGB к интенсивности параллельно.
Второе пиксельное кодирование конкатенирует четыре R, G, или пиксели B вместе, как показано в этой схеме. 15x15 подсистема Размытости принимает 12 1 входной вектор. Модель устанавливает параметр ширины Раздела 15x15 подсистема Размытости к 4
, таким образом, это работает с три 4 1 мультипиксельные векторы. Подсистема реализует три блока Фильтра Изображений параллельно. Каждый фильтр работает с 4 15 окно и возвращается 4 1 вектор.
Симуляция модели отображает эти изображения ввода и вывода. Эффект цветка заставляет освещенные области сцены выглядеть более яркими и показывает эффект ореола.
Эта таблица показывает результаты синтеза HDL-кода, сгенерированного от подсистемы DUT и синтезируемого для платы Xilinx™ Zynq™ ZC706. Поскольку ни один из ресурсов не превышает 25% их соответствующей категории, проект имеет относительно маленькое место.
T = 4x2 table Resource Usage _________ _____ DSP48 84 Flip Flop 62724 LUT 36710 BRAM 132
Frame To Pixels | Pixels To Frame