[发明专利]基于GPU加速的非局部平均滤波实时处理方法有效
| 申请号: | 201610370775.7 | 申请日: | 2016-05-30 |
| 公开(公告)号: | CN105931207B | 公开(公告)日: | 2018-08-10 |
| 发明(设计)人: | 赖睿;王维;孟灵非;杨银堂;周慧鑫;王炳建;秦翰林 | 申请(专利权)人: | 西安电子科技大学 |
| 主分类号: | G06T5/00 | 分类号: | G06T5/00 |
| 代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
| 地址: | 710071*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明公开了一种基于GPU加速的非局部平均滤波实时处理方法,主要解决了非局部平均滤波算法难以满足实时性要求这一问题。本方法利用GPU卓越的多线程并行数据处理能力,使用OpenCL平台,在GPU上并行地实现图像的滤波处理。在滤波过程中,对中心图像片和相似图像片进行投影,并且利用拆分核函数、优化访存等方法有效减少了计算量和数据读取时间。与现有的非局部平均滤波方法相比,本发明能够在保证去噪性能的前提下,对VGA(分辨率为640*480)和SVGA(分辨率为600*800)图像进行实时的非局部平均滤波处理,较之传统的串行处理方法,本方法取得了最高达111倍的加速比。 | ||
| 搜索关键词: | 基于 gpu 加速 局部 平均 滤波 实时处理 方法 | ||
【主权项】:
1.一种基于GPU加速的非局部平均滤波实时处理方法,包括如下步骤:(1)搭建环境;(1a)调用开放运算语言OpenCL提供的应用程序编程接口API进行平台查询,获取该平台上可用的设备对象;(1b)调用开放运算语言OpenCL提供的应用程序编程接口API依次创建上下文、创建命令队列、构建程序对象、创建2个内核对象;(2)读取待处理图像;将中央处理器CPU作为主机端读取待处理图像,将读取的待处理图像保存到中央处理器CPU的内存;(3)按照下式,计算半径为Z的一维高斯模板:
其中,W(r)表示一维高斯模板W上与该模板中心点相距r处的值,W表示一维高斯模板,r表示一维高斯模板上任意点到中心点的距离,r∈(‑Z,Z),∈表示属于符号,Z表示一维高斯模板的半径,e表示自然对数,σ表示高斯模板的标准差;(4)拷贝高斯模板和待处理图像;(4a)在图形计算单元GPU中申请用于保存高斯模板和待处理图像的显存;(4b)将高斯模板拷贝到显存的常量存储器中,将待处理图像拷贝到显存的全局存储器中;(5)执行第一个内核对象;(5a)给待处理图像的每一个像素点分配一个工作项;(5b)给执行第一个内核对象的每一个工作组分配256个工作项;(5c)给第一个内核对象设置4个参数,分别为:待处理图像的长度,待处理图像的宽度,拷贝进GPU显存的待处理图像和高斯模板;(5d)将图形计算单元GPU全局存储器中的待处理图像缓存到局部存储器中;(5e)从缓存到局部存储器中的待处理图像依次读取21×21个像素点,组成搜索窗;(5f)读取缓存到局部存储器中待处理图像的一个小图像片,该小图像片是以搜索窗中心像素点为中心,大小为d×d的二维搜索窗中心图像片,d=2×Z+1,Z表示高斯模板的半径;(5g)读取缓存到局部存储器中待处理图像的一个小图像片,该小图像片是以搜索窗下半部分每一个像素点为中心,大小为d×d的二维搜索窗下半部分相似图像片,d=2×Z+1,Z表示高斯模板的半径;(5h)按照下式,对二维搜索窗中心图像片和二维搜索窗下半部分相似图像片进行投影,得到一维搜索窗中心图像片和一维搜索窗下半部分相似图像片:![]()
其中,
表示以目标像素点(a,b)为中心的二维搜索窗中心图像片IPd×d(a,b)经过投影后得到的一维搜索窗中心图像片,d=2×Z+1,Z表示高斯模板的半径,y表示二维搜索窗中心图像片IPd×d(a,b)的列序号,y∈[b‑Z,b+Z],∈表示属于符号,∑表示求和操作,
表示以像素点(i,j)为中心的二维搜索窗下半部分相似图像片ISd×d(i,j)经过投影后得到的一维搜索窗下半部分相似图像片,y表示二维搜索窗下半部分相似图像片ISd×d(i,j)的列序号,y∈[j‑Z,j+Z];(5i)按照下式,计算一维搜索窗中心图像片和一维搜索窗下半部分相似图像片高斯加权的欧式距离:
其中,Temp(i,j,a,b)表示一维搜索窗中心图像片
和一维搜索窗下半部分相似图像片
高斯加权的欧式距离,W表示高斯模板,
表示卷积操作,
表示欧氏距离操作;(5j)在图形计算单元GPU的全局存储器中创建一个数组,将高斯加权的欧氏距离保存在该数组里;(6)执行第二个内核对象;(6a)给待处理图像的每个像素点分配一个工作项;(6b)给执行第二个内核对象的每个工作组分配256个工作项;(6c)在图形计算单元GPU中申请用于存放滤波后图像的显存;(6d)给第二个内核设置4个参数:待处理图像的长度,待处理图像的宽度,拷贝进GPU缓存的待处理图像和滤波后图像;(6e)将图形计算单元GPU的全局存储器里的待处理图像缓存到局部存储器;(6f)从缓存到局部存储器中的待处理图像依次读取21×21个像素点,组成搜索窗;(6g)按照下式,计算搜索窗上像素点的权值:
其中,ω(i,j,a,b)表示搜索窗上像素点(i,j)的权值,e表示自然对数,h表示衰减因子,Temp(i,j,a,b)表示一维搜索窗中心图像片
和一维搜索窗下半部分相似图像片
高斯加权的欧氏距离;(6h)按照下式,计算搜索窗中心像素点经过非局部平均滤波后的像素值:
其中,
表示搜索窗中心像素点的像素值y(a,b)经过非局部平均滤波后的像素值,∑表示求和操作,(i,j)表示搜索窗上像素点,∈表示属于符号,Ω(a,b)表示以搜索窗中心像素点(a,b)为中心的21×21大小的邻域,ω(i,j,a,b)表示搜索窗上像素点(i,j)的权值,y(i,j)表示像素点(i,j)处的像素值;(6i)用搜索窗中心像素点滤波后的像素值赋给步骤(6c)申请的滤波后图片的对应像素点,得到图形计算单元GPU中的滤波后图像;(7)保存结果图像;从图形计算单元GPU拷贝滤波后图像,保存于中央处理器CPU内存中。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610370775.7/,转载请声明来源钻瓜专利网。





