1 扩展库简介

OpenCV(Open Source Computer Vision Library)是一个致力于实时处理计算机视觉问题的开源库。它最初由Intel公司开发,以GPL许可协议发布,后来由Willow Garage基金会负责开发和维护,以BSD许可协议发布,至今已有超过250万的用户。其用途非常广泛,涵盖从图像处理,计算机视觉到交互艺术,矿产勘探等领域。OpenCV最初以C语言编写,后来提供了C++和Python接口,在版本2.2中又加入了CUDA接口,目前的正式版本为2.4。

OpenCL(Open Computing Language)是一个在异构平台(例如:CPU和GPU,APU)上高效执行程序的开源计算框架,它由Khronos发布并维护,是一个IBM, Intel, AMD等业界公司普遍认可和支持的标准,目前版本为1.2。OpenCL包含一组用于定义和控制平台的API和一个基于C99标准的编写的可执行在并行设备上的kernel。它使应用程序能够在GPU上执行,使GPU可以不仅执行图形程序,而且可以执行通用计算程序(GPGPU)。

虽然OpenCV的目标是能够实时的处理计算机视觉问题,但是大多数计算机视觉的算法太过复杂,无法在CPU上实时执行。而计算机视觉的大多数算法具有天生的并行性,非常适合在GPU和APU上执行并获得可观的加速比。本工程使用和OpenCV兼容的C/C++编写,致力于为OpenCV添加OpenCL接口,使得OpenCV的函数能够在异构设备上高速运行。由于OpenCL是一个跨平台的开放标准,所有支持OpenCL的平台都将获益。

2 OpenCV的架构

OpenCV可以分成以下一些模块,以执行设备来分类的话有CPU和GPU之分,GPU中原有CUDA模块,现在我们加入OpenCL模块,OpenCL模块将在CPU上执行的算法在GPU上加速执行。


[align=center][/align]图1:OpenCV架构图

为了获得良好的性能而又不损失灵活性,我们将OpenCV中最重要的基础结构二维矩阵映射为GPU上的二维Buffer,没有使用OpenCL中得Image对象。这样做可以更有效率的处理单通道数据。

3 基于OpenCL加速的函数列表

OpenCV拥有四百多个函数,并且有些函数的算法十分复杂,由于时间和资源所限,目前的OpenCL并没有包含所有的函数,以下是目前已经经过加速的函数列表

4 性能测试结果

通过GPU的加速和对代码的优化,我们获得了可观的加速比,整体而言,我们对CUDA有1.2倍的加速,对CPU有平均60倍的加速(kernel时间vsCPU时间)。以下是我们的测试平台和测试结果。

表2:测试平台[align=center][/align]


图2:OpenCL vs. CUDA 纵坐标为加速比


图3:OpenCL vs. CPU纵坐标为加速比

5 资源获取

基于OpenCL的OpenCV扩展库已经进入官方的svn,可以在此下载最新代码,也可以在Google Code中下载。
OpenCV official svn: http://code.opencv.org/svn/opencv/branches/ocl
下载:http://code.opencv.org/svn/opencv/trunk

