CN104021121B - 一种文本数据压缩方法、装置及服务器 - Google Patents
一种文本数据压缩方法、装置及服务器 Download PDFInfo
- Publication number
- CN104021121B CN104021121B CN201310064293.5A CN201310064293A CN104021121B CN 104021121 B CN104021121 B CN 104021121B CN 201310064293 A CN201310064293 A CN 201310064293A CN 104021121 B CN104021121 B CN 104021121B
- Authority
- CN
- China
- Prior art keywords
- entry
- text data
- coding schedule
- compressed
- length
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明适用于数据处理领域,提供了一种文本数据压缩方法、装置及服务器,所述压缩方法包括下述步骤:对待压缩的文本数据进行统计分析后生成词条,对词条进行编码,生成覆盖所述待压缩的文本数据的词条编码表;将所述待压缩的文本数据在所述词条编码表中进行匹配,记录匹配的词条在所述词条编码表中的二进制位流编码,生成与所述待压缩的文本数据对应的压缩数据;所述二进制位流编码为固定长度。本发明通过对文本数据进行统计生成词条编码表,然后对所有文本数据进行压缩后存储在内存中供终端使用,解决了解压时需要频繁的访问磁盘的问题,压缩率为45%‑50%,适合在导航终端等资源有限的设备上运行。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种文本数据压缩方法、装置及服务器。
背景技术
随着导航电子地图信息量的不断丰富,除了路网等基本地图要素之外,兴趣点(Point of Interests,POI)数量也不断增长,随之POI名称带来的文本数据也不断增长。因此,在数据编译期间,如果不对文本进行压缩的话,文本数据将占用大量的存储空间。为了以尽可能小的存储空间提供尽可能丰富的信息,在数据编译时需要对文本信息数据进行无损压缩。
目前,主要的文本数据无损压缩算法有哈夫曼编码算法和LZ系列算法。
哈夫曼编码算法仅以4字节的长度存储哈夫曼数据就要用去1024字节的存储空间,从而对数据量本身不大的文本数据进行压缩,意义不大,而对于大数据量的文本压缩需要频繁地访问磁盘,降低数据的处理速度,不适合在资源有限、I/O比较弱的设备上运行。
LZ系列算法对于大数据量压缩时间比较长,同时解压时需要消耗比较多的内存,另外,算法实现起来比较困难,不适合在资源有限的设备上运行。
发明内容
本发明实施例提供一种文本数据压缩方法,旨在解决现有的文本数据压缩算法的压缩效率不高,不适合在资源有限的设备上运行的问题。
本发明实施例是这样实现的,一种文本数据压缩方法,所述方法包括下述步骤:
对待压缩的文本数据进行统计分析后生成词条,对词条进行编码,生成覆盖所述待压缩的文本数据的词条编码表;
将所述待压缩的文本数据在所述词条编码表中进行匹配,记录匹配的词条在所述词条编码表中的二进制位流编码,生成与所述待压缩的文本数据对应的压缩数据;
所述二进制位流编码为固定长度。
本发明实施例还提供一种文本数据压缩装置,所述装置包括:
词条编码表生成单元,用于对待压缩的文本数据进行统计分析后生成词条,对词条进行编码,生成覆盖所述待压缩的文本数据的词条编码表;
文本数据压缩单元,用于将所述待压缩的文本数据在所述词条编码表中进行匹配,记录匹配的词条在所述词条编码表中的二进制位流编码,生成与所述待压缩的文本数据对应的压缩数据;
所述二进制位流编码为固定长度。
本发明实施例还提供一种数据压缩服务器,所述数据服务器包括上述文本数据压缩装置。
本发明实施例还提供一种文本数据解压方法,所述方法包括下述步骤:
获取词条编码表;
截取压缩后的文本数据的二进制位流编码位段;
获取截取的二进制位流编码位段在所述词条编码表中对应的词条。
本发明实施例还提供一种文本数据解压装置,所述装置包括:
获取单元,用于获取词条编码表;
位段截取单元,用于截取压缩后的文本数据的二进制位流编码位段;
解压缩单元,用于获取截取的二进制位流编码位段在所述词条编码表中对应的词条。
本发明实施例还提供一种电子终端,所述电子终端包括上述文本数据解压装置。
本发明实施例通过对文本数据进行统计生成词条编码表,然后对所有文本数据进行压缩后存储在内存中供终端使用,解决了解压时需要频繁的访问磁盘的问题,压缩率为45%-50%,适合在导航终端等资源有限的设备上运行。
附图说明
图1表示本发明实施例提供的文本数据压缩方法的实现流程图;
图2表示本发明实施例提供的词条编码表的存储模型图;
图3表示本发明实施例提供的对文本数据进行压缩的实现流程图;
图4表示本发明实施例提供的文本数据压缩装置的结构图;
图5表示本发明实施例提供的文本数据解压方法的实现流程图;
图6表示本发明实施例提供的对文本数据进行解压缩的实现流程图;
图7表示本发明的一个示例中对文本数据进行解压缩的示意图;
图8表示本发明实施例提供的文本数据解压装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,对文本数据进行统计生成词条编码表,然后根据词条编码表对文本数据进行压缩和解压,具有较高的压缩率,对设备的资源要求低。
图1示出了本发明实施例提供的文本数据压缩方法的实现流程,详述如下:
在步骤S101中,对待压缩的文本数据进行统计分析后生成词条,对词条进行编码,生成覆盖待压缩的文本数据的词条编码表;
作为本发明的一个实施例,对待压缩的文本数据进行统计分析,根据统计结果中字符串出现的频率以及字符串的长度对压缩率的影响度生成词条。
在本发明实施例中,词条编码表中的二进制位流编码为固定长度。作为本发明的一个优选实施例,词条编码表中的二进制位流编码采用14位,词条编码表中的词条总数不超过16384条。
作为本发明的一个优选实施例,为了提高文本数据压缩的效率,根据设定的优先级对词条进行排序,优先级越高词条在词条编码表中的位置越靠前。词条的优先级具体可以根据词条出现的频率或者词条的长度确定,词条出现的频率越高,词条的优先级越高,词条的长度越长,词条的优先级越高。
作为本发明的一个实施例,将生成的词条编码表存储起来,可以方便文本数据压缩和解压缩装置调用。
图2示出了本发明实施例提供的词条编码表的存储模型,词条编码表包括词条编码表信息、词条起始位置列表以及词条文本数据。
其中,词条编码表信息设定词条文本编码、词条总数和词条文本数据总长度,词条本文数据存储词条编码表中所有与词条对应的文本数据,词条起始位置列表存储除第一条词条外的所有词条的首字符位置。
在本发明本实施例中,设定词条总数不超过16384条,并且因为第一条词条的首字符位置(图2中的虚线框部分)必定是词条文本数据的起始位置,为了减少数据存储量,第一条词条的起始位置不保存。
本发明实施例中词条编码表的存储格式如下表所示:
从上表可以看出,词条编码表包括词条文字编码表、词条总数、词条文本总长度、词条首字符位置列表以及词条文本数据。词条文字编码表以及词条总数的长度为4字节;词条文本总长度占4字节;词条首字符位置列表的长度为词条总数乘以4字节;词条文本数据的类型为字符串,其长度为词条文本的总长度。
通过上表可以知道,整个词条编码表常驻内存时所占的大小(Memsize)为:MemSize=4+4+m*4+词条文本总长度,m表示词条数。
以一个典型的导航***为例,导航***中有650万的POI数据和300万注记文字,在本发明实施例中生成的词条总数为15,700条,词条文本总长度为86342字节,那么应用程序所需的常驻内存大小只需要:MemSize=4+4+15700*4+86342=149150字节。因此,即使对于内存只有32M的导航终端等低端设备来说这样的内存消耗几乎可以忽略。由于词条编码表可以常驻于内存,解压时不需要每次都访问磁盘,从而大大提高了数据的解压效率。
以下给出词条编码表中的词条文字编码表,如下表所示:
序号 | 字符集编码 | 字符集编码 |
1 | ASCII | 1 |
2 | UTF16 | 2 |
3 | GB18030 | 3 |
4 | UTF-8 | 4 |
5 | Big5 | 5 |
词条文字编码表中,字符集编码包括ASCII、UTF16、GB18030、UTF-8以及Big5。
以下给出词条编码表中的词条起始位置记录列表,如下表所示:
序号 | 项目偏移 | 项目名称 | 项目类型 | 项目长度 | 项目约束 |
1 | 0 | 词条首字符位置 | 自然数 | 4 | 必要项 |
在上表中,词条首字符位置项目偏移为0,即词条所对应字符串首字符在词条编码表中的起始位置是从0开始编号。通过记录的词条首字符位置以及该词条的下一词条的首字符位置,可以得到该词条字符串长度。如果是最后一个词条,则可以通过文本数据总长度减去该词条的首字符位置获得其字符串长度。归纳公式为:Length(n)=Offset(n+1)–Offset(n)if n<m;
Length(n)=Size–Offset(n)if n=m。
其中,Length(n)表示词条n的长度、Offset(n)表示词条n首字符位置,m表示词条数,0<m<=16383,Size表示文本数据总长度。
在步骤S102中,将待压缩的文本数据在词条编码表中进行匹配,记录匹配的词条在词条编码表中的二进制位流编码,生成与待压缩的文本数据对应的压缩数据。
在本发明实施例中,将待压缩的文本数据与词条编码表中的词条进行匹配时,按最长匹配原则进行词条匹配,并采用14位的二进制位流对词条进行编码。
图3示出了本发明实施例提供对文本数据进行压缩的实现流程,详述如下:
在步骤S301中,初始化头指针、尾指针以及输出编码集,头指针=0,尾指针=头指针+匹配字符串长度;
在步骤S302中,将头指针和尾指针间的待压缩文本数据与词条编码表进行匹配;
在步骤S303中,判断待压缩文本数据的字符串与词条编码表中的词条是否匹配,是则执行步骤S304,否则执行步骤S306;
在步骤S304中,将与待压缩文本数据的字符串匹配的词条编码保存在输出编码集中;
在步骤S305中,配置尾指针=尾指针-匹配字符串长度,头指针=0;
在步骤S306中,将头指针和尾指针的指针都加1;
在步骤S307中,判断头指针是否等于尾指针,是则执行步骤S308,否则返回执行步骤S302;
在步骤S308中,将存储在输出编码集中的词条编码转换成二进制位流编码;
在步骤S309中,存储待压缩的文本数据对应的二进制位流编码压缩数据。
以下通过一个示例对本发明实施例的文本数据压缩方法进行说明,如下表所示:
字 | 码 | 位 | 位偏移 |
上海 | 1FBB | 01111110111011 | 0 |
四 | 0967 | 00100101100111 | 14 |
维 | 16FD | 01011011111101 | 28 |
图 | 16B0 | 01011010110000 | 42 |
新 | 17DB | 01011111011011 | 56 |
信息 | 2631 | 10011000110001 | 70 |
技术有限公司 | 1FAC | 01111110101100 | 84 |
上表示出了文本数据“上海四维新图信息技术有限公司”与词条编码表中的词条进行匹配时的词条编码信息。在词条匹配时采用最长匹配原则进行匹配,将“上海四维新图信息技术有限公司”这14个字,拆分成“上海”、“四”、“维”、“图”、“新”、“信息”以及“技术有限公司”这7条词条。编码时采用14位二进制位流对词条进行编码,因此用一个98位的二进制位流就可以对“上海四维新图信息技术有限公司”进行编码。在UNICODE编码下采用16位二进制位流对每个字进行编码,则需要用一个224位的二进制位流才能对“上海四维图新信息技术有限公司”编码。因此,可以算出通过本发明实施例的压缩方法达到的压缩率为:(224–98)/224*100%=56.25%。
图4是本发明实施例提供的文本数据压缩装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该文本数据压缩装置一般运行于文本数据压缩服务器中,供各种接入的电子终端使用,可以是文本数据压缩服务器内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到文本数据压缩服务器的应用***中。
词条编码表生成单元41,对待压缩的文本数据进行统计分析后生成词条,对词条进行编码,生成覆盖待压缩的文本数据的词条编码表。
作为本发明的一个实施例,对待压缩的文本数据进行统计分析,根据统计结果中字符串出现的频率和字符串的长度对压缩率的影响度生成词条。
作为本发明的一个实施例,词条编码表包括词条编码表信息、词条起始位置列表以及词条文本数据。
在本发明实施例中,二进制位流编码为固定长度。作为本发明的一个优选实施例,二进制位流编码为14位,词条编码表的词条总数不超过16384条。
作为本发明的一个实施例,词条编码表的词条根据设定的优先级进行排序,优先级越高的词条在词条编码表中的位置越靠前。其中,词条出现的频率越高,词条的优先级越高;词条的长度越长,词条的优先级越高。
文本数据压缩单元42,将待压缩的文本数据在词条编码表中进行匹配,记录匹配的词条在词条编码表中的二进制位流编码,生成与待压缩的文本数据对应的压缩数据。
作为本发明的一个实施例,在将待压缩的文本数据在所述词条编码表进行匹配时,按照最长匹配原则将输入的文本数据在所述词条编码表中进行匹配。
文本数据压缩单元42包括初始化模块421、匹配模块422、匹配判断模块423、匹配存储模块424、指针判断模块425、转换模块426和压缩数据存储模块427。
初始化模块421对头指针、尾指针以及输出编码集进行初始化。
匹配模块422将头指针和尾指针间的待压缩文本数据与词条编码表进行匹配。
匹配判断模块423判断待压缩文本数据的字符串与词条编码表中的词条是否匹配。
匹配存储模块424将词条编码表中与待压缩文本数据的字符串匹配的词条编码存储在输出编码集中。
指针判断模块425判断头指针是否等于尾指针。
转换模块426将存储在输出编码集换中的词条编码转成二进制位流编码。
压缩数据存储模块427存储待压缩的文本数据对应二进制位流编码压缩数据。
在本发明实施例中,通过对待压缩的文本数据统计后生成词条进行编码,生成覆盖待压缩的文本数据的词条编码表。导航终端等终端设备通过加载词条编码表常驻于内存中,在解压缩时直接内存中的获取词条编码表,来解压待解压的二进制位流编码压缩数据,不需要每次都去访问压缩服务器。
图5示出了本发明实施例提供的文本数据解压方法的实现流程,详述如下:
在步骤S501中,获取词条编码表;
在步骤S502中,截取压缩后的文本数据的二进制位流编码位段;
在步骤S503中,获取截取的二进制位流编码位段在词条编码表中对应的词条。
在本发明实施例中,获取截取的二进制位流编码位段在词条编码表中对应的词条的具体步骤为:
1、根据截取的二进制位流编码位段信息获取词条的首字符位置;
2、根据词条的首字符位置算出词条的长度;
3、根据词条的首字符位置和词条的长度取出词条编码表中的字符串;
4、输出解压后的文本数据。
以下通过一个实施例对文本数据解压方法做进一步的解释说明。在本发明实施例中,为了方便说明,先定义以下符号:
BitS表示输入待译码的二进制位流编码;
BitS[n,n+14)表二进制编码流第n位到第n+14之间的位段;
BitC表示输入的二进制编码流位(Bit)数为14的整数倍;
a表示词条首字符位置数组,例如:a[8108]表示第8109条目首字符位置;
T表示包含字典所出现的所有字符的数组,例如:T[32085]表示数组中第32086字节;
T[n,m)表示取数组中第n+1字节开始的m个字节的内容;
Ls:表示词条长度单位字节。
图6示出了本发明实施例提供的对文本数据进行解压缩的实现流程,详述如下:
在步骤S601中,截取位段BitS[n*14,(n+1)*14),并将其转换为一自然数N,其中n和N分别满足:0<=n<BitC/1和0<=N<=16383;
在步骤S602中,分别取词条N和词条N+1的首字符位置a[N]和a[N+1];
在步骤S603中,按照算式Ls=a[N+1]–a[N]计算词条长度;
在步骤S604中,根据词条编码表取出T[a[N],4);
在步骤S605中,判断BitC/14的值是否为n,是则执行步骤S606,否则先配置n=n+1,再返回执行步骤S601;
在步骤S606中,输出解压缩后的文本数据。
为了对文本数据进行解压缩的实现流程图做进一步的解释说明,7是本发明的一个示例中对文本数据进行解压缩的示意图,详述如下:
1、截取位段BitS[0,14),BitS[0,14)=01111110111011转换自然数后N=8123,此时n=0;
2、分别取词条8123和词条8124的首字符位置a[8123]和a[8124],如图7可知,a[8123]=32186,a[8124]=32190;
3、按照算式Ls=a[8124]–a[8123]计算词条长度,有:a[8124]–a[8123]=4;
4、根据词条编码表取出T[a[8123],4),如图7可知,T[32186,4)=“上海”;
5、n=1<BitC/14=7,从而令n=1+1=2,再返回执行步骤1;
6、不断地重复上述步骤,直到n=BitC/14=7时,输出解压缩后得到的文本数据“上海四维图新信息技术有限公司”。
图8是本发明实施例提供的文本数据解压装置结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该文本数据解压装置可以是运行于各电子终端,例如移动电话、导航终端等内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到电子终端的应用***中。
获取单元81获取词条编码表。
位段截取单元82截取压缩后的文本数据的二进制位流编码位段。
解压缩单元83获取截取的二进制位流编码位段在词条编码表中对应的词条。
解压缩单元83包括首字符位置获取模块831、词条长度计算模块832、字符串获取模块833以及文本数据输出模块834。
首字符位置获取模块831根据位段截取单元82截取的位段信息获取词条的首字符位置。
词条长度计算模块832根据首字符位置获取模块831获取的词条的首字符位置算出词条的长度。
字符串获取模块833根据首字符位置获取模块831获取的词条的首字符位子和词条长度计算模块832计算出的词条的长度取出词条编码表中的字符串。
文本数据输出模块834输出解压后的文本数据。
本发明实施例中,通过对文本数据进行统计生成词条编码表,然后对所有文本数据进行压缩后存储在内存中供终端使用,解决了解压时需要频繁的访问磁盘的问题,数据压缩率为45%-50%,并且在数据解压时对资源的要求也很小,应用程序所需的常驻内存大小只需要149150字节,即使对于内存只有32M的导航终端等低端设备来说,这样的内存消耗也几乎可以忽略,从而大大减少了终端设备的成本。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (22)
1.一种文本数据压缩方法,其特征在于,所述方法包括下述步骤:
对待压缩的文本数据进行统计分析后生成词条,对词条进行编码,生成覆盖所述待压缩的文本数据的词条编码表;
将所述待压缩的文本数据在所述词条编码表中进行匹配,记录匹配的词条在所述词条编码表中的二进制位流编码,生成与所述待压缩的文本数据对应的压缩数据;
所述二进制位流编码为固定长度;
在对待压缩的文本数据进行统计分析时,根据字符串出现的频率以及字符串的长度对压缩率的影响度生成词条;
所述二进制位流编码为14位,所述词条编码表的词条总数不超过16384条。
2.如权利要求1所述的方法,其特征在于,所述词条编码表的词条根据设定的优先级进行排序,优先级越高的词条在所述词条编码表中的位置越靠前。
3.如权利要求2所述的方法,其特征在于,词条出现的频率越高,词条的优先级越高。
4.如权利要求2所述的方法,其特征在于,词条的长度越长,词条的优先级越高。
5.如权利要求1所述的方法,其特征在于,在将所述待压缩的文本数据在所述词条编码表进行匹配时,按照最长匹配原则将输入的文本数据在所述词条编码表中进行匹配。
6.如权利要求1所述的方法,其特征在于,所述词条编码表包括词条编码表信息、词条起始位置列表以及词条文本数据。
7.如权利要求1所述的方法,其特征在于,所述将所述待压缩的文本数据在所述词条编码表中进行匹配,记录匹配的词条在所述词条编码表中的二进制位流编码,生成与所述待压缩的文本数据对应的压缩数据的步骤具体为:
步骤1:初始化所述词条编码表的头指针、尾指针以及输出编码集,头指针=0,尾指针=头指针+匹配字符串长度;
步骤2:将头指针和尾指针间的待压缩文本数据与所述词条编码表进行匹配;
步骤3:判断所述待压缩文本数据的字符串与词条编码表中的词条是否匹配,是则执行步骤4,否则执行步骤5;
步骤4:将词条保存在输出编码集中,然后配置尾指针=尾指针-匹配字符串长度、头指针=0,再执行步骤6;
步骤5:将头指针和尾指针的指针都加1,再执行步骤6;
步骤6:判断头指针是否等于尾指针,是则执行步骤7,否则返回执行步骤2;
步骤7:将存储在输出编码集中的词条转换成与词条编码表中相应的二进制位流编码;
步骤8:存储待压缩的文本数据对应二进制位流编码压缩数据。
8.一种文本数据压缩装置,其特征在于,所述装置包括:
词条编码表生成单元,用于对待压缩的文本数据进行统计分析后生成词条,根据词条出现的频率对词条进行编码,生成覆盖所述待压缩的文本数据的词条编码表;
文本数据压缩单元,用于将所述待压缩的文本数据在所述词条编码表中进行匹配,记录匹配的词条在所述词条编码表中的二进制位流编码,生成与所述待压缩的文本数据对应的压缩数据;
所述二进制位流编码为固定长度;
对待压缩的文本数据进行统计分析,根据统计结果中字符串出现的频率和字符串的长度对压缩率的影响度生成词条;
所述二进制位流编码为14位,所述词条编码表的词条总数不超过16384条。
9.如权利要求8所述的装置,其特征在于,所述词条编码表的词条根据设定的优先级进行排序,优先级越高的词条在所述词条编码表中的位置越靠前。
10.如权利要求9所述的装置,其特征在于,词条出现的频率越高,词条的优先级越高。
11.如权利要求9所述的装置,其特征在于,词条的长度越长,词条的优先级越高。
12.如权利要求8所述的装置,其特征在于,在将所述待压缩的文本数据在所述词条编码表进行匹配时,按照最长匹配原则将输入的文本数据在所述词条编码表中进行匹配。
13.如权利要求8所述的装置,其特征在于,所述词条编码表包括词条编码表信息、词条起始位置列表以及词条文本数据。
14.如权利要求8所述的装置,其特征在于,所述文本数据压缩单元具体包括:
初始化模块,用于对头指针、尾指针以及输出编码集进行初始化;
匹配模块,用于将头指针和尾指针间的待压缩文本数据与词条编码表中的词条进行匹配;
匹配判断模块,用于判断待压缩文本数据的字符串与词条编码表中的词条是否匹配;
匹配存储模块,用于将词条编码表中与字符串匹配的词条存储在输出编码集中;
指针判断模块,用于判断头指针是否等于尾指针;
转换模块,用于将存储在输出编集中的词条转换成词条编码表中相应的二进制位流编码;
压缩数据存储模块,用于存储待压缩的文本数据对应二进制位流编码压缩数据。
15.一种数据压缩服务器,其特征在于,所述数据压缩服务器包括权利要求8至14任一权利要求所述的文本数据压缩装置。
16.一种文本数据解压方法,其特征在于,所述方法包括下述步骤:
获取词条编码表,所述词条编码表为对待压缩的文本数据进行统计分析后生成词条并对词条进行编码后生成的,其中,在对待压缩的文本数据进行统计分析时,根据字符串出现的频率以及字符串的长度对压缩率的影响度生成词条;
截取压缩后的文本数据的二进制位流编码位段;
获取截取的二进制位流编码位段在所述词条编码表中对应的词条,所述二进制位流编码为14位,所述词条编码表的词条总数不超过16384条。
17.如权利要求16所述的方法,其特征在于,所获取的词条编码表常驻于内存中。
18.如权利要求16所述的方法,其特征在于,所述获取截取的二进制位流编码位段在所述词条编码表中对应的词条的具体步骤为:
根据截取的位段信息获取词条的首字符位置;
根据词条的首字符位置算出词条的长度;
根据词条的首字符位置和词条的长度取出词条编码表中的字符串;
输出解压后的文本数据。
19.一种文本数据压缩装置,其特征在于,所述装置包括:
获取单元,用于获取词条编码表,所述词条编码表为对待压缩的文本数据进行统计分析后生成词条并对词条进行编码后生成的,其中,在对待压缩的文本数据进行统计分析时,根据字符串出现的频率以及字符串的长度对压缩率的影响度生成词条;
位段截取单元,用于截取压缩后的文本数据的二进制位流编码位段;
解压缩单元,用于获取截取的二进制位流编码位段在所述词条编码表中对应的词条,所述二进制位流编码为14位,所述词条编码表的词条总数不超过16384条。
20.如权利要求19所述的装置,其特征在于,所获取的词条编码表常驻于内存中。
21.如权利要求19所述的装置,其特征在于,所述解压缩单元具体包括:
首字符位置获取模块,用于根据截取的位段信息获取词条的首字符位置;
词条长度计算模块,用于根据词条的首字符位置算出词条的长度;
字符串获取模块,用于根据词条的首字符位子和词条的长度取出词条编码表中的字符串;
文本数据输出模块,用于输出解压后的文本数据。
22.一种电子终端,其特征在于,所述电子终端包括权利要求19至21任一权利要求所述的文本数据解压装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064293.5A CN104021121B (zh) | 2013-02-28 | 2013-02-28 | 一种文本数据压缩方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064293.5A CN104021121B (zh) | 2013-02-28 | 2013-02-28 | 一种文本数据压缩方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021121A CN104021121A (zh) | 2014-09-03 |
CN104021121B true CN104021121B (zh) | 2018-01-26 |
Family
ID=51437880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310064293.5A Active CN104021121B (zh) | 2013-02-28 | 2013-02-28 | 一种文本数据压缩方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021121B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017037502A1 (en) * | 2015-08-29 | 2017-03-09 | Chan Kam Fu | Compression code and method by location |
CN105631000B (zh) * | 2015-12-25 | 2019-03-29 | 江苏东大金智信息***有限公司 | 基于移动终端位置特征信息的终端缓存的数据压缩方法 |
CN108829872B (zh) * | 2018-06-22 | 2021-03-09 | 武汉轻工大学 | 无损压缩文件的快速处理方法、设备、***及存储介质 |
CN109445693A (zh) * | 2018-10-19 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种数据压缩方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350624A (zh) * | 2008-09-11 | 2009-01-21 | 中国科学院计算技术研究所 | 一种支持ansi编码的中文文本的压缩方法 |
CN101751451A (zh) * | 2008-12-11 | 2010-06-23 | 高德软件有限公司 | 一种中文数据压缩及解压缩方法及相关设备 |
CN101783788A (zh) * | 2009-01-21 | 2010-07-21 | 联想(北京)有限公司 | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 |
CN102664634A (zh) * | 2012-04-16 | 2012-09-12 | 中国航空无线电电子研究所 | 一种用于北斗收发汉字文本消息时的数据压缩方法 |
-
2013
- 2013-02-28 CN CN201310064293.5A patent/CN104021121B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350624A (zh) * | 2008-09-11 | 2009-01-21 | 中国科学院计算技术研究所 | 一种支持ansi编码的中文文本的压缩方法 |
CN101751451A (zh) * | 2008-12-11 | 2010-06-23 | 高德软件有限公司 | 一种中文数据压缩及解压缩方法及相关设备 |
CN101783788A (zh) * | 2009-01-21 | 2010-07-21 | 联想(北京)有限公司 | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 |
CN102664634A (zh) * | 2012-04-16 | 2012-09-12 | 中国航空无线电电子研究所 | 一种用于北斗收发汉字文本消息时的数据压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104021121A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104199927B (zh) | 数据处理方法及数据处理装置 | |
CN106170921B (zh) | 涉及符号压缩的数据的源编码和解码方法及装置 | |
US9454552B2 (en) | Entropy coding and decoding using polar codes | |
CN104753540B (zh) | 数据压缩方法、数据解压方法和装置 | |
US7924183B2 (en) | Method and system for reducing required storage during decompression of a compressed file | |
CN104021121B (zh) | 一种文本数据压缩方法、装置及服务器 | |
CN102122960B (zh) | 一种针对二进制数据的多字符组合无损数据压缩方法 | |
CN107027036A (zh) | 一种fpga异构加速平台的解压缩方法、装置及*** | |
US20180253559A1 (en) | Secured lossless data compression using encrypted headers | |
CN103346800B (zh) | 一种数据压缩方法及装置 | |
CN106202172A (zh) | 文本压缩方法及装置 | |
WO2010044100A1 (en) | Lossless compression | |
CN103236847A (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、***及计算机可读介质 | |
CN107154062A (zh) | 一种WebP有损压缩算法的实现方法、装置及*** | |
CN101729075A (zh) | 一种数据压缩、解压缩的方法和装置 | |
CN106506007A (zh) | 一种无损数据压缩和解压缩装置及其方法 | |
CN110865970B (zh) | 一种基于fpga平台的压缩流量模式匹配引擎及模式匹配方法 | |
CN103248369A (zh) | 基于fpga的压缩***及其方法 | |
CN104410424B (zh) | 嵌入式设备内存数据的快速无损压缩方法 | |
CN105206277A (zh) | 基于单比特压缩感知的语音压缩方法 | |
CN101847998A (zh) | 一种高性能gml流压缩方法 | |
CN101848148A (zh) | 应用于金融报文语言的数据传输处理***、装置及方法 | |
CN107623855A (zh) | 一种基于压缩编码的高嵌入率数据隐写装置及隐写方法 | |
Abas et al. | Increasing data storage of coloured QR code using compress, multiplexing and multilayered technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |