В этом примере показано, как разработать алгоритм Toolbox™ Vision HDL для интеграции в существующую систему, использующую сигнальный протокол Camera Link ®.
В блоках панели инструментов Vision HDL используется пользовательский формат потокового видео. При интеграции алгоритмов Vision HDL Toolbox в существующий код проектирования и верификации, который работает в другом формате потокового видео, необходимо преобразовать управляющие сигналы на границах. В примере используются пользовательские системные объекты для преобразования управляющих сигналов между форматом Camera Link и панелью инструментов Vision HDL pixelcontrol формат. Модель импортирует системные объекты в Simulink ® с помощью системного блока MATLAB ®.
Эта модель импортирует пиксельные данные и управляющие сигналы в формате Camera Link из рабочего пространства MATLAB. CameraLink_InvertImage подсистема предназначена для интеграции в существующие системы, использующие протокол Camera Link. CameraLink_InvertImage подсистема преобразует управляющие сигналы из формата Camera Link в pixelcontrol , изменяет пиксельные данные с помощью блока «Таблица поиска», а затем преобразует управляющие сигналы обратно в формат «Связь с камерой». Модель экспортирует результирующие данные и управляющие сигналы в переменные рабочей области.

CameraLink2VHT и VHT2CameraLink блоки - это системные блоки MATLAB, указывающие на пользовательские системные объекты. Объекты преобразуются между сигналами Camera Link и pixelcontrol формат, используемый блоками и объектами панели инструментов Vision HDL.
В середине подсистемы можно поместить любую комбинацию блоков панели инструментов Vision HDL. В этом примере используется инверсная таблица подстановки.
Можно создать ЛПВП из этой подсистемы.

Линия связи с камерой состоит из трех управляющих сигналов: F указывает действительный кадр, L - каждую действительную строку, D - каждый действительный пиксель. Для этого примера входные данные и управляющие сигналы определяются в InitFcn обратный вызов. Векторы описывают этот кадр 2 на 3, 8-битных оттенков серого. На рисунке активная область изображения находится в пунктирном прямоугольнике, и неактивные пиксели окружают его. Пикселы помечаются значениями в градациях серого.
![]()
FIn = logical([0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0]); LIn = logical([0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0]); DIn = logical([0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0]); pixIn = uint8([0,0,0,0,0,0,0,30,60,90,0,0,0,120,150,180,0,0,0,0,0,0,0,0]);
Создайте пользовательский объект System для преобразования сигналов связи с камерой в формат панели инструментов Vision HDL. В этом примере используется объект, разработанный в примере преобразования сигналов управления камерой в формат pixelcontrol.
Объект преобразует управляющие сигналы, а затем создает структуру, содержащую новые управляющие сигналы. При включении объекта в блок MATLAB System блок преобразует эту структуру в формат шины, ожидаемый блоками Vision HDL Toolbox. Полный код объекта System см. в разделе CAMERALINKtoVHT_Adapter.m.
Создайте блок MATLAB System и укажите его на объект System.

Выберите блоки панели инструментов Vision HDL для обработки видеопотока. Эти блоки принимают и возвращают значение скалярного пикселя и pixelcontrol шину, которая содержит соответствующие управляющие сигналы. Этот стандартный интерфейс упрощает соединение блоков из библиотек инструментов Vision HDL Toolbox.
В этом примере блок «Таблица подстановки» используется для инвертирования каждого пикселя в тестовом изображении. Установите данные таблицы на обратную сторону uint8 цветовое пространство оттенков серого.

Создайте пользовательский объект System для преобразования сигналов панели инструментов Vision HDL в формат Camera Link. В этом примере используется объект, разработанный в примере преобразования сигналов управления камерой в формат pixelcontrol.
Объект принимает структуру управляющих сигналов. При включении объекта в блок MATLAB System блок преобразует входные данные. pixelcontrol шина в эту конструкцию. Затем он вычисляет эквивалентные сигналы Camera Link. Полный код объекта System см. в разделе VHTtoCAMERALINKAdapter.m.
Создайте второй блок MATLAB System и укажите его на объект System.
Запустите моделирование. Результирующие векторы представляют этот инвертированный кадр 2 на 3 8-битных оттенков серого. На рисунке активная область изображения находится в пунктирном прямоугольнике, и неактивные пиксели окружают его. Пикселы помечаются значениями в градациях серого.

При наличии лицензии DSP System Toolbox™ можно просматривать сигналы с течением времени с помощью логического анализатора. Выберите все сигналы в CameraLink_InvertImage для потоковой передачи и откройте Logic Analyzer. Эта форма сигнала показывает входные и выходные управляющие сигналы канала камеры и значения пикселей в верхней части, а также входные и выходные данные блока таблицы поиска в pixelcontrol формат внизу. pixelcontrol шины расширяются для наблюдения за булевыми управляющими сигналами.

Дополнительные сведения о наблюдении сигналов в Simulink см. в разделе Проверка и измерение переходов с помощью логического анализатора (DSP System Toolbox).
Для создания кода HDL необходимо иметь лицензию HDL Coder™.
Для создания кода HDL используется следующая команда.
makehdl('CameraLinkAdapterEx/CameraLink_InvertImage')Теперь эти файлы HDL можно моделировать и синтезировать вместе с существующей системой Camera Link.