xilinxfpga-zynq设计中使用hls实现opencv开发流程

xilinxfpga-zynq设计中使用hls实现opencv开发流程

ID:30986660

大小:72.00 KB

页数:7页

时间:2019-01-05

xilinxfpga-zynq设计中使用hls实现opencv开发流程_第1页
xilinxfpga-zynq设计中使用hls实现opencv开发流程_第2页
xilinxfpga-zynq设计中使用hls实现opencv开发流程_第3页
xilinxfpga-zynq设计中使用hls实现opencv开发流程_第4页
xilinxfpga-zynq设计中使用hls实现opencv开发流程_第5页
资源描述:

《xilinxfpga-zynq设计中使用hls实现opencv开发流程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、X订inxFPGA/Zynq设计中使用HLS实现OpenCV开发流程摘要:首先介绍OpenCV中图像类型和函数处理方法,之后通过设计实例描述在VivadoHLS中调用OpenCV库函数实现图像处理的几个基本步骤,阐述从OpenCV设计到RTL转换综合的开发流程。本文网络版地址:http://www.eepw.com.cn/article/233872.htm关键词:可编程;处理器;VivadoHLS;OpenCV;ZynqAPsocDOI:10.3969/j.issn.1005-5517.2014.2.011郭丰收:X订inxDSP专家,主要从事在Xilinx器件上实现数

2、字信号处理的系统方案、架构和算法应用。开源计算机视觉(OpenCV)被广泛用于开发计算机视觉应用,它包含2500多个优化的视频函数的函数库并且专门针对台式机处理器和GPU进行优化。XilinxVivadoHLS高层次综合工具能够使用C/C卄编写的代码直接创建RTL硬件,显著提高设计生产力,同时,XilinxZynq全可编程SoC系列器件嵌入双核ARMCortex-A9处理器将软件可编程能力与FPGA的硬件可编程能力实现完美结合,以低功耗和低成本等系统优势实现单芯片高的系统性能、灵活性、可扩展性,加速图形处理产品设计上市时间。OpenCV拥有成千上万的用户,而且OpenCV

3、的设计无需修改即可在Zynq器件的ARM处理器上运行,但是利用OpenCV实现的高清处理经常受外部存储器的限制,尤其是存储带宽会成为性能瓶颈,存储访问也限制了功耗效率。使用X订inx公司的VivadoHLS髙级语言综合工具,可以轻松实现OpenCVC++视频处理设计到RTL代码的转换,输出Zynq的硬件加速器或者直接在FPGA±实现实时硬件视频处理功能。同时,Xilinx公司的ZynqAllprogrammableSoC是实现嵌入式计算机视觉应用的好方法,解决了在单一处理器上实现视频处理性能低功耗高的限制,Zynq高性能可编程逻辑和嵌入式ARM内核,是一款性能功耗优化的图

4、像处理集成式解决方案。1OpenCV中图像Ipllmage,CvMat,Mat类型的关系和VivadoHLS中图像his::Mat类型OpenCV中常见的与图像操作有关的数据容器有Mat,CvMa/t和Ipllmage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高。而CvMat和Ipllmage类型更侧重于“图像”,OpenCV对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。1.1OpenCV中的Mat矩阵类型在OpenCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。Mat类型较Cv

5、Mat与Ipllmage类型来说,有更强的矩阵运算能力,支持常见的矩阵运算。在计算密集型的应用当中,将CvMat与IplImage类型转化为Mat类型将大大减少计算时间花费。1.20penCV中的CvMat与Ipllmage类型在openCV中,CvMat和Ipllmage类型更侧重于"图像”,尤其是对其中的图像操作进行一定程度的优化。OpenCV没有向量(vector)的数据结构,但当我们要表示向量时,需要用矩阵数据表示。但是,CvMat更抽象,它的元素数据类型并不仅限于基础数据类型,而且可以是任意的预定义数据类型,比如RGB或者别的多通道数据。在OpenCV类型关系上

6、,我们可以说Ipllmage类型继承自CvMat类型,当然还包括其他的变量将之解析成图像数据。Ipllmage类型较之CvMat多了很多参数,比如depth和nChannelSoIpllmage对图像的另一种优化是变量origin原点,为了弥补这一点,OpenCV允许用户定义自己的原点设置。1.3VivadoHLS中图像数据类型his::MatVivadoHLS视频处理函数库使用his::Ma/t数据类型,这种类型用于模型化视频像素流处理,实质等同于his::steam流的类型,而不是OpenCV中在外部memory中存储的matrix矩阵类型。因此,在用VivadoHL

7、S实现OpenCV的设计中,需要将输入和输出HLS可综合的视频设计接口,修改为Videostream接口,也就是采用HLS提供的video接口可综合函数,实现AXI4videostream到VivadoHLS中his::Mat类型的转换。2使用VivadoHLS实现OpenCV到RTL代码转换的流程2.1OpenCV设计中的权衡OpenCV图像处理是基于存储器帧缓存而构建的,它总是假设视频frame数据存放在外部DDR存储器中,因此,OpenCV对于访问局部图像性能较差,因为处理器的小容量高速缓存性能不足以完成这个任务。而且出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。