[发明专利]一种用GPU通过分块实现快速小波变换的方法有效
申请号: | 201310055242.6 | 申请日: | 2013-01-31 |
公开(公告)号: | CN103198451A | 公开(公告)日: | 2013-07-10 |
发明(设计)人: | 李云松;宋长贺;雷杰;刘凯;郭杰;王柯俨;张静;吴宪云 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06T1/20 | 分类号: | G06T1/20 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 通过 分块 实现 快速 变换 方法 | ||
1.一种用GPU通过分块实现快速小波变换的方法,包括如下步骤:
(1)拷贝原始图像:
在图形处理单元GPU中分配两块全局内存A和B,将原始图像拷贝到全局内存A中;
(2)数据分块:
将原始图像按照二维网格的方式分成宽24像素、高24像素的图像块;
(3)数据扩展:
将每个图像块向其四周方向各延伸四个像素,处于边缘不能延伸的,则进行对称扩展,得到扩展图像块;
(4)拷贝数据到共享内存:
4a)在图形处理单元GPU中分配与扩展图像块个数相同的block,每个block对应一个扩展图像块;
4b)为每个block分配大小为33乘32的共享内存以及32乘32个线程;
4c)将每个扩展图像块拷贝到与其对应的block的共享内存中,每个线程完成一个像素点的拷贝,并将共享内存中每一行的最后一个存储空间保留不用;
(5)行变换:
对于每个block,使用其中的32个线程对共享内存中的数据进行行变换,每个线程完成扩展像素块的一行数据的变换;
(6)列变换:
对于每个block,使用其中的32个线程对共享内存中的数据进行列变换,每个线程完成扩展像素块的一列数据的变换;
(7)取消数据扩展:
对于每个block,将变换后的扩展图像块上下各四行、左右各四列的数据排除,得到一个24乘24的数据块;
(8)拷贝数据块:
8a)将每个block的数据块拷贝到全局内存B中,拷贝的过程中进行尺度变换;
8b)待所有的block拷贝完成后,将全局内存B中的数据拷贝至主机内存中,释放图形处理单元GPU中的两块全局内存A和B。
2.根据权利要求1所述的一种用GPU通过分块实现快速小波变换的方法,其特征在于:步骤(2)中所述数据分块在图像宽度或高度不满足24整数倍数的情况下,对图像最右方或最下方的不足24乘24的图像块进行对称扩展,使其成为24乘24的图像块。
3.根据权利要求1所述的一种用GPU通过分块实现快速小波变换的方法,其特征在于:步骤(5)中所述的行变换是指,在行变换过程中每行数据只进行提升操作,不进行尺度变换,不进行对称扩展。
4.根据权利要求1所述的一种用GPU通过分块实现快速小波变换的方法,其特征在于:步骤(6)中所述的列变换是指,在列变换过程中每列数据只进行提升操作,不进行尺度变换,不进行对称扩展。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310055242.6/1.html,转载请声明来源钻瓜专利网。