主权项 |
一种基于OpenCL的GPU加速分片双边滤波方法,其特征在于包括以下步骤:(1)、在主机端通过通用CPU,选择异构计算平台和其对应的计算设备,在该异构计算平台上创建上下文,并在该上下文中创建命令队列,得到异构架构;(2)、输入原始图像,主机端读取该原始图像数据到主机内存中,同时为处理后的图像数据分配主机内存;(3)、主机端利用高斯函数生成空域高斯模板,并将该模板存储在主机内存中;(4)、主机端在步骤(1)得到的上下文中创建多个缓存对象,分别用于设备端存储原始图像、处理后图像和空域高斯模板,通过所述命令队列将原始图像和空域高斯模板写入对应的缓存对象;(5)、利用OpenCL标准,对分片双边滤波算法进行并行化编程,将并行化后的分片双边滤波算法写成内核函数;(6)、在主机端将原始图像的宽度和高度、空域高斯模板半径和多个缓存对象设置为内核函数的参数;(7)、在主机端设置内核函数入列所需的维度数、每个维度上的工作项数和每个工作组处理的工作项数;(8)、主机端根据步骤(7)设置的参数,入列内核函数;(9)、设备端根据主机端生成的空域高斯模板确定搜索窗大小,搜索窗内的基于结构相似度进行计算的亮度权值作为值域高斯模板;(10)、设备端将原始图像对应的缓存对象中的数据、空域高斯模板和值域高斯模板进行归一化加权平均计算,得到处理后的图像数据,并将该图像数据写入其对应的缓存对象;(11)、主机端读取处理后图像对应的缓存对象,得到处理后的图像数据,并将该图像数据写到主机内存。 |