数据压缩方法及数据解压缩装置的制造方法_2

文档序号:8415267阅读:来源:国知局
0040]A2、若在动态字典中查找到与所述第二部分数据的首字节相同的字符,则标记从首字节开始相同的最长字符串在所述动态字典的起始点位置以及所述最长字符串的字符数,若在动态字典中没有查找到与所述第二部分数据的首字节相同的字符,则在动态字典中查找与所述第二部分数据的次字节相同的字符;
[0041]A3、若在动态字典中查找到与所述第二部分数据的次字节相同的字符,则标记从次字节开始相同的最长字符串在所述动态字典的起始点位置、所述最长字符串的字符数以及不匹配字符,若在动态字典中没有查找到与所述第二部分数据的次字节相同的字符,则在动态字典中查找与所述第二部分数据的次字节的下一字节相同的字符;
[0042]A4、逐位查找,直到在动态字典中查找到与第二部分数据的某个字节相同的字符,并标记从所述某个字节开始相同的最长字符串在所述动态字典的起始点位置、所述最长字符串的字符数、所述第二部分数据与动态字典不相同的字符数以及不匹配的字符。
[0043]该步骤中,将第二部分数据逐位与动态字典匹配,并记录匹配成功时最长字符串的字符数、第二部分数据与动态字典不相同的字符数以及不匹配的字等信息,直到第二部分数据全部匹配结束。
[0044]优选地,上述的动态字典的长度为256,匹配长度为128,重复长度和非重复长度均为64。
[0045]该步骤中,字符串长度信息用两字节的字符表示,理论上的最大长度为256,但由于需要区分匹配和不匹配两种情况,因此匹配器长度为最大长度减半,即128。动态字典长度即为256。对于不匹配的情况,该字符又需要区分是否重复,因此重复长度和非重复长度均为64。
[0046]步骤S14、更新动态字典。
[0047]该步骤中,在第二部分数据与动态字典每次匹配之后,无论匹配成功还是失败,都及时更新动态字典。例如,在匹配成功时,将待压缩数据转换成匹配成功对应的格式之后,同时更新动态字典。
[0048]其中,更新动态字典的步骤具体为:
[0049]在与第二部分数据匹配后,将所述动态字典后移一个或多个字符,后移的字符数与第二部分匹配或不匹配的最长字符串的字符数相同。
[0050]步骤S15、输出压缩数据。
[0051]本发明实施例中,对数据进行压缩时,将接收的数据分为两部分,一部分数据作为动态字典的数据,另一部分数据通过与动态字典逐位匹配实现压缩。由于动态字典在与数据匹配后及时更新,且在数据与动态字典不匹配时也对具有重复特性的数据实现压缩,因此能够确保高效率压缩,达到高效的压缩性能。
[0052]实施例二:
[0053]图2示出了本发明第二实施例提供的一种数据压缩装置的结构,为了便于说明,仅不出了与本发明实施例相关的部分。
[0054]该数据压缩装置包括:第一接收器21、第一数据划分单元22、第一匹配器23、数据处理器24以及第一输出单元25。其中:
[0055]第一接收器21,用于接收待压缩数据。
[0056]其中,待压缩数据可具有位流特性,如FPGA配置数据。
[0057]第一数据划分单元22,用于将接收的待压缩数据分为第一部分数据和第二部分数据,所述第一部分数据作为压缩所述第二部分数据的动态字典,所述动态字典的长度为预先设定。
[0058]其中,动态字典的长度可设置为256。
[0059]第一匹配器23,用于将第二部分数据与所述动态字典匹配,若匹配成功,将所述待压缩数据转换成匹配成功对应的格式,若匹配失败,分析所述第二部分数据的格式,并将分析了格式的具有重复特性的第二部分数据转换成匹配失败对应的格式,所述匹配成功对应的格式含有所述待压缩数据中被压缩的字符数和被压缩数据的起始位置的信息;所述匹配失败对应的格式含有不匹配数据、字符数,或含有不匹配数据、字符数以及连续字符重复特性的信息。
[0060]其中,当第二部分数据与动态字典匹配失败时,分析该第二部分数据中连续重复的字符及重复的字符数,再根据分析结果将该第二部分数据转换到包含不匹配数据、字符数以及连续字符重复特性的信息的相应格式。
[0061]其中,所述第一匹配器23包括:
[0062]第一查找模块,用于在动态字典中查找与所述第二部分数据的首字节相同的字符;若在动态字典中没有查找到与所述第二部分数据的首字节相同的字符,则在动态字典中查找与所述第二部分数据的次字节相同的字符;用于在动态字典中没有查找到与所述第二部分数据的次字节相同的字符时,则在动态字典中查找与所述第二部分数据的次字节的下一字节相同的字符;逐位查找,直到在动态字典中查找到与第二部分数据的某个字节相同的字符。
[0063]第一标记模块,用于在动态字典中查找到与所述第二部分数据的首字节相同的字符时,标记从首字节开始相同的最长字符串在所述动态字典的起始点位置以及所述最长字符串的字符数;用于在动态字典中查找到与所述第二部分数据的次字节相同的字符时,则标记从次字节开始相同的最长字符串在所述动态字典的起始点位置、所述最长字符串的字符数以及不匹配字符;用于在动态字典中查找到与第二部分数据的某个字节相同的字符时,标记从所述某个字节开始相同的最长字符串在所述动态字典的起始点位置、所述最长字符串的字符数、所述第二部分数据与动态字典不相同的字符数以及不匹配的字符。
[0064]第一数据处理器24,用于更新动态字典。
[0065]其中,动态字典后移一个或多个字符以实现更新时,后移的字符数与第二部分匹配或不匹配的最长字符串的字符数相同。
[0066]优选地,上述动态字典的长度为256,匹配长度为128,重复长度和非重复长度均为64。
[0067]第一输出单兀25,用于输出转换格式后的待压缩数据。
[0068]本发明实施例中,将待压缩数据分为两部分,一部分作为动态字典的数据,一部分作为与动态字典匹配的数据,再根据匹配结果将待压缩数据转换为相应的格式。由于动态字典在与数据匹配后及时更新,因此能够确保高效率压缩,达到高效的压缩性能。
[0069]实施例三:
[0070]图3示出了本发明第三实施例提供的一种数据解压缩装置的结构,该数据解压缩装置为针对实施例二的数据压缩装置压缩的数据进行解压的装置,为了便于说明,仅示出了与本发明实施例相关的部分。
[0071]该数据解压缩装置包括:第二接收器31、第二数据划分单元32、数据分析器33、第二数据处理器34、第二输出单元35。
[0072]第二接收器31,用于接收待解压缩数据,所述待解压缩数据含有被压缩的字符数和被压缩数据的起始位置的信息。
[0073]其中,待解压缩数据除了含有被压缩的字符数和被压缩数据的起始位置的信息之外,还包含有未被压缩的字符等信息。
[0074]第二数据划分单元32,用于将接收的待解压缩数据分为第一部分数据和第二部分数据,所述第一部分数据作为解压缩所述第二部分数据的动态字典,所述动态字典的长度为预先设定。
[0075]其中,解压缩时动态字典的长度与压缩时采用的动态字典的长度相同。
[0076]优选地,上述动态字典的长度为256,匹配长度为128,重复长度和非重复长度均为64。
[0077]数据分析器33,用于分析待解压数据的首字符,判断待解压数据是否为匹配的压缩数据;若为匹配的压缩数据,根据待解压缩数据所包含的被压缩数据的字符数和被压缩数据的起始位置的信息,在动态字典中,标示出对应位置的字符串,标示的字符串作为解压出的数据;若为不匹配的压缩数据,则分析待解压数据中首字符后的数据是否具有重复特性,若无重复特性,根据待解压缩数据所包含的被压缩数据的不匹配数据、字符数直接将待解压数据作为解压出的数据,若有重复特性,则根据待解压缩数据所包含的被压缩数据的不匹配数据、字符数以及连续字符重复特性将重复的待解压数据展开,作为解压出的数据;
[0078]该数据分析器33如上分析后续待解
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1