CN108255411A - 一种数据压缩方法与装置和数据解压缩方法与装置 - Google Patents
一种数据压缩方法与装置和数据解压缩方法与装置 Download PDFInfo
- Publication number
- CN108255411A CN108255411A CN201611243662.7A CN201611243662A CN108255411A CN 108255411 A CN108255411 A CN 108255411A CN 201611243662 A CN201611243662 A CN 201611243662A CN 108255411 A CN108255411 A CN 108255411A
- Authority
- CN
- China
- Prior art keywords
- data
- mathematic
- representation
- digit strings
- predetermined
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/111—Mathematical or scientific formatting; Subscripts; Superscripts
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Optimization (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施方式公开了一种数据压缩方法与装置和数据解压缩方法与装置。方法包括:读取原始数据;将所述原始数据转换为十进制数据,并从所述十进制数据中按照预定分段连续提取数字字符串;将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于所述提取出的数字字符串的数学表达式;利用确定的数学表达式替换所述提取出的数字字符串。本发明实施方式可以提高压缩比率,而且可以降低解压缩时间。
Description
技术领域
本发明涉及计算机应用技术领域,更具体的说,涉及一种数据压缩方法与装置和数据解压缩方法与装置。
背景技术
计算机应用已经深入各个领域,各类电子文件的数量和占用存储空间以几何级数增长,导致数据存储设备的需求量越来越大。
文件压缩后的数据容量减小后,磁盘访问输入/输出(I/O)的时间会缩短,尽管压缩和解压缩过程会消耗CPU资源,但是CPU计算资源增长很快,但是磁盘I/O资源却变化很慢,因此如果能够将磁盘的I/O压力转化到CPU上,总体上能够提升系统运行速度。而且,数据压缩后,可以显著加快在互联网上的传输效率。
计算机的文件压缩算法通常包括无损压缩算法和有损压缩算法。常用的无损压缩算法包括香农-范诺编码、霍夫曼编码、算术编码、行程编码(RLE)、词典编码等。有损压缩算法不能完全恢复原始数据。
在现有技术中,主流的无损压缩算法通常压缩比率低,而且解压缩需要耗费大量时间。
发明内容
本发明提出一种数据压缩方法与装置,从而提高压缩比率。
本发明还提出一种数据解压缩方法与装置,从而降低解压缩时间。
本发明实施方式的技术方案如下:
一种数据压缩方法,包括:
读取原始数据;
将所述原始数据转换为十进制数据,并从所述十进制数据中按照预定分段连续提取数字字符串;
将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于所述提取出的数字字符串的数学表达式;
利用确定的数学表达式替换所述提取出的数字字符串。
在一个实施方式中,将所述原始数据转换为十进制数据之前,该方法还包括:
判断所述原始数据是否为二进制数据,如果是,则执行所述将原始数据转换为十进制数据;如果不是,则将原始数据转换为二进制数据,并将所述二进制数据转换为十进制数据。
在一个实施方式中,所述将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于提取出的数字字符串的数学表达式包括:
将提取出的数字字符串与所述数据词典进行比对;
当所述数据词典中存在与所述提取出的数字字符串相对应的预定数学表达式时,将所述相对应的预定数学表达式确定为提取出的数字字符串的数学表达式;
当所述数据词典中不存在与所述提取出的数字字符串相对应的预定数学表达式时,基于数据值接近程度在数据词典中确定预定数目个预定数字字符串;以所述预定数目个预定数字字符串中的每一个预定数字字符串为基础,分别运算出所述提取出的数字字符串,从而得到每个预定数字字符串的数学表达式,将字符数最少的数学表达式确定为提取出的数字字符串的数学表达式,并将该字符数最少的数学表达式和提取出的数字字符串作为新的对应关系存入数据词典。
在一个实施方式中,该方法还包括:
在第一个提取的数字字符串之前,添加压缩起始标识;
在最后一个提取的数字字符串之后,添加压缩结束标识;
在各个数字字符串之间,添加字符串间隔标识。
一种数据压缩装置,包括:
数据读取单元,用于读取原始数据;
字符串提取单元,用于将所述原始数据转换为十进制数据,并从所述十进制数据中按照预定分段连续提取数字字符串;
数学表达式确定单元,用于将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于所述提取出的数字字符串的数学表达式;
替换单元,用于利用确定的数学表达式替换所述提取出的数字字符串。
在一个实施方式中,还包括:
数据处理单元,用于字符串提取单元将所述原始数据转换为十进制数据之前,判断所述原始数据是否为二进制数据,如果是,则使能字符串提取单元执行所述将原始数据转换为十进制数据;如果不是,则将所述原始数据转换为二进制数据,并使能字符串提取单元将所述二进制数据转换为十进制数据。
在一个实施方式中,数学表达式确定单元,用于将提取出的数字字符串与所述数据词典进行比对;当所述数据词典中存在与所述提取出的数字字符串相对应的预定数学表达式时,将所述相对应的预定数学表达式确定为提取出的数字字符串的数学表达式;当所述数据词典中不存在与所述提取出的数字字符串相对应的预定数学表达式时,基于数据值接近程度在数据词典中确定预定数目个预定数字字符串;以所述预定数目个预定数字字符串中的每一个预定数字字符串为基础,分别运算出所述提取出的数字字符串,从而得到每个预定数字字符串的数学表达式,将字符数最少的数学表达式确定为提取出的数字字符串的数学表达式,并将该字符数最少的数学表达式和提取出的数字字符串作为新的对应关系存入数据词典。
一种数据解压缩方法,包括:
读取利用如上的数据压缩方法被压缩的压缩数据;
从所述压缩数据中提取出数学表达式,确定所述数学表达式的计算结果;
利用所述计算结果替换所述数学表达式以生成预定位数的十进制数据,并将所述预定位数的十进制数据转换为二进制数据,其中所述预定位数对应于所述预定分段。
在一个实施方式中,所述压缩数据包含第一个数学表达式之前的压缩起始标识、最后一个数学表达式之后的压缩结束标识以及在各个数学表达式之间的字符串间隔标识。
一种数据解压缩装置,包括:
读取单元,用于读取利用如上的数据压缩方法被压缩的压缩数据;
计算结果确定单元,用于从所述压缩数据中提取出数学表达式,确定所述数学表达式的计算结果;
替换单元,用于利用所述计算结果替换所述数学表达式以生成预定位数的十进制数据,并将所述预定位数的十进制数据转换为二进制数据,其中所述预定位数对应于所述预定分段。
从上述技术方案可以看出,本发明实施方式包括:读取原始数据;将原始数据转换为十进制数据,并从十进制数据中按照预定分段连续提取数字字符串;将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于提取出的数字字符串的数学表达式;利用确定的数学表达式替换提取出的数字字符串。由此可见,本发明实施方式基于数学表达式来替换数字字符串,可以提高压缩比率。而且,数据词典的数据会随着实际压缩运算不断自主扩充和优化。
另外,在解压缩端,可以根据数学表达式的计算结果还原数据,而无需参考数据词典,因此本发明实施方式还可以降低解压缩时间。
附图说明
图1为根据本发明实施方式的数据压缩方法流程图;
图2为根据本发明实施方式的数据压缩处理示意图。
图3为根据本发明实施方式的数据压缩方法示范性流程图。
图4为根据本发明实施方式的数据解压缩处理示意图。
图5为根据本发明实施方式的数据解压缩方法示范性流程图。
图6为根据本发明实施方式的数据压缩装置结构图。
图7为根据本发明实施方式的数据解压缩装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
为了描述上的简洁和直观,下文通过描述若干代表性的实施方式来对本发明的方案进行阐述。实施方式中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。由于汉语的语言习惯,下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
本发明实施方式提出一种在计算机文件存储、传输领域实现的数据压缩算法,利用数学计算、数据字典、循环迭代算法等处理实现文件的压缩和解压缩。本发明实施方式的文件压缩方法主要应用于计算机文件存储、传输的业务场景;比如,需要长期保存,短时间内不再使用的电子文件,尤其是占用存储空间巨大的GB级、TB级甚至PB级的文件,将文件压缩到1MB以内进行长期存储,这样可以占用的存储空间非常少,而且复制文件或在互联网上传输都变得更快捷。
图1为根据本发明实施方式的数据压缩方法流程图。
如图1所示,该方法包括:
步骤101:读取原始数据。
步骤102:将原始数据转换为十进制数据,并从十进制数据中按照预定分段连续提取数字字符串。
比如,预定分段可以为32位。显然,预定分段的位数还可以改为24位、34位、64位、128位等不同长度的数字。
在一个实施方式中,还包括:在第一个提取的数字字符串之前,添加压缩起始标识;在最后一个提取的数字字符串之后,添加压缩结束标识;在各个数字字符串之间,添加字符串间隔标识。
步骤103:将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于提取出的数字字符串的数学表达式。
在这里,将提取出的数字字符串依次与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于提取出的数字字符串的数学表达式,具体包括:将提取出的数字字符串与数据词典进行比对;当数据词典中存在与提取出的数字字符串相对应的预定数学表达式时,将相对应的预定数学表达式确定为提取出的数字字符串的数学表达式;当数据词典中不存在与提取出的数字字符串相对应的预定数学表达式时,基于数据值接近程度在数据词典中确定预定数目个预定数字字符串;以预定数目个预定数字字符串中的每一个预定数字字符串为基础,分别运算出提取出的数字字符串,从而得到每个预定数字字符串的数学表达式,将字符数最少的数学表达式确定为提取出的数字字符串的数学表达式,并将该字符数最少的数学表达式和提取出的数字字符串作为新的对应关系存入数据词典。
其中,数据词典保存有使用数据压缩运算的基础数据词条,其内容为数学表达式(包括数字与数学计算表达式)及与对应的数字字符串(比如,32位)。并在实际数据压缩运算中,保存得出的新数据词条,或利用位数更短的数据词条替换原有数据词条。
比如,数据词典可以包含32长位数数字字符串与对应的数字表达式的对应记录。其中数学表达式对应的是计算为数据后去掉小数点后取前32位的数字字符串。
表1为数据词典的示范性结构表。
长位数数字字符串 | 数学表达式 |
00000000000000000000000000000001 | 1 |
00000000000000000000000000000002 | 2 |
00000000000000000000000000000005 | 5 |
00000000000000000000000001000000 | 10x6 |
00000000000000000000000001000005 | 10x6+5 |
06989700043360188047862611052755 | log5 |
69897000433601880478626110527551 | log5*10 |
01218693434051474811128939192315 | sin7 |
12186934340514748111289391923153 | sin7*10 |
09925461516413220349800615893305 | cos7 |
09030899869919435856412166841734 | log8 |
表1
该数据词典的数据会随着实际压缩运算不断自主扩充和优化。
假定新需要对比的长位数数字字符串为“00000000000000000000000001000007”,表1中并无直接对应的数学表达式。
基于数据值接近程度在数据词典中确定出与“00000000000000000000000001000007”最接近的2个已有数字字符串。
分别为:
(1)、“00000000000000000000000001000000”
(2)、“00000000000000000000000001000005”
(1)所对应的数学表达式为10x6,由10x6运算出“00000000000000000000000001000007”的数学表达式为10x6+7。
(2)所对应的数学表达式为10x6+5,由10x6+5运算出“00000000000000000000000001000007”的数学表达式为10x6+5+2。
由于10x6+7的字符数少于10x6+5+2的字符数,因此将10x6+7确定为“00000000000000000000000001000007”的数学表达式,并将10x6+7的数学表达式和“00000000000000000000000001000007”作为新的对应关系存入数据词典。
步骤104:利用确定的数学表达式替换提取出的数字字符串。
在这里,针对每个提取出的数字字符串,分别利用各自的数学表达式予以替代,即可实现压缩。
在一个实施方式中,将原始数据转换为十进制数据之前,该方法还包括:判断原始数据是否为二进制数据,如果是,则执行将原始数据转换为十进制数据;如果不是,则将原始数据转换为二进制数据,并将二进制数据转换为十进制数据。
在一个实施方式中,在利用确定的数学表达式替换提取出的数字字符串之后,进一步判断替换后数据大小是否小于设置值,如果是,则流程结束,如果否,则将替换后数据转换为二进制数据,并返回继续执行步骤102,以实现多重压缩。
图2为根据本发明实施方式的数据压缩处理示意图。
如图2所示:原始数据读取模块按照设置读取计算机数据文件或通过接口获取传输来的数据流;数据压缩计算模块可以将原始数据读取模块读取的数据,参考数据词典模块中已有数学表达式,按照图1所示的压缩计算规则进行数据压缩,并将得出的压缩数据由压缩数据输出模块予以输出。
基于上述描述,下面详细说明数据压缩方法的示范性流程。
图3为根据本发明实施方式的数据压缩方法示范性流程图。
如图3所示,包括:
步骤(1):获取原始数据读取模块读取的数据。
步骤(2):确定该数据是否为二进制数据。如果否,则跳转到步骤(3),如果是,则跳转到步骤(4)。
步骤(3):将数据转化为二进制数据。
步骤(4):分段(比如,16位或8位)截取数据并转换为十进制数字。
步骤(5):针对该十进制数字,按照每32个连续数字截取,从而得到多个数字字符串。
步骤(6):判断是否是第一个截取的字符串,如果是,则跳转到步骤(7),如果否,则跳转到步骤(8)。
步骤(7):添加数据压缩起始标识信息。
步骤(8):添加数字字符串间隔标识信息。
步骤(9):将截取的字符串与数据已有数据比对。
步骤(10):判断数据词典中是否存在截取的字符串,如果是,则跳转到步骤(11),如果否,则跳转到步骤(12)。
步骤(11):提取数据词典中对应的数学表达式。
步骤(12):在数据词典查找数据值最接近的预定数目个基础词条,并以这些词条为基础进行自主数据运算,获取字符数最少的数学表达式,将数学表达式和字符串作为词条存入数据词典。
步骤(13):用获取的数学表达式替换提取的数字字符串。
步骤(14):判断是否是最后一个字符串,如果是,执行步骤(15),否则返回执行步骤(5)。
步骤(15):添加数据压缩结束标识信息
步骤(16):判断压缩后的总体数据大小是否小于设置值,如果是,则流程结束,如果否,则跳转到步骤(3),从而继续将数据转化为二进制数据以循环迭代压缩。
可见,本发明实施方式可以实现循环迭代压缩,可将占用存储空间巨大的GB级、TB级甚至PB级的数据文件,压缩到1MB以内,数据压缩率极高,而且数据还原不失真。
基于上述描述,本发明实施方式还提出了一种的数据解压缩方法。
图4为根据本发明实施方式的数据解压缩处理示意图。在图4中,压缩数据读取包括:按照设置读取压缩数据文件或通过接口获取传输来的数据流。数据解压缩计算包括:将压缩数据读取模块读取的压缩数据,按照后述的解压缩方法进行数据压缩,并将得出的还原数据由还原数据输出模块输出。
图5为根据本发明实施方式的数据解压缩方法示范性流程图。
如图5所示,该方法包括:
步骤501:读取利用如图1的数据压缩方法被压缩的压缩数据.
步骤502:从压缩数据中提取出数学表达式,确定数学表达式的计算结果。
步骤503:利用计算结果替换所述数学表达式以生成预定位数的十进制数据,并将预定位数的十进制数据转换为二进制数据,其中预定位数对应于图1的步骤102的预定分段。
在一个实施方式中,压缩数据包含第一个数学表达式之前的压缩起始标识、最后一个数学表达式之后的压缩结束标识以及在各个数学表达式之间的字符串间隔标识。
基于上述描述,下面详细说明数据解压缩方法的示范性流程。
图5为根据本发明实施方式的数据解压缩方法示范性流程图。
如图5所示,该方法包括:
步骤(1):获取利用上述压缩方法被压缩的数据。
步骤(2):基于数据压缩起始标识信息、间隔标识信息、数据压缩结束标识信息的区分作用,获取各个数学表达式。
步骤(3):将每个数学表达式通过计算转换为32位的数字字符串。
步骤(4):去掉所有标识信息,按照数学表达式出现的顺序拼接所有的数字字符串。
步骤(5):将各个十进制数字字符串转化为固定位数的二进制数字。
步骤(6):判断转换处理后的数据是否是本发明的压缩数据,如果否,则流程结束,如果是,则跳转到步骤(2)。
可见,在解压缩时,可以直接根据数学表达式的计算结果确定数据,而无需参考数据词典。因此,解压缩时间和效率得到了显著提升。
基于上述描述,本发明实施方式还提出了一种数据压缩装置。
图6为根据本发明实施方式的数据压缩装置结构图。
如图6所示,数据压缩装置600包括:
数据读取单元601,用于读取原始数据;
字符串提取单元602,用于将原始数据转换为十进制数据,并从十进制数据中按照预定分段连续提取数字字符串;
数学表达式确定单元603,用于将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于所述提取出的数字字符串的数学表达式;
替换单元604,用于利用确定的数学表达式替换提取出的数字字符串。
在一个实施方式中,数据压缩装置600还包括:
数据处理单元,用于字符串提取单元将原始数据转换为十进制数据之前,判断原始数据是否为二进制数据,如果是,则使能字符串提取单元执行将原始数据转换为十进制数据;如果不是,则将原始数据转换为二进制数据,并使能字符串提取单元将二进制数据转换为十进制数据。
在一个实施方式中,数学表达式确定单元603,用于将提取出的数字字符串与数据词典进行比对;当数据词典中存在与所述提取出的数字字符串相对应的预定数学表达式时,将相对应的预定数学表达式确定为提取出的数字字符串的数学表达式;当数据词典中不存在与提取出的数字字符串相对应的预定数学表达式时,基于数据值接近程度在数据词典中确定预定数目个预定数字字符串;以预定数目个预定数字字符串中的每一个预定数字字符串为基础,分别运算出提取出的数字字符串,从而得到每个预定数字字符串的数学表达式,将字符数最少的数学表达式确定为提取出的数字字符串的数学表达式,并将该字符数最少的数学表达式和提取出的数字字符串作为新的对应关系存入数据词典。
基于上述描述,本发明实施方式还提出了一种数据解压缩装置。
图7为根据本发明实施方式的数据解压缩装置结构图。
如图7所示,数据解压缩装置700包括:
读取单元701,用于读取利用如图1描述的数据压缩方法被压缩的压缩数据;
计算结果确定单元702,用于从压缩数据中提取出数学表达式,确定数学表达式的计算结果;
替换单元703,用于利用计算结果替换数学表达式以生成预定位数的十进制数据,并将预定位数的十进制数据转换为二进制数据,其中预定位数对应于预定分段。
用户可以在各种智能设备上应用本发明的数据压缩和解压缩方法。这些智能设备可以包括但是不局限于:功能手机、智能手机、智能电视、掌上电脑、平板电脑或个人数字助理(PDA),等等。以上虽然详细罗列了智能设备的具体实例,本领域人员可以意识到,这些罗列仅是阐述目的,并不用于限定本发明实施方式的保护范围。而且,智能设备可以适用于任意的智能设备操作系统,具体可以采用的操作系统包括但是不局限于:安卓(Android)、Palm OS、Symbian(塞班)、Windows mobile、Linux、Android(安卓)、iPhone(苹果)OS、BlackBerry(黑莓)OS 6.0、Windows Phone系列,等等。优选地,智能设备具体可以采用安卓操作系统,而且终端可以采用到Android的各个版本之中,包括但是不局限于:阿童木(AndroidBeta)、发条机器人(Android 1.0)、纸杯蛋糕(Android 1.5)、甜甜圈(Android 1.6)、松饼(Android 2.0/2.1),冻酸奶(Android 2.2)、姜饼(Android 2.3)、蜂巢(Android 3.0)、冰激凌三明治(Android 4.0)、果冻豆(Jelly Bean,Android 4.1)等版本。以上详细罗列了Android平台的具体版本,本领域技术人员可以意识到,本发明实施方式并不局限于上述罗列版本,而还可以适用于其他基于Android软件架构的任意版本之中。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施方式中的硬件模块可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
本发明还提供了一种机器可读的存储介质,存储用于使一机器执行如本发明实施方式所述方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施方式中任一实施方式的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。此外,还可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施方式中任一实施方式的功能。
用于提供程序代码的存储介质实施方式包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
综上所述,本发明实施方式包括:读取原始数据;将原始数据转换为十进制数据,并从十进制数据中按照预定分段连续提取数字字符串;将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于提取出的数字字符串的数学表达式;利用确定的数学表达式替换提取出的数字字符串。由此可见,本发明实施方式基于数学表达式来替换数字字符串,可以提高压缩比率。而且,数据词典的数据会随着实际压缩运算不断自主扩充和优化。
另外,在解压缩端,可以根据数学表达式的计算结果还原数据,而无需参考数据词典,因此本发明实施方式还可以降低解压缩时间。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据压缩方法,其特征在于,包括:
读取原始数据;
将所述原始数据转换为十进制数据,并从所述十进制数据中按照预定分段连续提取数字字符串;
将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于所述提取出的数字字符串的数学表达式;
利用确定的数学表达式替换所述提取出的数字字符串。
2.根据权利要求1所述的数据压缩方法,其特征在于,将所述原始数据转换为十进制数据之前,该方法还包括:
判断所述原始数据是否为二进制数据,如果是,则执行所述将原始数据转换为十进制数据;如果不是,则将原始数据转换为二进制数据,并将所述二进制数据转换为十进制数据。
3.根据权利要求1所述的数据压缩方法,其特征在于,所述将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于提取出的数字字符串的数学表达式包括:
将提取出的数字字符串与所述数据词典进行比对;
当所述数据词典中存在与所述提取出的数字字符串相对应的预定数学表达式时,将所述相对应的预定数学表达式确定为提取出的数字字符串的数学表达式;
当所述数据词典中不存在与所述提取出的数字字符串相对应的预定数学表达式时,基于数据值接近程度在数据词典中确定预定数目个预定数字字符串;以所述预定数目个预定数字字符串中的每一个预定数字字符串为基础,分别运算出所述提取出的数字字符串,从而得到每个预定数字字符串的数学表达式,将字符数最少的数学表达式确定为提取出的数字字符串的数学表达式,并将该字符数最少的数学表达式和提取出的数字字符串作为新的对应关系存入数据词典。
4.根据权利要求1-3中任一项所述的数据压缩方法,其特征在于,该方法还包括:
在第一个提取的数字字符串之前,添加压缩起始标识;
在最后一个提取的数字字符串之后,添加压缩结束标识;
在各个数字字符串之间,添加字符串间隔标识。
5.一种数据压缩装置,其特征在于,包括:
数据读取单元,用于读取原始数据;
字符串提取单元,用于将所述原始数据转换为十进制数据,并从所述十进制数据中按照预定分段连续提取数字字符串;
数学表达式确定单元,用于将提取出的数字字符串与包含预定数字字符串与预定数学表达式的对应关系的数据词典进行匹配,并基于匹配结果确定对应于所述提取出的数字字符串的数学表达式;
替换单元,用于利用确定的数学表达式替换所述提取出的数字字符串。
6.根据权利要求5所述的数据压缩装置,其特征在于,还包括:
数据处理单元,用于字符串提取单元将所述原始数据转换为十进制数据之前,判断所述原始数据是否为二进制数据,如果是,则使能字符串提取单元执行所述将原始数据转换为十进制数据;如果不是,则将所述原始数据转换为二进制数据,并使能字符串提取单元将所述二进制数据转换为十进制数据。
7.根据权利要求5所述的数据压缩装置,其特征在于,
数学表达式确定单元,用于将提取出的数字字符串与所述数据词典进行比对;当所述数据词典中存在与所述提取出的数字字符串相对应的预定数学表达式时,将所述相对应的预定数学表达式确定为提取出的数字字符串的数学表达式;当所述数据词典中不存在与所述提取出的数字字符串相对应的预定数学表达式时,基于数据值接近程度在数据词典中确定预定数目个预定数字字符串;以所述预定数目个预定数字字符串中的每一个预定数字字符串为基础,分别运算出所述提取出的数字字符串,从而得到每个预定数字字符串的数学表达式,将字符数最少的数学表达式确定为提取出的数字字符串的数学表达式,并将该字符数最少的数学表达式和提取出的数字字符串作为新的对应关系存入数据词典。
8.一种数据解压缩方法,其特征在于,包括:
读取利用如权利要求1的数据压缩方法被压缩的压缩数据;
从所述压缩数据中提取出数学表达式,确定所述数学表达式的计算结果;
利用所述计算结果替换所述数学表达式以生成预定位数的十进制数据,并将所述预定位数的十进制数据转换为二进制数据,其中所述预定位数对应于所述预定分段。
9.根据权利要求8所述的数据解压缩方法,其特征在于,所述压缩数据包含第一个数学表达式之前的压缩起始标识、最后一个数学表达式之后的压缩结束标识以及在各个数学表达式之间的字符串间隔标识。
10.一种数据解压缩装置,其特征在于,包括:
读取单元,用于读取利用如权利要求1的数据压缩方法被压缩的压缩数据;
计算结果确定单元,用于从所述压缩数据中提取出数学表达式,确定所述数学表达式的计算结果;
替换单元,用于利用所述计算结果替换所述数学表达式以生成预定位数的十进制数据,并将所述预定位数的十进制数据转换为二进制数据,其中所述预定位数对应于所述预定分段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611243662.7A CN108255411A (zh) | 2016-12-29 | 2016-12-29 | 一种数据压缩方法与装置和数据解压缩方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611243662.7A CN108255411A (zh) | 2016-12-29 | 2016-12-29 | 一种数据压缩方法与装置和数据解压缩方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108255411A true CN108255411A (zh) | 2018-07-06 |
Family
ID=62720671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611243662.7A Pending CN108255411A (zh) | 2016-12-29 | 2016-12-29 | 一种数据压缩方法与装置和数据解压缩方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255411A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040027A (zh) * | 2021-10-29 | 2022-02-11 | 深圳智慧林网络科技有限公司 | 一种基于双模式的数据压缩方法、装置和数据解压方法 |
CN114500670A (zh) * | 2022-02-28 | 2022-05-13 | 北京京东振世信息技术有限公司 | 一种编码压缩方法、解码方法及装置 |
CN115221857A (zh) * | 2022-09-21 | 2022-10-21 | 中国电子信息产业集团有限公司 | 一种含数值类型的数据相似性检测方法及装置 |
CN116938256A (zh) * | 2023-09-18 | 2023-10-24 | 苏州科尔珀恩机械科技有限公司 | 基于大数据的回转炉运行参数智能管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1437738A (zh) * | 2000-01-03 | 2003-08-20 | 埃菲克塔技术股份有限公司 | 数据发送和存储的有效且无损耗转换 |
CN103891150A (zh) * | 2011-10-01 | 2014-06-25 | 英特尔公司 | 用于高带宽字典压缩的压缩格式 |
US20150120682A1 (en) * | 2013-10-28 | 2015-04-30 | International Business Machines Corporation | Automated recognition of patterns in a log file having unknown grammar |
US20160283504A1 (en) * | 2015-03-27 | 2016-09-29 | James D. Guilford | Apparatus for Hardware Implementation of Lossless Data Compression |
-
2016
- 2016-12-29 CN CN201611243662.7A patent/CN108255411A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1437738A (zh) * | 2000-01-03 | 2003-08-20 | 埃菲克塔技术股份有限公司 | 数据发送和存储的有效且无损耗转换 |
CN103891150A (zh) * | 2011-10-01 | 2014-06-25 | 英特尔公司 | 用于高带宽字典压缩的压缩格式 |
US20150120682A1 (en) * | 2013-10-28 | 2015-04-30 | International Business Machines Corporation | Automated recognition of patterns in a log file having unknown grammar |
US20160283504A1 (en) * | 2015-03-27 | 2016-09-29 | James D. Guilford | Apparatus for Hardware Implementation of Lossless Data Compression |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040027A (zh) * | 2021-10-29 | 2022-02-11 | 深圳智慧林网络科技有限公司 | 一种基于双模式的数据压缩方法、装置和数据解压方法 |
CN114040027B (zh) * | 2021-10-29 | 2023-11-24 | 深圳智慧林网络科技有限公司 | 一种基于双模式的数据压缩方法、装置和数据解压方法 |
CN114500670A (zh) * | 2022-02-28 | 2022-05-13 | 北京京东振世信息技术有限公司 | 一种编码压缩方法、解码方法及装置 |
CN114500670B (zh) * | 2022-02-28 | 2024-04-05 | 北京京东振世信息技术有限公司 | 一种编码压缩方法、解码方法及装置 |
CN115221857A (zh) * | 2022-09-21 | 2022-10-21 | 中国电子信息产业集团有限公司 | 一种含数值类型的数据相似性检测方法及装置 |
CN115221857B (zh) * | 2022-09-21 | 2023-01-13 | 中国电子信息产业集团有限公司 | 一种含数值类型的数据相似性检测方法及装置 |
CN116938256A (zh) * | 2023-09-18 | 2023-10-24 | 苏州科尔珀恩机械科技有限公司 | 基于大数据的回转炉运行参数智能管理方法 |
CN116938256B (zh) * | 2023-09-18 | 2023-11-28 | 苏州科尔珀恩机械科技有限公司 | 基于大数据的回转炉运行参数智能管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3309031B2 (ja) | 短ブロックのデータを圧縮、伸長するための方法、及び装置 | |
CN108255411A (zh) | 一种数据压缩方法与装置和数据解压缩方法与装置 | |
US10747737B2 (en) | Altering data type of a column in a database | |
US20160226511A1 (en) | Non-transitory computer-readable recording medium, compression method, decompression method, compression device and decompression device | |
US10153779B1 (en) | Content-aware compression of floating-point time-series data using multiple prediction functions and estimated bit-saving thresholds | |
JP5812188B2 (ja) | プログラム、圧縮データ生成方法、伸張方法、情報処理装置、および記録媒体 | |
JP2013150041A (ja) | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 | |
US11704286B2 (en) | High-density compression method and computing system | |
CN101783788A (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
US9806741B1 (en) | Character conversion | |
US10581456B2 (en) | Data compression device and data decompression device | |
CN113673260A (zh) | 模型处理方法、装置、存储介质和处理器 | |
CN115293332A (zh) | 一种图神经网络的训练方法、装置、设备及存储介质 | |
CN105279171B (zh) | 在压缩的可变长度字符串上进行谓词评估的方法和设备 | |
CN106776641A (zh) | 一种数据处理方法及装置 | |
JP6835285B1 (ja) | データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム | |
US9846679B2 (en) | Computer and graph data generation method | |
CN116894016A (zh) | 轨道交通信号的日志压缩方法及装置 | |
CN109685091B (zh) | 使用贝叶斯方式的数字体验目标确定 | |
US20220199202A1 (en) | Method and apparatus for compressing fastq data through character frequency-based sequence reordering | |
CN114547030B (zh) | 多级时序数据压缩方法、装置、电子设备及存储介质 | |
US10747725B2 (en) | Compressing method, compressing apparatus, and computer-readable recording medium | |
CN110738048A (zh) | 一种关键词提取方法、装置及终端设备 | |
CN115905702A (zh) | 基于用户需求分析的数据推荐方法及系统 | |
CN112054805A (zh) | 一种模型数据压缩方法、系统及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180706 |
|
RJ01 | Rejection of invention patent application after publication |