В этом примере показано, как спроектировать аппаратный целевой фильтр изображений с использованием блоков 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, который содержит выборку видео 240p. Каждый пиксель является скалярным uint8
значение, представляющее интенсивность. Лучшая практика состоит в том, чтобы проектировать и отлаживать ваш проект с помощью небольшого формата кадра для циклов быстрой отладки, прежде чем масштабировать до больших размеров изображения. Вы можете использовать этот источник 240p для отладки проекта, предназначенного для видео 1080p.
Блок Frame To Pixels преобразует кадрированное видео в поток пикселей и структур управления. Этот блок предоставляет входы для подсистемы, предназначенной для генерации HDL-кода, но сам не поддерживает генерацию HDL-кода.
Шаблон включает образец этого блока. Чтобы симулировать со стандартным форматом видео, выберите предопределенный формат заполнения видео, чтобы соответствовать вашему источнику входа. Чтобы моделировать с помощью пользовательского изображения, выберите размерности неактивных областей, которыми вы хотите окружить изображение. В этом руководстве используется стандартный формат видео.
Откройте Систему координат To Pixels диалогового окна блока, чтобы просмотреть настройки. Исходное видео в формате полутонового 240p. Скалярное целое число представляет значение интенсивности каждого пикселя. Чтобы соответствовать входу видео, установите значение Number of компонентов равным 1, а формат Video равным 240p.
Примечание. Шаги расчета источника видео должны совпадать с общим количеством пикселей в формате кадра, выбранной в блоке Системы координат To Pixels. Установите значение шага расчета «Total pixels per line» × «Total line». В InitFcn
коллбэк, шаблон создает переменную рабочей области, totalPixels
для шага расчета системы координат 240p.
Разработайте подсистему, предназначенную для генерации HDL-кода, путем изменения подсистемы HDL-алгоритма. Входные и выходные порты подсистемы используют формат потокового пикселя, описанный в предыдущем разделе. Откройте подсистему Алгоритма HDL, чтобы отредактировать ее.
В браузере библиотеки Simulink нажмите Vision HDL Toolbox. Можно также открыть эту библиотеку, введя visionhdllib
в командной строке MATLAB.
Выберите блок обработки изображений. В этом примере используется блок Image Filter из сублибрария Filtering. Вы также можете получить доступ к этой библиотеке, вводя visionhdlfilter
в командной строке MATLAB. Добавьте блок Image Filter в подсистему HDL Algorithm и соедините порты.
Откройте Image Filter блок и внесите следующие изменения:
Установите коэффициенты Фильтра в ones(4,4)/16
для реализации операции 4 × 4 размытия.
Установите метод заполнения равным Symmetric
.
Установите buffer size Line в степень 2, которая соответствует размеру активной линии самого большого необходимого формата системы координат. Этот параметр не влияет на скорость симуляции, поэтому его не нужно уменьшать при симуляции с небольшим тестовым изображением. Значение по умолчанию 2048 соответствует формату видео 1080p.
На вкладке Типы данных в разделе Тип данных установите значение Коэффициентов fixdt(0,1,4)
.
Можно визуально или математически сравнить HDL-целевой проект с поведенческой моделью, чтобы проверить аппаратную разработку и контролировать ошибку квантования. Шаблон включает подсистему Behavioral Model с основанными на кадрах входными и выходными портами для этой цели. Дважды кликните Поведенческую модель (Behavioral Model), чтобы отредактировать ее.
Для этого руководства добавьте блок 2-D конечная импульсная характеристика (Computer Vision Toolbox) из Computer Vision System Toolbox. Этот блок фильтрует все систему координат сразу.
Откройте блок 2 -D конечной импульсной характеристики и внесите следующие изменения в соответствии с строением блока Image Filter из Vision HDL Toolbox:
Установите коэффициенты в ones(4,4)/16
для реализации операции 4 × 4 размытия.
Установите для опций заполнения значение Symmetric
.
На вкладке Типы данных в разделе Тип данных установите значение Коэффициентов fixdt(0,2,4)
.
Используйте блок Pixels To Frame, включенный в шаблон, чтобы десериализовать данные для отображения.
Откройте блок Pixels To Frame. Установите свойства размерности изображений так, чтобы они совпадали с входом видео и настройками, заданными в блоке Системы координат To Pixels. В данном руководстве для параметра «Количество компонентов» задано значение 1, а для формата «Видео» задано значение 240p. Блок преобразует поток выхода пикселей и управляющих сигналов назад в матрицу, представляющую системе координат.
Используйте блоки Video Viewer, включенные в шаблон, чтобы визуально сравнить выходные системы координат. The validOut
сигнал блока Pixels To Frame соединяется с Enable
порт средства просмотра. Запустите модель, чтобы отобразить результаты.
Когда ваш проект работает в симуляции, вы можете использовать HDL- Coder™ для генерации HDL-кода для подсистемы алгоритма HDL. См. «Генерация HDL-кода из Simulink».