开云-使用Simulink快速搭建视频处理硬件加速仿真平台

利用Simulink快速搭建视频处置硬件加快仿真平台 时候:2024-12-13 15:27:04 手机看文章

扫描二维码随时随地手机看文章

媒介:这一讲我们利用Simulink来快速搭建图象/视频处置硬件加快平台。以简单的RGB2GREY算法为例。我们首要利用的Toolbox为HDL Coder和Vision HDL两个,今后会加上相干的Hardware Support Package。大师可以在Simulink的Library Brower中和官网里熟习一下他们所撑持的功能。

正文:

起首我们新建一个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中。

在Github中,我还添加了软件部门的验证部门,而且计较硬件和软件的PSNR。接待大师下载而且在本身的电脑上验证,假如有问题和任何建议也能够与我联系。

以下为模子地址https://github.com/linbaiwpi/matlab_visionhdl/tree/master/rgb2grey

下集预告:以后,我们还会领会到哪些模块是可以被转换成HDL代码的,若何将模子摆设到硬件之上,和实现算法的时辰将会用到的技能等。

下一讲我将会实现以上模子的HDL代码,而且在Zedboard+FMC-HDMI-CAM板卡长进行验证。以后我们会讲授若何利用Line Buffer,若何生成patch,实例为将照片转换成素描气概(测试图片摘自Github-wyfunique/Convert-Photo-to-sketch,若有侵权,烦请奉告,我会马上删除)。实现成果以下(右侧是输入图象,左侧是硬件实现的成果)

欲知详情,请下载word文档 下载文档

上一篇:开云-浮点数和定点数的相互转换 下一篇:开云-ATMEGA8静态工作特性