采用FPGA技术高速实现无链表SPIHT图像压缩算法的设计.docx
《采用FPGA技术高速实现无链表SPIHT图像压缩算法的设计.docx》由会员分享,可在线阅读,更多相关《采用FPGA技术高速实现无链表SPIHT图像压缩算法的设计.docx(5页珍藏版)》请在第一文库网上搜索。
1、采用FPGA技术高速实现无链表SPIHT图像压缩算法的设计1、引言基于变换的图像压缩方法当前应用最为广泛。小波变换以其优秀的能量集中能力而被JPEG2000标准所采用。而当前诸如COUntOUr1et、direction1ets等具有多方向性的变换由于具有非常高的非线性逼近能力很可能使囱密压缩性能得到较大提高。然而非线性逼近能力强并不能直接使图像压缩性能得以提高,因为重要系数的位置还需要进行有效的燧编码。SP1HT和EBeOT是烯编码整中最具代表性的编码方案。它们都具有编码效率高,生成的码流具有嵌入式的特点。EBCOT是JPEG200中的核心编码器。它采用的是块编码技术,根据信源的特性对信源进
2、行分类,然后进行MQ算术编码,利用压缩后率失真优化(PCRD)策略产生嵌入式码流。SPIHT则是基于子带之间的自相似的特点通过零树结构进行重要性信息的编码。包对集合进行重要性测试并按照一定的规则分裂.如果集合中所有元素的幅值小于某阈值(即该集合是不重要的),则使用一个比特即可表示,这样就大大简化了集合的表示.由于变换系数在空间定位树结构中的相似性,使这种算法具有极高的效率,即使不使用算术编码也能达到较高的压缩效率。SP1HT与EBCOT相比,虽然没有EBCoT码流极其灵活的特点,但由于算法复杂度相对较低并且可以省去自适应算术编码过程,适用于对编码实时性要求较高的场合.因此研究SPIHT算法的F
3、PGA实现具有重要意义。但是,原始的SPIHT算法是通过3个有序的链表存储重要性信息实现对图像的编码.链表操作包括动态分配链表、添加和删除结点等,这非常不适于FPGA的有效实现。F.W.Whee1er和W.A.PearIman随后提出了无链表SPIHT,并称之为N1S。N1S则可以用FPGA加以实现。本文在深入研究无链表SPIHT图像压缩算法的基础上,设计了该算法的FPGA实现结构。2、无链表SPIHT图像压缩算法为了使SPIHT算法适应硬件的实现,无链表SPIHT算法对原算法进行了一些改进。在改进算法中采用了宽度优先的搜索策略。这是由于相对应深度优先的搜索策略,宽度优先的搜索策略会使重要系数
4、更可能先被扫描到,从而能够提高压缩性能。在无链表SPIHT算法中,采用特定的标志符来代替原SPIHT算法中的链表。当新的不重要集合生成时,这些稀疏的标志符就会被相应更新。通过稀疏的标志符标识,图像中的大部分不重要块被跳过,从而使编码时间大大减少。为了能够高效实现图像中不重要块被跳过,无链表SPIHT算法采用一维线性索引的寻址方式代替二维的寻址方式。图1线性索5示例,两级小波变换图1所小为个线性索引的个例。设K=C=2”为图像的行数和4的仃列索弓I一仃索引的二进制衣小为:r=匕_1,,小,列嗦c=q_i,则系数的线性索引定义为::1-.Qi,,q,q是由,和C的;进制表示交叉而得到的。其范围为O
5、到了其中/=/使用线性索引的好处是在树状结做W通妆相ttC燧豁要一次操作操作。给定系数坐标(r,c)或i,如果耍找到该结点的四个孩干,使用行列与和q=2c一而线性索引则只需要计算7;=47.相反要找到父亲结点,算%二&/2和金二1。/2而线性索引则只需要计算7二U/4对于无链表SPIHT算法,集合结构、分割规则和SPIHT相同。每个位平面有三个过程,不重要系数过程、重要集合过程、精细化过程。在编码过程中为了避免重复扫描系数,使用最大值表存储器来解决这个问题。在开始编码前,首先要计算出两个后代集合的最大值表。这两个最大值表分别存储后代集合最大值(记为晒x)和除了儿子外的后代集合最大值(记为GMa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 采用 FPGA 技术 高速 实现 无链表 SPIHT 图像 压缩 算法 设计