您的位置: 首页

JPEG2000核心算法的研究及DSP实现

2009-06-23 20:09:48 来源:作者:郭妍 孙龙杰


(3)图像数据的读写。由于本文工作主要完成针对图像的压缩功能,不涉及图像采集,所以在图像数据的输入输出上做了适当的处理。考虑到CCS的Simulator完全支持C/C++语言,因此原始图像数据的输入采用C语言中的头文件形式,小波变换模块,EBCOT算法模块采用存放在PC机的数据文件形式。本文主要采用头文件和二进制数据文件的形式,将图像的非文件头部分的所有数据通过“fprintf(fp,“%3d,”,image_in [i][j])”语句写到.h文件中。

(4)DWT的实现。由于DM642为定点处理器,不适合于浮点运算,所以本文选择LeGall(5,3)整数滤波器完成JPEG2000中的小波变换。在进行小波变换时,首先定义两个与图像块大小相等的存储缓冲器,一个是图像片数据的输入缓存Buf,一个是用来临时存放图像片数据经小波变换后的结果缓存TempBuf。每经过一级小波变换,图像片数据都要先后两次经过integer(5,3)的低通和高通滤波。TempBuf中保存的高通滤波数据经integer(5,3)滤波器处理后,得到HL子带和HH子带的小波变换系数。最后将变换结果存放到输入缓存Buf中。若要进行下一级分解,只需对Buf中LL子带进行同样处理。

(5)EBCOT算法的实现。EBCOT算法是JPEG2000编码系统中耗时最大的一个部分,因此对这一部分进行优化实现对整个系统的性能提高很有意义。在PC机上,EBCOT编码中的每个通道都是被独立处理的。因此,在DM642上实现的时候,本文采用并行性技术来优化代码,加快程序的执行速度,比如在取位平面数据的时候可以和构造上下文模型并行处理,但是并不是简单的并行处理,当要形成通道二的上下文模型时,其邻域的数据在处理通道一的时候己经被改变。这样做可以增加DM642功能单元的利用率,充分发挥出它的并行计算能力。

3.3 实验结果

本文实验基于Windows XP操作系统、CPU Intel Pentium(R)4 2.4GHz、512M内存、CCS编译环境,程序通过USB仿真器下载到DM642EVM开发板上进行,采用LeGall(5,3)小波,处理图像为512×512的lena和barbara图像。经测试,压缩比为16:1时编码器编码相应耗时如表1所示。

实验给出了lena图像在8:1、16:1、32:1三种压缩比下的重构图像,并分别给出了与原始图像的峰值信噪比,如图6所示。

图6 barbara图像编码图

表1数据表明,编码器基于DSP的编码耗时相比基于PC的耗时有所增加,是因为代码在DM642EVM硬件平台上运行时需要持续的通过USB仿真器和PC机交换数据,从而增加了时间的开销。从图6中的PSNR值可知,lena图像在较高压缩比下的重构图像仍具有较高的图像质量。就主观评价来讲,压缩比为8:1和16:1的重构图像与原始图像差别细微,视觉效果好;压缩比为32:1的重构图像略有失真。实验结果表明,移植到DSP上的JPEG2000编码算法代码仍具有良好的压缩性能。

4 结束语

为了实现对图像的高效压缩,在这里使用了DWT变换和EBCOT算法,并给出两点改进方法。通过将改进的算法移植到DSP开发板上,可以看出图像在高压缩比的重构图像仍具有较高的图像质量,结果表明移植到DSP上的JPEG2000编码算法代码仍具有良好的压缩性能,在图像压缩处理中有较好的尝试应用。

相关文章

深度阅读

热点活动

热点专题更多>>

英特尔2011教育峰会

在今年的峰会上,英特尔与国内近百所高校的专家学者们分享了制程工艺、高性能……

论坛精华更多>>

强烈推荐最新的一本 LabVIEW高级教程(2007...
【电子书】电磁测量原理及应用【PDG格式】