《基于GPU的并行图像离散小波变换.docx》由会员分享,可在线阅读,更多相关《基于GPU的并行图像离散小波变换.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于GPU的并行图像离散小波变换邱霁岩凌翔关非凡李少杰摘要:针对现有的离散小波变换耗时久的问题,本文利用CUDA并行计算技术,提出了一种基于GPU的离散小波变换算法实验结果表明在一张2048x2048分辨率的图像中达到了最大106.34的加速比,而,且保持了良好的效果。关键词小波分析CUDAGPU图像处理1离散小波变换简介小波变换的原理:小波变换是指将傅里叶变换中的基进行变换,将三角函数基变换为小波基,三角函数基是无限长,小波基是有限长且衰减的。小波变换公式如下:其中a是尺度和是平移量。尺度a控制小波函数的伸缩,平移量控制小波函数的平移。尺度就对应于频率(反比),平移量对应于时间本文选取离散小
2、波变换。离散小波变换(DiscreteWaveletTransform)是离散化基本的小波的尺度和平移,可以用在数值分析、时频分析和图像处理中,效果显著。尤其是在图像处理领域,有着突出的表现。本文选用的小波基是Haar小波,Haar小波为:对于二维的图像,Haar小波变换需要先对每一行做变换,再对每一列做变换。相当于对于每四个像素执行2CUDA并行计算平台简介CUDA(ComputeUnifiedDeviceArchitecture)是NVIDIA公司推出的基于通用并行计算架构的运算平台,基于该架构可以运用GPU解决复杂的计算问题。CUDA是一种附加在操作系统和C语言或C+等类程序之间的一层底
3、层库。GPU中的典型CUDA架构分为三层:线程、线程束和线程块。线程是GPU执行的最小单元,可以执行并行任务。线程束是32个线程的集合,可用作单指令多数据操作。线程块是多个线程的集合。只有同一块中的线程才能直接通信,例如访问同一共享内存或快速同步。网格由几个块和全局内存,常量内存和纹理内存组成,可以由其中的每个块和线程访问。3并行小波变换算法实现首先为每一个线程分配一个二维的id用于并行的读取数据。之后根据id值计算每个线程需要计算的区域。一共分为四个区域HH、HL、LH、LL。之后从纹理内存读取相邻的四个数据区域,根据分配到的不同区域进行不同的计算。完成计算之后,根据是线程的id写入计算结果
4、。4实验结果分析本文通过对比串行的程序分析并行算法的性能。使用加速比S=T/Tp来衡量并行化性能。通过将小波变换算法并行化后,该并行算法达到了平均65.83604的加速比。通过图像分析可知,结合CUDA技术分析可知,随着输测试图片尺寸的增加该算法并行潜能逐步提升,在测试图片尺寸为2048时,平均加速比也达到了最大值。如图1所示。当测试图片尺寸为128时,并行后的小波变化算法平均加速比可达到15.84726。在测试图像为该尺寸的情况下,小波变换深度为3时加速比在三项测试中达到了最大值19.04387,小波变换深度为1时加速比在三项测试中达到了最小值11.59411。当测试图片尺寸为256时,并行
5、后的小波变化算法平均加速比可达到42.70266。在测试图像为该尺寸的情况下,小波变换深度为1时加速比在三项测试中达到了最大值52.49030,小波变换深度为2时加速比在三项测试中达到了最小值34.38564。当测试图片尺寸为512时,并行后的小波变化算法平均加速比可达到73.93396。在测试图像为该尺寸的情况下,小波变换深度为3时加速比在三项测试中达到了最大值83.92226,小波变换深度为1时加速比在三项测试中达到了最小值60.48533。當测试图片尺寸为1024时,并行后的小波变化算法平均加速比可达到97.98950。在测试图像为该尺寸的情况下,小波变换深度为2时加速比在三项测试中达到
6、了最大值100.52948,小波变换深度为1时加速比在三项测试中达到了最小值94.59800。当测试图片尺寸为2048时,并行后的小波变化算法平均加速比可达到98.70682。在测试图像为该尺寸的情况下,小波变换深度为3时加速比在三项测试中达到了最大值103.66938,小波变换深度为1时加速比在三项测试中达到了最小值86.10547。5结束语本文介绍了一种将小波域图像处理移植到CUDA技术的方法,在GPU并行平台,上实现了对离散小波变换的并行化加速,克服了小波变换耗时的缺点,这对将来小波图像处理具有非常重要的意义。参考文献1陈思斯。多贝西小波密度泛函的瓦尼尔函数并行计算研究D.湘潭大学,2018.2丁志恒。不同标度多贝西小波密度泛函并行计算与片段法应用分析D.湘潭大学,2018.