[发明专利]一种用GPU通过分块实现快速小波变换的方法有效
申请号: | 201310055242.6 | 申请日: | 2013-01-31 |
公开(公告)号: | CN103198451A | 公开(公告)日: | 2013-07-10 |
发明(设计)人: | 李云松;宋长贺;雷杰;刘凯;郭杰;王柯俨;张静;吴宪云 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06T1/20 | 分类号: | G06T1/20 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 通过 分块 实现 快速 变换 方法 | ||
技术领域
本发明涉及通信技术领域,更进一步涉及数字图像处理技术领域中一种用图形处理单元(Graphics Processing Unit GPU)通过分块实现快速小波变换的方法。本发明可用于各种图像压缩标准的实现,解决了小波变换速度慢的瓶颈,提供了一种在通用计算机上进行高速图像压缩编码的解决方案,也可用于各种其他数字设备的图像压缩编码。
背景技术
离散小波变换是数字图像处理领域最广泛使用的技术之一。联合图像专家组推出的JPEG2000图像压缩标准和太空数据系统咨询委员会推出的CCSDS图像压缩标准都使用了基于提升的离散小波变换。基于这些算法的图像压缩系统出现在学术、科研以及工业等领域,而研究这些算法的高效实现一直是各领域面临的重要任务之一。现场可编程门阵列FPGA、复杂可编程逻辑器件CPLD、特定用途集成电路ASIC都已经被用于实现高效的小波变换。这些硬件实现具有速度高,专用性强、功耗低等优点,可应用于各种便携式设备;但是它们的开发周期长,成本较高,在传统计算机领域,为了实现更为高效的小波变换,人们已开始研究使用图形处理单元加速的小波变换算法。
西安电子科技大学拥有的专利技术“一种用GPU实现快速小波变换的方法”(专利申请号:201010204236,公开号:101866493A)中阐述了一种基于行和列的小波变换快速实现的方法。该专利技术通过行列转置的方法,克服了图像每列数据存取效率低下的问题,从而提高了列变换的速度。但是,该专利技术仍然存在的不足是,列变换通过两次行列转置和一次行变换实现,数据要反复地与全局内存交互。然而,在图形处理单元GPU高度并行计算的环境下,对全局内存中的数据进行读写是非常昂贵的,因此限制了该方法所能达到的最佳性能。
发明内容
本发明的目的在于克服上述已有技术的不足,提出一种用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。
本发明与现有技术相比较,具有如下优点:
第一,由于本发明采用了重叠的扩展图像块来对原始图像进行分别处理,克服了现有技术简单地对图像分块导致的结果不精确的问题,使得本发明可以保证小波变换结果的准确性。
第二,由于本发明在图形处理单元GPU的高速共享内存中处理扩展图像块,使得每个图像块的数据都具有了更高的存取速度。
第三,由于本发明中行变换和列变换都在共享内存中进行,有效地避免了现有技术将行变换后的数据送回全局内存的操作,节省了处理时间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310055242.6/2.html,转载请声明来源钻瓜专利网。