CN103078706B - 一种利用冗余位的字典查询压缩方法及装置 - Google Patents

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

Info

Publication number
CN103078706B
CN103078706B CN201210593940.7A CN201210593940A CN103078706B CN 103078706 B CN103078706 B CN 103078706B CN 201210593940 A CN201210593940 A CN 201210593940A CN 103078706 B CN103078706 B CN 103078706B
Authority
CN
China
Prior art keywords
redundant digit
look
window
original text
sliding window
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210593940.7A
Other languages
English (en)
Other versions
CN103078706A (zh
Inventor
黄寅
胡兴微
蒋玉东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI YUXIN TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI YUXIN TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI YUXIN TECHNOLOGY Co Ltd filed Critical SHANGHAI YUXIN TECHNOLOGY Co Ltd
Priority to CN201210593940.7A priority Critical patent/CN103078706B/zh
Publication of CN103078706A publication Critical patent/CN103078706A/zh
Application granted granted Critical
Publication of CN103078706B publication Critical patent/CN103078706B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种利用冗余位的字典查询压缩方法,包括:将已编码的原文作为滑动窗口,并将即将要编码的原文作为前瞻窗口;对所述滑动窗口与所述前瞻窗口的内容分别进行冗余位判断;对进行所述冗余位判断后的所述滑动窗口与所述前瞻窗口的内容进行匹配比较,其中只对非冗余位的内容进行匹配比较,而对冗余位的内容一律视为匹配成功;根据匹配结果进行编码。本发明通过在匹配时引入冗余位判断,将原来的不匹配情形转化为匹配情形,提高压缩比,节省数据带宽,同时对解压缩端无任何影响。

Description

一种利用冗余位的字典查询压缩方法及装置
技术领域
本发明涉及通信领域,更具体地,涉及一种利用冗余位的字典查询压缩方法及装置。
背景技术
目前,字典查询压缩在信息处理中有着广泛的应用。通常,字典查询压缩是一种无损压缩,其在解压后可以完全复原,但是压缩比偏低。现有的字典查询压缩的基本原理如图1所示,其核心思想是保留最近已编码的原文作为滑动窗口,将即将要编码的原文作为前瞻窗口。在滑动窗口中搜索尽可能长的与前瞻窗口重合的部分(即,相匹配的部分),并输出其在滑动窗口中的位置和长度,作为编码结果,并更新滑动窗口与前瞻窗口。如无匹配,则另以该字符及匹配长度为0编码。
图1示出了该现有技术中的字典查询压缩方法的基本原理图,例如,如图1(a)中所示,滑动窗口长度为20字节,前瞻窗口长度为8字节。其中粗体字部分为搜索到的滑动窗口与前瞻窗口中的最长匹配字符串,其在滑动窗口中的起始位置为6,长度为5,因此,编码结果为(6,5),编码后如图1(b)所示。编码完成后新的滑动窗口与前瞻窗口如图1(c)所示。然而,若没有搜索到重合部分,则只能编码为(C,0),其中C代表原文,0代表匹配长度为0。
图2为上述现有技术中的字典查询压缩方法的流程图。该字典查询压缩开始后,在步骤210中,首先在已编码的滑动窗口中搜索尽可能长的与将要编码的前瞻窗口重合(即,匹配)的部分;接着,在步骤220中,判断匹配结果,即,判断在滑动窗口中是否搜索到与前瞻窗口匹配的部分,如果匹配成功,则进入步骤230,采取匹配长度与匹配位置的组合作为新编码;如果匹配不成功,则进入步骤240,此时只能采取一个原文单位(通常为字节)和匹配长度为0作为新编码;然后进入步骤250,判断是否已编码到文件尾,如果为是则该字典查询压缩结束;如果为否则进入步骤260,更新滑动窗口(剔除最老的已编码原文,并将刚才编码的原文加到滑动窗口的尾部)和前瞻窗口(剔除刚才编码的原文,并将前瞻窗口外的新原文加到前瞻窗口的尾部),接着跳回步骤210重复新的循环。
此外,图3为图2所示的现有的字典查询压缩方法中的步骤210中所采用的比较器的原理图,其中图3(a)示出了该比较器的传统结构,其只是简单地将待比较的两个字符串进行比较,例如,图3(b)示出两个输入的字符串在第3字节不同,所以比较结果为不匹配;图3(c)示出两个输入的字符串完全相同,故比较结果为匹配。
由上述分析可得,根据现有的字典查询压缩方法,只有在匹配时,该算法才能达到压缩效果,否则反而需要加上额外的匹配长度为0字节的字符,较原文更长。
然而,在很多实际应用中,并非原文的所有内容都是有效信息,那些即便被改变也不影响应用效果的内容即冗余位。如果能充分利用冗余位,则可以得到更多的匹配情况,从而能够谋求压缩效率的提高。
发明内容
本发明所要解决的技术问题在于提供一种利用冗余位的字典查询压缩方法及装置,可以提高字典查询压缩方法匹配的可能性,从而提高压缩效率。
为了解决该技术问题,一方面,本发明提供了一种利用冗余位的字典查询压缩方法,包括:将已编码的原文作为滑动窗口,并将即将要编码的原文作为前瞻窗口;对所述滑动窗口与所述前瞻窗口的内容分别进行冗余位判断;对进行所述冗余位判断后的所述滑动窗口与所述前瞻窗口的内容进行匹配比较,其中只对非冗余位的内容进行匹配比较,而对冗余位的内容一律视为匹配成功;根据匹配结果进行编码。
采用本发明,在检测匹配时,引入冗余位判断;只对非冗余位进行比较,而冗余位一律视为匹配成功。因而可利用冗余标志得到更多匹配可能。具体地,将前瞻窗口的待压缩原文与滑动窗口的已压缩原文比较时,只比较非冗余位,冗余位一律视为匹配成功;且解压方法和装置无需为冗余位做任何改变,虽解压得到的内容可能与压缩前不一致,但这些相异处全部位于冗余位,不影响结果。因此,采用本发明还可以有效地提高压缩比,节省数据带宽,同时对解压缩端无任何影响。
在本发明中,所述冗余位判断包括将所述滑动窗口与所述前瞻窗口的内容分别与指示冗余位的比特流进行逻辑与运算。
在本发明中,所述指示冗余位的比特流包括随原文同时输入的另外的比特流。
在本发明中,所述指示冗余位的比特流包括直接根据原文特征产生的指示冗余位的比特流。
在本发明中,所述原文的每个信息单位为字节。
在本发明中,所述根据匹配结果进行编码包括采取相匹配的字符串在所述滑动窗口中的匹配位置与其匹配长度的组合作为新编码。
在本发明中,所述根据匹配结果进行编码包括采取原文字节和匹配长度为0作为新编码。
在本发明中,还包括在所述编码完成后更新滑动窗口与前瞻窗口。
在本发明中,所述更新滑动窗口与前瞻窗口包括对所述滑动窗口剔除最老的已编码原文,并将刚才编码的原文加到所述滑动窗口的尾部,而对所述前瞻窗口剔除刚才编码的原文,并将所述前瞻窗口外的新原文加到所述前瞻窗口的尾部。
另一方面,本发明还提供一种用于上述利用冗余位的字典查询压缩方法中的装置,包括:使所述滑动窗口的内容与指示冗余位的比特流进行逻辑与运算的第一冗余位判断单元,使所述前瞻窗口的内容与所述指示冗余位的比特流进行逻辑与运算的第二冗余位判断单元,对所述第一单元和第二单元输出的内容进行匹配比较的比较单元。
本发明的利用冗余位的字典查询压缩方法及装置将结合以下的实施形态及附图详细说明。
附图说明
图1为现有技术中的字典查询压缩方法的基本原理图;
图2为现有技术中的字典查询压缩方法的流程图;
图3为现有技术中的字典查询压缩方法中所采用的比较器的原理图;
图4为本发明的字典查询压缩方法中所采用的加入冗余位处理的比较器的原理图;
图5为现有的字典查询压缩的过程图;
图6为带冗余位的字典查询压缩的过程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域技术人员可以理解,在本发明各实施方式中,为了更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
以下,结合附图详细说明本发明的利用冗余位的字典查询压缩方法及装置。
在本发明的字典查询压缩方法的一实施形态中,将最近已编码的N个字节作为滑动窗口,将即将要编码的L个字节作为前瞻窗口;其中,所述N为滑动窗口包含的字节数,所述L为前瞻窗口包含的字节数。以下说明本发明的字典查询压缩方法的具体内容。
与如图2所示的现有技术中的字典查询压缩方法的主要流程相类似,本发明的字典查询压缩方法包括:在步骤210中,在滑动窗口中搜索尽可能长的与前瞻窗口匹配的部分。但是本发明主要就是针对该步骤210进行改进,其将在后文进行详述。
接着,在步骤220中,判断在滑动窗口中是否搜索到与前瞻窗口匹配的部分。如果搜索到与前瞻窗口匹配的部分,则进入步骤230;如果未搜索到与前瞻窗口匹配的部分,则进入步骤240。
当进入步骤230时,编码结果为(匹配位置,匹配长度);当进入步骤240时,编码结果为(原文字节,0)。
然后进入步骤250,判断是否已到文件尾,如果为是则结束,否则进入步骤260,更新滑动窗口和前瞻窗口(采取先进先出的原则,对滑动窗口剔除最老的编码内容,以刚编码完成的内容置于该滑动窗口的尾部;对前瞻窗口即剔除刚编码完成的内容,再从原文取新内容置于该前瞻窗口的尾部),接着,再回到步骤210开始新的循环。
本发明的改进在于在匹配时引入冗余位判断的概念,即,在步骤210中对滑动窗口与前瞻窗口进行比较之前,先将待比较的内容和冗余指示进行逻辑与运算,从而在滑动窗口与前瞻窗口进行匹配比较时本质上只对非冗余位的内容进行比较,而对冗余位的内容一律视为匹配成功。如图3所示,在传统的字典查询压缩方法中所采用的比较器中要求待比较的内容完全一致才认为匹配成功。而在图4所示的本发明的字典查询压缩方法中所采用的加入冗余位处理的比较器中,先将待比较的内容和冗余位进行逻辑与运算。
具体地,如图4(a)所示,针对图2中步骤210进行了加入冗余位判断的操作。对应于原文的每个信息单位(通常为字节),均有输入比特流指示该单位是否为冗余(冗余为0,非冗余为1,冗余指示的来源可以是另外的输入,也可以是由某些特征得知哪些内容冗余)。在滑动窗口与前瞻窗口进行匹配比较前,将该比特与原文进行逻辑与运算,因为逻辑与运算遇零得零,故所有冗余位在进行上述匹配比较之前必定为零,因此冗余位的匹配比较结果必然为匹配。如图4(b),例如,冗余位指示全部为1,逻辑与运算后两个输入保持不变,而二者相异,故比较结果为不匹配;图4(c)中,第3字节冗余指示为0,逻辑与运算后,两个输入的第3字节均变为0,比较器的两个输入完全相同,故比较结果为匹配。可见,图4(c)中相异处恰好位于冗余位,所以虽然原始输入不同,最后的匹配结果仍然是成功。
由上述可得,在输入码流不变时,由于冗余指示不同可能导致不同的匹配结果。无冗余指示仍能匹配的情形,在有冗余指示时,必将保持匹配;而某些无冗余指示不能匹配的情形,在有冗余指示时,可能变为匹配。换言之,匹配的可能性在引入冗余指示后,只可能增加,而不会减少,由此就能提高压缩比。
匹配与否对字典查询压缩的压缩比有实质性影响。以下说明采用本发明的利用冗余位的字典查询压缩方法与现有的字典查询压缩方法的不同效果,具体地,图5和图6对比了一个实例,其中前者为传统方法,后者为本发明采用带冗余位指示的方法。
图5示出了传统的编码步骤。在图5(a)中,左侧为滑动窗口(已编码原文),深度16字节,编号从0到15;右侧为前瞻窗口,深度8字节。经过图2中的210步骤,最长的匹配如下方对应连线所示,即(E,F,G)。根据编码位置和编码长度,编码为(4,3)。滑动窗口和前瞻窗口更新后变为图5(b),I无匹配,编码为(I,0)。滑动窗口和前瞻窗口更新后变为图5(c),此时新匹配为(A,B,C,D),编码为(4,4)。因此,总共用了6字节对原文8字节编码,压缩比为8/6=1.33。
图6示出了本发明的带冗余位的编码过程。因前瞻窗口第4字节即I的位置为冗余,故比较结果为其余7字节全部匹配成功(以下方√表示),而第4字节虽然滑动窗口内容为H,与前瞻窗口的I并不匹配,但由于该位为冗余位,所以匹配永远成功(以下方≡表示)。因此,编码为(4,8),压缩比为8/2=4,为不带冗余位时的3倍。
如上所述,对于同样的内容,因为中间第4字节不同,图5的编码结果最后是3组编码,而图6由于第4字节被指示为冗余位,从而使全部前瞻窗口一次性匹配成功,只产生1组编码,效率为前者的3倍。
本领域的技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (8)

1.一种利用冗余位的字典查询压缩方法,其特征在于,包括:
将已编码的原文作为滑动窗口,并将即将要编码的原文作为前瞻窗口;
对所述滑动窗口与所述前瞻窗口的内容分别进行冗余位判断,所述冗余位判断包括将所述滑动窗口与所述前瞻窗口的内容分别与指示冗余位的比特流进行逻辑与运算;
对进行所述冗余位判断后的所述滑动窗口与所述前瞻窗口的内容进行匹配比较,其中只对非冗余位的内容进行匹配比较,而对冗余位的内容一律视为匹配成功;
根据匹配结果进行编码。
2.根据权利要求1所述的利用冗余位的字典查询压缩方法,其特征在于,所述指示冗余位的比特流包括随原文同时输入的另外的比特流。
3.根据权利要求1所述的利用冗余位的字典查询压缩方法,其特征在于,所述指示冗余位的比特流包括直接根据原文特征产生的指示冗余位的比特流。
4.根据上述权利要求1至3中任一项所述的利用冗余位的字典查询压缩方法,其特征在于,所述原文的每个信息单位为字节。
5.根据权利要求4所述的利用冗余位的字典查询压缩方法,其特征在于,所述根据匹配结果进行编码包括采取相匹配的字符串在所述滑动窗口中的匹配位置与其匹配长度的组合作为新编码。
6.根据权利要求4所述的利用冗余位的字典查询压缩方法,其特征在于,所述根据匹配结果进行编码包括采取原文字节和匹配长度为0作为新编码。
7.根据权利要求1所述的利用冗余位的字典查询压缩方法,其特征在于,还包括在所述编码完成后更新滑动窗口与前瞻窗口。
8.根据权利要求7所述的利用冗余位的字典查询压缩方法,其特征在于,所述更新滑动窗口与前瞻窗口包括对所述滑动窗口剔除最老的已编码原文,并将刚才编码的原文加到所述滑动窗口的尾部,而对所述前瞻窗口剔除刚才编码的原文,并将所述前瞻窗口外的新原文加到所述前瞻窗口的尾部。
CN201210593940.7A 2012-12-31 2012-12-31 一种利用冗余位的字典查询压缩方法及装置 Expired - Fee Related CN103078706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210593940.7A CN103078706B (zh) 2012-12-31 2012-12-31 一种利用冗余位的字典查询压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210593940.7A CN103078706B (zh) 2012-12-31 2012-12-31 一种利用冗余位的字典查询压缩方法及装置

Publications (2)

Publication Number Publication Date
CN103078706A CN103078706A (zh) 2013-05-01
CN103078706B true CN103078706B (zh) 2015-12-23

Family

ID=48155121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210593940.7A Expired - Fee Related CN103078706B (zh) 2012-12-31 2012-12-31 一种利用冗余位的字典查询压缩方法及装置

Country Status (1)

Country Link
CN (1) CN103078706B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375177A (zh) * 2015-07-21 2017-02-01 中兴通讯股份有限公司 消息传输方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567378A (zh) * 2003-06-24 2005-01-19 德鑫科技股份有限公司 数字图像数据的压缩与解压缩方法
CN101469989A (zh) * 2007-12-29 2009-07-01 厦门雅迅网络股份有限公司 一种手机网络导航中导航数据的压缩方法
CN101895298A (zh) * 2010-07-09 2010-11-24 东华大学 一种智能服装用的gps数据压缩方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478775B2 (en) * 2008-10-05 2013-07-02 Microsoft Corporation Efficient large-scale filtering and/or sorting for querying of column based data encoded structures

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567378A (zh) * 2003-06-24 2005-01-19 德鑫科技股份有限公司 数字图像数据的压缩与解压缩方法
CN101469989A (zh) * 2007-12-29 2009-07-01 厦门雅迅网络股份有限公司 一种手机网络导航中导航数据的压缩方法
CN101895298A (zh) * 2010-07-09 2010-11-24 东华大学 一种智能服装用的gps数据压缩方法

Also Published As

Publication number Publication date
CN103078706A (zh) 2013-05-01

Similar Documents

Publication Publication Date Title
CN1145264C (zh) 与串搜索交错进行即时字典更新的数据压缩和解压缩系统
US7358874B2 (en) Data compression using a stream selector with edit-in-place capability for compressed data
CN101989443B (zh) 用于数据压缩的多模式编码
CN101783788B (zh) 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US11178212B2 (en) Compressing and transmitting structured information
CN105306951B (zh) 数据压缩编码的流水线并行加速方法及其系统架构
CN110021369B (zh) 基因测序数据压缩解压方法、系统及计算机可读介质
CN103346800B (zh) 一种数据压缩方法及装置
CN103248369A (zh) 基于fpga的压缩系统及其方法
US10055454B2 (en) System and a method for executing SQL basic operators on compressed data without decompression process
CN103188267B (zh) 一种基于dfa的协议解析方法
CN107277109B (zh) 针对压缩流量的多字符串匹配方法
CN103078646A (zh) 字典查询压缩、解压缩方法及其装置
CN103731154B (zh) 一种基于语义分析的数据压缩算法
CN103078706B (zh) 一种利用冗余位的字典查询压缩方法及装置
US9780806B2 (en) Predicate application through partial compression dictionary match
CN104052749B (zh) 一种链路层协议数据类型识别的方法
KR102542239B1 (ko) 데이터 출력 방법, 획득 방법, 장치 및 전자 기기
CN108563795A (zh) 一种加速压缩流量正则表达式匹配的Pairs方法
US10873836B2 (en) Efficient short message compression
US9197243B2 (en) Compression ratio for a compression engine
CN108573069A (zh) 一种加速压缩流量正则表达式匹配的Twins方法
Ghuge Map and Trie based Compression Algorithm for Data Transmission
CN116827682B (zh) 数据处理方法、装置及计算机设备
CN114647764B (zh) 图结构的查询方法、装置及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151223

Termination date: 20181231