论文部分内容阅读
模糊技术常被应用于艺术照的后期美化处理和图像滤波降噪中,对图像进滤波可以达到美化或降噪的效果。与单张图像处理相比,视频处理所涉及的数据量较大,时间复杂度较高。本文选取的高斯模糊是模糊算法中的一种,其算法并行度较高,相比其他模糊算法更适合做并行计算优化。而在大数据量的视频处理中,尤其是当高斯核选取较大时,程序的时间复杂度较高。本文针对这一问题提出了在GPU上实现高斯模糊算法的方案。随着近年来GPU的飞速发展,作为图形处理器,GPU除了在图形处理中有着出色表现,还在大规模的并行运算中发挥着十分重要的作用。如今芯片制造技术日益成熟,单核处理器的发展已逐渐到达瓶颈,因此无论是传统CPU还是图形处理器GPU都转向多核心的趋势发展。在许多并行计算应用中,GPU相比传统CPU而言有更出色的表现,在许多通用计算领域,基于GPU的计算方案能获得更高的执行效率。然而目前的GPU动辄高达几百乃至上千的运算核心,面对这种并行构架,传统的串行算法并不能满足要求。为了充分利用这些计算资源,发挥GPU的高效并行运算能力,需要对其设计专门的并行算法,于是GPGPU应运而生。OpenCL是一个兼容高效的GPGPU解决方案,是面向异构系统的并行程序设计的一种API,可以有效调配GPU的并行运算能力。OpenCL通过CUDA驱动发挥GPU的高性能并行运算能力,显著的提高了密集型数据的处理速度。OpenCL最初由苹果公司提出,并由Khronos Group完成了标准的制定和管理,是一个平台无关的开放式计算语言,它的出现使GPU强大并行计算能力应用于通用计算,为用户提供了一个开放式的,兼容的,高效的,易用的开发平台。本文对高斯模糊算法进行了GPGPU实现,提出了一种基于OpenCL的视频模糊处理的方案。首先介绍了研究背景和研究现状,然后简单介绍了GPU架构和GPGPU技术,进而引出了OpenCL。简单介绍了OpenCL的并行架构之后,对本文算法进行了OpenCL程序实现和后期优化。将高斯核模块抽取出来,然后Kernel程序模块完成高斯核与像素块之间的并行卷积运算。在进行实验发现加速效果不明显后,对OpenCL程序进行了分析和优化。从最后的实验结果中可以看到,优化后的OpenCL程序相比CPU上的算法方案有着明显提速,充分体现出GPU在大数据量并行计算中的优势。