一种LZ77压缩算法的匹配长度输出方法及装置制造方法及图纸

技术编号:15517172 阅读:103 留言:0更新日期:2017-06-04 07:53
本发明专利技术公开了一种硬件实现LZ77压缩算法的匹配长度输出方法及装置,并行度为N,包括按预设规则将获取的N个匹配长度信息进行两两分组得到M组;每组均依据该组的匹配长度信息中的两个起始位置和匹配起始位置判断该组中的两个匹配长度是否能归并,如果是,归并两个匹配长度得到归并后的匹配长度,当两个匹配长度相等时,将归并后的匹配长度代替起始位置较小的匹配长度;不等时,将归并后的匹配长度代替两个匹配长度中较大者;否则,不归并;当M组都不能归并时从N个匹配长度中选出最大的作为该算法最终输出的匹配长度;否则,从各个归并后的匹配长度中选出最大的作为该算法最终输出的匹配长度。本发明专利技术有效降低了数据压缩率、提高了数据压缩效果。

【技术实现步骤摘要】
一种LZ77压缩算法的匹配长度输出方法及装置
本专利技术涉及数据压缩
,特别是涉及一种硬件实现LZ77压缩算法的匹配长度输出方法。本专利技术还涉及一种硬件实现LZ77压缩算法的匹配长度输出装置。
技术介绍
随着信息通信技术的快速发展,数据的产生量和交换量与日俱增。在进行数据存储或数据交换时,对数据进行压缩处理既可以节省数据存储所占用的空间,又可以节约数据交换所消耗的传输宽带。对数据进行压缩一般采用无损压缩的方式,无损压缩是指利用数据的统计冗余进行压缩,并将压缩后的数据执行解压缩操作后得到的数据和压缩前的数据完全一致。LZ77压缩算法是无损压缩中常用的算法,其具有适中的压缩率和较快的压缩速度。LZ77压缩算法既可以通过软件实现,又可以通过硬件实现。通过软件实现时,由中央处理器(CPU)对数据进行压缩处理,一方面,当处理海量数据时,压缩程序会消耗大量的中央处理器资源;另一方面,中央处理器执行软件压缩通常是一种串行行为,无法取得高效的处理速率。通过硬件实现时,不仅能采用并行处理的方式有效的提高压缩速率,还能够减轻中央处理器资源的占用。由于通过硬件实现LZ77压缩算法时,比较窗口的大小是固定的,当并行度为N时,即同时有N个比较窗口分别对N个字符串进行匹配,相应的得到N个匹配长度,LZ77压缩算法将N个匹配长度中最大的匹配长度作为LZ77压缩算法最终的匹配长度进行输出。但是,当字符串本身的匹配长度大于比较窗口的大小时,现有技术中输出的最大匹配长度为比较窗口大小的长度,即此时最大匹配长度是固定的,并且该最大匹配长度往往远小于软件实现时所采用的最大匹配长度,又因为,一般情况下最大匹配长度越大数据的压缩率越低,对数据的压缩效果越好,因此,现有技术中通过硬件实现LZ77压缩算法时采用固定的最大匹配长度,使得压缩率较高、数据的压缩效果不是很好。因此,如何提供一种解决上述技术问题的硬件实现LZ77压缩算法的匹配长度输出方法及装置成为本领域的技术人员目前需要解决的问题。
技术实现思路
本专利技术的目的是提供一种硬件实现LZ77压缩算法的匹配长度输出方法,在使用过程中,使LZ77压缩算法最终输出的匹配长度变大,有效的降低了数据的压缩率、提高了数据的压缩效果;本专利技术的另一目的是提供一种硬件实现LZ77压缩算法的匹配长度输出装置,其使用过程中具有与上述方法相应的优点。为解决上述技术问题,本专利技术提供了一种硬件实现LZ77压缩算法的匹配长度输出方法,并行度为N,所述N为不小于2的正整数,所述方法包括:获取LZ77压缩算法得到的N个匹配长度信息,所述匹配长度信息包括匹配长度、起始位置以及匹配起始位置;按照预设规则将N个所述匹配长度信息进行两两一组分组,分成M组,所述M为不小于1的正整数;每组均依据该组中的两个所述起始位置和所述匹配起始位置判断该组中的两个所述匹配长度是否能进行归并,如果是,则将该组中的两个所述匹配长度进行归并,得到归并后的匹配长度,当所述该组中的两个所述匹配长度相等时,将所述归并后的匹配长度代替两个所述匹配长度中起始位置较小的匹配长度;当所述该组中的两个所述匹配长度不相等时,则将所述归并后的匹配长度代替该组中两个所述匹配长度中较大的匹配长度;否则,不归并;判断是否M组都不能进行归并,如果是,则从N个所述匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度;否则,则从各个所述归并后的匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度。优选的,每组中的两个匹配长度信息包括第一匹配长度、第一起始位置、第一匹配起始位置、第二匹配长度、第二起始位置和第二匹配起始位置,所述每组均依据该组中的两个所述起始位置和所述匹配起始位置判断该组中的两个所述匹配长度是否能进行归并的过程具体为:每组均判断该组中的所述第一起始位置与所述第二起始位置之间的间距是否等于所述第一匹配起始位置与所述第二匹配起始位置之间的间距;则相应的所述将该组中的两个所述匹配长度进行归并,得到归并后的匹配长度过程为:所述第一起始位置与所述第二起始位置之间的间距和较大起始位置对应的匹配长度相加,将该和作为所述归并后的匹配长度;或者所述第一匹配起始位置与所述第二匹配起始位置之间的间距和较大起始位置对应的匹配长度相加,将该和作为所述归并后的匹配长度。优选的,所述按照预设规则将N个所述匹配长度信息进行两两一组分组的过程具体为:将N个所述匹配长度信息中任意两个起始位置之间的间距不小于预设归并比较间距的两个匹配长度信息分为一组。优选的,所述预设归并比较间距为1。优选的,所述预设归并比较间距不小于2。优选的,所述预设归并比较间距为3。优选的,如上述任意一项所述的硬件实现LZ77压缩算法的匹配长度输出方法,所述N为4。为解决上述技术问题,本专利技术提供了一种硬件实现LZ77压缩算法的匹配长度输出装置,所述装置包括:分组模块,用于获取LZ77压缩算法得到的N个匹配长度信息,所述匹配长度信息包括匹配长度、起始位置以及匹配起始位置,并按照预设规则将N个所述匹配长度信息进行两两一组分组,分成M组;归并模块,用于每组均依据该组中的两个所述起始位置和所述匹配起始位置判断该组中的两个所述匹配长度是否能进行归并,如果是,则将所述该组中的两个所述匹配长度进行归并,得到归并后的匹配长度,当所述该组中的两个所述匹配长度相等时,将所述归并后的匹配长度代替两个所述匹配长度中起始位置较小的匹配长度;当所述该组中的两个所述匹配长度不相等时,将所述归并后的匹配长度代替该组中两个所述匹配长度中较大的匹配长度;否则,不归并;判断模块,用于判断是否M组都不能进行归并,如果是,则发送第一触发指令;否则,则发送第二触发指令;选择模块,用于依据所述第一触发指令从N个所述匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度;还用于依据所述第二触发指令从各个所述归并后的匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度。优选的,每组中的两个匹配长度信息包括第一匹配长度、第一起始位置、第一匹配起始位置、第二匹配长度、第二起始位置和第二匹配起始位置所述每组均依据该组中的两个所述起始位置和所述匹配起始位置判断该组中的两个所述匹配长度是否能进行归并的过程为:每组均判断该组中的所述第一起始位置与所述第二起始位置之间的间距是否等于所述第一匹配起始位置与所述第二匹配起始位置之间的间距;则相应的所述将该组中的两个所述匹配长度进行归并,得到归并后的匹配长度的过程为:所述第一起始位置与所述第二起始位置之间的间距和较大起始位置对应的匹配长度相加,将该和作为所述归并后的匹配长度;或者所述第一匹配起始位置与所述第二匹配起始位置之间的间距和较大起始位置对应的匹配长度相加,将该和作为所述归并后的匹配长度。优选的,按照预设规则将N个所述匹配长度信息进行两两一组分组的过程为:将N个所述匹配长度信息中任意两个起始位置之间的间距不小于预设归并比较间距的两个匹配长度信息分为一组。本专利技术所提供的一种硬件实现LZ77压缩算法的匹配长度输出方法,在并行度为N的时,对LZ77压缩算法得到的N个匹配长度信息按照预设规则进行两两一组分组,共分成M组;对每组中的两个匹配长度进行判断,依据该组中的两个起始位置与两个匹本文档来自技高网
...
一种LZ77压缩算法的匹配长度输出方法及装置

