论文部分内容阅读
图像压缩是信息处理领域中很重要的研究方向,在图像存储和图像传输等方面都有着广泛的应用。目前存在着很多图像压缩的方法,主要包含基于预测的压缩方法和基于变换的压缩方法。在基于变换的压缩方法中,基于小波变换的SPIHT图像压缩算法是一种常用的图像压缩算法,该算法具有很好的渐进传输特性,可获得比较高的峰值信噪比,支持有损压缩和和无损压缩,同时具有计算复杂度较低、码率容易控制等优点。但是,传统的SPIHT图像压缩算在编码过程中使用了有序表,在遍历有序链表的过程中会占用算法的大量执行时间,最终导致算法效率降低,这样就很难满足一些对处理速度要求较高的情况。为了满足一些高效图像压缩的场合,本文试图利用GPU高性能计算架构CUDA来实现SPIHT图像压缩算法。首先,学习了并行计算理论和CUDA架构的基础,深入研究了SPIHT图像压缩算法,通过分析算法内部数据依赖性,提出了一种适用于GPU实现的并行SPIHT图像压缩算法。在该并行算法中,包含了基于分块思想的并行小波变换算法和基于编码树的并行SPIHT编码算法,实现了压缩算法中的数据并行。同时也分析了SPIHT图像压缩编码过程中任务之间的数据依赖关系,利用不同阈值编码时任务之间相对独立性来实现压缩算法中的任务并行。其次,本文提出了将并行SPIHT图像压缩算法移植到GPU上的CUDA实现方法,编写并行程序,通过GPU的数据并行计算功能以及使用流来实现任务并行计算功能。最后,本文针对GPU上丰富的存储器资源和I/O传输等方面对并行方案进行了优化,使得SPIHT图像压缩算法最终达到了8倍以上的加速比,大大提高了压缩算法的执行效率。