基于OpenCL的基本图像处理算法性能优化研究

来源 :中国科学院研究生院 中国科学院大学 | 被引量 : 0次 | 上传用户:OSEric
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
图像处理主要包括图像压缩、图像增强、图像复原、图像分割和图像分析等,其在许多应用领域受到广泛重视并取得了重大成就,如航空航天、生物医学工程、工业检测、气象、公安司法、军事制导、文化艺术等。现代图像处理面临着高分辨率、高速度的挑战,海量的基础数据和时效性的高要求,没有万亿次的计算能力是无法应对的。GPU(GraphicsProcessingUnits)在处理能力和存储带宽上相对CPU都有无可比拟的优势。近年来GPU发展迅速,从最初的仅用于图像渲染到现在已经可以基于GPU进行通用计算。GPGPU(GeneralPurposeGPU)的发展为高要求的图像处理提供了解决方案。目前,GUP通用计算标准主要包括NVIDIACUDA和后起的OpenCL。OpenCL是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,广泛适用于多核处理器、图形处理器、Cell类型架构及其他并行处理器。使用OpenCL在GPU上并行实现图像处理的相关操作,可以预期几十倍甚至几百倍于CPU的效率,对于高要求的图像处理无疑是一个很好的解决方法。   本文从OpenCV库中挑选了17个基本图像处理函数,基于OpenCL标准对这些函数进行了GPU加速。本文中我们将这些图像处理函数分为三类:数据无关、数据共享和数据相关。对于每一类算法,本文结合相应案例进行优化技术的研究分析。数据无关类算法的瓶颈在访存上,对于连续的数据无关类算法使用向量化的方法提高带宽利用率;对于离散的数据无关类算法,则需要充分利用系统的缓存,本文比较了使用全局存储的缓存功能和使用纹理内存的缓存功能两种方法的优劣,结果显示使用纹理内存在性能上有些许的优势,但是优势并不是很明显。对于数据共享类算法,本文对比分析了使用图像对象和全局内存+局部内存两种方式的优劣。结果表明只有当需要共享的数据量小时,图像对象的优势才得以充分发挥;而当需要共享的数据量较大时,使用全局内存+局部内存的方式性能更优。数据相关类算法直接使用GPU多线程进行并行处理并不容易,算法的瓶颈在于数据依赖引起的并行度低下,最重要的是研究算法本身,选择高效的并行计算算法。   本文在HD5850和TeslaC2050两个平台上对优化的OpenCL函数进行测试,结果显示对于8UC1图像类型,TeslaC2050平台OpenCL性能更优,而对于8UC4图像类型,HD5850平台OpenCL性能更好。在TeslaC2050平台上,OpenCL代码对CUDA代码平均加速比为2.40,相对CPU代码平均加速比为17.30。
其他文献
视频分割,是一种根据灰度、颜色、边缘以及运动等一切可以利用的信息把视频序列分割成有意义的运动主体的技术。在这种意义下的视频分割,是传统的底层视觉任务--图像分割的自
实际应用中数据经常出现的缺失值将直接影响到数据挖掘算法的准确性,因此如何处理缺失值已成为数据分析领域必须解决的重要问题。目前采用填充算法进行缺失值填充已经成为一
在设计师进行创新型产品设计过程中,早期的概念设计阶段是十分重要的。在该阶段,尤其是产品的外观设计,包括外形、颜色、纹理等,是概念设计最重要的一个环节。随着计算机技术的发
作为普适计算思想的深化和发展,环绕智能(Ambient Intelligence,AmI)的目标是实现物理空间、信息空间与用户空间的自然融合,以自适应、个性化及预判断的方式提供随需应变的服务
近年来,随着大数据处理和图形图像技术的应用的不断深入,三维数据可视化发展迅速,并成为了当前研究的热点,被广泛应用于气象、医学、地质、大数据分析等领域,三维数据可视化
面部特征点定位研究的目标是:在给定的人脸图像上,准确而快速地自动获得眼睛中心、眼角、鼻尖、嘴角及面部轮廓点等关键面部特征点的空间位置信息。它不仅是全自动人脸识别系
在信息技术和互联网技术发展的推动下,智能手机的普及引导了一次手机应用的革命,如今已进入迅猛发展的时代。用户拥有更多的自主选择权,但找到需要的或感兴趣的应用程序,就必须要
从视觉感知的角度来看,计算机图形学的终极目标是使计算机模拟的图像能够被人们有效认知和快速理解。传统的真实感绘制技术总是希望产生和显示足够多的细节,然而过多的细节可能
软件开放社区是一种新的软件服务形式,它以开放平台为基础由第三方开发者作为主要软件供应商,能够快速满足多样化的用户需求。Facebook和AppStore等软件开放社区已成为目前软件
为了使得应用具有更高的性能、可伸缩性和可用性,并且减少硬件成本,越来越多的互联网应用开发人员选择为应用在云基础设施上构建云服务。随着云服务开发的需求的增加,有必要为云