[发明专利]一种BWT实现方法中对后缀进行排序的方法及系统有效
申请号: | 201310033687.4 | 申请日: | 2013-01-29 |
公开(公告)号: | CN103117748A | 公开(公告)日: | 2013-05-22 |
发明(设计)人: | 俞健康;侯锐;张继璠;龙冰洁;李冰 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H03M7/30 | 分类号: | H03M7/30;G06F9/38 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 bwt 实现 方法 后缀 进行 排序 系统 | ||
技术领域
本发明涉及数据压缩技术以及硬件设计领域,尤其涉及一种BWT实现方法中对后缀进行排序的方法及系统。
背景技术
数据压缩是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。数据压缩包括有损压缩和无损压缩。
Bzip2作为一种无损压缩,其压缩效率比传统的GZIP或者ZIP的压缩效率更高,但是它的压缩速度较慢,消耗的资源更多。Bzip2首先会对需要进行压缩的文件做前置变换以及行程长度编码,接下来使用BWT(Burrows-Wheeler Transform)将重复出现的字符序列转换成同样字母的字符串,然后用MTF (Move-To-Front Transform)变换进行处理,最后使用哈夫曼编码进行压缩。其中最消耗时间和资源的就是BWT变换。现在对于前置变化以及行程长度编码,MTF变换以及哈夫曼编码这几个部分已经有比较成熟的硬件实现方案,BWT变换的硬件实现仍然是一个问题。
目前已有的Bzip2硬件加速方面的专利,如专利号为:200910095596.7的实用新型专利,给出了一种Bzip2压缩算法硬件加速实现的方法,但是这个方法主要是针对Bzip2前置变换和行程长度编码的,虽然能很好的加速这一块,但是由于这一块在整个Bzip2中的地位并不是那么明显,所以对整个Bzip2的压缩过程起到的加速作用不大。
发明内容
本发明的目的一在于提出一种BWT实现方法中对后缀进行排序的方法及系统,通过在变换时间和资源消耗上的平衡,以解决原始BWT变换方法消耗资源大、压缩率低的问题。
为实现上述发明目的,本发明提出一种BWT实现方法中对后缀进行排序的方法,该方法包括:
步骤1,从BWT的待变换序列中取出需要排序的后缀;
步骤2,判断以所述后缀的开头元素作为断首元素的段在后缀链表中是否出现过,所述后缀的开头元素的ASCⅡ值为i,如果寄存器appear[i]=1,则出现过,执行步骤3;如果寄存器appear[i]=0,则未出现过,执行步骤4,其中appear[i]代表以ASCⅡ表中数字i代表的元素为段首元素的段是否已经出现过的标识;
步骤3,在段内进行双向搜索,获得所述后缀在所述后缀链表中的位置,然后执行步骤5;
步骤4,在整个后缀链表中进行双向搜索,搜索到离所述后缀最近的在后缀链表中存在的段,根据所述段获得所述后缀在所述后缀链表中的位置,其中所述段是以相同元素开头的后缀按从小到大顺序组成的序列,然后执行步骤5;
步骤5,将所述后缀插入后缀链表:将所述后缀的高地址上的所有后缀右移一位,将所述高地址所在的位置空出,然后在所述高地址后缀所在的位置上插入所述后缀,然后执行步骤6;
步骤6,更新所述后缀链表以及段的信息,其中所述后缀链表由后缀段组成,并按照段首元素从小到大顺序排列的,所述段首元素是每个段里面后缀的开头元素。
进一步的,所述步骤3包括:
步骤31,找到段头、段尾位置对应的两个后缀;
步骤32,分别将段头和段尾对应的后缀记为Sm、Sn,并与所述后缀Si进行大小比较,如果Si<Sn或者Si>Sm,则执行步骤34;如果Sn<Si<Sm,则执行步骤33;
步骤33,找到Sm、Sn指向段内方向的相邻的两个后缀,将Sm、Sn替换为这两个后缀,再与Si进行大小比较,如果Si<Sn或者Si>Sm,则执行步骤34;如果Sn<Si<Sm,则执行步骤32;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310033687.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:防尘置物柜
- 下一篇:一种齿轮传动无间隙的钓鱼用纺车式渔线轮