主要内容

在Simulink中设计HDL视频处理算法金宝app

这个例子展示了如何使用Vision HDL Toolbox™块设计一个针对硬件的图像过滤器。它还使用计算机视觉工具箱™块。

Simulink®中针对硬件的视频处理模型的关键特性是:金宝app

  • 流像素接口: Vision HDL工具箱中的块使用流像素接口。串行处理在硬件设计中是有效的,因为存储像素数据所需的内存更少。串行接口允许块操作独立的图像大小和格式,使设计更有弹性的视频计时错误。有关更多信息,请参见流像素接口

  • 面向HDL代码生成的子系统:通过从Vision HDL工具箱库中选择块,设计一个硬件友好的像素流视频处理模型。针对HDL代码生成的设计部分必须在一个单独的子系统中。

  • 转换为基于帧的视频:为了验证,您可以显示基于帧的视频,或者将硬件兼容设计的结果与Simulink行为模型的输出进行比较。金宝appVision HDL Toolbox提供了一个块,允许您对设计的输出进行反序列化。

开放模式模板

本教程使用一个Simulink模型模板来入金宝app门。

单击Simulink金宝app按钮,或输入金宝app在MATLAB®命令提示符。在Simuli金宝appnk开始页面,找到Vision HDL工具箱部分,并单击基本模型模板。

模板创建了一个可以自定义的新模型。使用新名称保存模型。

导入数据

该模板包括包含240p视频样本的视频源块。每个像素都是一个标量uint8代表强度值。最佳实践是,在扩展到更大的图像尺寸之前,使用较小的帧大小来设计和调试设计,以便快速调试周期。您可以使用这个240p源调试针对1080p视频的设计。

序列化数据

帧到像素块将帧视频转换为像素流和控制结构。此块为目标为HDL代码生成的子系统提供输入,但它本身不支持HDL代码生成。金宝app

模板包含了这个块的一个实例。要使用标准视频格式进行模拟,请选择预定义的视频填充格式来匹配输入源。要使用自定义大小的图像进行模拟,请选择您想要环绕该图像的非活动区域的尺寸。本教程使用标准的视频格式。

打开“帧到像素”对话框查看设置。源视频为240p灰度格式。一个标量整数表示每个像素的强度值。要匹配输入的视频,设置数量的组件到1,和视频格式240 p。

注意:视频源的采样时间必须与您在“帧到像素”块中选择的帧大小中的总像素数匹配。将示例时间设置为每行总像素×共线.在InitFcn回调时,模板创建一个工作区变量,totalPixels,表示240p帧的采样时间。

设计HDL-Compatible模型

通过修改HDL算法子系统,设计一个针对HDL代码生成的子系统。子系统的输入和输出端口使用上一节描述的流式像素格式。打开HDL算法子系统进行编辑。

在Simuli金宝appnk Library Browser中,单击Vision HDL Toolbox。您还可以通过键入以下命令打开此库visionhdllib在MATLAB命令提示符处。

选择图像处理块。本示例使用图像滤波从Filtering子库中删除。您也可以通过键入来访问这个库visionhdlfilter在MATLAB命令提示符处。将图像过滤模块添加到HDL算法子系统中,并连接端口。

打开图像过滤块,做以下更改:

  • 滤波器系数(4, 4) / 16实现4×4模糊操作。

  • 填充方法对称的

  • 线缓冲区大小为2的幂,以适应所需的最大帧格式的活动行大小。该参数不影响仿真速度,所以用小的测试图像进行仿真时,不需要降低该参数。默认的2048支持1080p的视频格式。

  • 数据类型选项卡,在数据类型,设置系数fixdt(0、1、4)

设计行为模型

您可以在视觉上或数学上将以hdl为目标的设计与行为模型进行比较,以验证硬件设计并监控量化错误。该模板包含一个行为模型子系统,该子系统具有基于框架的输入和输出端口。双击行为模型以编辑它。

对于本教程,添加二维滤波器(计算机视觉工具箱)阻止计算机视觉系统工具箱。这个块一次过滤整个帧。

打开2-D FIR Filter块,并进行以下更改,以匹配Vision HDL工具箱中的Image Filter块的配置:

  • 系数(4, 4) / 16实现4×4模糊操作。

  • 填充选项对称的

  • 数据类型选项卡,在数据类型,设置系数fixdt(0、2、4)

反序列化过滤像素流

使用模板中包含的“像素到帧”块对要显示的数据进行反序列化。

打开像素到帧块。设置图像维度属性以匹配输入视频和您在“帧到像素”块中指定的设置。在本教程中数量的组件设置为1,视频格式设置为240p。该块将输出象素流和控制信号转换回表示帧的矩阵。

展示结果并与行为模型进行比较

使用模板中包含的Video Viewer块直观地比较输出帧。的validOut“像素到帧”块的信号连接到启用观众的港口。运行模型以显示结果。

生成HDL代码

一旦您的设计在模拟中工作,您就可以使用HDL Coder™为HDL算法子系统生成HDL代码。看到从Simulink生成HDL代码金宝app

相关的例子

更多关于