基于DSP芯片的超光谱图像压缩技术
时间:2015-12-21 01:52:11 所属分类:计算机技术 浏览量:
摘 要 基于DSP的超光谱图像压缩系统中,一方面需要寻找优秀的算法,另一方面需要结合DSP芯片的特点,选取合适设计方案,实现系统设计的功能。本文结合目前现状,重点介绍了算法的设计,以及DSP芯片的选取方法,并讨论了如何有效地优化系统。 关键词 DSP;图
摘 要 基于DSP的超光谱图像压缩系统中,一方面需要寻找优秀的算法,另一方面需要结合DSP芯片的特点,选取合适设计方案,实现系统设计的功能。本文结合目前现状,重点介绍了算法的设计,以及DSP芯片的选取方法,并讨论了如何有效地优化系统。 关键词 DSP;图像压缩;超光谱图像
1 引言 超光谱图像压缩技术是现代信息处理技术中一项尤为重要的技术,近几年来基于DSP的图像压缩技术成为业内焦点。然而,数据运算量大、处理数据突发性强是图像处理系统中最大的特点,尤其是超光谱图像,每幅图像一般有着上百层的光谱信息。同时,一方面,现有的JPEG、JPEG2000等一些标准算法并不适合超光谱图像压缩领域的要求,或者因为其算法的复杂度难于硬件实现等;另一方面,DSP芯片的飞速发展,各芯片的性能有差异,完成的功能也不同。因此,算法的寻找与芯片的选择,是系统设计的关键步骤,也是开发者十分关注的问题。2 系统的算法设计 图像压缩算法中,主要包括脉码调制、量化法、预测编码、变换编码、矢量量化、子带编码等。在现有图像编码方法进一步发展的同时,一些新的具有重要发展前景的图像编码方法如模型基图像编码方法,分形图像编码和神经网络方法等,取得了引人注目的进展并取得了不少研究成果。它们的显著特点是突破了常规编码技术所依据的信源编码理论的框架,效果更好。2.1 系统对算法的要求 目前,流行的图像压缩方法众多,至于这些方法哪些更好或者哪些不好,还很难评价,而且各个算法的压缩效率也是与具体的图像数据和DSP芯片密切相关,无法下统一的结论。但总的来说,在图像压缩技术中,大多是多种方法结合使用,很少有用单纯一种方法完成的。一般来说,压缩比越大,算法越复杂,实时压缩解压缩的困难程度越大,要求的硬件环境也越高。比如在可视电话中,若原图像格式采用QCIF(176×144),则原始图像有4.5Mb/s的数据量,若最后用28.8kb/S的MODEM在PSTN上传输,则要提供150多倍的压缩。当然,由于算法的复杂度增大,还需付出大量的软件和硬件代价。 对于不同的应用系统,算法有相应的要求。如遥感超光谱图像实时压缩系统中,一般要求是无损压缩,且芯片体积小,性能稳定等;而在视频图像压缩系统中,则要求较大的压缩比,即使丢掉一些信息也是允许的,且芯片处理速度要快,能够达到系统实时性的要求。即使在确定的系统中,选择合适的算法也有着重要的意义。比如采用 ADI公司Blackfin533系列DSP(定点DSP),当处理一幅大小为720×576的灰度图片时,采用改进后的DCT算法共耗时252ms。如果采用传统的DCT变换方法,仅DCT变换耗时就达到330ms。可见,算法的选择对系统的性能有着非常重要的作用。2.2 算法的选取 到2007年为止,基于DSP的图像压缩技术中,最常见的是变换编码和熵编码。前者通过变换,重新组织数据,使图像能量相对集中于较少的几个系数,而其他的系数值只具有很小能量,这样通过抑制能量小的系数,即可实现数据压缩,压缩方法是有损还是无损也由变换编码中是否丢弃一些高频能量来决定,如小波变换和离散余弦变换等;后者则是在编码过程中不丢失信息量,即要求保存信息熵,是根据消息出现概率的分布特性而进行的,是无损压缩编码。在超光谱图像压缩系统中,往往是要求无损或近无损,一般采用传统的预测编码(DPCM)方法,它不经过变换,直接探索像素与像素之间的相关性和波段与波段之间的相关性。一般在波段之间采用预测编码,波段内采用变换编码,去掉波段和像素之间的相关性,然后再采用熵编码。 对于DSP硬件系统来说,最擅长的工作是算法简单的加法和移位运算。如果需要保持较高的编码效率,则要尽可能采用运算简单,避免乘法、查找和判断的算法,尽量保持软硬件的流水线结构。因此,目前能在DSP平台实现的图像编码中,采用的算法大多具有这些特点。。 比如变换编码中的整数小波变换,乘法器占用很大的硬件资源,不利于芯片实现,但由于小波滤波器的系数是固定的,因此把乘法操作优化为移位寄存器和加法器操作,即只存在简单的移位和加法操作,速度很快,占用内存少,非常利于硬件实现。而熵编码中的算术编码,2001年就有人提出一种改进的Q-coder算术编码算法[2],采用重整化方法,可以用来解决硬件实现中的进位翻转问题,采用移位加来代替原算法中的乘法,可以在硬件花费较少的情况下显著提高算法的编码效率。3 系统的芯片选择 在系统设计过程中,选择DSP芯片是非常重要的一个环节。只有选定了DSP芯片,才能进一步设计其外围电路及系统的其他电路。超光谱图像压缩系统中DSP芯片的选择应考虑实际应用的需要而确定。 第一,要确定采用哪个公司或哪个系列的芯片。DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI 占有最大的市场份额。另外ADI公司也占有一定的市场,与TI公司相比,ADI公司的DSP芯片系统时钟一般不经分频直接使用,串行口带有硬件压扩,可从8位EPROM引导程序,可变成等待状态发生器等。由于工作时钟较高的原因,TI公司的DSP芯片在单芯片处理能力上优于ADI公司的产品,但是在多芯片集成处理上ADI公司的DSP芯片性能更好一些。其他如ALTEAR公司的产品也有着部分市场。例如,APEX20K系列的APEX20K200EFC484-2X器件,在H.264标准中,先对算术编码的结构做了改进,用查表代替了乘法操作,并采用流水线结构实现,它的算术编码器的速度可以达到0.2bit/cycle[3]。 图像压缩领域中,我国市场上最常见的是TI公司的C6000系列芯片。尽管C5000系列芯片也可用于图像处理系统,但满足不了实时性的要求。比如在指令周期为10ns的C5402上对一个1M大小的二进制数据流进行算术编码,需0.4s[4],若处理一副512*512*8的图像,最少需要800多秒,不能满足实际的应用。另外还有C8x系列多核DSP集成系统等,但由于价格昂贵和开发复杂也将被淘汰。 第二,确定选择定点或是浮点DSP。系统采用的数据格式决定了它所处理信号的精度、动态范围和信噪比,且不同数据格式的易用性和开发难度也不一样。目前定点DSP品种最多,处理速度为20~2400MIPS;浮点DSP基本由TI公司和ADI公司垄断,处理速度为40M~1GFLOPS。
浮点DSP和定点DSP相比,有以下几个方面的区别:首先,浮点运算DSP比定点运算DSP的动态范围要大很多。比如,对于处理8bit/pixel的灰度图来说,用16bit定点DSP即可;如果大于16bit/pixel,则需选用浮点DSP来捕捉更大的动态范围。其次,浮点DSP处理速度大大高于定点DSP,这一优点在实现高精度复杂算法时尤为突出。比如做JPEG标准这样复杂的算法,一般采用浮点DSP。2005年有人使用TI的C6711芯片,实现了JPEG算法,尽管处理时间为5~6秒,但若充分发挥芯片的潜能,处理速度还可以得到大幅度改善[5]。另外,浮点DSP的寻址空间比定点DSP大得多。这一方面为大型复杂算法提供了可能,另一方面也为高级汇编语言编译器、DSP操作系统等高级工具软件的应用提供了条件。 可以看出,浮点DSP的处理速度与精度、存储器的容量、编程的灵活性和方便性要好于定点DSP;但在功耗、成本、体积上定点DSP有它显著的优势,且易于实现,稳定性好。 第三,其他因素。除了上面的因素外,超光谱图像压缩系统选择DSP芯片还需综合考虑片内资源、开发工具、芯片价格、封装形式、质量标准、供货情况、生命周期等。尤其是对于芯片的体积,封装形式和生命周期等方面的要求,比一般的图像处理系统要高。 目前采用最多的,也是压缩性能较好的是整数小波变换和算术编码。其改进的算法有着不错的效果,且能用定点DSP实现,如TMS320C62x和C64x,尤其是对于整数小波变换,几乎所有的C6000系列都可以实现;但是对于比较复杂和需要查表一类的算法,采用浮点的比较多,如JPEG和JPEG2000标准算法,Huffman编码等等,则需要选用如C67x浮点DSP。例如,对一幅大小512×512,24 位真彩图作为标准测试图像,可选择TMS320C6711DSP(浮点DSP),若使用JPEG2000 标准进行压缩,则优化后的压缩时间约为 4.8s,解码时间约为 2.2s,压缩率为 20 倍,同时主观视觉效果良好[6]。4 系统性能优化 系统的性能优化包括软件优化和硬件优化。 在图像处理算法中,存在大量的循环操作,因此充分地利用软件流水线技术,能极大地提高程序的运行速度,还可以节约硬件成本,使系统变得简单,提高系统的稳定性。 例如,在模板匹配算法中,对于模板大小为 32×16,匹配范围为112×56,采用最小绝对差和判定法(SAD)进行逐点匹配,假设采用TMS320C6203芯片,所有的运算和操作都串行执行,且耗时都只1个 CPU 时钟周期,则总共需要512×5×3200=8192000个CPU时钟周期,耗时32ms。而进行软件优化后,处理速度提高了约21.8,效果是十分明显的[7]。另外在2006年有人研究了去相关、内联函数、短整型数据用整型处理和软件流水技术,解决了软件效率问题,采用基于DSP核及其数据链路特征的优化方法,可以使软件效率提高5~15倍。并把这些优化技术应用在基于DSP6416平台的实时图像压缩系统中,在输入数据率82M byte/s~110M byte/s、输出码流29M byte/s的条件下,使该系统达到了实时处理的能力,该算法已在国家某重点项目中成功运用。硬件优化方面,需要考虑存储空间,充分利用快速存储器,尽量节省程序和数据的存储空间。一般把核心的代码和常用函数放在速度较快的内部RAM中,可以提高系统的速度;若数据放在速度较慢的片外存储空间,读取数据时便会造成DSP流水线的停顿。因此,可以利用DMA模块将待处理数据搬移到片内存储空间,可以大大提高处理性能。如2006年提出的一种采用乒乓缓存策略的二维整型提升小波的并行体系结构,用移位操作代替乘法操作,大大减少了算法的运算量。整个结构采用流水线设计,提高了硬件资源的利用率和降低了算法的中间存储量,与原算法相比,速度提高了15倍,达到了每秒85帧;重构图像的峰值信噪比也达到了42dB以上[8]。 总之,系统优化的时候,要针对具体芯片的特点,把软件算法与硬件结构融合,才能大大提高系统的效率。以C64x为例,由于C64x具有双16位扩充功能,能在一个周期内完成双16位乘法、加减法、比较、移位等操作,因此可以将短整型数据用整型处理或更长的数据类型进行处理,这样一次可以把两个16位的数据读入一个32位寄存器,然后用内联函数进行处理,充分利用C64x的双16位扩充功能,效率可以提高60多倍[9]。5 总结与展望 目前,图像压缩技术发展越来越快。一方面,压缩算法不断的完善;另一方面,DSP性能的不断提高,使得基于DSP的图像压缩技术成为业内关注的焦点。本文结合当前DSP芯片在图像压缩领域中的应用现状,给出了超光谱图像压缩系统设计过程中,算法的设计和芯片的选择方法,提出了解决软件算法和硬件结构之间的矛盾的思路,并讨论了系统的优化。 可以预料,今后DSP将朝着系统高度集成、高速高性能、可灵活编程、与网络结合的方向发展,同时,开发人员也更专注开发专用DSP,将它应用于如遥感超光谱图像压缩、
医学图像处理等领域,在实际应用中发挥它的巨大优势。参考文献[1]蒋青松,王建宇.多光谱图像的信息分析及数据压缩[J].红外技术,2004,Vol.26(No.1):44-47[2]彭云,任俊彦,叶凡,周翔.一种适于硬件实现的算术编码算法[J].通信学报,2001,Vol.22(No.2):49-53[3]陈光化,陆桂富,武凯. 基于上下文的自适应二进制算术编码的硬件实现[J].微电子学与计算机, 2006, Vol.23 (No.11):16-25[4]罗钧,张国彬.JPEG2000中的二进制算术编码及其DSP实现[J].重庆大学学报,2003:Vol.26(No.4):34-37[5]苏艳玲,孙德辉.基于DSP的图像编码与实现[D].北方工业大学,2005:69-71[6]李忠锋,曹丹华,吴裕斌. 基于TMS320C6711DSP的JPEG2000图像压缩[J].计算机工程,2005, Vol.31(No.20):188-190[7]何迪.实时图像跟踪系统中TMS320C6X的软件优化[J].电子科技,2005,No.4:28-33[8]陈升来,黄廉卿,郭静寰. 基于整型提升小波变换的图像处理及DSP实现[J].光学精密工程2006,Vol.14 (No.3): 498-502[9]孟占红,赵宝军.基于DSP的实时图像压缩软件优化技术研究 [J].Vol.34(No.9):1558-1561
转载请注明来自:http://www.zazhifabiao.com/lunwen/gcjs/jsjjs/36579.html