Буферизуйте пульсирующие данные Используя пиксельный поток блок FIFO

Этот пример показывает, как взаимодействовать через интерфейс с пульсирующими пиксельными потоками, такими как те от DMA и источников Camera Link®, с помощью блока Pixel Stream FIFO.

Обзор

Систему DMACameraSourceHDL.slx показывают ниже.

Существуют входные потоки на два пикселя - источник DMA и источник Ссылки Камеры. Входные данные для обоих источников загружаются из файла .mat в коллбэке InitFcn. Исходные модели DMA поток, состоящий из нескольких несмежных участков, данных, прибывающих из памяти вне кристалла. Пиксели прибывают в кратковременные вспышки случайной длины со случайными разрывами между пакетами. Это может произойти, когда существует конкуренция на источнике DMA и таким образом, не возможно передать пиксели потоком постоянно из памяти вне кристалла. Исходные модели Ссылки Камеры случай, когда камера передает изображение потоком более низкого разрешения, чем максимум, разрешенный пиксельными часами, и поэтому оставит регулярные разрывы между допустимыми пикселями. Этот интервал допускает потоковую передачу нескольких изображений разрешения с помощью общих часов через стробирование validIn.

Исходные модели Ссылки Камеры входящий видеопоток от датчика. Исходные модели DMA видеопоток от кадрового буфера, в котором предыдущие данные о кадре были обработаны в порядке произвести альфа-канал, допуская смешивание предыдущих данных о кадре с текущим потоком.

Пиксельную Потоковую подсистему Наложения показывают в схеме ниже. Можно сгенерировать HDL-код от этой подсистемы.

Существует четыре основных этапа обработки в модели - буферизация входных данных, чтобы удалить пульсирующий, обнаружение ребра и наложение на потоке Ссылки Камеры, выравнивание пиксельных потоков и альфа-смешивание потока DMA на поток Ссылки Камеры.

Пиксельная потоковая буферизация

Пиксельные Потоковые блоки FIFO буферизуют входные данные, когда это передается потоком в модель. Пиксельный Поток FIFO является подсистемой маскированной. Изучая Пиксельный Поток FIFO, мы видим, что это состоит из Контроллера памяти, Чтения и счетчиков Записи и двух RAM. Один RAM хранит входящий пиксельный поток и другие хранилища входящий поток управляющего сигнала. Если сплошная линия была буферизована в RAM, строка выводится постоянно, удаляя любое пульсирующее поведение, замеченное во входе.

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

Обнаружение ребра и наложение на потоке ссылки камеры

Чтобы далее дифференцировать пиксельные потоки, поток Ссылки Камеры имеет раздел обнаружения и наложения ребра. Пиксельный поток сначала предварительно обрабатывается блоком Bilateral Filter. Этот блок сглаживает изображение при сохранении ребер, и таким образом, это - хороший выбор для подавления шумов до обнаружения ребра. Блок Edge Detector обнаруживает ребра с помощью метода Sobel. Ребра затем разбавлены с помощью [2x2] операция эрозии. Разбавленное изображение ребра наложено на исходное изображение Ссылки Камеры.

Пиксельное потоковое выравнивание

Ссылка Камеры и пиксельные потоки DMA должны теперь быть выровнены, чтобы составлять алгоритмическую задержку информационного канала. Выравнивание пиксельных потоков является прямым использованием блока Pixel Stream Aligner.

Альфа-смешивание

Поток входа DMA [1x4] вектор, тогда как вход Camera Link [1x3] вектор. Дополнительный столбец во входе DMA используется, чтобы хранить информацию альфа-канала. Альфа-канал представляет сумму, которой каждый из пикселей из источника DMA должен быть смешан с входящим потоком Ссылки Камеры.

Результаты симуляции

Выходной видеопоток показывает потоковую альфу DMA, смешанную на вход Camera Link. Наложение пурпурного цвета указывает на ребра, обнаруженные во входящем потоке Ссылки Камеры.

Сгенерируйте HDL-код и проверьте его поведение

Проверять и сгенерировать HDL-код сослались в этом примере, у вас должна быть лицензия HDL Coder™.

Чтобы сгенерировать HDL-код, используйте следующую команду:

makehdl('DMACameraSourceHDL/Pixel Stream Overlay');

Чтобы сгенерировать испытательный стенд HDL, используйте следующую команду:

makehdltb('DMACameraSourceHDL/Pixel Stream Overlay');