扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章将为大家详细讲解有关如何使用Simulink快速搭建视频处理硬件加速仿真平台,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
成都创新互联公司是一家专业从事做网站、成都网站制作、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联公司依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!
正文:
首先我们新建一个Simulink模型,并且按照上一讲所讲到的设置配置完成。
然后在空白处双击,输入并添加以下模块:
Image From File
Frame To Pixels
Pixels to Frame
Video Reviewer
Embedded Subsystem
将Video Reviewer放入Enabled Subsystem中,如下图
然后按照下图连接所有模块。此处每个模块的输入都包含两个:pixel和ctrl。Pixel表示对应的像素值,ctrl信号会indicate行开始和结束,列开始和结束,以及valid信号。不了解的同学可以参考Mathwork关于视频接口控制总线的说明https://www.mathworks.com/help/visionhdl/ug/pixelcontrol-bus.html。
之后我们需要设置Image From File模块,双击它。如下图设置File Name,Sample time。
下面设置Frame To Pixels和Pixels To Frame模块,由于我们使用的图片格式是RGB240p,所以我们在双击模块之后弹出的配置窗口里选择Video Format为240p,RGB有3个通道,所以Number of components填3。Pixels To Frame同理。对于视频格式不太了解的同学,我建议阅读一下Matlab的Frame To Pixels文档的Video format部分,链接如下
https://www.mathworks.com/help/visionhdl/ref/frametopixels.html
接下来我们设置仿真参数,在空白处单击右键,选择Model Properties
然后我们在Callbacks中的InitFcn(初始化函数)填写以下代码,这样我们只要改变VideoFormat的格式就可以自动获取图像长宽等参数。
完成之后我们在Simulink Model的配置栏设置仿真时间为totalPixels(也就是上一步中配置的),仿真模式选择为Accelerator模式。
至此,我们可以测试一下仿真通路了,保存之后使用ctrl+D来验证模型完整性。如果没有报错即可点击开始按钮,开始仿真。如果不出意外,我们将会看到以下图片
既然视频通路搭建成功,我们就可以开始添加自己的RGBGREY模块了。
熟悉数字图像处理的同学一定知道,RGB图像转换成灰度图像的公式如下
GREY=0.299*R+0.587*G+0.114*B。因此我们搭建转换模块如下
Delay模块功能相当于寄存器模块,RGB信号通过pixelIn输入,通过乘法器与对应的常数相乘,并且使用Sum of Element模块求和,后面的Data Type Conversion模块截取了小数点之前的8位,也就是转换成uint8的类型。Control Bus也要有相应的延迟,以保证时序不变。(关于为什么使用2个寄存器延迟,以及乘法器的替代,将会在以后提到。)我们将这部分模块封装在一个subsystem中(选中想要封装的模块并点击右键,选中Create Subsystem from Selection)。至此,我们的算法搭建已经完成,如下图。由于灰度图像是单通道的,别忘记将Pixel To Frame中的通道数改为1。
开始仿真,Video Reviewer会显示以下图像,说明我们的转换算法验证成功。
说明:1. 细心的同学可能会发现,在实现RGBGREY算法,双击添加模块时,所有的模块都出自HDL Coder Toolbox,大家可以去官网查看更多实例以及熟悉支持功能。2.MathWorks提供了一套对应于上面模型的硬件框架来使用户可以快速的搭建算法验证测试平台,主要来自Xilinx Zynq Support from Computer Vision Toolbox。前图模型中显示绿色和黄色的部分并不能综合成硬件代码,但应该适配到对应的Zynq框架之后,只要用户按照接口,也就是pixel和ctrl,来开发算法,就可以很容易的使用该硬件支持包来布置到FPGA中。
关于如何使用Simulink快速搭建视频处理硬件加速仿真平台就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流