论文部分内容阅读
图像压缩技术作为实现数据压缩的有效手段一直是热门研究方向,离散小波变换DWT(Discrete Wavelet Transform)凭借其自身良好的局部特性和时频特性成为图像压缩技术的核心变换算法,具有重要的理论研究价值和实际应用意义。以保证图像质量、提高变换速度为主要研究目的,针对小波变换Mallat算法计算复杂度较高、占用内存空间大、访存次数多的特点,提出快速提升方案(Lifting scheme),并分析Mallat算法及提升方案的并行性,依据计算统一设备架构CUDA(Compute Unified Device Architecture),多线程高并行性的特点,实现了算法在CUDA平台上的并行加速。9/7小波变换Mallat算法是滤波器系数和图像数据均为浮点型的卷积运算,根据Mallat算法的特点以及提升方案的一般步骤,实现了9/7小波变换的提升方案,为了最大程度的保证图像信号的完整性,提升方案增加了一次预测和一次更新步骤。实验结果表明,采用提升方案的小波变换能够完美的恢复原图像,并且相对Mallat算法具有3~4倍的加速,提升方案取得了不错的效果。Mallat算法基于卷积运算,计算复杂较高,但适于并行实现,相邻两项的计算不存在相互依赖关系,可以发挥CUDA多核计算的优势。提出一种高并行度的实现方法,充分利用CUDA多线程并行实现Mallat卷积运算。实验结果表明,并行实现的Mallat算法取得了十几甚至几十倍的加速,且加速比会伴随图像分辨率的增大而不断提高。Mallat算法提升方案是原位计算,节约了内存开销,但变换过程中的相邻项之间存在依赖关系,并不适于CUDA并行实现。研究过程中发现,提升方案的依赖关系只存在于预测和更新步骤之间,预测或更新内部的并不存在相互依赖,据此提出一种并行提升方案,将预测步骤的并行和更新步骤的并行分离实现。实验结果表明,提升方案取得了令人满意的加速比,避免了相互依赖带来的并行困难。自适应方向提升小波ADL(Adaptive Directional Lifting)算法也是一种提升方案,有提升方向选择和分像素数据插值操作可以并行实现,但并行度不高,实验效果并不理想。