您的位置: 首页

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

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


(1)位平面0、1、2清除通道编码省略法。由图3可以看出在较低位平面(即位平面0、1、2)上清除通道实际编码的像素是很少的,几乎为零。所以花费时间对较低位平面上的清除通道进行扫描编码是无意义的。本论文就此给出一种改进方案即省略较低位平面的清除通道编码,达到改进标准算法的目的。该编码模块与标准算法此部分代码相近,只是对编码条件进行了改变。

(2)位平面6、7一次扫描法。由图3可以看出在高位平面(位平面6和位平面7)重要性传播通道和幅度精练通道的编码量都很低,趋近于零,而清除编码通道编码的像素量相反却很高。在标准算法的扫描机制下,对图像质量影响很小的高频子带像素编码,扫描算法必须从最高平面由高向低分三次完整的扫描。本文给出一次扫描法对较高位平面进行改进,即在一次扫描过程中对最高位平面和次高位平面所有系数进行编码。在一次编码一个系数时,通过上下文的形成,先确定此系数属于哪个通道。然后,此系数按所属通道马上进行相应编码。这样就能减少两次扫描,节约了编码时间,从而能够提高编码效率。本文处理的对象主要是8比特的灰度图像。有损压缩采用9/7小波变换。

通过对压缩性能研究发现,在压缩比较小时本文改进算法比标准算法的压缩性能约低0.4db左右,在压缩比较大时两者的压缩性能相一致,保留了JPEG2000优异的压缩性能;从编解码时间来看,在有损压缩编码执行时间上,本文所给出的改进算法比标准算法时间缩短8%到12%,解码时间缩短2%到5%,提高了编码效率,达到了改进的目的。

3 JPEG2000标准中改进算法的DSP实现

3.1 DSP硬件开发平台


本文使用评估板是北京闻亭公司的TDS642,板上的DSP芯片是TMX DM642,BGA548封装,内部工作时钟为600M,外部总线时钟为100M,计算能力高达4.8亿指令每秒。

该平台提供了丰富的外围接口。板上有两个复合视频(PAL/NTSC/SECAMS)输入和1个复合视频输出端口;立体声输入/出或单一麦克风输入端口;提供两个UART、以太网接口、子板接口、PC104接口和JTAG接口[6][7]。板上还提供了4M Bytes的Flash存储器,位于DM642的CE1地址空间,宽度为8bits,FPGA扩展了3根地址线,把Flash分成8页,Flash 的第0页的前半页存放用户的自启动程序,后半页存放FPGA程序,第1页尾用户存放数据空间,第2页至第8页用于存放用户程序。

3.2 核心算法的DSP实现

(1)算法总体框架。本文算法基于DM642EVM实现时主要分为两个大的模块(如图4),第一部分为DWT变换模块,它将输入图像数据变换为一系列的小波系数;第二部分为EBCOT算法模块,将量化后的的小波系数编码生成压缩码流。硬件开发平台结构框图如图5所示。

图4 算法框架图

图5 算法硬件开发平台结构框图


(2)内存分配。对于图像数据的处理,往往涉及到大量的复杂的数据寻址计算,对于复杂的寻址计算,其耗费CPU的计算量可能比实际数据操作的计算量还大。所以要加快CPU对数据的访问速度,不但要求存储器本身的速度快,而且还需要一个合理的数据结构来简化CPU对地址的计算。另外,DM642对数据的访问技术,如Cache、EDMA和宽bit数据直接读写等,都是基于存储地址的连续性。基于以上考虑,本文在内存分配及定位时,依据以下大的原则:第一,在满足精度要求的情况下,使用较短的数据类型;第二、大的数据块,如原始图像、重构图像存储在片外SDRAM;第三、关键数据、小的数据块,比如运算时的系数、系统堆栈、三个通道扫描都需要频繁的访问数据区和上下文标志区等,存放到片内存储器;第四、对L2级配置足够的Cache以便CPU对数据的快速读写;第五、对于具有运算相关性的数据,应在内存中按序连续排放。当涉及到片内外数据块的搬移操作时,可由DM642的EDMA单元去完成,它可与CPU并行工作,不占用CPU的计算周期[8]。

相关文章

深度阅读

热点活动

热点专题更多>>

英特尔2011教育峰会

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

论坛精华更多>>

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