В этом примере показано, как работать с многокомпонентным мультипикселем пиксельным потоком. Многокомпонентная мультипикселем потоковая передача включает обработку в режиме реального времени видеопотоков цвета или высокой частоты кадров с высоким разрешением.
Чтобы продемонстрировать работу с таким видеопотоком, этот пример реализует известный метод последующей обработки эффекта цветка изображений. Эффект цветка вводит или улучшает свечение источников света в изображении.
Каждый пиксель пиксельного потока или высокой частоты кадров с высоким разрешением моделируется как NumPixel-by-NumComponent матрица. Матричные типы данных поддерживаются для генерации HDL-кода в рамках проекта, но не для портов подсистемы верхнего уровня. В этом случае поток входного пикселя разделен в три 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