Этот пример показывает, как разработать предназначенный на оборудование фильтр изображений с помощью блоков Vision HDL Toolbox™. Это также использует Систему Компьютерного зрения блоки Toolbox™.
Ключевые возможности модели для предназначенной на оборудование обработки видеоданных в Simulink®:
Потоковая передача пиксельного интерфейса: Блоки в Vision HDL Toolbox используют пиксельный интерфейс потоковой передачи. Последовательная обработка эффективна для аппаратных проектов, потому что меньше памяти требуется, чтобы хранить пиксельные данные для вычисления. Последовательный интерфейс позволяет блоку действовать независимо от размера изображения и формата и делает проект более эластичным к ошибкам синхронизации видео. Для получения дополнительной информации смотрите Пиксельный Интерфейс Потоковой передачи.
Подсистема предназначалась для генерации HDL-кода: Разработайте благоприятную для оборудования модель обработки пиксельного потокового видео путем выбора блоков от библиотек Vision HDL Toolbox. Часть проекта, предназначенного для генерации HDL-кода, должна быть в отдельной подсистеме.
Преобразование в основанное на кадре видео: Для верификации можно отобразить основанное на кадре видео или сравнить результат аппаратно-совместимого проекта с выводом поведенческой модели Simulink. Vision HDL Toolbox обеспечивает блок, который позволяет вам десериализовывать вывод своего проекта.
Этот пример использует шаблон модели Simulink, чтобы начать.
Нажмите кнопку Simulink или введите simulink в командной строке MATLAB®. На начальной странице Simulink найдите раздел Vision HDL Toolbox и кликните по шаблону Basic Model.
Шаблон создает новую модель, которую можно настроить. Сохраните модель с новым именем.
Шаблон включает блок Video Source, который содержит видео выборку на 240 пунктов. Каждый пиксель является скаляром uint8 интенсивность представления значения. Лучшая практика состоит в том, чтобы разработать и отладить ваш проект с помощью маленького формата кадра для быстрых циклов отладки перед увеличением масштаба к размерам увеличенного изображения. Можно использовать этот источник на 240 пунктов, чтобы отладить проект, предназначенный для 1080p видео.
Блок Frame To Pixels преобразовывает структурированное видео в поток пикселей и управляющих структур. Этот блок обеспечивает вход для подсистемы, предназначенной для генерации HDL-кода, но это самостоятельно не поддерживает генерацию HDL-кода.
Шаблон включает экземпляр этого блока. Чтобы моделировать со стандартным форматом видео, выберите предопределенный дополнительный формат видео, чтобы совпадать с вашим входным источником. Чтобы моделировать с изображением пользовательского размера, выберите размерности неактивных областей, которыми вы хотите окружить изображение. Этот пример использует стандартный формат видео.
Откройте диалоговое окно блока Frame To Pixels, чтобы просмотреть настройки. Исходное видео находится в полутоновом формате на 240 пунктов. Скалярное целое число представляет значение интенсивности каждого пикселя. Чтобы совпадать с входным видео, определите Номер компонентов к 1 и Формата видео к 240 пунктам.
Примечание: шаг расчета источника видеосигнала должен совпадать с общим количеством пикселей в формате кадра, который вы выбираете в блоке Frame To Pixels. Установите шаг расчета на Общие пиксели на строку × Общие строки. В коллбэке InitFcn шаблон создает переменную рабочей области, totalPixels, для шага расчета кадра на 240 пунктов.
Разработайте подсистему, предназначенную для генерации HDL-кода путем изменения подсистемы Алгоритма HDL. Порты ввода и вывода подсистемы используют формат пикселя потоковой передачи, описанный в предыдущем разделе. Откройте подсистему Алгоритма HDL, чтобы отредактировать его.
В Браузере Библиотеки Simulink нажмите Vision HDL Toolbox. Можно также открыть эту библиотеку путем ввода visionhdllib
в подсказке команды MATLAB.
Выберите блок обработки изображений. Этот пример использует блок Image Filter от подбиблиотеки Filtering. Можно также получить доступ к этой библиотеке путем ввода visionhdlfilter
в подсказке команды MATLAB. Добавьте блок Image Filter в подсистему Алгоритма HDL и соедините порты.
Можно визуально или математически сравнить предназначенный на HDL проект с поведенческой моделью, чтобы проверить аппаратный проект и ошибку квантования монитора. Шаблон включает подсистему Поведенческой модели с основанными на кадре портами ввода и вывода с этой целью. Дважды кликните на Поведенческой модели, чтобы отредактировать его.
Для этого примера добавьте 2D блок FIR Filter от Computer Vision System Toolbox. Этот блок фильтрует целый кадр целиком.
Откройте 2D блок FIR Filter и внесите следующие изменения, чтобы совпадать с настройкой блока Image Filter от Vision HDL Toolbox:
Установите Коэффициенты на ones(4,4)/16
реализовывать 4×4 операция размытости.
Установите Дополнительные опции на Symmetric
.
На вкладке Data Types, под Типом данных, Коэффициентами набора к fixdt(0,2,4)
.
Используйте блок Pixels To Frame, включенный в шаблон, чтобы десериализовать данные для отображения.
Откройте блок Pixels To Frame. Установите свойства размера изображения совпадать с входным видео и настройками, которые вы задали в блоке Frame To Pixels. Для этого примера Номер компонентов определяется к 1, и Формат видео установлен в 240 пунктов. Блок преобразовывает поток выходных пикселей и управляющих сигналов назад к матрице, представляющей кадр.
Используйте блоки Video Viewer, включенные в шаблон, чтобы сравнить выходные кадры визуально. Сигнал validOut
блока Pixels To Frame соединяется с портом Enable
средства просмотра. Запустите модель, чтобы отобразить результаты.
Если ваш проект работает в симуляции, можно использовать HDL Coder™, чтобы сгенерировать HDL-код для подсистемы Алгоритма HDL. Смотрите Генерируют HDL-код От Simulink.