专利名称:一种lz77压缩算法的硬件解码实现系统及方法
技术领域:
本发明涉及数据解压缩技术,尤其涉及一种LZ77压缩算法的硬件解码实现系统及方法。
背景技术:
在数据压缩领域,LZ77算法是众所周知的,该算法是由Abraham Lempel与JacobZiv在1977年发表的,采用“滑动窗口”的原理实现数据的压缩。近年来,LZ77算法出现了许多变型,同时出现了一些LZ77算法和其它压缩算法结合的压缩方法,这些压缩方法表现出更优越的压缩效果。其中,比较著名的是LZ77算法与Huffman算法结合实现的Gzip压缩算法,该算法先利用LZ77算法将数据进行一级压缩(字典模式压缩),然后利用Huffman算法将压缩后的数据进行二级压缩(统计模式压缩),无疑,经结合后的算法在压缩效果上将更为优越。正是由于Gzip压缩算法的这种优势,使得该算法大量运用在大数据处理中,诸如互联网数据处理和近年兴起的云计算方面。数据经Gzip压缩算法处理之后,一方面,可以大幅度提高磁盘的有效容量,提高读写操作时的输入输出(I/O)有效带宽,从而有效的降低互联网和云计算数据处理的成本;另一方面,压缩后的数据起到加密的作用,在一定程度上保护了数据的安全性。然而,调查发现,通过软件实现Gzip压缩解压缩算法的方式进行数据处理时的效率较低,同时Gzip解压缩的算法一般都采用软件实现。分析发现,作为Gzip压缩算法核心组成部分的LZ77算法对压缩解压缩效果影响明显,尤其是在解压缩过程中,LZ77算法的解码效率直接影响Gzip解压缩效率。测试发现,以主频约2. 7GHz的CPU为例,其进行压缩的带宽约为6MB/s,而解压缩的带宽约为25MB/S。因而,在互联网或者近年热门的云计算当中,当面对大规模数据处理时,待压缩解压缩的数据流将巨增,采用CPU进行压缩解压缩处理数据必然会占用大量的CPU资源,而在进行解压缩过程时,CPU资源被大量占用的问题更为明显。因此,如何大幅度提高Gzip解压缩的处理效率,成为现有Gzip解压缩技术所亟待解决的技术问题,尤其是针对性的提出提高Gzip算法核心组成部分LZ77算法的解码方案。
发明内容
本发明的发明目的是提供一种LZ77压缩算法的硬件解码实现系统及方法,能够有效的提高现有Gzip解压缩算法核心组成部分LZ77算法的解码效率。为实现上述目的,本发明提供了一种LZ77压缩算法的硬件解码实现系统,包括字符类别判决模块,用于判断待解码数据的属性;字符类别判决结果反馈模块,用于根据待解码数据的属性进行解码操作;缓存模块,用于缓存解码后的字符,并统计缓存的字符数目;缓存字符数结果反馈模块,用于根据所述字符数目从缓存模块中移位相应字符到字典模块中进行存储,并返回字符类别判决模块继续解码直至解码结束,
其中字典模块用于存储缓存模块中的字符以备后续解码使用。进一步的,所述字符类别判决结果反馈模块中若是新字符,则直接缓存该新字符;若是重复字符,则从待解码数据中获取重复字符长度,从待解码数据中获取所述重复字符的指回距离,并判断所述重复字符所处的位置;根据所述重复长度和所述指回距离到所述位置处拷贝并缓存所述重复字符。进一步的,所述字符类别判决结果反馈模块中若是结束字符标志,则解码结束。进一步的,所述硬件解码实现系统还包括数据存储模块,用于存储解码后的字符;移位模块,用于丢弃所述数据存储模块中已经移位到字典模块中的字符。为实现上述目的,本发明还提供了一种LZ77压缩算法的硬件解码实现方法,包括步骤1,字符类别判决模块判断待解码数据的属性;步骤2,字符类别判决结果反馈模块根据待解码数据的属性进行解码操作;步骤3,缓存模块缓存解码后的字符,并统计缓存的字符数目;步骤4,缓存字符数结果反馈模块根据所述字符数目从缓存模块中移位相应字符到字典模块中进行存储,并返回步骤I继续解码直至解码结束,其中字典模块用于存储缓存模块中的字符以备后续解码使用。进一步的,所述步骤2中若是新字符,则直接缓存该新字符;若是重复字符,则从待解码数据中获取重复字符长度,从待解码数据中获取所述重复字符的指回距离,并判断所述重复字符所处的位置;根据所述重复长度和所述指回距离到所述位置处拷贝并缓存所述重复字符。进一步的,所述步骤2中若是结束字符则解码结束。进一步的,所述硬件解码实现方法还包括步骤5,数据存储模块存储解码后的字符;步骤6,移位模块根据所述字符数目丢弃数据存储模块中已经移位到字典模块中的字符。本发明的有益功效在于,1.该系统及方法可应用于Gzip解压缩算法核心组成部分LZ77解码算法中,采用可编程逻辑器件(FPGA)实现LZ77解码功能,通过采用缓存模块和字典模块实现一次解码多个字符的功能,从而提高了现有Gzip解压缩算法的处理效率。2.通过适当的改进和结构变化,该系统和方法也可用于其它含有LZ77相同或相似算法的应用中。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
图1A为本发明的一种LZ77压缩算法的硬件解码实现系统示意图;图1B为本发明的一种LZ77压缩算法的硬件解码实现系统流程图1C为本发明的第一实施例提供的一种LZ77压缩算法的硬件解码实现系统的结构示意图;图2为本发明的第二实施例提供的一种LZ77压缩算法的硬件解码实现系统示意图;图3为本发明的第一实施例提供的一种LZ77压缩算法的硬件解码实现系统的解码模块示意图;图4为本发明的第三实施例提供的一种LZ77压缩算法的硬件解码实现系统示意图;图5为本发明的一实施例提供的一种LZ77压缩算法的硬件解码实现系统的缓存丰旲块不意图;图6为本发明的第一实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图;图7为本发明的第二实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图;图8为本发明的第三实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图;图9为本发明的第四实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图。
具体实施例方式下面参照附图用本发明的示例性实施例对本发明进行更全面的描述和说明。图1A为本发明的一种LZ77压缩算法的硬件解码实现系统示意图。如图1A所示,该系统包括字符类别判决模块100,用于判断待解码数据的属性;字符类别判决结果反馈模块200,用于根据待解码数据的属性进行解码操作;缓存模块300,用于缓存解码后的字符,并统计缓存的字符数目;缓存字符数结果反馈模块400,用于根据所述字符数目从缓存模块中移位相应字符到字典模块中进行存储,并返回字符类别判决模块继续解码直至解码结束,其中字典模块用于存储缓存模块中的字符以备后续解码使用。进一步的,所述字符类别判决结果反馈模块200中若是新字符,则直接缓存该新字符;若是重复字符,则从待解码数据中获取重复字符长度,从待解码数据中获取所述重复字符的指回距离,并判断所述重复字符所处的位置;根据所述重复长度和所述指回距离到所述位置处拷贝并缓存所述重复字符。进一步的,所述字符类别判决结果反馈模块200中若是结束字符,则解码结束。进一步的,所述硬件解码实现系统还包括数据存储模块,用于存储解码后的字符;移位模块,用于丢弃所述数据存储模块中已经移位到字典模块中的字符。图1B为本发明的一种LZ77压缩算法的硬件解码实现系统流程图。如图1B所示,该方法包括步骤1,字符类别判决模块判断待解码数据的属性;步骤2,字符类别判决结果反馈模块根据待解码数据的属性进行解码操作;步骤3,缓存模块缓存解码后的字符,并统计缓存的字符数目;步骤4,缓存字符数结果反馈模块根据所述字符数目从缓存模块中移位相应字符到字典模块中进行存储,并返回步骤I继续解码直至解码结束,其中字典模块用于存储缓存模块中的字符以备后续解码使用。进一步的,所述步骤2中若是新字符,则直接缓存该新字符;若是重复字符,则从待解码数据中获取重复字符长度,从待解码数据中获取所述重复字符的指回距离,并判断所述重复字符所处的位置;根据所述重复长度和所述指回距离到所述位置处拷贝并缓存所述重复字符。进一步的,所述步骤2中若是结束字符,则解码结束。进一步的,所述硬件解码实现方法还包括步骤5,数据存储模块存储解码后的字符;步骤6,移位模块根据所述字符数目丢弃数据存储模块中已经移位到字典模块中的字符。图1C为本发明的第一实施例提供的一种LZ77压缩算法的硬件解码实现系统的结构示意图。如图1C所示,一种LZ77压缩算法的硬件解码实现系统100包括字符类别判决模块102、字符类别判决结果反馈模块104、解码模块106、缓存模块108,缓存字符数结果反馈模块110和字典模块112。其中,字符类别判决模块102,用于判断待解码数据属性,是新字符或者是重复字符或者是结束字符。例如,根据Gzip压缩解压缩规则分析知,经Huffman译码后的9bits二进制表示的值在0-255之间表示新字符;值为256表示块结束字符;值在257-285之间表示重复字符。若某次待解码数据为100000011=259,则表示重复字符。字符类别判决结果反馈模块104,用于根据字符类别判决模块102结果做出相应操作,即解码新字符或者解码重复字符或者解码结束。例如,判断结果是重复字符,则进行解码重复字符操作。解码模块106,用于解码新字符或解码重复字符。例如,解码重复字符,从待解码数据中获取重复字符长度,即获取历史缓冲区中重复字符的长度14 ;再从从待解码数据中获取指回距离,即获取重复字符在历史缓冲区中所处的位置1024处;最后根据所要拷贝的字符所处的位置(假定在字典模块112),到字典模块112中拷贝相应重复长度的字符。缓存模块108,用于缓存解码后的字符。例如,解码后的字符存入缓存模块108,同时统计字符个数,当一部分字符被写入字典模块时,将写入字典模块112的字符移位丢弃。缓存字符数结果反馈模块110,用于根据缓存模块中统计的字符数做出相应操作,即存储缓存模块中的部分字符到字典,备后续解码使用或者判断待解码数据属性,是新字符或者是重复字符或者是结束字符。例如,统计结果> N=S时,将其中的8个字符写入字典模块112。
字典模块112,用于存储缓存模块108中的字符,备后续解码使用。例如,字典模块112采用随机存取存储器(RAM)实现,深度8192 (8K),宽度64bits (8Bytes)。若某次重复长度是14个字符(Byte),要拷贝的字符在字典中,则可以分两次(两个RAM周期)将14个字符拷贝出即先拷贝8个字符存入缓存模块,再拷贝8个字符,并将多余的2个字符丢弃后存入缓存模块。不难发现,采用这种方式可以一次拷贝多个字符。图2为本发明的第二实施例提供的一种LZ77压缩算法的硬件解码实现系统示意图。如图2所示,一种LZ77压缩算法的硬件解码实现系统200包括字符类别判决模块202、字符类别判决结果反馈模块204、解码模块206、缓存模块208,缓存字符数结果反馈模块210和字典模块212 ;其中字符类别判决模块202、字符类别判决结果反馈模块204、缓存模块208,缓存字符数结果反馈模块210和字典模块212可以分别与图1C所示的字符类别判决模块102、字符类别判决结果反馈模块104、缓存模块108,缓存字符数结果反馈模块110和字典模块112具有相同或相似的结构,为简洁起见,这里不再赘述其技术内容。如图2所示,解码模块206进一步包括重复长度计算模块2060、指回距离计算模块2062、位置判决模块2064。其中,2060重复长度计算模块,用于从待解码数据中获取重复字符长度,即获取历史缓冲区中重复字符的长度。例如,获取重复字符长度为14。指回距离计算模块2062,用于从待解码数据中获取指回距离,即获取重复字符在历史缓冲区中所处的位置。例如,获取指回距离为1024。位置判决模块2064,用于判断所要拷贝的重复字符所处的位置,即在缓存模块208中或者字典模块212中或者缓存模块208和字典模块212中。例如,判断结果为在字典模块212中。图3为本发明的第一实施例提供的一种LZ77压缩算法的硬件解码实现系统的解码模块示意图。如图3所示,解码模块300包括重复长度计算模块302、指回距离计算模块304、位置判决模块306。具体来说,根据字符类别判决结果反馈模块204可知若待解码数据是新字符,则将新字符写入缓存模块208 ;若待解码数据是重复字符编码,则利用重复长度计算模块2060从待解码数据中获取重复字符长度,利用指回距离计算模块2062从待解码数据中获取指回距离,根据指回距离利用位置判决模块2064判断要拷贝的字符所处位置,再根据重复长度和位置信息到相应的位置处拷贝字符。图4为本发明的第三实施例提供的一种LZ77压缩算法的硬件解码实现系统示意图。如图4所示,一种LZ77压缩算法的硬件解码实现系统400包括字符类别判决模块402、字符类别判决结果反馈模块404、解码模块406、缓存模块408,缓存字符数结果反馈模块410和字典模块412 ;其中字符类别判决模块402、字符类别判决结果反馈模块404、解码模块406、缓存字符数结果反馈模块410和字典模块412可以分别与图1C所示的字符类别判决模块102、字符类别判决结果反馈模块104、解码模块106缓存字符数结果反馈模块110和字典模块112具有相同或相似的结构,为简洁起见,这里不再赘述其技术内容。如图4所示,缓存模块408进一步包括数据存储模块4080、字符数统计模块4082、移位模块4084。其中,数据存储模块4080,用于存储解码后的字符和存储经移位后的字符。例如,在可编程逻辑器件(FPGA)设计中,可采用定义register (寄存器)类型实现,大小可以定义为15字符(Byte),用于存储字符。字符数统计模块4082,用于统计数据存储模块中的存入的字符数目。例如,统计结果为9字符(Byte)。移位模块4084,用于移位丢弃数据存储模块中已经写入到字典模块的字符。例如,统计结果为9字符,大于等于N=8,则将数据存储模块中其中的8个字符写入到字典中(假设字典深度8192 (8K),宽度64bits(8Bytes)),则移位模块将写入字典中的8个字符移位丢弃。图5为本发明的一实施例提供的一种LZ77压缩算法的硬件解码实现系统的缓存模块示意图。如图5所示,缓存模块500包括数据存储模块502、字符数统计模块504、移位模块506。具体来说,解码后的字符存入数据存储模块502,同时利用字符数统计模块504统计字符数,利用移位模块506移位丢弃写入字典模块412中的字符,并且移位后的字符存入数据存储模块502中。图6为本发明的第一实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图。如图6所示,一种LZ77压缩算法的硬件解码实现方法的流程600包括步骤602,判断待解码数据属性,是新字符或者是重复字符或者是结束字符。例如,判断结果为重复字符。步骤604,根据字符类别判决模块结果做出相应操作,即解码新字符或者解码重复字符或者解码结束。例如,解码重复字符。步骤606,解码新字符或解码重复字符。例如,根据重复长度和指回距离到相应位置处拷贝重复字符。步骤608,缓存解码后的字符。例如,缓存解码出来的重复字符。步骤610,根据缓存模块中统计108的字符数做出相应操作,即存储缓存模块108中的部分字符到字典,备后续解码使用或者判断待解码数据属性,是新字符或者是重复字符或者是结束字符。例如,N=8,最终判断结果为字符数大于等于8,则缓存部分字符到字典。步骤612,存储缓存模块108中的部分字符,备后续解码使用。例如,存储缓存模块108中的8个字符。图7为本发明的第二实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图。如图7所示,一种LZ77压缩算法的硬件解码实现方法的流程700包括步骤702、704,7060 7064、708、710、712,其中步骤 702、704、708、710、712 可以分别执行与图 602、604、608、610、612所示的步骤相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。步骤7060,若是新字符,将新字符写入缓存模块;步骤7061,若是重复字符,利用重复长度计算模块,从待解码数据中获取重复字符长度,即获取历史缓冲区中重复字符的长度。例如,重复字符长度为14。步骤7062,利用指回距离计算模块,从待解码数据中获取指回距离,即获取重复字符在历史缓冲区中所处的位置。例如,指回距离为1024。步骤7063,利用位置判决模块,判断所要拷贝的重复字符所处的位置,即在缓存模块中或者字典模块中或者缓存模块和字典模块中。例如,判断结果为在字典模块112中。步骤7064,根据重复长度和指回距离到相应的位置处循环拷贝重复字符并写入缓存模块中。例如,到字典模块112中将重复字符拷贝出来。另外,需指出的是若要拷贝的字符在缓存模块408(数据存储模块4082大小为15字符)中时,则重复长度必小于等于7字符(因为数据存储模块4082中字符数大于等于8时,就将其中的8个字符写入字典模块412中了),则可一次性拷贝出,然后再存入数据存储模块4082中,此时再判断字符数是否大于等于8,决定是否将8字符写入字典模块412中;若要拷贝的字符即在缓存模块408中又在字典模块412 (假定用RAM实现,位宽8字符)中时,则先到缓存模块408中拷贝字符,并将拷贝的字符存入数据存储模块4082中(并判断是否需要将8字符写入字典模块412中),缓存模块408中的重复字符处理完毕后,到字典模块412中拷贝剩余重复字符,并将拷贝的字符存入数据存储模块4082中(并判断是否需要将8字符写入字典模块412中)。可见,通过采用缓存模块和字典模块实现一次解码多个字符的功能,从而提高了现有Gzip解压缩算法的处理效率。图8为本发明的第三实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图。如图8所示,一种LZ77压缩算法的硬件解码实现方法的流程800包括步骤802、804,806,8080 8082、810、812,其中步骤 802、804、806、810、812 可以分别执行与图 602、604、606、610、612所示的步骤相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。步骤8080,利用数据存储模块4082缓存解码后的字符和移位后的字符。例如,在可编程逻辑器件(FPGA)设计中,可采用定义register (寄存器)类型实现,大小可以定义为15字符(Byte),用于存储字符。步骤8081,利用字符数统计模块4080统计数据存储模块4082中的存入的字符数目。例如,统计结果为9字符(Byte)。步骤8082,利用移位模块4084移位丢弃数据存储模块中已经写入到字典模块412的字符。例如,统计结果为9字符,大于等于N=8,则将数据存储模块中其中的8个字符写入到字典中(假设字典深度8192 (8K),宽度64bits (8Bytes)),则移位模块将写入字典中的8个字符移位丢弃。
图9为本发明的第四实施例提供的一种LZ77压缩算法的硬件解码实现方法流程图。如图9所示,一种LZ77压缩算法的硬件解码实现方法的一个具体应用例的流程步骤包括步骤902,判断待解码数据属性,是新字符或者是重复字符或者是结束字符。例如,判断结果为重复字符。步骤904,根据字符类别判决模块结果做出相应操作,即解码新字符或者解码重复字符或者解码结束。例如,解码重复字符。步骤906,若是新字符,将新字符写入缓存模块;步骤908,若是重复字符,利用重复长度计算模块,从待解码数据中获取重复字符长度,即获取历史缓冲区中重复字符的长度。例如,重复字符长度为14。步骤910,利用指回距离计算模块,从待解码数据中获取指回距离,即获取重复字符在历史缓冲区中所处的位置。例如,指回距离为1024。步骤912,利用位置判决模块,判断所要拷贝的重复字符所处的位置,即在缓存模块中或者字典模块中或者缓存模块和字典模块中。例如,判断结果为在字典模块112中。步骤914,根据重复长度和指回距离到相应的位置处循环拷贝重复字符并写入缓存模块中。例如,到字典模块112中将重复字符拷贝出来。另外,需指出的是若要拷贝的字符在缓存模块408(数据存储模块4082大小为15字符)中时,则重复长度必小于等于7字符(因为数据存储模块4082中字符数大于等于8时,就将其中的8个字符写入字典模块412中了),则可一次性拷贝出,然后再存入数据存储模块4082中,此时再判断字符数是否大于等于8,决定是否将8字符写入字典模块412中;若要拷贝的字符即在缓存模块408中又在字典模块412 (假定用RAM实现,位宽8字符)中时,则先到缓存模块408中拷贝字符,并将拷贝的字符存入数据存储模块4082中(并判断是否需要将8字符写入字典模块412中),缓存模块408中的重复字符处理完毕后,到字典模块412中拷贝剩余重复字符,并将拷贝的字符存入数据存储模块4082中(并判断是否需要将8字符写入字典模块412中)。步骤916,利用数据存储模块4082缓存解码后的字符和移位后的字符。例如,在可编程逻辑器件(FPGA)设计中,可采用定义register (寄存器)类型实现,大小可以定义为15字符(Byte),用于存储字符。步骤918,利用字符数统计模块4080统计数据存储模块4082中的存入的字符数目。例如,统计结果为9字符(Byte)。步骤920,利用移位模块4084移位丢弃数据存储模块中已经写入到字典模块412的字符。例如,统计结果为9字符,大于等于N=8,则将数据存储模块中其中的8个字符写入到字典中(假设字典深度8192 (8K),宽度64bits (8Bytes)),则移位模块将写入字典中的8个字符移位丢弃。步骤922,根据缓存模块中统计108的字符数做出相应操作,即存储缓存模块108中的
部分字符到字典,备后续解码使用或者判断待解码数据属性,是新字符或者是重复字符或者是结束字符。例如,N=8,最终判断结果为字符数大于等于8,则缓存部分字符到字典步骤924,存储缓存模块108中的部分字符,备后续解码使用。例如,存储缓存模块108中的8个字符。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种LZ77压缩算法的硬件解码实现系统,其特征在于,包括: 字符类别判决模块,用于判断待解码数据的属性; 字符类别判决结果反馈模块,用于根据待解码数据的属性进行解码操作; 缓存模块,用于缓存解码后的字符,并统计缓存的字符数目; 缓存字符数结果反馈模块,用于根据所述字符数目从缓存模块中移位相应字符到字典模块中进行存储,并返回字符类别判决模块继续解码直至解码结束, 其中字典模块用于存储缓存模块中的字符以备后续解码使用。
2.如权利要求1所述的硬件解码实现系统,其特征在于,所述字符类别判决结果反馈模块中: 若是新字符,则直接缓存该新字符; 若是重复字符,则从待解码数据中获取重复字符长度,从待解码数据中获取所述重复字符的指回距离,并判断所述重复字符所处的位置;根据所述重复长度和所述指回距离到所述位置处拷贝并缓存所述重复字符。
3.如权利要求1所述的硬件解码实现系统,其特征在于,所述字符类别判决结果反馈模块中若是结束字符,则解码结束。
4.如权利要求1所述的硬件解码实现系统,其特征在于,所述硬件解码实现系统还包 括: 数据存储模块,用于存储解码后的字符; 移位模块,用于丢弃所述数据存储模块中已经移位到字典模块中的字符。
5.一种LZ77压缩算法的硬件解码实现方法,其特征在于,包括: 步骤1,字符类别判决模块判断待解码数据的属性; 步骤2,字符类别判决结果反馈模块根据待解码数据的属性进行解码操作; 步骤3,缓存模块缓存解码后的字符,并统计缓存的字符数目; 步骤4,缓存字符数结果反馈模块根据所述字符数目从缓存模块中移位相应字符到字典模块中进行存储,并返回步骤I继续解码直至解码结束, 其中字典模块用于存储缓存模块中的字符以备后续解码使用。
6.如权利要求5所述的硬件解码实现方法,其特征在于,所述步骤2中: 若是新字符,则直接缓存该新字符; 若是重复字符,则从待解码数据中获取重复字符长度,从待解码数据中获取所述重复字符的指回距离,并判断所述重复字符所处的位置;根据所述重复长度和所述指回距离到所述位置处拷贝并缓存所述重复字符。
7.如权利要求5所述的硬件解码实现方法,其特征在于,所述步骤2中若是结束字符,则解码结束。
8.如权利要求5所述的硬件解码实现方法,其特征在于,所述硬件解码实现方法还包括: 步骤5,数据存储模块存储解码后的字符; 步骤6,移位模块根据所述字符数目丢弃数据存储模块中已经移位到字典模块中的字符。
全文摘要
本发明提供了一种LZ77压缩算法的硬件解码实现系统及方法,该系统包括字符类别判决模块,用于判断待解码数据的属性;字符类别判决结果反馈模块,用于根据待解码数据的属性进行解码操作;缓存模块,用于缓存解码后的字符,并统计缓存的字符数目;缓存字符数结果反馈模块,用于根据所述字符数目从缓存模块中移位相应字符到字典模块中进行存储,并返回字符类别判决模块继续解码直至解码结束,其中字典模块用于存储缓存模块中的字符以备后续解码使用。本发明能够有效的提高现有Gzip解压缩算法核心组成部分LZ77算法的解码效率。
文档编号H03M7/30GK103078647SQ20131001361
公开日2013年5月1日 申请日期2013年1月15日 优先权日2013年1月15日
发明者尚壮壮, 隋秀峰, 郭彦锋, 李冰 申请人:中国科学院计算技术研究所