一种利用冗余位的字典查询压缩方法及装置的制作方法

文档序号:7871330阅读:197来源:国知局
专利名称:一种利用冗余位的字典查询压缩方法及装置的制作方法
技术领域
本发明涉及通信领域,更具体地,涉及一种利用冗余位的字典查询压缩方法及装置。
背景技术
目前,字典查询压缩在信息处理中有着广泛的应用。通常,字典查询压缩是一种无损压缩,其在解压后可以完全复原,但是压缩比偏低。现有的字典查询压缩的基本原理如图1所示,其核心思想是保留最近已编码的原文作为滑动窗口,将即将要编码的原文作为前瞻窗口。在滑动窗口中搜索尽可能长的与前瞻窗口重合的部分(即,相匹配的部分),并输出其在滑动窗口中的位置和长度,作为编码结果,并更新滑动窗口与前瞻窗口。如无匹配,则另以该字符及匹配长度为O编码。图1示出了该现有技术中的字典查询压缩方法的基本原理图,例如,如图1 (a)中所示,滑动窗口长度为20字节,前瞻窗口长度为8字节。其中粗体字部分为搜索到的滑动窗口与前瞻窗口中的最长匹配字符串,其在滑动窗口中的起始位置为6,长度为5,因此,编码结果为(6, 5),编码后如图1 (b)所示。编码完成后新的滑动窗口与前瞻窗口如图1 (c)所示。然而,若没有搜索到重合部分,则只能编码为(C,0),其中C代表原文,O代表匹配长度为O。图2为上述现有技术中的字典查询压缩方法的流程图。该字典查询压缩开始后,在步骤210中,首先在已编码的滑动窗口中搜索尽可能长的与将要编码的前瞻窗口重合(即,匹配)的部分;接着,在步骤220中,判断匹配结果,S卩,判断在滑动窗口中是否搜索到与前瞻窗口匹配的部分,如果匹配成功,则进入步骤230,采取匹配长度与匹配位置的组合作为新编码;如果匹配不成功,则进入步骤240,此时只能采取一个原文单位(通常为字节)和匹配长度为O作为新编码;然后进入步骤250,判断是否已编码到文件尾,如果为是则该字典查询压缩结束;如果为否则进入步骤260,更新滑动窗口(剔除最老的已编码原文,并将刚才编码的原文加到滑动窗口的尾部)和前瞻窗口(剔除刚才编码的原文,并将前瞻窗口外的新原文加到前瞻窗口的尾部),接着跳回步骤210重复新的循环。此外,图3为图2所示的现有的字典查询压缩方法中的步骤210中所采用的比较器的原理图,其中图3 (a)示出了该比较器的传统结构,其只是简单地将待比较的两个字符串进行比较,例如,图3 (b)示出两个输入的字符串在第3字节不同,所以比较结果为不匹配;图3 (c)示出两个输入的字符串完全相同,故比较结果为匹配。由上述分析可得,根据现有的字典查询压缩方法,只有在匹配时,该算法才能达到压缩效果,否则反而需要加上额外的匹配长度为O字节的字符,较原文更长。然而,在很多实际应用中,并非原文的所有内容都是有效信息,那些即便被改变也不影响应用效果的内容即冗余位。如果能充分利用冗余位,则可以得到更多的匹配情况,从而能够谋求压缩效率的提高。

发明内容
本发明所要解决的技术问题在于提供一种利用冗余位的字典查询压缩方法及装置,可以提高字典查询压缩方法匹配的可能性,从而提高压缩效率。为了解决该技术问题,一方面,本发明提供了一种利用冗余位的字典查询压缩方法,包括:将已编码的原文作为滑动窗口,并将即将要编码的原文作为前瞻窗口 ;对所述滑动窗口与所述前瞻窗口的内容分别进行冗余位判断;对进行所述冗余位判断后的所述滑动窗口与所述前瞻窗口的内容进行匹配比较,其中只对非冗余位的内容进行匹配比较,而对冗余位的内容一律视为匹配成功;根据匹配结果进行编码。采用本发明,在检测匹配时,引入冗余位判断;只对非冗余位进行比较,而冗余位一律视为匹配成功。因而可利用冗余标志得到更多匹配可能。具体地,将前瞻窗口的待压缩原文与滑动窗口的已压缩原文比较时,只比较非冗余位,冗余位一律视为匹配成功;且解压方法和装置无需为冗余位做任何改变,虽解压得到的内容可能与压缩前不一致,但这些相异处全部位于冗余位,不影响结果。因此,采用本发明还可以有效地提高压缩比,节省数据带宽,同时对解压缩端无任何影响。 在本发明中,所述冗余位判断包括将所述滑动窗口与所述前瞻窗口的内容分别与指示冗余位的比特流进行逻辑与运算。在本发明中,所述指示冗余位的比特流包括随原文同时输入的另外的比特流。在本发明中,所述指示冗余位的比特流包括直接根据原文特征产生的指示冗余位的比特流。在本发明中,所述原文的每个信息单位为字节。在本发明中,所述根据匹配结果进行编码包括采取相匹配的字符串在所述滑动窗口中的匹配位置与其匹配长度的组合作为新编码。在本发明中,所述根据匹配结果进行编码包括采取原文字节和匹配长度为O作为新编码。在本发明中,还包括在所述编码完成后更新滑动窗口与前瞻窗口。在本发明中,所述更新滑动窗口与前瞻窗口包括对所述滑动窗口剔除最老的已编码原文,并将刚才编码的原文加到所述滑动窗口的尾部,而对所述前瞻窗口剔除刚才编码的原文,并将所述前瞻窗口外的新原文加到所述前瞻窗口的尾部。另一方面,本发明还提供一种用于上述利用冗余位的字典查询压缩方法中的装置,包括:使所述滑动窗口的内容与指示冗余位的比特流进行逻辑与运算的第一冗余位判断单元,使所述前瞻窗口的内容与所述指示冗余位的比特流进行逻辑与运算的第二冗余位判断单元,对所述第一单元和第二单元输出的内容进行匹配比较的比较单元。本发明的利用冗余位的字典查询压缩方法及装置将结合以下的实施形态及附图详细说明。


