Передающий потоком пиксель проект в MATLAB

В этом примере показано, как спроектировать алгоритмы обработки видеоданных пиксельного потока с помощью Vision HDL Toolbox™ возражает в среде MATLAB® и сгенерировать HDL-код из проекта.

Этот пример также тестирует проект с помощью маленького изображения миниатюр, чтобы уменьшать время симуляции. Симулировать увеличенные изображения, такие как формат 1080p видео, MATLAB Coder™ использования, чтобы ускорить симуляцию. Смотрите Ускоряют Передающий потоком пиксель Проект Используя MATLAB Coder.

Испытательный стенд

В испытательном стенде PixelStreamingDesignHDLTestBench.m, объект videoIn читает каждую систему координат из источника видеосигнала, и объект счетчика уменьшает эту систему координат от 240 пунктов до размера миниатюры ради скорости симуляции. Это изображение миниатюр передается объекту frm2pix, который преобразует систему координат полного образа в поток пикселей и структур управления. Функциональный PixelStreamingDesignHDLDesign.m затем называется, чтобы обработать один пиксель (и его связанная структура управления) за один раз. После того, как мы обработаем целый пиксельный поток и соберем поток вывода, pix2frm объект преобразует поток вывода в видео полной системы координат. Отображения объекта средства просмотра выходные и оригинальные изображения рядом друг с другом.

Рабочий процесс выше реализован в следующих линиях PixelStreamingDesignHDLTestBench.m.

     ...
     for f = 1:numFrm       
         frmFull = step(videoIn);        % Get a new frame  
         frmIn = step(scaler,frmFull);   % Reduce the frame size
         [pixInVec,ctrlInVec] = step(frm2pix,frmIn);                   
         for p = 1:numPixPerFrm    
             [pixOutVec(p),ctrlOutVec(p)] = PixelStreamingDesignHDLDesign(pixInVec(p),ctrlInVec(p));                                              
         end         
         frmOut = step(pix2frm,pixOutVec,ctrlOutVec);
         step(viewer,[frmIn frmOut]);
     end
     ...

И frm2pix и pix2frm используются, чтобы преобразовать между областями пиксельного потока и полной системой координат. Внутренний цикл for выполняет обработку пиксельного потока. Остальная часть испытательного стенда выполняет обработку полной системы координат (i.e., videoIn, счетчик и средство просмотра).

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

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

Функция, определяемая в PixelStreamingDesignHDLDesign.m принимает пиксельный поток и пять управляющих сигналов, и возвращает модифицированный пиксельный поток и управляющие сигналы. Для получения дополнительной информации о пиксельном протоколе потоковой передачи, используемом Системными объектами от Vision HDL Toolbox, смотрите Пиксельный Интерфейс Потоковой передачи.

В этом примере функция содержит Гамма Системный объект Корректора.

Особым вниманием этого примера является рабочий процесс, не сам проект алгоритма. Поэтому код проекта довольно прост. Если вы знакомы с рабочим процессом, это прямо, чтобы реализовать усовершенствованные видео алгоритмы путем использования в своих интересах функциональности, обеспеченной Системными объектами от Vision HDL Toolbox.

Симулируйте проект

Симулируйте проект с испытательным стендом до генерации HDL-кода, чтобы убедиться, что нет никаких ошибок периода выполнения.

PixelStreamingDesignHDLTestBench;
10 frames have been processed in 36.31 seconds.
Average frame rate is 0.28 frames/second.

Средство просмотра отображает исходное видео слева и выход справа. Можно ясно видеть, что гамма операция приводит к более яркому изображению.

Введите следующую команду, чтобы создать новый проект HDL Coder™,

coder -hdlcoder -new PixelStreamingDesignProject

Затем добавьте файл PixelStreamingDesignHDLDesign.m к проекту как функция MATLAB и PixelStreamingDesignHDLTestBench.m как испытательный стенд MATLAB.

Обратитесь к Начало работы с MATLAB к Рабочему процессу HDL (HDL Coder) для примера при создании и заполнении проектов HDL Coder MATLAB.

Запустите Советника по вопросам Рабочего процесса. В Советнике по вопросам Рабочего процесса щелкните правой кнопкой по шагу 'Code Generation'. Выберите опцию, 'Запущенную к выбранной задаче', чтобы запустить все шаги с начала через генерацию HDL-кода.

Исследуйте сгенерированный HDL-код путем щелчка по ссылкам в логарифмическом окне.