版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图像滤波器是当前绝大多数图像处理软件中的重要组成部分,然而,图像滤波对于计算量的要求是巨大的,为了加强图像处理软件的人机交互性能,使用GPU来加速图像滤波,是一个很好的选择。NVIDIA新近推出的GPU计算平台采用距阵型的计算架构,特别适合二维图像信号的处理,且相对CPU有着后,本文模拟了二维可分离卷积在C语言中的实现,并分别在NVIDIAGPU并tools.Sinceimage-filteringapproachesareverycomputationallydemanding,tomaybeagoodwayout.TheGPUcomputingplatforms,recentlylNVIDIA,adoptsthematrix-typecomputingarchitecture,especiallysuitabletheprocessingofthetwo-dimensionalimagesignalandhavehigherparallelismofthealgorithmsandcomputatioCUDAdevelopmentenvironmentofGPU,byutilizingthecomputingcharacteristicofGP-GPU,thispaperaimsattherealizationandimprovementofthedetacrealizationandtestingofadetachabletwo-dimensionalconvolutiIntel(orAMD)CPUcompuKeywords:detachableconvolutionfilter目录第一章绪论 1 11.2研究背景 21.3研究目的和意义 3 4第二章图像处理基础理论 52.1图像处理的概念 5 6 83.2.1傅立叶变换 83.2.3快速傅立叶变换 3.2.4离散余弦变换 9第三章图像处理单元GPU 第四章可分离卷积技术 4.3可分离卷积的原理 第五章基于GPU的二维图像卷积实现 5.1.2线程批处理 5.1.3存储器模型 5.2硬件实现 5.2.1在片共享存储器(SIMD单指令多数据)多处理器组 5.2.2执行模型 5.2.3计算能力 5.2.4多设备 5.2.5状态转换 5.3.2一个Naive的执行 5.3.3公共存储器和外围 5.3.4避免空闲的线程 5.4可分离卷积核的心算法 5.5具体算法实现方法 5.5.1算法主流程图 5.5.2结果分析 第六章总结 参考文献 附录A相关的数学变换公式 附录B可分离卷积的部分代码 第1页第一章绪论现代数字图像处理包括很多技术,从简单的图像模糊、边缘检测、雾化到复杂的高动态范围(HDR)图像的色调映射,基本上都使用了一种或者多种图像滤波器的组合。因此可以说图像滤波器是现代计算机图形学中的关键要素之滤波。在空间域中的滤波很简单,只需要将待滤波的图像和滤波器核进行卷积运算;而在频域的滤波则需要先将图像通过傅立叶变换转换到频域上,然后乘这两种方式在不同的情况下有着各自的缺点和优点,而且在CPU上的实现已经是成熟通用的方法广为人们熟知。然而由于这两种方法都存在计算量巨大的特点,当待处理的图像比较大的时候,CPU的结构特点决定了其的性能往往不能满足图像滤波的实时性要求。图形处理器(GPU)为SIMD(SingleInstructionMultipleData,单指令多数据流)架构,决定了它非常适合处理大量数据诸如图像、音频的这类任务。由于早期的GPU是固定管线结构,自由度非常小,人们难以利用其进行3D图形运算之外的工作。自从Microsoft推出DirectX8以后,GPU工作管线中加入了可编程单元,使得人们可以使用GPU进行一些通用的计算,同样,也给使用GPU进行图像滤波处理提供了可能1。在GPU上实现可分离图像卷积滤波算法,可以有效的提高图像处理的效率和积滤波算法作性能比较。毕业设计说明书(论文)第2页1.2研究背景20世纪六、七十年代,受硬件条件的限制,图形显示器只是计算机输出的20世纪80年代初期,出现GE(GeometryEngine)为标志的图形处理器。GE芯片的出现使得计算机图形学的发展进入图形处理器引导其发展的年代。GE可以完整地实现三维图形流水线的功能。芯片设计者JamesClark以此为核心理器功能的图形界面GL及其后的OpenG20世纪80年代和90年代。GE及其图形处理器功能不断增强和完善,使得图施几何变化以及对图元属性进行处理(含部分光照计算)。第二部分则是扫描转换进行光栅化以后完成一系列的图形绘制处理,包含各种光照效果和合成、栅一级实现时,可以利用SIMD(单指令多数据)结构进行处理。0.13μm(2004年的GeForce6800集成了2.2亿晶体管),集成电路的逻辑设计能力提高300倍,但处理器数据通道接口带宽仅提高十几倍。同时对图形毕业设计说明书(论文)第3页1.3研究目的和意义数字信息处理技术广泛应用于通信、计算机、广播电视等领域,带来了计算机的计算性能要求也越来越高,在此基础上产生了一种新型图形处理器GPU,它不但极大的提高了计算机图形处理的速度和质量,而且也促进了图像处理、虚拟现实、计算机仿真等相关应用领域的快速发展。GPU(图形处理器)解决复杂的运算处理问题。这里我们可以用CUDA工具包(工具箱)来解决图像卷积运算问题。因此在NVIDIACUDA的技术支持下运算量,从而将增强了图像处理中人机交互性能。毕业设计说明书(论文)1.4论文主要研究内容及论文结构安排本论文通过使用可分离卷积滤波算法实现对图像数据处理,并将卷积算法在GPU和CPU两种计算平台下的性能进行比较,第一章绪论介绍研究背景、目的和意义等;第二章图像处理相关知识的简介,主要对本论文中使用到的一些图像处理知识进行简要的介绍;第四章可分离卷积滤波技术,主要介绍卷积、滤波及可分离卷积原理的相关技术;第五章具体介绍如何在GPU下实现可分离图像卷积,并对其与CPU下卷积速率作性能分析;第六章总结与展望,主要对论文进行总结和今后研究设想。最后是参考文献和附录的相关内容。第5页第二章图像处理基础理论数子图像处理(DigitalImageProcessing)又称为计算机图像处理,像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等2)。一般而言,对图像进行加工和分析主要有如下三方面的目的:(1)提高图像的视感质量,以达到赏心悦目的目的。如去除图像中的噪声,改变图像的亮度、颜色,增强图像中的某些成份、抑制某些成份,对图像进行几何变换等,从而改善图像的质量,以达到或真实的、或清晰的、或色彩丰富的、或意想不到的艺术效果。(2)提取图像中所包含的某些特征或特殊信息,以便于计算机分析。例如,常用作模式识别、计算机视觉的预处理等。这些特征包括很多方面,如频域特性、灰度/颜色特性、边界/区域特性、纹理特性、形状/(3)对图像数据进行变换、编码和压缩,以便于图像的存储和传输。毕业设计说明书(论文)第6页2.2图像的格式发展,还将出现新的图像文件格式。无论是可以接受一种或多种图像文件格式作为输入或输出有一种软件可以支持所有的图像文件格式,现在能够支图像格式转换软件可以达到七十多种³。本论文只对常用的几种文件处理格式进行简要说明。TIFF(TagImageFileFormat)称为标记图像文件格式。它是Alaus和Microsoft公司为扫描仪和桌面出版系统研制开发的较为通用的图像文件格赖于操作环境,具有可移植性。它不仅作为图像信息交换的有GIF(GraphicsInterchangeFor半。GIF可用于压缩复杂并极富变化的图像,因此适合于需要高效率的图像处理。目前,在因特网上,GIF格式已成为主页图片的标准格式。JPEG也是常见的一种图像格式。它是按图像专家联合组制订的压缩标准毕业设计说明书(论文)第7页人们很难察觉。同时JPEG还是一种很灵活的格式,具有调节图像质量的功能,JPEG2000同样是由JPEG组织负责制定的,它有一个正式名称叫做"ISO15444",与JPEG相比,它具备更高压缩率以及更多新功能的新一代静态影像压在于它能实现渐进传输,这一点与GIF的"渐显"有异曲同工之妙,即先传输图而不必是像现在的JPEG一样,由上到下慢慢显示6。毕业设计说明书(论文)第8页3.2图像处理中常用的几种变换3.2.1傅立叶变换于图像变换、图像编码与压缩、图像分割和图像重建等7。特性、共轭性、旋转特性、能量保持定理、相关定理、卷积定理。主要公式见附录A。3.2.2离散傅立叶变换离散傅立叶变换主要的性质有:可分性、线性、对称性、尺度变换特性、主要公式见附录A。3.2.3快速傅立叶变换随着计算机技术和数字电路的迅速发展,离散傅立叶变换已经成为数字信第9页号处理和图像处理的一种重要的手段。然而离散傅立叶变换需要的计算量太大,运行时间长,在某种程度上限制了它的使用。例如计算一个长度为N的一维离散傅立叶变换,公式为:次复数加法。那么对与N次复数加法。很显然当N很大时,计算量很大。1965年,库里和图基首先提出了一种快速傅立叶变换(FFT)算法,采用该算法进行离散傅立叶变换,复数乘法和加法次数正比于Nlog₂N,当N很大时计算量也会大大减少。它不是一种新的算法,只是离散傅立叶变换的一种改进算法,它分析了傅立叶变换中重复的计算量,并最大可能使之减少,从而达到快速计算目的7][4]。主要公式见附录A。3.2.4离散余弦变换离散余弦变换(DCT)是正交变换中的一种,是把空间域上的图像变换到频率域上的一种方法。由于离散傅立叶变换DFT存在有复数运算和运算量大的缺点,常常使实时处理发生困难。因此在寻求快速算法的同时,构造一种实数域的变换一离散余弦变换(DCT)。由于DCT变换核构成的基向量于图像内容无关,且变换核是可分离的,即二维DCT变换可以用两次一维DCT完成。同时,由于DCT的变换矩阵的基向量近似于T矩阵的特征向量。而T矩阵体现了人类语言及图像信号的相关性,因此DCT常被认为是对语言与图像信号压缩处理的准最佳变换,其变换特性接近于K-L变换。经DCT处理后,图像的能量集中在少数系数上,及这些系数不为零,其余的大部分系数都为零。因此只需对不为零的变换系数编码后传输,即可达到压缩的目的。DCT提出的各种快速算法比较容易实时实现,所以DCT得到广泛应用,很多图像压缩的标准都采用DCT变换主要公式见附录A。毕业设计说明书(论文)第10页第三章图像处理单元GPU随着当前计算机性能的不断提高,应用范围越来越广泛,不同的计算任务等)。在针对特定应用方面与通用处理器相比,专用处理器能够更加高效的满近年来,计算机图形处理器(GPU)正在以大大超过摩尔定律的速度高速件发展有着极大关系。GPU自1999年首先由NVIDIA公司提出后,就其发展的速度而言,是CPU更新速度的三倍。从1993年开始,GPU的性能以每年2.8代的GPU问世。目前,以NVIDIA和ATI为代表的GPU产品正处于快速发展的过程当中,更强的处理能力。随着科学计算可视化、医疗图Hardware2003)迅速将其重点转向了计算机图形处理器的非图形应用。之后,等国际会议每年都设立了GPU相关专题的讨论组。越来越多的科研机构开始利用GPU的处理能力进行非图形绘制方面的科学计算研究13。毕业设计说明书(论文)第11页3.2GPU与CPU的比较并行性和灵活的可编程性等特点,越来越多的研究人员和商业组织开始利用1)高效的并行性。这一功能主要是通过GPU多条绘制流水线的并行计算来体现的。在目前主流的GPU中,配置多达16个片段处理流水线,6个顶行方案。2)高密集的运算。GPU通常具有128位或256位的内存位宽,因此GPU在(如NVIDIAGeForce3流水线有800个阶段),因此GPU作为数据流并CPU中的大部分晶体管主要用于构建控制电路(如分支预测等)和Cache,第12页控制电路相对简单,而且对Cache的需求较小,所以大部分正是由于GPU在并行处理和计算密集型问题求解等方面所具有的诸多优NVIDIA公司开发的GPU工具包CUDA(ComputeUnifiedDeviceArchitecture)解等科学计算,与单纯依靠CPU实现的算法相比,平均性能提高了近20倍。由此可见,GPU的发展速度(包括集成度、计算密集型问题的处理能力等)力的部件。因此,充分利用现有计算资源,发挥GPU的高性能计算能力,在毕业设计说明书(论文)第13页存储器地址,如图3-2所示,为编程带来了很毕业设计说明书(论文)第14页CCUDA具有以非常快读写访问速度实现并行数据高速缓存或在片共享内存以使用这种芯片平行数据高速缓冲存储器在GPU上直接存储使用过的信息。GPU上存储的信息,可以允许多个计算线程度很慢的非芯片型动态随机存取存储器(DRAM)提供数据。这种技术优势可以度远远超过了使用传统架构或使用有限图形APIGPU的“基于GPU的通用计算"的计算方法。毕业设计说明书(论文)3.4GPU的发展前景括窗体)都作为一个3D的实体进行处理,可以实现各种效果诸如半透明、3D等软件也是3D的,这些都需要一个强有力的GPU以获得更好的性能和显示效适量图形(如复杂的城市/测绘地图和建筑结构图)的时候,GPU可以使得现时显示速度也不会降低。一种必需。毕业设计说明书(论文)第四章可分离卷积技术所谓卷积是在信号与线性系统的基础上或背景中出现的,脱离这个背景单独谈卷积是没有任何意义的,除了那个所谓褶反公式上的数学意义和积分(或求和,离散情况下)。信号与线性系统,讨论的就是信号经过一个线性系统以后发生的变化(就是输入、输出和所经过的所谓系统,这三者之间的数学关系)。所谓线性系统的含义,就是这个所谓的系统,带来的输出信号与输入信号的数学关系式之间是线性的运算关系。但是,实际上都是要根据我们需要待处理的信号形式,来设计所谓的系统传递函数,那么这个系统的传递函数和输入信号,在数学上的形式就是卷积关系。卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。这里用F(u,v)和H(u,v)分别表示f(x,y)和h(x,y)的傅里叶变换,卷积定理f(x,y)*h(x,y)F(u,v)H(u,v),双箭头表示左边的表达式(空间域卷积)可以通过对右边表达式(在频率域的F(u,v)H(u,v)乘积)进行反傅里叶变换获得。相反右边表达式可以通过对左边表达式进行正向傅里叶变换获得。类似的结果f(x,y)h(x,y)→F(u,v)*H(u,v)这两个结论构成了卷积定理1。一维卷积公式为:y=g*x,卷积积分:,它所具有的特性有交换性、加法的分配律、结合律、求导等。离散一维卷积公式为:对于两个长度分别为m和n的序列x(i)和g(j)有:上式给出了一个长度为N=m+n-1的输出序列。二维卷积的表达式为:毕业设计说明书(论文)毕业设计说明书(论文)第18页4.2图像滤波所谓滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。它是从含有干扰的接收信号中提取有用信号的一种技术。图像滤波总体上讲包括空域滤波和频域滤波。频率滤波需要先进行傅立叶值得来的。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)91。线性平滑滤波器去除高斯噪声的效果很好,且在大多数情况下,对其它类滤波器.非线性滤波器也可以是空间不变的,也就是说,在图像的任何位置上可以进行相同的运算而不考虑图像位置或空间的变化11。图像卷积滤波是一种可以用于广义的图像处理的方法,可以用于各式各样经行处理。而我们在NVIDIACUDA中实现可分离卷积滤波可以对图像卷积实如果二维离散信号f(x,y)作为输入,那么线性系统的输出g(x,y)可用下式表示,式中h(x,y)称为系统的冲击响应。上式的右端称为二维卷积,该系统可称为二维线性系统或二维滤波器。如果二维滤波器在x,y<0时,满足h(x,y)=0条件,则称为可实现的因果系统。在满足下式时此二维滤波器是稳定的。当冲激响应可用下式表示时则此二维滤波器称为可分型(separable),否则称为不可分型。当滤波器的输入也是可分时,即它的输出也可分解为二个一维卷积的乘积,即通过上式的方法可以说明离散二维卷积具有可分离性,它可以将二维卷积转化为两个一维卷积计算,从而减少运算量,提高运算效率。这里我们主要采用高斯核在GUP上来完成可分离卷积滤波。由于高斯函数的可分离性,较大尺寸的高斯滤波器可以得以有效地实现。二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积。因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不毕业设计说明书(论文)第20页第五章基于GPU的二维图像卷积实现5.1.1高度多线程协处理器被视为一个能够并行处理很多线程的一个计算设备。它作为一个CPU或主机的一个主要协处理器,换句话说,当在主机上运行的高密度计算时将数据并行分担到GPU上处理。更确切地讲,部分应用程序针对不同的独立的数据运行很多次就可以被独立出来成为一个新的功能,即该设备的不同线程。这种功能是通过该设备的指令集编译及产生的程序结果,称之为内核,可以下载到设备上。主机和设备都有自己的DRAM,分别称之为主机内存和设备内存。通过适当的API接口利用该设备的高性能直接存储引擎将一个DRAM上的数据拷5.1.2线程批处理一个线程块是一批可以相互通信、有效共享数据的线程集合,通过某些共享内存同步执行,以协调内存访问。更确切地讲,在内核中可以指定同步点,在线程块中,线程可以随时中止到所有的线程都达到这个同步点。为(x,y)线程ID为(x+y,D),一个大小为(D,D,,D₂)的三维块,线程下标为(x,y,z)线程ID为(x+y+z,D,D)。一个块容纳的线程数量是有限的,然而,执行同一个内核的具有相同维数和大小的块聚集成一个网格,这样,执行同一个内核的线程总数量会增大。这样做的代价是减少了线程间的通信,因为在同一网格中不同块中的线程间不能通信与同步。这种模式使得内核高效运行,不需要在并行能毕业设计说明书(论文)第21页力不同的设备上进行重新编译。一个设备如果并行能力较低它会逐一运行网格中的块;如果并行能力较高它会并行运行所有块,通常是这两种情况相结合。在网格中,每个块由块ID标识,块ID是块在网格中的编号。块ID有助于解决复杂的寻址问题。一个应用程序用一个二维数组来指定一个网格,主机分派了一序列的内核运算到设备上。每个内核作为组织成线程块5.1.3存储器模型储器进行读取,如图5-1所示:毕业设计说明书(论文)图5-1存储器模型第23页5.2硬件实现5.2.1在片共享存储器(SIMD单指令多数据)多处理器组设备的实现如图5-2所示的一组多处理器。每个多处理器都采用单指令多但操作不同的数据[1][15]。每个多处理器的在片存储器有以下4种类型:■每个处理器有一组32位局部寄存器。■一个并行数据缓冲器或共享存储器,由所有处理器共享从而实现共享存■一个只读常量缓冲器,由所有处理器共享,加速从常量存储空间读取的速度,它可以看作是设备存储器的只读区。■一个只读结构缓冲器,由所有存储器共享,加速从结构存储空间的读取速度,它可看作是设备存储器的一个只读区域。局部和全局存储空间被看作设备存储器的读写区域,且不能被存于硬盘。毕业设计说明书(论文)第24页5.2.2执行模型线程块栅格在设备上通过使用时间片执行多处理器上的一个或多个块来执行;每个块被分成SIMD线程组称为warp,每个线程组包含相同数量的线程,线程数量称为线程组大小,并由多处理器以SIMD模式执行;线程调度程序周期的由一个线程组转换至另一个线程组使多处理器的计算资源的使用最大化。半个线程组可以是线程组的第一半也可以是第二半。程ID号递增,0号线程包含在第一个线程组中。毕业设计说明书(论文)每个线程使用的寄存器数与块内线程数的乘积大于多处理器内寄存器的总数,该进程块不能被执行,相应的核心程序也会被取消。多个块可由同一个多处理器通过分配多处理器的寄存器和块间共享存储器并发处理。或共享存储器的存取相一致。一栅格内的两个不同块上的线程之间在网格执行期间不能通过全局存储器进行安全通信。若一个非原子指令的执行通过一个线程组写入到位于全局或共享存储器5.2.3计算能力设备的计算能力由主版本号和副版本号决定。FX5600/4600,和Teslasolutions的计算能力为1.x(它们的主版本号为1)。8800系列,QuadroFX5600/4600,和Teslasolutions的计算能力是1.0版 (它们的副版本号为0)GeForce8600和8500系列的计算能力是1.1版。5.2.4多设备多GPU的使用如CUDA(统一计算设备架构)设备,只有当这些GPU类型都相同时,应用程序才能在多GPU系统上运行。然而若系统在SLI(控制长度指示器)模式下,所有的GPU在驱动栈底层中断,只有一个GPU可用作CUDA板关闭。毕业设计说明书(论文)第26页5.2.5状态转换模式转换时(用NVIDIA控制面板或Windows的显示控制面板),它所需的存储空间随之改变。例如:若用户把显示器分辨率由1280×1024×32位变为1600×1200×32bit,系统必须把7.68MB用在主界面上而不是5.24MB。(全屏图像反混沌应用软件应用的运行主界面需更大的显示存储器)在Windows操作系统下,可能引起显示模式转换的事件包括进行全屏DirectX应用,按Alt+Tab键退出全屏DirectX显示,或按Ctrl+Alt+Del锁住计算机。若模式转换增加了主界面所需存储器数,系统将拆用专门分配给CUDA使用的存储器,这将引起这些应用的崩溃。在图像处理中卷积滤波只是一个在围绕输出像素中带有输入像素的滤波权结果。这个数积是一个并行操作它非常适合在高平行硬件上运行,例如GPU。图5-3为卷积滤波方法的基础¹41。1574422322241115211322221234155121322千311CCC2118图5-3卷积模型基础5.3.1分离滤波通常一个二维卷积滤波需要n*m输出像傣点,n和m分别为滤波器的宽度和高度。可分离滤波是一个特殊的类型的滤波器,它可以表示为两个一维空间的滤波器,一个是图像的行,一个是图像的列。一个可分离卷积滤波器可以将数据分成两个连续的一维空间卷积运算,因此,每个输出像傣只需要n+m个级数。例如,申请一个数组数据就相当于申请两个一个维数组01]。可分离滤波器在有着更好的适应性,另外它还可以降低算法的复杂度和每个数据点的带宽的估计。在CUDA中简单的执行卷积的方法是将一个图像块导入共用寄存器阵列中,对该块中的像素按照滤波器的大小进行分块点乘,并将这些点乘所得的和写入输出和写入输出图像的设备内存中。每个线程块处理一个图像块。每个线程产生一个输出像傣信号。具体如下图5-4所示。这里来自图像的一个像傣块被导入到公共存储器的队列中。处理和计算一个输出像傣(红色),一个输入图像毕业设计说明书(论文)区域(桔黄色)乘以用滤波核(紫色)的元素返回的值是总和。将结果输出像傣从新写回到图像中。田X2图5-4一个Naive卷积算法的像傣和外围像傣进行滤波。如图5-5。毕业设计说明书(论文)X图5-5改进后的Naive卷积算法5.3.4避免空闲的线程如果一个线程被用于每个像傣导入共用存储器中,于是导入外围像傣的线大半径核心的滤波器来说浪费会非常高。如图5-6。毕业设计说明书(论文)第30页我们可以通过降低每个块的线程的总数来降低空闲线程的总数或用每个线程导入多倍的像傣到共用存储器中。例如:如果我们用一个垂直的纵列并且和图像块宽度相同来处理,我们在共用存储器上有一个48×48的像傣区域,但只有16×48的线程。我们将分三块读取数据,如图5-7。在滤波计算过程中,一个线程的三分之一是活跃的胜于九分之一。因为导入时带宽有限,执行时不能被接受。这样可以更进一步的降低线程块到16×16,和将图像划分为九个正方形像傣块。这个可以保证在运算阶段所有的线程可以被利用。注意:为了最佳的效率一个块中线程的数目必须是数倍于线程组的大小。如果在导入阶段外围没有线程块一样的宽广,我们将终止一些线程块。如图5-8。毕业设计说明书(论文)第31页5.3.5可分离滤波增加效率除了通过分片降低线程空闲数目,我们可以降低多于的数据的导入,通过划分处理成两种方法。一个是完成每个二维的可分离图像滤波;另一个是由于每个块与相邻块之间的交迭在图像外围宽度区域内部的每个像傣将被导入九如果我们将计算分离成水平和垂直部分,在每个路径写入一个全局存储器。每个像傣最多被导入六次,用一个小块16×16,这个不能得到任何事情。正真的好处,不再需要导入外围的顶部和底部(水平)像愫。这样允许每个线程块中导入更多的像傣。我们限制线程块的大小更胜于限制共用内存大小。为了完成更高的效率,每个线程必须处理超过一个像素。我们可以增加图像块的宽度处理,通过一个线程块更多的柔和的利用这些可分离的方法,如图5-9。5.3.6行滤波在导入和处理阶段中,每个活动线程只导入或输出一个像素点。在计算阶段,每个线程在2倍滤波器半径加1的宽度上循环,将每个像素与常数内存中相应的滤波器系数相乘。每半组(warp)中的每个线程均访问相同的常地址,因此不会有由于常量内存组冲突。同样,连续的线程总是访问连续的共享内存地址,因此同样不会发生共享内存组冲突¹4]。如图5-10。第32页图5-10行滤波TlesinTlesinhorlzontadrectiorimapowla/COLUMN_TLE_W图5-11列滤波5.3.7列滤波列滤波动作的运行与行滤波动作非常相像。主要的区别是,线程ID按照滤波区域的垂直方向递增,而不是沿着滤波区域。如同在行滤波动作中一样,一个半卷中的线程总是访问不同的共享内存组,但是下一个/前一个地址的计算意味着增加/减少COLUMN_TILE_W,而不是仅仅1。在列滤波动作中,导入阶段中我们没有缓慢的“联合校准”线程,因为我们假设瓦片宽度是联合读入大毕业设计说明书(论文)第33页小的倍数。为了减小边缘相对于输出像素点的比例,我们希望图像瓦片(slice)能尽可能高,这样才能得到我们目标的合理的共享内存使用效率,而对于窄图像瓦片则尽可能达到16列4]。如图5-11。毕业设计说明书(论文)5.4可分离卷积核的心算法5.4.1GPU可分离卷积核心算法行卷积滤波内部核心循环:列卷积滤波内部核心循环:for(intk=-KERNEL_RADIUS;k<=KERNEL_RADIUS;k++)data[smemPosd_Kernel[KERNEL_RADIUS5.4.2CPU可分离卷积核心算法行卷积滤波内部核心循环:{for(k=-kernelR;k<=kernelR;k++){if(dsum+=h_Data[y*dat}}列卷积滤波内部核心循环:intfor(x{for(k=-kernelR;k<=kernelR;k++){if(dsum}h_Result[y*dataW+毕业设计说明书(论文)第36页5.5具体算法实现方法开始开始读bmp文件返回运行界面选定C:\TIHDOTS\systen32\cnd.exe-口×导入图片10.bmp导入图片11.bmp导入图片12.bmp图片导入成功!分别在GPU和CPU上作卷积运算,并存储数据图片导入成功!分别在GPU和CPU上作卷积运算,并存储数据图片导入成功!分别在GPU和CPU上作卷积运算,并存储数据图片导入成功!分别在GPU和CPU上作卷积运算,并存储数据图片名称大小GPU上卷积速率CPU上卷积速率GPU时间是CPU上时间的多少倍××39.438591像素/每秒41.156021像素/每秒41.804906像素/每秒毕业设计说明书(论文)第37页卷积核半径GPU卷积速率(像素/秒)CPU卷积速率(像素/秒)GPU时间/CPU时间123456789卷积核半径GPU卷积速率(像素/秒)CPU卷积速率(像素/秒)GPU速率/CPU速率123456789毕业设计说明书(论文)第38页结果分析:我们这里导入十二bmp图片,在GPU和CPU上对其作卷积运算,并将结果一起显示出来。我们只取其中一组数据(图片大小为:800×600)作分析。由表1做了比较,并生成图5-14。是GeForce8400GS采用了16个流处理器,而GeForce8800GT采用了112个流处理器。高运行速率。毕业设计说明书(论文)第39页11第40页0图5-15不同版本的GPU运行时间第41页第六章总结随着计算机软硬件技术的发展,应用范围越来越广泛,当今人们需求也随之提高,需要性能更高更快,使用更方便,效果更逼真的产品。图像处理核心器件的发展成为了必要。本论文主要讨论了在GPU下如何实现可分离卷积滤波算法并与CPU下实现卷积算法作了比较。相关工作总结如下:1.熟悉VisualStudio2005下编程和运行C程序方式。3.翻译文献NVIDIACUDAComputeUnifiedDeviceArchitecture。5.最终结果:由于GPU采用的是SIMD架构,采用并行计算。它非常适合用于处理大量数据诸如图像、音频的这类任务。我们这里在GPU上作可分离卷积运算可以可以图像处理速率,正常是CPU上运行速率的几十到几百倍。由于本人时间有限,这里我们没有对图像卷积进行逆变换,没有对其速率做分析比较,需要进一步完善。第42页本论文是在导师的悉心指导下完成的。老师渊博的专业知识,严谨的治学态精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴最后,向所有关心和帮助过我的领导、老师、同学和朋友表示由衷的谢意!衷心地感谢在百忙之中评阅我的论文和参加答辩的各位老师![2]RafaelC.Gonzalez&&RichardE.Woods.数字图像处理[M].电子工业出版社,[3]高文.多媒体数据压缩技术[M].电子工业出版社.1994.4.[4]张旭东.图像编码基础和小波压缩技术:原理、算法和标准[M].清华大学出版社.2004.3.[5][美]YaoWang.视频处理与通信[M].电子工业出版社.2003.6.[6]丁玉美,高西全.数字信号处理[M].西安电子科技出版社.2006.7.[7]求是科技.VisualC++数字图像处理典型算法及实现[M].人民邮电出版社.[11]DavidS.Taubman&&MichaelW.Marcellin.JPEG2000图像压缩基础标准和实践[M].电子工业出版社.[12]新一代视频压缩编码标准—H.264/AVC[M].人民邮电出版社.2005.5.人民邮电出版社2006.1.毕业设计说明书(论文)附录A相关的数学变换公式傅立叶变换公式连续的一维傅立叶变换的定义:一维傅立叶反变换定义:F(u)包含了正弦和余弦项的无限项的和,u称为频率变量,它的每一个值确定了所对应的正弦-余弦对的频率。连续的二维函数的傅立叶正变换:二维函数的傅立叶逆变换:一个二维傅立叶变换可以用二次一维傅立叶变换实现,具体推导如下:离散傅立叶变换公式一维离散傅立叶正变换:一维离散傅立叶逆变换:二维离散傅立叶变换:正变换:反变换:对于N×N像傣正变换:反变换:快速傅立叶变换公式离散余弦变换(DTC)设离散序列f(x),x=0,1,…,N-1,为一离散序列,根据下式延拓成偶对称序列f,(x):且f(x)=f、(-x-1)其中x=-N,…,0,…,N-1。f.(x)是关于为中心的偶对称序列代入在范围内作2N点的傅立叶变换:余弦变换的变换核为:表示成矩阵形式为:(其中各列模为1)定义偶余弦变换(EDCT)和逆变换为:毕业设计说明书(论文)第47页二维余弦变换:二维余弦变换具有可分离性:表示成矩阵形式:毕业设计说明书(论文)第48页附录B可分离卷积的部分代码#ifdef_WIN32#endifintheight;intxPelsPerMeter;intyPelsPerMeter;第49页}printf("***BMPloade}fread(&hdr,sizeof(hdr}fread(&infoHdr,sizeof(infoHdprintf("***BMPloader}}fseek(fd,hdr.offset-sizeof(hdr)-sizeof(infoHdr),SEEK_CUR);for(y=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邢台学院《插画》2022-2023学年第一学期期末试卷
- 信阳师范大学《操作系统》2023-2024学年第一学期期末试卷
- 意外伤害和应急处理
- 西华大学《素描人像》2021-2022学年第一学期期末试卷
- 西北大学《素描实验》2021-2022学年第一学期期末试卷
- 西华大学《健康管理法律法规》2020-2021学年第一学期期末试卷
- 比选文件施工组织设计
- 《傅里叶小波变换》课件
- 一带一路产业发展环境透析、市场全景评估及发展趋势预测报告(智研咨询)
- 《灯具照明调研》课件
- 年产万吨天然饮用水生产项目可行性研究报告
- YY/T 0793.4-2022血液透析和相关治疗用液体的制备和质量管理第4部分:血液透析和相关治疗用透析液质量
- YS/T 682-2008钌粉
- GB/T 5976-2006钢丝绳夹
- 江村经济解读
- GB 142-2013坑木
- 数量关系课讲义
- 物品借用、归还登记表
- 艺术设计专业的职业生涯规划
- 2023年西藏开发投资集团有限公司招聘笔试题库及答案解析
- 部编版五年级语文上-句子专项课件
评论
0/150
提交评论