发明名称 基于OpenCL的GPU加速分片双边滤波方法
摘要 本发明提出了一种基于OpenCL的GPU加速分片双边滤波方法,用于解决现有分片双边滤波方法中存在的滤波效率低和通用性差的技术问题,实现步骤是:1.搭建异构架构;2.主机端读取原始图像到主机内存中,为处理后图像分配主机内存;3.主机端生成空域高斯模板;4.主机端创建缓存对象;5.写内核函数;6.主机端设置内核参数;7.主机端设置内核入列所需参数;8.主机端入列内核函数;9.设备端计算值域高斯模板;10.设备端归一化加权平均计算,将处理后图像数据写入对应缓存对象;11.获取处理后图像数据。本发明滤波效率高,通用性强,可实现对高分辨率图像的实时处理。
申请公布号 CN105957028A 申请公布日期 2016.09.21
申请号 CN201610260467.9 申请日期 2016.04.25
申请人 西安电子科技大学 发明人 赖睿;李吉昌;杨银堂;秦翰林;周慧鑫;王炳健
分类号 G06T5/00(2006.01)I 主分类号 G06T5/00(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 韦全生;王品华
主权项 一种基于OpenCL的GPU加速分片双边滤波方法,其特征在于包括以下步骤:(1)、在主机端通过通用CPU,选择异构计算平台和其对应的计算设备,在该异构计算平台上创建上下文,并在该上下文中创建命令队列,得到异构架构;(2)、输入原始图像,主机端读取该原始图像数据到主机内存中,同时为处理后的图像数据分配主机内存;(3)、主机端利用高斯函数生成空域高斯模板,并将该模板存储在主机内存中;(4)、主机端在步骤(1)得到的上下文中创建多个缓存对象,分别用于设备端存储原始图像、处理后图像和空域高斯模板,通过所述命令队列将原始图像和空域高斯模板写入对应的缓存对象;(5)、利用OpenCL标准,对分片双边滤波算法进行并行化编程,将并行化后的分片双边滤波算法写成内核函数;(6)、在主机端将原始图像的宽度和高度、空域高斯模板半径和多个缓存对象设置为内核函数的参数;(7)、在主机端设置内核函数入列所需的维度数、每个维度上的工作项数和每个工作组处理的工作项数;(8)、主机端根据步骤(7)设置的参数,入列内核函数;(9)、设备端根据主机端生成的空域高斯模板确定搜索窗大小,搜索窗内的基于结构相似度进行计算的亮度权值作为值域高斯模板;(10)、设备端将原始图像对应的缓存对象中的数据、空域高斯模板和值域高斯模板进行归一化加权平均计算,得到处理后的图像数据,并将该图像数据写入其对应的缓存对象;(11)、主机端读取处理后图像对应的缓存对象,得到处理后的图像数据,并将该图像数据写到主机内存。
地址 710071 陕西省西安市太白南路2号