Спроектируйте алгоритмы обработки видеоданных для HDL в Simulink

В этом примере показано, как спроектировать предназначенный на оборудование фильтр изображений с помощью блоков Vision HDL Toolbox™. Это также использует блоки Computer Vision 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-кода.

Шаблон включает экземпляр этого блока. Чтобы симулировать со стандартным форматом видео, выберите предопределенный дополнительный формат видео, чтобы совпадать с вашим входным источником. Чтобы симулировать с изображением пользовательского размера, выберите размерности неактивных областей, которыми вы хотите окружить изображение. Этот пример использует стандартный формат видео.

Откройте Систему координат Для Пиксельного диалогового окна блока, чтобы просмотреть настройки. Исходное видео находится в полутоновом формате на 240 пунктов. Скалярное целое число представляет значение интенсивности каждого пикселя. Чтобы совпадать с входным видео, определите Номер компонентов к 1 и Формата видео к 240 пунктам.

Примечание: шаг расчета источника видеосигнала должен совпадать с общим количеством пикселей в формате кадра, который вы выбираете в блоке Frame To Pixels. Установите шаг расчета на Общие пиксели на строку × Общие линии. В InitFcn коллбэк, шаблон создает переменную рабочей области, totalPixels, для шага расчета системы координат на 240 пунктов.

Спроектируйте совместимую с HDL модель

Спроектируйте подсистему, предназначенную для генерации HDL-кода путем изменения подсистемы Алгоритма HDL. Порты ввода и вывода подсистемы используют формат пикселя потоковой передачи, описанный в предыдущем разделе. Откройте подсистему Алгоритма HDL, чтобы отредактировать его.

В Браузере Библиотеки Simulink нажмите Vision HDL Toolbox. Можно также открыть эту библиотеку путем ввода visionhdllib в командной строке MATLAB.

Выберите блок обработки изображений. Этот пример использует блок Image Filter из подбиблиотеки Filtering. Можно также получить доступ к этой библиотеке путем ввода visionhdlfilter в командной строке MATLAB. Добавьте блок Image Filter в подсистему Алгоритма HDL и соедините порты.

Открытый блок Image Filter и вносит следующие изменения:

  • Установите коэффициенты Фильтра на ones(4,4)/16 чтобы реализовать 4×4 размывают операцию.

  • Установите Дополнительный метод на Symmetric.

  • Установите buffer size Линии на степень 2, который вмещает активный размер линии самого большого необходимого формата системы координат. Этот параметр не влияет на скорость симуляции, таким образом, это не должно уменьшаться при симуляции с маленьким тестовым изображением. Значение по умолчанию, 2048, вмещает формат 1080p видео.

  • На вкладке Data Types, под Типом данных, Коэффициентами набора к fixdt(0,1,4).

Спроектируйте поведенческую модель

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

Для этого примера добавьте 2D блок FIR Filter (Computer Vision Toolbox) из 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-код

Если ваш проект работает в симуляции, можно использовать HDL Coder™, чтобы сгенерировать HDL-код для подсистемы Алгоритма HDL. Смотрите Генерируют HDL-код от Simulink.

Связанные примеры

Больше о