OpenCV 图像处理是基于存储器帧缓存而构建的, 它总是假设视频帧数据存放在外部 DDR 存储器中。 由于处理器的小容量高速缓存性能的限制, 因此, OpenCV 访问局部图像性能较差。 并且, 从性能的角度来说, 基于 OpenCV 设计的架构比较复杂, 功耗更高。 在对分辨率或帧速率要求低, 或者在更大的图像中对需要的特征或区域进行处理时, OpenCV 似乎足以满足很多应用的要求; 但是, 对于高分辨率和高帧率实时处理的应用中, OpenCV 很难满足高性能和低功耗的需求。 
        基于视频流的架构能提供高性能和低功耗, 链条化的图像处理函数减少了外部存储器访问。Vivado HLS 对 OpenCV 的支持, 不是指可以将 OpenCV 的函数库直接综合成 RTL 代码, 而是需要将代码转换为可综合的代码。 这些可综合的视频库称为 Vivado HLS 视频库, 它们由 Vivado HLS 工具提供。
  由于 OpenCV 函数一般都包含动态的内存分配、 浮点以及假设图像在外部存储器中存放或者修改, 所以不能直接通过 Vivado HLS 对 OpenCV 函数进行综合。Vivado HLS 视频库用于替换很多基本的 OpenCV 函数, 它与 OpenCV 具有相似的接口和算法,它主要针对在 FPGA 架构中实现的图像处理函数, 其中包含了专门面向 FPGA 的优化, 比如定点运算而非浮点运算(不必精确到比特位) , 片上的行缓存(line buffer) 和窗口缓存(window buffer)。

  一些优秀的 C 算法, 我们也可以使用 HLS 将其装换为硬件描述语言, 而且其质量也要比人工设计的更好。(有待验证!)

HLS:OpenCV和RTL代码转换关系的更多相关文章

  1. OpenCV 与 OpenGL 的关系是什么?

    OpenCV是 Open Source Computer Vision LibraryOpenGL是 Open Graphics LibraryOpenCV主要是提供图像处理和视频处理的基础算法库,还 ...

  2. opencv和openGL的关系

    OpenCV是 Open Source Computer Vision Library OpenGL是 Open Graphics Library OpenCV主要是提供图像处理和视频处理的基础算法库 ...

  3. 19、opencv和v4l2的关系

    分析如下: v4L2是针对uvc免驱usb设备的编程框架,而opencv是一种跨平台计算机视觉库,opencv不仅支持v4l2框架,还支持windows.os等操作系统上的摄像头框架 cvCreate ...

  4. IplImage, CvMat, Mat 的关系和相互转换(转)

    (看到的一篇非常好的文章,讲opencv内部类之间的关系的.) opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重 ...

  5. OpenCV开发环境配置-Windows/MinGW/Clion/CMake

    临时更换成了TDM-GCC,和mingw类似,这里只是声明一下. 由于opencv下载下来的.exe安装包实际上是没有mingw(gcc)匹配的/动静态库,因此这些东西需要我们自己使用mingw编译. ...

  6. Qt Opencv 在Linux下摄像头简单示例(转)

    下面写的文章也许网上也有类似的,但是大多数都没有给出思路及背景,让初学者每次都只能学到一点皮毛,不少知识需要大量搜索零碎地拼凑起来.题外话,虽然现在是碎片化信息时代,但正是这样信息整合能力也显得非常重 ...

  7. Zynq开发之HLS

    Zynq开发之HLS 由 FPGA菜鸟 于 星期三, 06/28/2017 - 11:53 发表 HLS简介 HLS(High Level Synthesis)即高层次综合,不同于以往的FPGA逻辑开 ...

  8. QT与openCV,与PCL结合!

    (1):详解QT多媒体框架:给予视频播放器 原文链接:http://mobile.51cto.com/symbian-271123.htm 对于使用主框架的QT程序,实现Qimage的转换可借鉴下面程 ...

  9. 视频人脸检测——Dlib版(六)

    往期目录 视频人脸检测--Dlib版(六) OpenCV添加中文(五) 图片人脸检测--Dlib版(四) 视频人脸检测--OpenCV版(三) 图片人脸检测--OpenCV版(二) OpenCV环境搭 ...

随机推荐

  1. 关于Android控件EditText的属性InputType的一些经验,java组合多个参数

    关于Android控件EditText的属性InputType的一些经验 2013-11-14 15:08:02|  分类: 默认分类|举报|字号 订阅       1.InputType属性在代码中 ...

  2. myeclipse下对tomcat项目进行debug断点调试

    对于eclipse或myeclipse调试J2SE项目或小应用进行断点调试,大家都不陌生,只要设置断点,debug运行就OK了.但是如果是web项目,而项目是在容器中运行的,比如tomcat,resi ...

  3. 微信小程序进行地图导航使用地图功能

    之前我写过的文章当中,提过小程序的打包大小.所以特地去下载一个区域的地图的这种方法,是不存在的. 我用的导航主要使用的是应用外的导航,这篇文章可能对于非常熟悉小程序的小伙伴来说就是小case,所以只适 ...

  4. 视频转换工具ffmpeg

    安装ffmpeg ffmpeg官网下载地址点击此处. 如果使用mac也可用homebrew下载安装:brew install ffmpeg 使用ffmpeg 命令如下:ffmpeg -i input. ...

  5. Android 密匙库导出

    导出debug 签名----------------------------- C:\Documents and Settings\Administrator>keytool -list -v ...

  6. C++ 数据封装和抽象

    C++ 数据抽象 数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节. 数据抽象是一种依赖于接口和实现分离的编程(设计)技术. 让我们举一个现实生活中的真实例子 ...

  7. [转]Newtonsoft.Json 序列化和反序列化 时间格式

    本文转自:http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeObj ...

  8. fedora 系统安装后常用设置

    #表示root命令  $表示普通用户命令 给普通用户添加sudo权限 #visudo    (编辑/etc/sudoers文件的命令) root all = (all) all username al ...

  9. Spring中ApplicationContext和beanfactory区别---解析二

    一.BeanFactory 和ApplicationContext Bean 工厂(com.springframework.beans.factory.BeanFactory)是Spring 框架最核 ...

  10. hud 5124 lines(思维 + 离散化)

    http://acm.hdu.edu.cn/showproblem.php?pid=5124 lines   Problem Description: John has several lines. ...