CN104753540A - 数据压缩方法、数据解压方法和装置 - Google Patents

数据压缩方法、数据解压方法和装置 Download PDF

Info

Publication number
CN104753540A
CN104753540A CN201510098077.1A CN201510098077A CN104753540A CN 104753540 A CN104753540 A CN 104753540A CN 201510098077 A CN201510098077 A CN 201510098077A CN 104753540 A CN104753540 A CN 104753540A
Authority
CN
China
Prior art keywords
data
compressed
data block
character string
block
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.)
Granted
Application number
CN201510098077.1A
Other languages
English (en)
Other versions
CN104753540B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510098077.1A priority Critical patent/CN104753540B/zh
Publication of CN104753540A publication Critical patent/CN104753540A/zh
Application granted granted Critical
Publication of CN104753540B publication Critical patent/CN104753540B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明是关于一种数据压缩方法、数据解压方法和装置,属于数据压缩领域。所述方法包括:获取原始数据,原始数据包括多个字符串;获取原始数据中至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串;对每个待压缩数据块分别使用字典压缩算法得到压缩数据。本发明通过对每个待压缩数据块分别使用字典压缩算法得到压缩数据,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。

Description

数据压缩方法、数据解压方法和装置
技术领域
本发明涉及数据压缩领域,特别涉及一种数据压缩方法、数据解压方法和装置。
背景技术
数据压缩是指在不丢失有用信息的前提下,缩减原始数据的数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。
相关技术中,对原始数据进行压缩时通常使用字典压缩算法,将原始数据中相同的字符串都用一个简短的编码来代替,再存储该字符串与编码的映射关系,这就达到了压缩字符串所占空间的目的,之后通过查询该映射关系就可以获取字符串以完成解压缩。
上述数据压缩方法在进行数据压缩时,由于是将相同的字符串都用一个简短的编码来代替,以达到压缩字符串所占空间的目的,因而在字符串重复率较低时,数据压缩率较低。
发明内容
为了解决相关技术中在字符串重复率较低时,数据压缩率较低的问题,本发明实施例提供了一种数据压缩方法、数据解压方法和装置。所述技术方案如下:
根据本发明的第一方面,提供一种数据压缩方法,所述方法包括:
获取原始数据,所述原始数据包括多个字符串;
获取所述原始数据中至少一个待压缩数据块,每个所述待压缩数据块包含所述原始数据中每个字符串中长度相同的子字符串;
对每个所述待压缩数据块分别使用字典压缩算法得到压缩数据。
结合第一方面,在第一方面的第一种可能的实施方式中,所述获取所述原始数据中的至少一个待压缩数据块,包括:
获取所述多个字符串中每个字符串的数据特征,所述每个字符串包括数据特征不同的至少两个子字符串,每个所述子字符串包括至少一个字符;
将所述原始数据中每个字符串中数据特征相同的子字符串作为一个待压缩数据块,得到所述原始数据中的至少一个待压缩数据块。
结合第一方面,在第一方面的第二种可能的实施方式中,所述获取所述原始数据中至少一个的待压缩数据块,包括:
将所述原始数据划分为n个数据块,n>1,每个所述数据块包含所述原始数据中每个字符串中长度相同的子字符串;
将所述n个数据块中的至少一个数据块作为所述至少一个待压缩数据块。
结合第一方面,或第一方面的第一种可能的实施方式,或第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述对每个所述待压缩数据块分别使用字典压缩算法得到压缩数据之后,所述方法还包括:
存储所述压缩数据;
存储其他数据,所述其他数据为所述原始数据中除所述待压缩数据块之外的数据。
根据本发明的第二方面,提供一种数据解压方法,所述方法包括:
获取压缩数据,所述压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的;
根据字典压缩算法的逆运算解压所述压缩数据得到所述至少一个待压缩数据块,每个所述待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,所述原始数据包括多个字符串。
结合第二方面,在第二方面的第一种可能的实施方式中,所述根据字典压缩算法的逆运算解压所述压缩数据得到所述至少一个待压缩数据块之后,所述方法还包括:
获取其他数据,所述其他数据为所述原始数据中除所述待压缩数据块外的数据;
将所述至少一个待压缩数据块与所述其他数据进行组合获得原始数据。
根据本发明的第三方面,提供一种数据压缩装置,所述装置包括:
原始数据获取模块,用于获取原始数据,所述原始数据包括多个字符串;
待压缩数据获取模块,用于获取所述原始数据中至少一个待压缩数据块, 每个所述待压缩数据块包含所述原始数据中每个字符串中长度相同的子字符串;
数据压缩模块,用于对每个所述待压缩数据块分别使用字典压缩算法得到压缩数据。
结合第三方面,在第三方面的第一种可能的实施方式中,所述待压缩数据获取模块,包括:
数据特征获取单元,用于获取所述多个字符串中每个字符串的数据特征,所述每个字符串包括数据特征不同的至少两个子字符串,每个所述子字符串包括至少一个字符;
数据块获取单元,用于将所述原始数据中每个字符串中数据特征相同的子字符串作为一个待压缩数据块,得到所述原始数据中的至少一个待压缩数据块。
结合第三方面,在第三方面的第二种可能的实施方式中,所述待压缩数据获取模块,包括:
数据划分单元,用于将所述原始数据划分为n个数据块,n>1,每个所述数据块包含所述原始数据中每个字符串中长度相同的子字符串;
数据块设定单元,用于将所述n个数据块中的至少一个数据块作为所述至少一个待压缩数据块。
结合第三方面,或第三方面的第一种可能的实施方式,或第三方面的第二种可能的实施方式,在第三方面的第三种可能的实施方式中,所述装置,还包括:
压缩数据存储模块,用于存储所述压缩数据;
其他数据存储模块,用于存储其他数据,所述其他数据为所述原始数据中除所述待压缩数据块之外的数据。
根据本发明的第四方面,提供一种数据解压装置,所述装置包括:
压缩数据获取模块,用于获取压缩数据,所述压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的;
压缩数据解压模块,用于根据字典压缩算法的逆运算解压所述压缩数据得到所述至少一个待压缩数据块,每个所述待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,所述原始数据包括多个字符串。
结合第四方面,在第四方面的第一种可能的实施方式中,所述装置还包括:
其他数据获取模块,用于获取其他数据,所述其他数据为所述原始数据中除所述待压缩数据块外的数据;
数据组合模块,用于将所述至少一个待压缩数据块与所述其他数据进行组合获得原始数据。
本发明提供的技术方案可以包括以下有益效果:
通过对每个待压缩数据块分别使用字典压缩算法得到压缩数据,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据压缩方法的流程图;
图2是根据一示例性实施例示出的一种数据解压方法的流程图;
图3是根据另一示例性实施例示出的一种数据压缩方法和数据解压方法的流程图;
图4是图3所示实施例中的根据布局对原始数据中的数据块分别使用字典压缩算法进行压缩的示意图;
图5是根据另一示例性实施例示出的一种数据压缩方法和数据解压方法的流程图;
图6是根据一示例性实施例示出的一种数据压缩装置的框图;
图7是图6所示实施例中的一种待压缩数据获取模块的框图;
图8是图6所示实施例中的另一种待压缩数据获取模块的框图;
图9是根据图6所示实施例示出的另一种数据压缩装置的框图;
图10是根据一示例性实施例示出的一种数据解压装置的框图;
图11是图10所示实施例中的另一种数据解压装置的框图;
图12是根据另一示例性实施例示出的一种数据压缩装置的框图;
图13是根据另一示例性实施例示出的一种数据解压装置的框图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据压缩方法的流程图,本实施例以该数据压缩方法应用于对原始数据进行压缩来举例说明。该数据压缩方法可以包括如下几个步骤:
在步骤101中,获取原始数据,原始数据包括多个字符串。
在步骤102中,获取原始数据中至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串。
在步骤103中,对每个待压缩数据块分别使用字典压缩算法得到压缩数据。
因为通常字符串越短,字符串的重复概率则会越高,因而待压缩数据块中子字符串的重复概率高于原始数据中个字符串的重复概率。
综上所述,本发明实施例提供的数据压缩方法,通过对每个待压缩数据块分别使用字典压缩算法得到压缩数据,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
图2是根据一示例性实施例示出的一种数据解压方法的流程图,本实施例以该数据解压方法应用于对压缩数据进行解压来举例说明。该数据解压方法可以包括如下几个步骤:
在步骤201中,获取压缩数据,压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的。
在步骤202中,根据字典压缩算法的逆运算解压压缩数据得到至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,原始数据包括多个字符串。
综上所述,本发明实施例提供的数据解压方法,通过字典压缩算法的逆运算解压压缩数据得到至少一个待压缩数据块,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
图3是根据另一示例性实施例示出的一种数据压缩方法和数据解压方法的流程图,本实施例以该数据压缩方法和解压方法应用于数据库中来举例说明。该数据压缩方法和数据解压方法可以包括如下几个步骤:
在步骤301中,根据原始数据的数据特征建立布局(英文:layout)。
在需要对原始数据进行压缩时,可以首先根据原始数据的数据特征建立布局。其中数据特征可以指原始数据中每一个字符串的具体结构特征,示例性的,原始数据中包含一个表示日期的字符串“20121030”,则该字符串的数据特征可以为:前4位表示年,第5和第6位表示月,第7和第8位表示日。
需要说明的是,布局可以认为是在数据库中用数据库语言来实现的一种数据压缩方式,示例性的,建立布局的语句可以为:
CREATE LAYOUT layout_name AS
(Function(this)PACKED/UNPACKED‘comments’,
Function(this)PACKED/UNPACKED‘comments’,
Function(this)PACKED/UNPACKED‘comments’)
该语句将原始数据分成三个数据块,其中,Function(this)表示该数据块的划分方式,PACKED/UNPACKED表示是否压缩该数据块,comments表示该数据块的数据特征。
需要说明的是,在根据原始数据的数据特征建立布局时,可以将原始数据中每个字符串中数据特征相同的子字符串划为一个数据块,即将原始数据在逻 辑上划分为多个数据块,使每个数据块中的子字符串与该数据块中其他子字符串的数据特征相同,因为通常数据特征相同的数据的重复率较高,这种划分方式能够提高数据块中子字符串的重复率。示例性的,以原始数据中的字符串都是表示日期的长度为8的字符串为例,该字符串的数据特征可以为:前4位表示年,第5和第6位表示月,第7和第8位表示日,在建立布局时可以使用语句:
Create Layout day_string((substr(this,1,4),packed,‘year’),
(substr(this,5,2),packed,‘month’),
(substr(this,7,2),packed,‘day’))
在该语句中将原始数据划分为了三个数据块,并对三个数据块都分别使用字典压缩算法进行压缩,即这三个数据块都为待压缩数据块,其中substr(this,1,4)表示该部分数据块的划分方式为:将原始数据中每个字符串从第1位开始的4个字符构成的子字符串划分至该数据块。同理可得substr(this,5,2)与substr(this,7,2)的含义。packed表示对该数据块进行压缩,在不需要对某个数据块压缩时,可以将packed改为unpacked,即含有packed的数据块可以为待压缩数据,含有unpacked的数据块可以为其他数据。‘year’,‘month’或‘day’表示该数据块的数据特征,该数据特征可以在解压数据时用于作为数据组合的标识。
需要说明的是,建立布局时还可以将原始数据划分为2个数据块、4个数据块或5个数据块等,本发明不做出限制。
在步骤302中,建立表并指定表使用布局。
在数据库中存储数据时通常需要建立表并将数据存储于表中。示例性的,在数据库中建立表并指定表使用布局的通用语句可以为:
CREATE[[GLOBAL|LOCAL]{TEMPORARY|TEMP}]TABLE table_name[({column_name WITH OPTIONS[DEFAULT default_expr][column_constraint[...]][LAYOUT[...]]|table_constraint}[,...])] 
[WITH(storage_parameter[=value][,...])|WITH OIDS|WITHOUT OIDS] 
[ON COMMIT{PRESERVE ROWS|DELETE ROWS|DROP}]
[TABLESPACE tablespace];
ALTER TABLE table_name ADD/DROP LAYOUT layout_name;
该语句中“[LAYOUT[...]]”表示指定该表使用布局,而其他语句均可以参考现有技术,本发明实施例不再赘述。在原始数据中的字符串都是表示日期的长度为8的字符串时,该建立表并指定表使用布局的语句可以为:
Create table lineitem(…,shipdate char(8)LAYOUT day_string,…)
其中char(8)表示原始数据中数据的形式为8个字符的字符串,省略号部分为建立表的其他通用语句,day_string为布局的名称。
在步骤303中,将原始数据导入表中并根据布局进行压缩。
在创建表并指定表使用布局后,可以将需要压缩的原始数据导入表中,数据库系统会根据布局将原始数据压缩得到压缩数据并存储。
需要补充说明的是,数据库在存储压缩数据的页面内,可以在页头存储常规的元数据外,再存储一个标识(如layout flag),标记该页面的数据使用了布局进行压缩。
示例性的,以原始数据中的字符串都是表示日期的长度为8的字符串为例,且该字符串的数据特征为:前4位表示年,第5和第6位表示月,第7和第8位表示日,假设原始数据中年仅有两种值(如2014和2015),月有4种值,日有31种值,那么使用字典压缩算法后,原始数据中每个表示年的子字符串需要占用1比特(英文:bit;简称:b)的存储空间,每个表示月的子字符串需要占用2b的存储空间,每个表示日的子字符串需要占用5b的存储空间,这样一个表示日期的字符串总会占用8b的存储空间,即1字节(英文:Byte;简称:B)而一个包含8个字符的字符串存储于数据库中时,需要占用8B的存储空间,本发明实施例提供的数据压缩方法的压缩率(数据压缩后的大小与压缩前的大小之比)达到了较小的12.5%。如图4所示,其为根据布局对原始数据中的待压缩数据块分别使用字典压缩算法进行压缩的示意图,原始数据根据字符串的数据特征被分为3个分别代表年、月、日的待压缩数据块,对这3个待压缩数据块分别使用字典压缩算法压缩得到3个压缩数据块。
至此,原始数据的压缩过程结束,下面为数据的解压步骤。
在步骤304中,提取表中的目的数据。
在用户需要获取原始数据或原始数据的一部分时,可以通过数据库函数来提取表中的目的数据,目的数据为原始数据中用户需要获取的数据。示例性的,可以通过fetch_field函数来提取目的数据,使用的语句可以为:
Select fetch_field(shipdate,‘year’)from lineitem
该语句可以从压缩数据中提取数据特征为“year”的数据块,在提取其他数据块时,可以更改year为需要提取的其他数据块的数据特征。
需要补充说明的是,本发明实施例提供的数据压缩方法和数据解压方法,通过根据原始数据中字符串的数据特征来划分数据块,增加了数据块中子字符串的重复概率,达到了减小压缩率的效果。
需要补充说明的是,本发明实施例提供的数据压缩方法和数据解压方法,由于是将原始数据分成多个数据块分别进行压缩,因而在解压时也可以仅解压需要的数据块,而不需要解压整个压缩数据,达到了减小数据库系统运算资源的效果。
综上所述,本发明实施例提供的数据压缩方法和数据解压方法,通过对每个待压缩数据块分别使用字典压缩算法得到压缩数据,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
图5是根据一示例性实施例示出的一种数据压缩方法和数据解压方法的流程图,本实施例以该数据压缩方法应用于对原始数据进行压缩来举例说明。该数据压缩方法可以包括如下几个步骤:
在步骤501中,获取原始数据,原始数据包括多个字符串。
在对原始数据进行压缩时,可以首先需要获取原始数据,原始数据中包括多个字符串。
在步骤502中,获取多个字符串中每个字符串的数据特征,每个字符串包括数据特征不同的至少两个子字符串,每个子字符串包括至少一个字符。
获取原始数据中多个字符串中每个字符串的数据特征,其中,每个字符串包括数据特征不同的至少两个子字符串,每个子字符串包括至少一个字符。
需要说明的是,多个字符串中每个字符串的数据特征还可以是在获取原始数据之前获取的,即步骤502可以在步骤501之前执行,此种情况的数据特征可以是操作人员根据需要压缩的数据提前设定的。
在步骤503中,将原始数据中每个字符串中数据特征相同的子字符串作为 一个待压缩数据块,得到原始数据中的至少一个待压缩数据块。
在获取原始数据以及原始数据中每个字符串的数据特征后,可以将原始数据中每个字符串中数据特征相同的子字符串作为一个待压缩数据块,得到原始数据中的至少一个待压缩数据块。
此外,另一种确定待压缩数据块的方式可以为:将原始数据划分为n个数据块,n>1,每个数据块包含原始数据中每个字符串中长度相同的子字符串,之后将n个数据块中的至少一个数据块作为至少一个待压缩数据块。即可以任意指定多个数据块中的任意数据块为待压缩数据块。
又一种确定待压缩数据块的方式可以为:根据原始数据中每个字符串的数据特征将原始数据划分为n个数据块,使每个数据块中的子字符串的数据特征相同,之后将n个数据块中的至少一个数据块作为至少一个待压缩数据块。
在步骤504中,对每个待压缩数据块分别使用字典压缩算法得到压缩数据。
在获取待压缩数据块之后,可以对每个待压缩数据块分别使用字典压缩算法得到压缩数据。
在步骤505中,存储压缩数据;存储其他数据,其他数据为原始数据中除待压缩数据块之外的数据。
在得到压缩数据后,可以将压缩数据存储于存储组件中,若还存在其他数据,则将其他数据也存储于存储组件中,其他数据为原始数据中除待压缩数据块之外的数据。
至此压缩过程结束,下面为对本步骤得到的压缩数据进行解压的步骤。
在步骤506中,获取压缩数据,压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的。
在对压缩数据进行解压时,可以从存储组件中获取压缩数据,压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的。
在步骤507中,根据字典压缩算法的逆运算解压压缩数据得到至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,原始数据包括多个字符串。
在步骤508中,获取其他数据,其他数据为原始数据中除待压缩数据块外的数据。
在对数据进行解压时且存在其他数据时,可以从存储组件中获取其他数据, 其他数据为原始数据中除待压缩数据块外的数据。
在步骤509中,将至少一个待压缩数据块与其他数据进行组合获得原始数据。
在获得解压压缩数据得到的至少一个待压缩数据块和其他数据后,可以将获得的待压缩数据块与其他数据进行组合获得原始数据。
需要补充说明的是,本发明实施例提供的数据压缩方法和数据解压方法,通过根据原始数据中字符串的数据特征来划分数据块,增加了数据块中子字符串的重复概率,达到了减小压缩率的效果。
需要补充说明的是,本发明实施例提供的数据压缩方法和数据解压方法,由于是将原始数据分成多个数据块进行压缩,因而在解压时也可以仅解压需要的数据块,而不需要解压整个压缩数据,达到了减小数据库系统运算资源的效果。
综上所述,本发明实施例提供的数据压缩方法和数据解压方法,通过对每个待压缩数据块分别使用字典压缩算法得到压缩数据,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图6是根据一示例性实施例示出的一种数据压缩装置600的框图。该数据压缩装置600可以包括:原始数据获取模块610,待压缩数据获取模块620和数据压缩模块630。
原始数据获取模块610,用于获取原始数据,原始数据包括多个字符串。
待压缩数据获取模块620,用于获取原始数据中至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串。
数据压缩模块630,用于对每个待压缩数据块分别使用字典压缩算法得到压缩数据。
进一步的,如图7所示,待压缩数据获取模块620,可以包括: 
数据特征获取单元621,用于获取多个字符串中每个字符串的数据特征,每 个字符串包括数据特征不同的至少两个子字符串,每个子字符串包括至少一个字符。
数据块获取单元622,用于将原始数据中每个字符串中数据特征相同的子字符串作为一个待压缩数据块,得到原始数据中的至少一个待压缩数据块。
可选的,如图8所示,待压缩数据获取模块620,可以包括: 
数据划分单元623,用于将原始数据划分为n个数据块,n>1,每个数据块包含原始数据中每个字符串中长度相同的子字符串。
数据块设定单元624,用于将n个数据块中的至少一个数据块作为至少一个待压缩数据块。
可选的,如图9所示,数据压缩装置600还包括:
压缩数据存储模块640,用于存储压缩数据。
其他数据存储模块650,用于存储其他数据,其他数据为原始数据中除待压缩数据块之外的数据。
综上所述,本发明实施例提供的数据压缩装置,通过对每个待压缩数据块分别使用字典压缩算法得到压缩数据,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
图10是根据一示例性实施例示出的一种数据解压装置1000的框图。该数据压缩装置1000可以包括:压缩数据获取模块1010和压缩数据解压模块1020。
压缩数据获取模块1010,用于获取压缩数据,压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的。
压缩数据解压模块1020,用于根据字典压缩算法的逆运算解压压缩数据得到至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,原始数据包括多个字符串。
进一步的,如图11所示,该数据解压装置1000还包括:
其他数据获取模块1030,用于获取其他数据,其他数据为原始数据中除待压缩数据块外的数据。
数据组合模块1040,用于将至少一个待压缩数据块与其他数据进行组合获 得原始数据。
综上所述,本发明实施例提供的数据解压装置,通过字典压缩算法的逆运算解压压缩数据得到至少一个待压缩数据块,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
图12是根据另一示例性实施例示出的一种数据压缩装置的框图。该数据压缩装置可以包括:处理器1210、存储器1220和接收器1230。其中,存储器1220用于存储一个或者一个以上的指令,该指令被配置成由处理器1210执行。
处理器1210,用于控制接收器1230获取原始数据,原始数据包括多个字符串。
处理器1210,用于控制接收器1230获取原始数据中至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串。
处理器1210,用于对每个待压缩数据块分别使用字典压缩算法得到压缩数据。
进一步的,处理器1210,用于控制接收器1230获取多个字符串中每个字符串的数据特征,每个字符串包括数据特征不同的至少两个子字符串,每个子字符串包括至少一个字符。
处理器1210,用于将原始数据中每个字符串中数据特征相同的子字符串作为一个待压缩数据块,得到原始数据中的至少一个待压缩数据块。
可选的,处理器1210,用于将原始数据划分为n个数据块,n>1,每个数据块包含原始数据中每个字符串中长度相同的子字符串。
处理器1210,用于将n个数据块中的至少一个数据块作为至少一个待压缩数据块。
可选的,处理器1210,用于控制存储器1220存储压缩数据。
处理器1210,用于控制存储器1220存储其他数据,其他数据为原始数据中除待压缩数据块之外的数据。
综上所述,本发明实施例提供的数据压缩装置,通过对每个待压缩数据块分别使用字典压缩算法得到压缩数据,其中每个待压缩数据块包含原始数据中 每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
图13是根据另一示例性实施例示出的一种数据解压装置的框图。该数据解压装置可以包括:处理器1310、存储器1320和接收器1330。其中,存储器1320用于存储一个或者一个以上的指令,该指令被配置成由处理器1310执行。
处理器1310,用于控制接收器1330获取压缩数据,压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的。
处理器1310,用于根据字典压缩算法的逆运算解压压缩数据得到至少一个待压缩数据块,每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,原始数据包括多个字符串。
进一步的,处理器1310,用于控制接收器1330获取其他数据,其他数据为原始数据中除待压缩数据块外的数据。
处理器1310,用于将至少一个待压缩数据块与其他数据进行组合获得原始数据。
综上所述,本发明实施例提供的数据解压装置,通过字典压缩算法的逆运算解压压缩数据得到至少一个待压缩数据块,其中每个待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,增大了使用字典压缩算法时字符串的重复概率,解决了现有技术在字符串重复率较低时,数据压缩率较低的问题;达到了提高数据压缩率的效果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种数据压缩方法,其特征在于,所述方法包括:
获取原始数据,所述原始数据包括多个字符串;
获取所述原始数据中至少一个待压缩数据块,每个所述待压缩数据块包含所述原始数据中每个字符串中长度相同的子字符串;
对每个所述待压缩数据块分别使用字典压缩算法得到压缩数据。
2.根据权利要求1所述的方法,其特征在于,所述获取所述原始数据中的至少一个待压缩数据块,包括:
获取所述多个字符串中每个字符串的数据特征,所述每个字符串包括数据特征不同的至少两个子字符串,每个所述子字符串包括至少一个字符;
将所述原始数据中每个字符串中数据特征相同的子字符串作为一个待压缩数据块,得到所述原始数据中的至少一个待压缩数据块。
3.根据权利要求1所述的方法,其特征在于,所述获取所述原始数据中至少一个的待压缩数据块,包括:
将所述原始数据划分为n个数据块,n>1,每个所述数据块包含所述原始数据中每个字符串中长度相同的子字符串;
将所述n个数据块中的至少一个数据块作为所述至少一个待压缩数据块。
4.根据权利要求1至3任一所述的方法,其特征在于,所述对每个所述待压缩数据块分别使用字典压缩算法得到压缩数据之后,所述方法还包括:
存储所述压缩数据;
存储其他数据,所述其他数据为所述原始数据中除所述待压缩数据块之外的数据。
5.一种数据解压方法,其特征在于,所述方法包括:
获取压缩数据,所述压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的;
根据字典压缩算法的逆运算解压所述压缩数据得到所述至少一个待压缩数据块,每个所述待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,所述原始数据包括多个字符串。
6.根据权利要求5所述的方法,其特征在于,所述根据字典压缩算法的逆运算解压所述压缩数据得到所述至少一个待压缩数据块之后,所述方法还包括:
获取其他数据,所述其他数据为所述原始数据中除所述待压缩数据块外的数据;
将所述至少一个待压缩数据块与所述其他数据进行组合获得原始数据。
7.一种数据压缩装置,其特征在于,所述装置包括:
原始数据获取模块,用于获取原始数据,所述原始数据包括多个字符串;
待压缩数据获取模块,用于获取所述原始数据中至少一个待压缩数据块,每个所述待压缩数据块包含所述原始数据中每个字符串中长度相同的子字符串;
数据压缩模块,用于对每个所述待压缩数据块分别使用字典压缩算法得到压缩数据。
8.根据权利要求7所述的装置,其特征在于,所述待压缩数据获取模块,包括:
数据特征获取单元,用于获取所述多个字符串中每个字符串的数据特征,所述每个字符串包括数据特征不同的至少两个子字符串,每个所述子字符串包括至少一个字符;
数据块获取单元,用于将所述原始数据中每个字符串中数据特征相同的子字符串作为一个待压缩数据块,得到所述原始数据中的至少一个待压缩数据块。
9.根据权利要求7所述的装置,其特征在于,所述待压缩数据获取模块,包括:
数据划分单元,用于将所述原始数据划分为n个数据块,n>1,每个所述数据块包含所述原始数据中每个字符串中长度相同的子字符串;
数据块设定单元,用于将所述n个数据块中的至少一个数据块作为所述至少一个待压缩数据块。
10.根据权利要求7至9任一所述的装置,其特征在于,所述装置,还包括:
压缩数据存储模块,用于存储所述压缩数据;
其他数据存储模块,用于存储其他数据,所述其他数据为所述原始数据中除所述待压缩数据块之外的数据。
11.一种数据解压装置,其特征在于,所述装置包括:
压缩数据获取模块,用于获取压缩数据,所述压缩数据是对原始数据中的至少一个待压缩数据块分别使用字典压缩算法得到的;
压缩数据解压模块,用于根据字典压缩算法的逆运算解压所述压缩数据得到所述至少一个待压缩数据块,每个所述待压缩数据块包含原始数据中每个字符串中长度相同的子字符串,所述原始数据包括多个字符串。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
其他数据获取模块,用于获取其他数据,所述其他数据为所述原始数据中除所述待压缩数据块外的数据;
数据组合模块,用于将所述至少一个待压缩数据块与所述其他数据进行组合获得原始数据。
CN201510098077.1A 2015-03-05 2015-03-05 数据压缩方法、数据解压方法和装置 Active CN104753540B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510098077.1A CN104753540B (zh) 2015-03-05 2015-03-05 数据压缩方法、数据解压方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510098077.1A CN104753540B (zh) 2015-03-05 2015-03-05 数据压缩方法、数据解压方法和装置

