视频处理硬件加速仿真平台Simulink快速构建

前言:这一讲我们使用Simulink来快速搭建图像/视频处理硬件加速平台。以简单的RGB2GREY算法为例。我们主要使用的Toolbox为HDL Coder和Vision HDL两个,以后会加上相关的Hardware Support Package。大家可以在Simulink的Library Brower中以及官网里熟悉一下他们所支持的功能。


正文:

首先我们新建一个Simulink模型,并且按照上一讲所讲到的设置配置完成。

然后在空白处双击,输入并添加以下模块:

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

  • Image From File
  • Frame To Pixels
  • Pixels to Frame
  • Video Reviewer
  • Embedded Subsystem

将Video Reviewer放入Enabled Subsystem中,如下图

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

然后按照下图连接所有模块。此处每个模块的输入都包含两个:pixel和ctrl。Pixel表示对应的像素值,ctrl信号会indicate行开始和结束,列开始和结束,以及valid信号。不了解的同学可以参考Mathwork关于视频接口控制总线的说明https://www.mathworks.com/help/visionhdl/ug/pixelcontrol-bus.html。

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

之后我们需要设置Image From File模块,双击它。如下图设置File Name,Sample time。

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

下面设置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

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

接下来我们设置仿真参数,在空白处单击右键,选择Model Properties

使用Simulink快速搭建视频处理硬件加速仿真平台_乘法器_06

然后我们在Callbacks中的InitFcn(初始化函数)填写以下代码,这样我们只要改变VideoFormat的格式就可以自动获取图像长宽等参数。

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

完成之后我们在Simulink Model的配置栏设置仿真时间为totalPixels(也就是上一步中配置的),仿真模式选择为Accelerator模式。

使用Simulink快速搭建视频处理硬件加速仿真平台_寄存器_08

至此,我们可以测试一下仿真通路了,保存之后使用ctrl+D来验证模型完整性。如果没有报错即可点击开始按钮,开始仿真。如果不出意外,我们将会看到以下图片

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

既然视频通路搭建成功,我们就可以开始添加自己的RGBGREY模块了。

熟悉数字图像处理的同学一定知道,RGB图像转换成灰度图像的公式如下

GREY=0.299*R+0.587*G+0.114*B。因此我们搭建转换模块如下

使用Simulink快速搭建视频处理硬件加速仿真平台_乘法器_10

Delay模块功能相当于寄存器模块,RGB信号通过pixelIn输入,通过乘法器与对应的常数相乘,并且使用Sum of Element模块求和,后面的Data Type Conversion模块截取了小数点之前的8位,也就是转换成uint8的类型。Control Bus也要有相应的延迟,以保证时序不变。(关于为什么使用2个寄存器延迟,以及乘法器的替代,将会在以后提到。)我们将这部分模块封装在一个subsystem中(选中想要封装的模块并点击右键,选中Create Subsystem from Selection)。至此,我们的算法搭建已经完成,如下图。由于灰度图像是单通道的,别忘记将Pixel To Frame中的通道数改为1。使用Simulink快速搭建视频处理硬件加速仿真平台_ide_11

开始仿真,Video Reviewer会显示以下图像,说明我们的转换算法验证成功。

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

说明: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

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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空