一种快速低资源开销的改进LZO压缩方法技术

技术编号:17812810 阅读:54 留言:0更新日期:2018-04-28 05:32
一种快速低资源开销的改进LZO压缩方法,首先根据回指距离构建LZO压缩方法对新字符进行压缩的第一压缩格式及对应的第一压缩算法、第二压缩格式及对应的第二压缩算法,然后记录进行LZO压缩的新字符长度,根据新字符长度、回指距离选择的压缩格式及对应的压缩算法进行LZO压缩。本发明专利技术以LZO算法为基础,对比特文件进行统计分析,在保留哈希运算的前提下提出一套新的压缩格式,该压缩格式种类划分少,判断方式简单,在几乎不降低压缩率的前提下减小回指距离,压缩与解压缩速度均有较大提高,更便于硬件实现和宇航应用,具有很好的使用价值。

【技术实现步骤摘要】
一种快速低资源开销的改进LZO压缩方法
本专利技术涉及比特文件压缩
,特别是一种快速低资源开销的改进LZO压缩方法。
技术介绍
LZO算法基于传统字典压缩算法,使用哈希表来记录滑动窗口内的字典数据,减少了搜索相同字符的时间,极大地提高了算法的压缩速度,其通过把压缩格式精细化到按每比特使用,可以使每个字节利用更充分,增大数据的压缩比。2004年,美国太空总署将LZO无损压缩应用在了探测火星的机会号和精神号上。如图1所示为现有的LZO压缩算法流程图,其首先对输入数据做哈希运算,判断输入数据是否在哈希表内,如果输入数据不在哈希表内,则扩充哈希表,否则对输入数据按LZO压缩格式进行压缩。现有的LZO压缩算法压缩格式根据偏移距离和重复长度的不同共分为5种,如图2(a)、(b)、(c)、(d)、(e)所示为现有的LZO压缩算法5种LZO压缩格式。如图2(a)、(b)、(c)所示三种压缩格式的重复长度小于等于8字节,格式1回指距离的范围小于等于2k,格式2回指距离小于等于16k,格式3回指距离大于16k,小于等于48k。格式4格式5是重复长度大于8字节的情况,格式4回指距离小于等于16k,格式5回指距离大于16k小于等于48k。如图2所示的5种压缩格式最大可支持48k的回指距离,因此至少要存储48k的解压数据才能保证压缩数据被正确解压,过大的RAM深度使解压缩的速率变慢,RAM本身在解压缩时刷新频率降低,在空间辐射环境中,更易发生单粒子翻转。上述5种格式通过回指距离和重复长度共同判定使得判定过程繁琐,降低压缩速度;解压缩电路要区分5种压缩格式,需要大量的控制信号来保证解压缩正确性,使得解压缩过程复杂,增加了时序开销和硬件资源开销。
技术实现思路
本专利技术解决的技术问题是:克服现有技术的不足,提供了一种快速低资源开销的改进LZO压缩方法,通过对现有的LZO压缩算法研究,在保留LZO压缩算法哈希运算的同时,通过统计分析比特文件的数据特点和LZO的五种压缩格式,设计了一种快速低资源开销的无损压缩方法,通过重新设计压缩格式,在几乎不影响压缩率前提下,压缩与解压缩速度较大提升、硬件资源开销大幅降低。本专利技术的技术解决方案是:一种快速低资源开销的改进LZO压缩方法,包括如下步骤:(1)根据回指距离构建LZO压缩方法对新字符进行压缩的第一压缩格式及对应的第一压缩算法、第二压缩格式及对应的第二压缩算法;所述的第一压缩格式适用且进行压缩的新字符的回指距离小于第二压缩格式适用且进行压缩的新字符的回指距离;(2)记录进行LZO压缩的新字符长度,根据新字符长度、回指距离选择的压缩格式及对应的压缩算法进行LZO压缩。所述的第一压缩格式适用且进行压缩的新字符的回指距离不大于1k,第二压缩格式适用且进行压缩的新字符的回指距离大于1k小于等于16k。所述的第一压缩格式的第一字节t0为8bit,最高位为1,t0的6、5、4bit记录3≤重复长度≤8的值,3、2bit记录回指距离的低2位,1、0bit记录下次输入为新字符且新字符长度≤3时新字符长度的值,最后一字节u记录回指距离后8位。所述的第一压缩格式对应的第一压缩算法包括如下步骤:步骤1、判断待压缩数据的回指距离,如果待压缩数据的回指距离≤1k且重复长度M_len≥3,转入步骤2,如果待压缩数据的重复长度<3,则不进行压缩;步骤2、当3≤重复长度M_len≤8时,将M_len-1的值记录在t(0)的6、5、4bit中;当8<M_len≤263时,将t0的6、5、4bit分别记为0,然后将M_len-8的值记录在第二字节t(1)中;当263<M_len≤n*255+263时,n≥1,将t(0的6、5、4bit分别记为0,将第2字节t(1)至第(n+1)字节t(n的8bit分别记为0,将M_len-8-n*255的值记录在第(n+2)字节t(n+1)中;步骤3、如果下次输入数据为新字符且新字符长度≤3,则将新字符长度的值记录于t0的第1、0bit,如果新字符长度>3时,则将t(0的最后两bit记为0。所述的第二压缩格式第一字节t(0的高两位分别置为0、1,t0的5、4、3、2、1、0bit记录4≤重复长度≤65的值,倒数第二字节u的7、6、5、4、3、2bit分别记录回指距离的低6位,u的1、0bit记录下次输入数据为新字符且新字符长度≤3时新字符长度的值,最后一字节v记录回指距离的后8位。所述的第二压缩格式对应的第一压缩算法包括如下步骤:步骤1、判断待压缩数据的回指距离,当1k<待压缩数据的回指距离≤16k且重复长度M_len≥4时,转入步骤2,当重复长度M_len<4时,不对数据进行压缩;步骤2、当4≤M_len≤65时,将M_len-2的值记录在t(0)的5、4、3、2、1、0bit中;当65<M_len≤320时,将t(0)的5、4、3、2、1、0bit分别置为0,将M_len-65的值记录在第二字节t(1)中;当320<M_len≤n*255+320,t(0)的5、4、3、2、1bit位的值分别为0,将第2字节t(1)至第n+1字节t(n)的8bit分别记为0,将M_len-65-n*255的值记录于第n+2字节t(n+1)中。步骤3、如果下次输入数据为新字符且新字符长度≤3,则将新字符长度的值记录于u的第1、0bit,如果新字符长度>3时,则将u的最后两bit记为0。本专利技术与现有技术相比的优点在于:(1)本专利技术以LZO算法为基础,对比特文件进行统计分析,基于统计结果对LZO算法进行改进,在保留哈希运算的前提下提出一套新的压缩格式,该压缩格式种类划分少,判断方式简单,在几乎不降低压缩率的前提下减小回指距离,压缩与解压缩速度均有较大提高;(2)本专利技术通过减少压缩格式种类和回指距离,使得解压缩电路硬件开销(除IO)仅为LZO算法的35%,SRAM刷新频率为传统LZO算法的3倍,工作时钟频率提高,解压缩译码时钟周期减少,更便于硬件实现和宇航应用,具有很好的使用价值。附图说明图1为现有的LZO压缩算法流程图;图2为现有的LZO压缩算法对应的5种LZO压缩格式;图3为本专利技术方法设计的压缩格式1;图4为压缩格式1的运算流程;图5为压缩格式格式2;图6为压缩格式2的运算流程;图7为本专利技术算法的新字符编码格式;图8为新字符编码格式的运算流程;图9为本专利技术方法对应的压缩算法设计流程图;图10为本专利技术方法对应的解压缩算法设计流程图;图11为解压缩电路框图;图12为本专利技术快速低资源开销的比特文件无损压缩方法流程图。具体实施方式为了提升LZO压缩算法的压缩与解压缩速度,减少解压缩电路的硬件开销,提高电路抗单粒子翻转能力,本专利技术针对现有技术的不足,提出一种快速低资源开销的改进LZO压缩方法,本专利技术方法沿用传统LZO算法的哈希运算,并对压缩格式进行了改进,改进后的压缩算法压缩格式包括2种,只由回指距离判定区分;最大回指距离减小为16k,通过上述改进本专利技术解压缩电路硬件开销(除IO)仅为传统LZO算法的35%,RAM刷新频率为传统LZO算法的3倍,压缩速度提升18%,解压缩速度提升37%,压缩率减小0.3%以内。如图12所示为本专利技术一种快速低资源开销的改进LZO压缩方法的本文档来自技高网
...
一种快速低资源开销的改进LZO压缩方法

【技术保护点】
一种快速低资源开销的改进LZO压缩方法,其特征在于包括如下步骤:(1)根据回指距离构建LZO压缩方法对新字符进行压缩的第一压缩格式及对应的第一压缩算法、第二压缩格式及对应的第二压缩算法;所述的第一压缩格式适用且进行压缩的新字符的回指距离小于第二压缩格式适用且进行压缩的新字符的回指距离;(2)记录进行LZO压缩的新字符长度,根据新字符长度、回指距离选择的压缩格式及对应的压缩算法进行LZO压缩。

【技术特征摘要】
1.一种快速低资源开销的改进LZO压缩方法,其特征在于包括如下步骤:(1)根据回指距离构建LZO压缩方法对新字符进行压缩的第一压缩格式及对应的第一压缩算法、第二压缩格式及对应的第二压缩算法;所述的第一压缩格式适用且进行压缩的新字符的回指距离小于第二压缩格式适用且进行压缩的新字符的回指距离;(2)记录进行LZO压缩的新字符长度,根据新字符长度、回指距离选择的压缩格式及对应的压缩算法进行LZO压缩。2.根据权利要求1所述的一种快速低资源开销的改进LZO压缩方法,其特征在于:所述的第一压缩格式适用且进行压缩的新字符的回指距离不大于1k,第二压缩格式适用且进行压缩的新字符的回指距离大于1k小于等于16k。3.根据权利要求1或2所述的一种快速低资源开销的改进LZO压缩方法,其特征在于:所述的第一压缩格式的第一字节t0为8bit,最高位为1,t0的6、5、4bit记录3≤重复长度≤8的值,3、2bit记录回指距离的低2位,1、0bit记录下次输入为新字符且新字符长度≤3时新字符长度的值,最后一字节u记录回指距离后8位。4.根据权利要求3所述的一种快速低资源开销的改进LZO压缩方法,其特征在于:所述的第一压缩格式对应的第一压缩算法包括如下步骤:步骤1、判断待压缩数据的回指距离,如果待压缩数据的回指距离≤1k且重复长度M_len≥3,转入步骤2,如果待压缩数据的重复长度<3,则不进行压缩;步骤2、当3≤重复长度M_len≤8时,将M_len-1的值记录在t(0)的6、5、4bit中;当8<M_len≤263时,将t0的6、5、4bit分别记为0,然后将M_len-8的值记录在第二字节t(1)中;当263<M_len≤n*255+263时,n≥1,将t(0的6、5、4bit分别记为0,将第2字节t(1)至第(n+1...

【专利技术属性】
技术研发人员:张健赖晓玲周国昌杨玉辰巨艇
申请(专利权)人:西安空间无线电技术研究所
类型:发明
国别省市:陕西,61

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

1