Publications (2)

Publication Number Publication Date
CN104753540A true CN104753540A (zh) 2015-07-01
CN104753540B CN104753540B (zh) 2019-02-26

Family

ID=53592733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510098077.1A Active CN104753540B (zh) 2015-03-05 2015-03-05 数据压缩方法、数据解压方法和装置

Country Status (1)

Country Link
CN (1) CN104753540B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649859A (zh) * 2016-12-30 2017-05-10 中国移动通信集团江苏有限公司 用于对基于字符串的文件进行压缩的方法和装置
CN106656195A (zh) * 2015-11-04 2017-05-10 北京信威通信技术股份有限公司 数据压缩、解压缩的方法及系统
WO2017097071A1 (zh) * 2015-12-09 2017-06-15 北京奇虎科技有限公司 数据压缩及解压的方法及装置
WO2017128763A1 (zh) * 2016-01-26 2017-08-03 华为技术有限公司 数据压缩装置及方法
CN107852174A (zh) * 2015-07-03 2018-03-27 基麦提松科技公司 固定长度数据的压缩方法
CN108390854A (zh) * 2018-01-10 2018-08-10 北京思特奇信息技术股份有限公司 一种dcc消息传输方法和系统
CN108958966A (zh) * 2018-09-27 2018-12-07 合肥达博科技有限公司 一种无损数据压缩的数据保护方法和装置
CN110990358A (zh) * 2019-09-30 2020-04-10 咪咕文化科技有限公司 一种解压缩方法、电子设备及计算机可读存储介质
WO2020114283A1 (zh) * 2018-12-07 2020-06-11 上海寒武纪信息科技有限公司 数据处理方法及装置
CN111294057A (zh) * 2018-12-07 2020-06-16 上海寒武纪信息科技有限公司 数据压缩方法、编码电路和运算装置
CN111382852A (zh) * 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 数据处理装置、方法、芯片及电子设备
CN111628995A (zh) * 2020-05-26 2020-09-04 新华三信息安全技术有限公司 基于SRv6的SID压缩方法、装置、设备及存储介质
CN111723053A (zh) * 2020-06-24 2020-09-29 北京航天数据股份有限公司 一种数据的压缩方法及装置、解压方法及装置
CN112514264A (zh) * 2018-07-31 2021-03-16 华为技术有限公司 数据压缩、解压方法及相关装置、电子设备、系统
CN116521093A (zh) * 2023-07-03 2023-08-01 漳州科恒信息科技有限公司 一种智慧社区人脸数据存储方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241508A (zh) * 2007-08-01 2008-08-13 金立 结构化数据序列的压缩方法
US7590641B1 (en) * 2005-04-04 2009-09-15 Qd Technology, Llc Selecting various algorithms to compress columns of analytic data in a read-only relational database in a manner that allows decompression of the compressed data using minimal system resources
CN101594150A (zh) * 2008-05-29 2009-12-02 通用汽车环球科技运作公司 测量数据的高效压缩方法
CN102521363A (zh) * 2011-12-15 2012-06-27 武汉达梦数据库有限公司 基于列分解的列存储数据库数值数据压缩方法
CN102708183A (zh) * 2012-05-09 2012-10-03 华为技术有限公司 数据压缩的方法和装置
CN103236846A (zh) * 2013-05-02 2013-08-07 浙江中控技术股份有限公司 一种工业实时数据压缩方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590641B1 (en) * 2005-04-04 2009-09-15 Qd Technology, Llc Selecting various algorithms to compress columns of analytic data in a read-only relational database in a manner that allows decompression of the compressed data using minimal system resources
CN101241508A (zh) * 2007-08-01 2008-08-13 金立 结构化数据序列的压缩方法
CN101594150A (zh) * 2008-05-29 2009-12-02 通用汽车环球科技运作公司 测量数据的高效压缩方法
CN102521363A (zh) * 2011-12-15 2012-06-27 武汉达梦数据库有限公司 基于列分解的列存储数据库数值数据压缩方法
CN102708183A (zh) * 2012-05-09 2012-10-03 华为技术有限公司 数据压缩的方法和装置
CN103236846A (zh) * 2013-05-02 2013-08-07 浙江中控技术股份有限公司 一种工业实时数据压缩方法及装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107852174A (zh) * 2015-07-03 2018-03-27 基麦提松科技公司 固定长度数据的压缩方法
CN106656195A (zh) * 2015-11-04 2017-05-10 北京信威通信技术股份有限公司 数据压缩、解压缩的方法及系统
WO2017097071A1 (zh) * 2015-12-09 2017-06-15 北京奇虎科技有限公司 数据压缩及解压的方法及装置
CN105322969B (zh) * 2015-12-09 2019-06-18 北京奇虎科技有限公司 数据压缩及解压的方法及装置
WO2017128763A1 (zh) * 2016-01-26 2017-08-03 华为技术有限公司 数据压缩装置及方法
CN106649859B (zh) * 2016-12-30 2019-10-29 中国移动通信集团江苏有限公司 用于对基于字符串的文件进行压缩的方法和装置
CN106649859A (zh) * 2016-12-30 2017-05-10 中国移动通信集团江苏有限公司 用于对基于字符串的文件进行压缩的方法和装置
CN108390854A (zh) * 2018-01-10 2018-08-10 北京思特奇信息技术股份有限公司 一种dcc消息传输方法和系统
CN112514264A (zh) * 2018-07-31 2021-03-16 华为技术有限公司 数据压缩、解压方法及相关装置、电子设备、系统
CN108958966A (zh) * 2018-09-27 2018-12-07 合肥达博科技有限公司 一种无损数据压缩的数据保护方法和装置
WO2020114283A1 (zh) * 2018-12-07 2020-06-11 上海寒武纪信息科技有限公司 数据处理方法及装置
CN111294057A (zh) * 2018-12-07 2020-06-16 上海寒武纪信息科技有限公司 数据压缩方法、编码电路和运算装置
CN111382852A (zh) * 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 数据处理装置、方法、芯片及电子设备
CN111382852B (zh) * 2018-12-28 2022-12-09 上海寒武纪信息科技有限公司 数据处理装置、方法、芯片及电子设备
CN110990358A (zh) * 2019-09-30 2020-04-10 咪咕文化科技有限公司 一种解压缩方法、电子设备及计算机可读存储介质
CN111628995A (zh) * 2020-05-26 2020-09-04 新华三信息安全技术有限公司 基于SRv6的SID压缩方法、装置、设备及存储介质
CN111628995B (zh) * 2020-05-26 2023-06-16 新华三信息安全技术有限公司 基于SRv6的SID压缩方法、装置、设备及存储介质
CN111723053A (zh) * 2020-06-24 2020-09-29 北京航天数据股份有限公司 一种数据的压缩方法及装置、解压方法及装置
CN116521093A (zh) * 2023-07-03 2023-08-01 漳州科恒信息科技有限公司 一种智慧社区人脸数据存储方法及系统
CN116521093B (zh) * 2023-07-03 2023-09-15 漳州科恒信息科技有限公司 一种智慧社区人脸数据存储方法及系统

