基于GPU的图像处理0741227388,等级信息工程系,2007电子信息工程18邵阳学院毕业项目(论文)近年来,随着科学技术的飞速发展,GPU技术已经越来越成熟。 GPU技术在图像处理中具有不可替代的作用。在过去的二十年中,中央处理器已按照摩尔定律发展,不断提高性能并降低价格,为高性能计算提供了有效的支持。但是,自2003年以来,这种趋势发生了变化。增加的CPU频率带来了高功耗和高热量产生,使CPU频率停止在4 GHz上,并且朝着除增加频率之外的其他方向发展。我涉及的相关模块包括图像处理的GPU加速技术,GPU数字图像的并行处理以及基于GPU knn的设计。关键词:gpu;并行处理; knn design邵阳学院毕业设计(论文)II摘要近年来,快速发展也日趋成熟。 gpu gpu图像处理技术的作用必须持续20年,中央处理器持续以较低的价格提供性能,高性能的有效支持。但是,自2003年以来,趋势发生了变化,不断提高cpu高频高速率的方向。图像处理技术,加速了GPU数字图像处理并行GPU设计相关模块。关键字gpu;并行处理knndesign并行处理邵阳学院毕业设计(论文)III内容1. 1研究的目的和意义1. 2 GPU技术的研究和字塔模型表示。在底层,尽管处理的数据量很大,但是大多数算法的并行化程度相对较高,这是由于本地数据之间的相关性较小,并且知识推理和手动干预较少。当沿着金字塔结构移动到更高级别时,随着抽象程度的增加,大量原始数据减少,所需的知识和算法复杂度逐层增加,并且并行处理的难度逐渐增加。由于大多数图像处理算法都是在像素级别执行的,并且GPU SIMD并行流处理在像素级别的图像处理中具有明显的优势,因此特征级别和目标级别的处理无论是从数据的表达还是从算法本身的实现,很难实现GPU并行化。因此,本文重点介绍各种像素级图像处理操作的GPU并行化实现方法。邵阳学院毕业设计(论文)35 3. 3. 4数字图像GPU并行处理的基本过程和关键技术。现代GPU提供了两个可编程的并行处理组件,即顶点处理器和片段处理器。
使用GPU执行常规计算任务(例如图像处理)时,要做的主要工作是将要解决的任务映射到GPU支持的图形渲染管线。通常的方法是用顶点的位置,颜色,法线向量和其他属性或纹理和其他图形绘制元素来表达计算任务的输入数据,并将相应的处理算法分解为一系列执行步骤,并重新编写为GPU。顶点处理程序或片段处理程序,然后调用3D API执行图形绘制操作,调用片段程序进行处理;最后,保存在帧缓冲区中的绘图结果就是算法的输出数据,如图3. 1]所示。图3. 1遥感图像的GPU并行处理的基本流程尽管存在多种数字图像处理算法,并且具体实现过程也大不相同,但在使用GPU进行图像处理时仍需要解决一些常见的关键技术问题。并行处理。例如:数据的加载,反馈和计算结果的保存等。下面分析这些常见问题并提出相应的解决方案。 3. 3. 5数据加载在GPU的流编程模型中,必须以“流”的形式加载和处理所有数据,并通过抽象3D API进行访问。使用GPU进行图像处理时,最直接,最有效的数据加载方法是将要处理的图像打包为纹理,纹理在绘制四边形时进行加载和处理。同时,邵阳学院毕业设计(论文)36为了确保GPU上的片段程序可以逐像素处理纹理图像,必须将投影变换设置为正交投影。视点变换的视图区域与纹理大小相同,因此栅格化的每个片段(片段)和每个纹理单元(纹理元素)都具有一一对应的关系。
对于图像处理算法中的其他参数,如果数据量较小,可以直接通过接口功能进行设置;如果有很多参数,则还应将它们打包为纹理并传输到GPU。在打包过程中应充分利用纹理图像的R,G,B和A四个通道。通过调用3D API绘制带纹理的四边形,并激活GPU上的片段程序进行图像处理,来反馈和保存计算结果。 GPU片段着色器的直接渲染输出是一个帧缓冲区,它对应于计算机屏幕。上面的窗口传统上用于保存要在屏幕上显示的像素,但可用于将计算结果保存在GPU中-基于计算。尽管CPU可以通过3D API直接读取和写入此帧缓冲区,但是将渲染过程的结果从帧缓冲区复制到系统内存中进行存储,但是帧缓冲区的大小受窗口大小的限制,并且由于由于AGP总线的带宽限制(2. 1GB / s),从视频内存到系统内存的数据回读操作效率很低。它显然不适合图像处理应用,尤其是在中间计算结果的存储和反馈中,帧缓冲的使用将成为限制GPU性能的最重要瓶颈。针对上述问题,作者使用脱机渲染缓存Pbuffer作为输出缓冲区。 。 WGL_ARB_pbuffer扩展的Pbuffer OpenGL 1. 3版本提供了输出缓冲区,它通过在视频内存中而不是在帧缓冲区中打开一个不可见的数据缓冲区来保存片段处理器的输出结果。
如果结果仅是中间计算数据,则还可以使用渲染技术将Pbuffer中的数据绑定到纹理,以供下一个绘图的片段程序使用,从而减少了显存之间的数据以及系统内存整个数据流的传输是在GPU芯片内实现的,数据反馈速度得到了显着提高。尤其是当需要重复执行GPU时,可以构造两个Pbuffer,它们可以交替用作输入或输出纹理,从而产生所谓的“ Ping-Pong”方法,从而有效地避免了中间计算结果的回读操作。 3. 3. 6图像卷积运算的GPU并行化实验卷积运算是数字图像处理的常见局部运算。通过选择不同的卷积核,可以实现不同的图像处理效果。图像卷积运算定义为:其中,是卷积运算后的图像;是要处理的图像;是卷积核; T是一个常数,是卷积核中所有系数的总和。如果不为零,则T等于所有系数的总和,否则等于1。硬件平台为:Intel Core 2. 0GHz CPU,1GB系统内存,NVIDIA GeForce G0 7400 GPU,512MB视频内存。软件平台:Windows XP操作系统,CPU程序开发环境为Microsoft Visual C ++ 2005,3D渲染界面为OpenGL,扩展库为WGL_ARB_pbuffer,GPU序列开发语言为Cg。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-378292-1.html
爱你
我看过了