图1为现有技术中的字典查询压缩方法的基本原理图;图2为现有技术中的字典查询压缩方法的流程图;图3为现有技术中的字典查询压缩方法中所采用的比较器的原理图4为本发明的字典查询压缩方法中所采用的加入冗余位处理的比较器的原理图;图5为现有的字典查询压缩的过程图;图6为带冗余位的字典查询压缩的过程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域技术人员可以理解,在本发明各实施方式中,为了更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。以下,结合附图详细说明本发明的利用冗余位的字典查询压缩方法及装置。在本发明的字典查询压缩方法的一实施形态中,将最近已编码的N个字节作为滑动窗口,将即将要编码的L个字节作为前瞻窗口 ;其中,所述N为滑动窗口包含的字节数,所述L为前瞻窗口包含的字节数。以下说明本发明的字典查询压缩方法的具体内容。与如图2所示的现有技术中的字典查询压缩方法的主要流程相类似,本发明的字典查询压缩方法包括:在步骤210中,在滑动窗口中搜索尽可能长的与前瞻窗口匹配的部分。但是本发明主要就是针对该步骤210进行改进,其将在后文进行详述。接着,在步骤220中,判断在滑动窗口中是否搜索到与前瞻窗口匹配的部分。如果搜索到与前瞻窗口匹配的部分,则进入步骤230 ;如果未搜索到与前瞻窗口匹配的部分,则进入步骤240。当进入步骤230时,编码结果为(匹配位置,匹配长度);当进入步骤240时,编码结果为(原文字节,O)。然后进入步骤250,判断是否已到文件尾,如果为是则结束,否则进入步骤260,更新滑动窗口和前瞻窗口(采取先进先出的原则,对滑动窗口剔除最老的编码内容,以刚编码完成的内容置于该滑动窗口的尾部;对前瞻窗口即剔除刚编码完成的内容,再从原文取新内容置于该前瞻窗口的尾部),接着,再回到步骤210开始新的循环。本发明的改进在于在匹配时引入冗余位判断的概念,即,在步骤210中对滑动窗口与前瞻窗口进行比较之前,先将待比较的内容和冗余指示进行逻辑与运算,从而在滑动窗口与前瞻窗口进行匹配比较时本质上只对非冗余位的内容进行比较,而对冗余位的内容一律视为匹配成功。如图3所示,在传统的字典查询压缩方法中所采用的比较器中要求待比较的内容完全一致才认为匹配成功。而在图4所示的本发明的字典查询压缩方法中所采用的加入冗余位处理的比较器中,先将待比较的内容和冗余位进行逻辑与运算。具体地,如图4 (a)所示,针对图2中步骤210进行了加入冗余位判断的操作。对应于原文的每个信息单位(通常为字节),均有输入比特流指示该单位是否为冗余(冗余为0,非冗余为1,冗余指示的来源可以是另外的输入,也可以是由某些特征得知哪些内容冗余)。在滑动窗口与前瞻窗口进行匹配比较前,将该比特与原文进行逻辑与运算,因为逻辑与运算遇零得零,故所有冗余位在进行上述匹配比较之前必定为零,因此冗余位的匹配比较结果必然为匹配。如图4(b),例如,冗余位指示全部为I,逻辑与运算后两个输入保持不变,而二者相异,故比较结果为不匹配;图4 (c)中,第3字节冗余指示为0,逻辑与运算后,两个输入的第3字节均变为O,比较器的两个输入完全相同,故比较结果为匹配。可见,图4(c)中相异处恰好位于冗余位,所以虽然原始输入不同,最后的匹配结果仍然是成功。由上述可得,在输入码流不变时,由于冗余指示不同可能导致不同的匹配结果。无冗余指示仍能匹配的情形,在有冗余指示时,必将保持匹配;而某些无冗余指示不能匹配的情形,在有冗余指示时,可能变为匹配。换言之,匹配的可能性在引入冗余指示后,只可能增力口,而不会减少,由此就能提高压缩比。匹配与否对字典查询压缩的压缩比有实质性影响。以下说明采用本发明的利用冗余位的字典查询压缩方法与现有的字典查询压缩方法的不同效果,具体地,图5和图6对比了一个实例,其中前者为传统方法,后者为本发明采用带冗余位指示的方法。图5示出了传统的编码步骤。在图5 (a)中,左侧为滑动窗口(已编码原文),深度16字节,编号从O到15 ;右侧为前瞻窗口,深度8字节。经过图2中的210步骤,最长的匹配如下方对应连线所示,即(E,F,G)。根据编码位置和编码长度,编码为(4,3)。滑动窗口和前瞻窗口更新后变为图5(b), I无匹配,编码为(1,0)。滑动窗口和前瞻窗口更新后变为图5 (C),此时新匹配为(A,B,C,D),编码为(4,4)。因此,总共用了 6字节对原文8字节编码,压缩比为8/6=1.33。图6示出了本发明的带冗余位的编码过程。因前瞻窗口第4字节即I的位置为冗余,故比较结果为其余7字节全部匹配成功(以下方V表示),而第4字节虽然滑动窗口内容为H,与前瞻窗口的I并不匹配,但由于该位为冗余位,所以匹配永远成功(以下方=表示)。因此,编码为(4,8),压缩比为8/2=4,为不带冗余位时的3倍。如上所述,对于同样的内容,因为中间第4字节不同,图5的编码结果最后是3组编码,而图6由于第4字节被指示为冗余位,从而使全部前瞻窗口一次性匹配成功,只产生I组编码,效率为前者的3倍。本领域的技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种利用冗余位的字典查询压缩方法,其特征在于,包括: 将已编码的原文作为滑动窗口,并将即将要编码的原文作为前瞻窗口 ; 对所述滑动窗口与所述前瞻窗口的内容分别进行冗余位判断; 对进行所述冗余位判断后的所述滑动窗口与所述前瞻窗口的内容进行匹配比较,其中只对非冗余位的内容进行匹配比较,而对冗余位的内容一律视为匹配成功; 根据匹配结果进行编码。
2.根据权利要求1所述的利用冗余位的字典查询压缩方法,其特征在于,所述冗余位判断包括将所述滑动窗口与所述前瞻窗口的内容分别与指示冗余位的比特流进行逻辑与运算。
3.根据权利要求2所述的利用冗余位的字典查询压缩方法,其特征在于,所述指示冗余位的比特流包括随原文同时输入的另外的比特流。
4.根据权利要求2所述的利用冗余位的字典查询压缩方法,其特征在于,所述指示冗余位的比特流包括直接根据原文特征产生的指示冗余位的比特流。
5.根据上述权利要求1至4中任一项所述的利用冗余位的字典查询压缩方法,其特征在于,所述原文的每个信息单位为字节。
6.根据权利要求5所述的利用冗余位的字典查询压缩方法,其特征在于,所述根据匹配结果进行编码包括采取相匹配的字符串在所述滑动窗口中的匹配位置与其匹配长度的组合作为新编码。
7.根据权利要求5所述的利用冗余位的字典查询压缩方法,其特征在于,所述根据匹配结果进行编码包括采取原文字节和匹配长度为O作为新编码。
8.根据权利要求1所述的利用冗余位的字典查询压缩方法,其特征在于,还包括在所述编码完成后更新滑动窗口与前瞻窗口。
9.根据权利要求8所述的利用冗余位的字典查询压缩方法,其特征在于,所述更新滑动窗口与前瞻窗口包括对所述滑动窗口剔除最老的已编码原文,并将刚才编码的原文加到所述滑动窗口的尾部,而对所述前瞻窗口剔除刚才编码的原文,并将所述前瞻窗口外的新原文加到所述前瞻窗口的尾部。
10.一种用于根据上述权利要求1至9中任一项所述的利用冗余位的字典查询压缩方法中的装置,其特征在于,包括:使所述滑动窗口的内容与指示冗余位的比特流进行逻辑与运算的第一冗余位判断单元,使所述前瞻窗口的内容与所述指示冗余位的比特流进行逻辑与运算的第二冗余位判断单元,对所述第一单元和第二单元输出的内容进行匹配比较的比较单元。
全文摘要
本发明公开了一种利用冗余位的字典查询压缩方法,包括将已编码的原文作为滑动窗口,并将即将要编码的原文作为前瞻窗口;对所述滑动窗口与所述前瞻窗口的内容分别进行冗余位判断;对进行所述冗余位判断后的所述滑动窗口与所述前瞻窗口的内容进行匹配比较,其中只对非冗余位的内容进行匹配比较,而对冗余位的内容一律视为匹配成功;根据匹配结果进行编码。本发明通过在匹配时引入冗余位判断,将原来的不匹配情形转化为匹配情形,提高压缩比,节省数据带宽,同时对解压缩端无任何影响。
文档编号H04L1/00GK103078706SQ201210593940
公开日2013年5月1日 申请日期2012年12月31日 优先权日2012年12月31日
发明者黄寅, 胡兴微, 蒋玉东 申请人:上海宇芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1