Also Published As

Publication number Publication date
CN104753540B (zh) 2019-02-26

Similar Documents

Publication Publication Date Title
CN104753540A (zh) 数据压缩方法、数据解压方法和装置
US11023439B2 (en) Variable cardinality index and data retrieval
US20160226511A1 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device and decompression device
WO2011153241A1 (en) A method and system for compressing xml documents
CN101783788A (zh) 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US20200294629A1 (en) Gene sequencing data compression method and decompression method, system and computer-readable medium
CN103401562B (zh) 一种无损json数据压缩方法
CN106528896A (zh) 一种数据库优化方法和装置
Akman et al. A lossless text compression technique using syllable based morphology.
CN103731154B (zh) 一种基于语义分析的数据压缩算法
US11017155B2 (en) Method and system for compressing data
US8984028B2 (en) Systems and methods for storing data and eliminating redundancy
US20120109911A1 (en) Compression Of XML Data
Shanmugasundaram et al. IIDBE: A lossless text transform for better compression
KR20080026772A (ko) Lempel-Ziv 압축 방법의 복원 속도를 보완한압축 방법
Mesut et al. A method to improve full-text search performance of MongoDB
Souley et al. A comparative analysis of data compression techniques
US11101819B2 (en) Compression of semi-structured data
US10956440B2 (en) Compressing a plurality of documents
KR101396090B1 (ko) Xml 문서변환장치 및 방법과, 그를 이용한 xml문서처리시스템
Jrai et al. Improving LZW Compression of Unicode Arabic Text Using Multi-Level Encoding and a Variable-Length Phrase Code
Swarnkar et al. An Implementation of Efficient Text Data Compression
Meenakshi et al. Efficient storage reduction of frequency of items in vertical data layout
Aouad et al. ANTS ROAD: a new tool for SQLite data recovery on android devices
Lee et al. SHA-256 based Encapsulated Electronic Medical Record Document Storage System

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