【技术保护点】
一种硬件实现LZ77压缩算法的匹配长度输出方法,并行度为N,所述N为不小于2的正整数,其特征在于,所述方法包括:获取LZ77压缩算法得到的N个匹配长度信息,所述匹配长度信息包括匹配长度、起始位置以及匹配起始位置;按照预设规则将N个所述匹配长度信息进行两两一组分组,分成M组,所述M为不小于1的正整数;每组均依据该组中的两个所述起始位置和所述匹配起始位置判断该组中的两个所述匹配长度是否能进行归并,如果是,则将该组中的两个所述匹配长度进行归并,得到归并后的匹配长度,当所述该组中的两个所述匹配长度相等时,将所述归并后的匹配长度代替两个所述匹配长度中起始位置较小的匹配长度;当所述该组中的两个所述匹配长度不相等时,则将所述归并后的匹配长度代替该组中两个所述匹配长度中较大的匹配长度;否则,不归并;判断是否M组都不能进行归并,如果是,则从N个所述匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度;否则,则从各个所述归并后的匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度。

【技术特征摘要】
1.一种硬件实现LZ77压缩算法的匹配长度输出方法,并行度为N,所述N为不小于2的正整数,其特征在于,所述方法包括:获取LZ77压缩算法得到的N个匹配长度信息,所述匹配长度信息包括匹配长度、起始位置以及匹配起始位置;按照预设规则将N个所述匹配长度信息进行两两一组分组,分成M组,所述M为不小于1的正整数;每组均依据该组中的两个所述起始位置和所述匹配起始位置判断该组中的两个所述匹配长度是否能进行归并,如果是,则将该组中的两个所述匹配长度进行归并,得到归并后的匹配长度,当所述该组中的两个所述匹配长度相等时,将所述归并后的匹配长度代替两个所述匹配长度中起始位置较小的匹配长度;当所述该组中的两个所述匹配长度不相等时,则将所述归并后的匹配长度代替该组中两个所述匹配长度中较大的匹配长度;否则,不归并;判断是否M组都不能进行归并,如果是,则从N个所述匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度;否则,则从各个所述归并后的匹配长度中选择出最大的匹配长度作为LZ77压缩算法的最终输出的匹配长度。2.根据权利要求1所述的硬件实现LZ77压缩算法的匹配长度输出方法,其特征在于,每组中的两个匹配长度信息包括第一匹配长度、第一起始位置、第一匹配起始位置、第二匹配长度、第二起始位置和第二匹配起始位置,所述每组均依据该组中的两个所述起始位置和所述匹配起始位置判断该组中的两个所述匹配长度是否能进行归并的过程具体为:每组均判断该组中的所述第一起始位置与所述第二起始位置之间的间距是否等于所述第一匹配起始位置与所述第二匹配起始位置之间的间距;则相应的所述将该组中的两个所述匹配长度进行归并,得到归并后的匹配长度过程为:所述第一起始位置与所述第二起始位置之间的间距和较大起始位置对应的匹配长度相加,将该和作为所述归并后的匹配长度;或者所述第一匹配起始位置与所述第二匹配起始位置之间的间距和较大起始位置对应的匹配长度相加,将该和作为所述归并后的匹配长度。3.根据权利要求2所述的硬件实现LZ77压缩算法的匹配长度输出方法,其特征在于,所述按照预设规则将N个所述匹配长度信息进行两两一组分组的过程具体为:将N个所述匹配长度信息中任意两个起始位置之间的间距不小于预设归并比较间距的两个匹配长度信息分为一组。4.根据权利要求3所述的硬件实现LZ77压缩算法的匹配长度输出方法,其特征在于,所述预设归并比较间距为1。5.根据权利要求3所述的硬件实现LZ77压缩算法的匹配长度输出方法,其特征在于,所述预设归并比较间距不小于2。6.根据权利要求5所述的硬件实...

【专利技术属性】
技术研发人员:李龙
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1