论文部分内容阅读
2007年6月NVIDIA公司推出CUDA(统一计算设备架构)解决了GPU通用计算易用性问题,它不需要掌握计算机图像学知识和对应的API接口,程序开发语言在C语言的基础上进行扩展,降低了编程复杂性。随着对图像信息实时性和高效性处理的要求越来越高,需要处理的数据量越来越多,涉及到的计算过程越来越庞大。以至于计算性能无法满足实际应用中的性能要求。而利用GPU加速计算可以获得一个数量级的速度提升,因此GPU通用计算成为国内外研究的热点。如何利用GPU强大的计算和并行能力加速图像处理对图像信息实时性、高效性处理具有重要意义。本文在研究了已有的基于CUDA平台来实现图像加速处理技术的基础上,针对图像处理过程中的滤波环节,提出通过CUDA和OpenGL之间的互操作来进一步提升图像处理执行效率的方法。本文将图像处理的滤波算法和CUDA并行编程模型结合起来,利用CUDA和OpenGL的互操作来加速图像显示,其优势在于通过DMA(直接存储器存储)在显卡上快速读写像素数据而不涉及到CPU周期。图像数据在像素缓冲区的加载以及从像素缓冲区转移到纹理区这过程均由GPU来完成的。同时OpenGL安排DMA进行异步传输,CPU不必等到像素数据全部转移完成就可以执行其他任务,在很大程度上缩短了图像处理的时间,提高了图像处理的效率。最后通过对不同大小的图像进行处理,实验证明随着数据量的增加,GPU会取得很好的加速效果。