HEVC/H.265 的未来必须是使用并行处理(OpenCL?) OpenCV和OpenCL区别相关推荐

  1. HEVC/H.265(1)——入门初步了解

    一.引子 说到H.265,个人的初始印象就是比H.264高端了那么一些的编码标准,再就是在学校的BT上下的那个好多播放器都播放不了,只有potplayer等一小部分未来播放器能播放的权利的游戏HEVC ...

  2. HEVC (H.265)介绍(转)

    [Liupin]: 这是一篇简单介绍H.265文章,我接触和开发H.265二年来,H.265技术在行业内接收速度比H.264快多了,现在国际和国内各大公司都在进行H.265应用,不管是IC设计还是H. ...

  3. 华为:解读下一代视频压缩标准HEVC(H.265)

    概述 H.264(AVC)从2003年5月草稿发布以来,凭借其相对于以往的视频压缩标准在压缩效率以及网络适应性方面的明显优势,逐步成为视频应用领域的主流标准.根据 MeFeedia的数据,由于iPad ...

  4. 二、对HEVC/H.265视频编解码器进行隐写的基本思路

    二.对HEVC/H.265视频编解码器进行隐写的基本思路 概述 1.视频隐写的基本思路 2.视频隐写的举例说明 3.结尾 概述 其实对视频隐写.图像隐写或是音频隐写,基本的思路都是一样的:读取原始图像 ...

  5. PotPlayer不支持S/W HEVC(H.265)解码的解决方法

    PotPlayer播放MKV格式的视频时跳出视窗显示:不支持S/W HEVC(H.265)解码,按下寻找编解码器,请安装相应的解码器. 解决方法: 1.开启浏览器,打开「FFMPEG64.DLL」这个 ...

  6. 高效视频编码 (HEVC) -H.265(结构解析)

    版本 HEVC (H.265) 规范的第一个版本于 2013 年 4 月发布.该标准的版本如下: ITU-T H.265 (V1) (04/2013) http://handle.itu.int/11 ...

  7. HEVC/H.265编码HM码率控制

    HEVC/H.265编码标准HM平台码率控制流程 研究生期间了解过HM平台的码率控制过程,现在时隔2年多又回顾了一下HM平台的码控流程,发现相较之前多了CpbSaturationEnabled这么个机 ...

  8. 让CEF支持HEVC(H.265)视频播放

    HEVC(H.265)有高昂的版权费用这个是众所周知的,所以现在绝大多数浏览器默认都不具备HEVC解码能力,这一点可以通过caniuse.com看到: 可以看到,基本上只有Apple是HEVC的主要支 ...

  9. 修改Chromium源码实现HEVC/H.265 4K视频播放

    本文作者:蔡斯杰,字节跳动互娱前端业务负责人 公司内容生产端最近(2019/10)在推广 HEVC/H.265 的使用,这种视频编码格式对比H.264更加先进且节省带宽,虽然先进但是因为专利费的问题, ...

最新文章

  1. Apollo后台配置:添加部门
  2. c# 解析gprmc数据_Windows下VLP16激光雷达数据解析
  3. boost::mpl::string相关的测试程序
  4. 《Windows核心编程》---Windows服务
  5. 被高估了的测试驱动开发?
  6. 忽略这一点,人工智能变人工智障的!
  7. gitgithub拾遗(一)——git
  8. ZigBee协议栈解析
  9. CWM模式(卡刷)教程
  10. 【每日一题】一起冲击蓝桥杯吧——Day07【蓝桥真题一起练】
  11. vue+ckplayer+rtmp
  12. Linux下设置MTU值到9000
  13. OLED屏幕还未普及,移动VR没有想象中爆发那么快
  14. Lumerical MODE solution FBG光栅透射谱的仿真,官网fbg.lms例子的详解
  15. Android-skin-support 换肤原理全面解析
  16. 解决javascript提交form出现错误提示:对象不支持此属性或方法
  17. MCE公司:新突破——癌症治疗耐药性问题有望彻底解决
  18. 【NIO详解】基于NIO的client与server
  19. 16天进入“已问询”状态,上市进程神速,这家芯片设计企业凭什么?
  20. Qt C++局域网聊天(一)

热门文章

  1. 【海洋女神原创】installshield 32位打包和64位打包的注意事项
  2. 关于端口映射的一个命令
  3. 关于Nikon Ai AF 28mm F1.4D遮光罩的问题
  4. 在客户端(IE中)无法登录Citrix MetaFrame server的原因
  5. Windows Embedded Standard开发初体验(四)
  6. 常用memcached命令详解
  7. ASP.NET MVC 5 - 视图
  8. photoshop CS5 Dreamweaver CS5序列号及完美破解方法
  9. Windows Mobile 5.0 设备的目录变化
  10. 一文读懂公有链、私有链、联盟链