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

发布时间:2024-12-13  

前言:这一讲我们使用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,如有侵权,烦请告知,我会立刻删除)。实现结果如下(右边是输入图像,左边是硬件实现的结果)


文章来源于:21IC    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    介绍了西安电子科技大学利用MATLAB的实践。比如在通信原理相关课程方面,教学工具从实验箱过渡到实验箱加虚拟仿真软件,再到后来虚实结合的软件无线电工程,如今则采用了MATLAB的实践课。无论......
    亚马逊云科技推出Amazon SimSpace Weaver助力大规模空间模拟; 该项完全托管的服务可实现复杂、动态的3D模拟仿真,可对具有100万个以上对象的系统进行建模,快速......
    亚马逊云科技推出Amazon SimSpace Weaver助力大规模空间模拟;• 该项完全托管的服务可实现复杂、动态的3D模拟仿真,可对具有100万个以上对象的系统进行建模,快速......
    亚马逊云科技推出Amazon SimSpace Weaver助力大规模空间模拟; 该项完全托管的服务可实现复杂、动态的3D模拟仿真,可对具有100万个以上对象的系统进行建模,快速......
    器常见拓扑 当然,通过上述图可以看出,如果将系统中电机数学模型部分换成其他设备的数学模型,便可获得其他设备的模拟器。 电机模拟仿真模型 根据上述图描述,搭建基于永磁同步电机的电机模拟器simulink模型,其中......
    机数据和雷达数据相比,激光雷达数据的处理需要更强的计算能力,这也给 ADAS 算法开发人员带来一些挑战。 使用仿真开发 ADAS 算法在硬件上进行测试成本高昂,所以工程师们会先使用虚拟仿真技术来测试其 ADAS 解决......
    处理器中加载MATLAB编写的仿真模型,用于实时响应上位机的操作指令以及控制I/O板卡。I/O板卡用于模拟和采集被测控制器的各种输入和输出信号,包括数字I/O板卡、模拟I/O板卡等。CAN通讯板卡用于模拟......
    025_STM32之MDK5软件仿真之查看io口输出;(一)模拟仿真或者STLINK仿真那些就需要相应的配置对应的地方 DARMSTM.DLL-pSTM32F103ZE   (二) 如果是模拟仿真......
    集成电路(Parade Technologies)已应用部署了CadenceÒ Spectre® X仿真器,并将其用于显示面板集成电路(IC)的模拟仿真加速。采用Spectre X仿真器,谱瑞的模拟仿真......
    模拟仿真技术在智能网联汽车开发中的作用;0   引言 智能网联汽车是指搭载先进的车载传感器、控制器、执行器等装置,并融合现代通信与网络技术的新一代汽车[1-2]。从国......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>