CN110808738B - 数据压缩方法、装置、设备及计算机可读存储介质 - Google Patents
数据压缩方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110808738B CN110808738B CN201910871503.9A CN201910871503A CN110808738B CN 110808738 B CN110808738 B CN 110808738B CN 201910871503 A CN201910871503 A CN 201910871503A CN 110808738 B CN110808738 B CN 110808738B
- Authority
- CN
- China
- Prior art keywords
- data
- compressed
- tag
- prefix
- label
- 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
-
- 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
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及大数据技术领域,公开了一种数据压缩方法、装置、设备及计算机可读存储介质。方法包括:获取待压缩数据,对待压缩数据进行分类;对分类后的待压缩数据进行识别,确定带数值型数据的标签和数值,以及不带数值型数据的标签,标签包括标签前缀和标签下标;对带数值型数据的标签下标和数值进行压缩;对待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据;若不存在,则在标签前缀和压缩后的标签下标之间***第二预设符号;基于标签前缀、第二预设符号、压缩后的标签下标,或标签前缀、第二预设符号、压缩后的标签下标、压缩后的数值,得到压缩后的数据,并输出压缩后的数据。通过本申请,提高了数据压缩率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及数据压缩方法、装置、设备及计算机可读存储介质。
背景技术
数据压缩是在不丢失有用信息的前提下,缩减原始数据的数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。现有技术中,对原始数据进行压缩时通常使用字符串压缩算法,目前,最常用的字符串压缩算法一般是针对连续出现相同字符的字符串进行压缩。例如,待压缩字符串为aabccccaaa,则压缩后为a2b1c4a3。这种压缩方法的应用范围非常狭窄,压缩比例也有限,对于存储了数亿级数据的大型项目来说,压缩率远远不够。
发明内容
本申请的主要目的在于提供一种数据压缩方法、装置、设备及计算机可读存储介质,旨在解决现有的数据压缩方法压缩率低的技术问题。
为实现上述目的,本申请提供一种数据压缩方法,所述数据压缩方法包括以下步骤:
获取待压缩数据,并对所述待压缩数据进行分类,其中,所述待压缩数据包括带数值型数据和不带数值型数据;
对所述分类后的待压缩数据进行识别,确定所述带数值型数据的标签和数值,以及确定所述不带数值型数据的标签,其中,所述标签包括标签前缀和标签下标,标签前缀为字母,标签下标和数值为数字;
基于预设算法对所述带数值型数据的标签下标和数值进行压缩,以及对所述不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值;
对所述待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据;
若不存在连续的带有相同标签前缀的待压缩数据,则在所述标签前缀和所述压缩后的标签下标之间***第二预设符号;
基于所述标签前缀、所述第二预设符号、所述压缩后的标签下标,或所述标签前缀、所述第二预设符号、所述压缩后的标签下标、所述压缩后的数值,得到压缩后的数据,并输出所述压缩后的数据。
可选地,所述获取待压缩数据,并对所述待压缩数据进行分类包括:
获取待压缩数据,并在所述待压缩数据中进行查询,判断所述待压缩数据中是否包含第一预设符号;
将包含第一预设符号的待压缩数据确定为带数值型数据,将不包含所述第一预设符号的待压缩数据确定为不带数值型数据;
其中,所述若不存在连续的带有相同标签前缀的待压缩数据,则在所述标签前缀和所述压缩后的标签下标之间***第二预设符号之后,包括:
基于所述标签前缀、所述第二预设符号、所述压缩后的标签下标、所述第一预设符号和所述压缩后的数值,得到压缩后的数据,并输出所述压缩后的数据。
可选地,所述对所述待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据之后,还包括:
若存在n个连续的带有相同标签前缀的待压缩数据,则将压缩后的数据中所述相同标签前缀的数量简化为1个,其中,n≥2;
在所述相同标签前缀和所述压缩后的标签下标之间***第二预设符号;
将所述相同标签前缀放在第二预设符号的左边,并将所述相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边。
可选地,所述将所述相同标签前缀放在第二预设符号的左边,并将所述相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边之后,还包括:
当所述n个连续的带有相同标签前缀的待压缩数据后出现不同标签前缀的待压缩数据时,在第n个连续的带有相同标签前缀的待压缩数据的标签下标或数值之后、所述不同标签前缀之前,***第三预设符号。
此外,为实现上述目的,本申请还提供一种数据压缩装置,所述数据压缩装置包括:
分类模块,用于获取待压缩数据,并对所述待压缩数据进行分类,其中,所述待压缩数据包括带数值型数据和不带数值型数据;
划分模块,用于对所述分类后的待压缩数据进行识别,确定所述带数值型数据的标签和数值,以及确定所述不带数值型数据的标签,其中,所述标签包括标签前缀和标签下标,标签前缀为字母,标签下标和数值为数字;
压缩模块,用于基于预设算法对所述带数值型数据的标签下标和数值进行压缩,以及对所述不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值;
查询模块,用于对所述待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据;
***模块,用于若不存在连续的带有相同标签前缀的待压缩数据,则在所述标签前缀和所述压缩后的标签下标之间***第二预设符号;
输出模块,用于基于所述标签前缀、所述第二预设符号、所述压缩后的标签下标,或所述标签前缀、所述第二预设符号、所述压缩后的标签下标、所述压缩后的数值,得到压缩后的数据,并输出所述压缩后的数据。
可选地,所述分类模块包括:
查询单元,用于获取待压缩数据,并在所述待压缩数据中进行查询,判断所述待压缩数据中是否包含第一预设符号;
确定单元,用于将包含第一预设符号的待压缩数据确定为带数值型数据,将不包含所述第一预设符号的待压缩数据确定为不带数值型数据。
可选地,所述数据压缩装置还包括:
简化模块,用于若存在n个连续的带有相同标签前缀的待压缩数据,则将压缩后的数据中所述相同标签前缀的数量简化为1个,其中,n≥2;
简化***模块,用于在所述相同标签前缀和所述压缩后的标签下标之间***第二预设符号;
排列模块,用于将所述相同标签前缀放在第二预设符号的左边,并将所述相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边。
可选地,所述数据压缩装置还包括:
连接模块,用于当所述n个连续的带有相同标签前缀的待压缩数据后出现不同标签前缀的待压缩数据时,在第n个连续的带有相同标签前缀的待压缩数据的标签下标或数值之后、所述不同标签前缀之前,***第三预设符号。
此外,为实现上述目的,本申请还提供一种数据压缩设备,所述数据压缩设备包括输入输出单元、存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行时实现如上所述的数据压缩方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据压缩程序,所述数据压缩程序被处理器执行时实现如上所述的数据压缩方法的步骤。
本申请提出的数据压缩方法,首先获取待压缩数据,并对待压缩数据进行分类,分为带数值型数据和不带数值型数据;对分类后的待压缩数据进行识别,确定带数值型数据的标签和数值以及不带数值型数据的标签,标签包括标签前缀和标签下标;基于预设算法对带数值型数据的标签下标和数值进行压缩,对不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值;进一步地对待压缩数据的标签前缀进行查询,如果不存在连续的带有相同标签前缀的待压缩数据,则在标签前缀和压缩后的标签下标之间***第二预设符号;最后,基于标签前缀、第二预设符号、压缩后的标签下标,或是标签前缀、第二预设符号、压缩后的标签下标及压缩后的数值,得到压缩后的数据,并输出压缩后的数据。本申请提出的数据压缩方法,采用预设算法对待压缩数据的标签下标和数值部分分别进行压缩,可以节省接近一半的内存空间,极大地提高了数据压缩率;同时,在标签前缀和压缩后的标签下标之间***第二预设符号,提高了解压的速度及正确率。
附图说明
图1为本申请实施例方案涉及的硬件运行环境的数据压缩设备结构示意图;
图2为本申请数据压缩方法一实施例的流程示意图;
图3为本申请数据压缩装置一实施例的功能模块示意图;
图4为本申请数据压缩装置一实施例中分类模块的功能单元示意图;
图5为本申请数据压缩装置另一实施例的功能模块示意图;
图6为本申请数据压缩装置另一实施例的功能模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示,图1为本申请实施例方案涉及的硬件运行环境的数据压缩设备结构示意图。
本申请实施例中的数据压缩设备可以是便携计算机、服务器等具有数据处理能力的终端设备。
如图1所示,该数据压缩设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选地还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的数据压缩设备结构并不构成对数据压缩设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及数据压缩程序。
在图1所示的数据压缩设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据压缩程序,并执行以下数据压缩方法的各实施例的操作。
参照图2,图2为本申请数据压缩方法一实施例的流程示意图,在该实施例中,数据压缩方法包括:
步骤S10,获取待压缩数据,并对待压缩数据进行分类,其中,待压缩数据包括带数值型数据和不带数值型数据。
在本实施例中,首先获取待压缩的数据,具体地,待压缩数据可以分为带数值型的数据和不带数值型的数据,其中,带数值型的数据包括标签和数值两部分,标签还包括标签前缀和标签下标,不带数值型的数据只包括标签部分。例如,待压缩的数据pa1001:12是带数值型的数据,其中,pa1001为标签,pa为标签前缀,1001为标签下标,12为数值,标签和数值中间用“:”隔开,标签部分的标签前缀和标签下标之间不用符号隔开;又比如,待压缩的数据pb1004为不带数值型的数据,同样地,pb1004为标签,pb为标签前缀,1004为标签下标。
具体地,对待压缩的标签数据进行分类的过程如下:首先确定待压缩的标签数据是带数值型的标签数据,还是不带数值型的标签数据,待压缩的标签数据中带有第一预设符号“:”的为带数值型的标签数据,第一预设符号“:”前为标签,第一预设符号“:”后为数值。可以理解的是,在本实施例中,第一预设符号还可以是除了“:”之外的其他符号,例如“/”、“*”等,在此对第一预设符号的类型不做限制。
步骤S20,对分类后的待压缩数据进行识别,确定带数值型数据的标签和数值,以及确定不带数值型数据的标签,其中,标签包括标签前缀和标签下标,标签前缀为字母,标签下标和数值为数字。
进一步地,当确定是带数值型数据还是不带数值型数据后,对待压缩数据的标签前缀、标签下标和/或数值进行划分。具体地,标签前缀为字母,标签下标和数值为数字。
步骤S30,基于预设算法对带数值型数据的标签下标和数值进行压缩,以及对不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值。
进一步地,当确定待压缩数据的标签前缀、标签下标和/或数值之后,基于预设的压缩算法对标签下标和/或数值进行压缩,在压缩过程中,根据待压缩数据的类型的不同,可分为不同的压缩方式。
例如,若待压缩数据是带数值型的数据,则针对待压缩数据的标签部分和数值部分分别进行压缩;若待压缩数据是不带数值型的数据,则仅针对待压缩数据的标签部分进行压缩。其中,标签又包括标签前缀和标签下标,在本实施例中,在进行标签部分压缩时,仅对标签下标进行压缩,标签前缀不需要进行压缩。
进一步地,对标签部分的标签下标和/或数值部分进行压缩采用的是62进制压缩法,所谓62进制压缩法,是指使用0-9这9个数字依次表示0-9这9个数字本身,而使用a-z这26个小写字母对应表示10~35中间的这25个数字,并使用A-Z这26个大写字母对应表示36~61中间的25个数字。例如,数字8用62进制来表示还是8,而数字12用62进制来表示就是小写字母c。
以不带数值型的数据pa1001为例,举例说明62进制压缩方法的压缩过程:对待压缩数据pa1001进行划分,确定标签前缀pa和标签下标1001,标签前缀不进行压缩,对于标签下标1001,利用十进制-六十二进制的进制转换公式转换后为169,由于在62进制中,采用0-9这9个数字依次表示0-9这9个数字本身,采用a-z这26个小写字母对应表示10~35中间的这25个数字,16在62进制中对应字母g,9在62进制中对应数字9,因此,标签下标1001经过62进制转换后为g9。
步骤S40,对待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据;若否,则执行步骤S50。
在本实施例中,为了进一步地提高数据压缩的效率,以及节省存储空间,当基于预设算法对标签下标和/或数值进行压缩后,对待压缩数据的标签前缀进行查询,判断待压缩数据中是否存在连续的带有相同标签前缀的待压缩数据,针对连续的带有相同标签前缀的待压缩数据,可以在压缩后的数据中对该相同标签前缀的个数进行简化,连续的相同标签前缀可以只保留一个,提高数据压缩率。
步骤S50,在标签前缀和压缩后的标签下标之间***第二预设符号。
进一步地,当基于62进制压缩法对待压缩数据的标签部分和/或数值部分进行压缩后,为了提高压缩后的数据读取的准确度,便于后续压缩数据的解压,本实施例中,在未压缩的标签前缀和压缩后的标签下标之间***第二预设符号,以便进行前缀和下标的区分。
例如,对于不带数值型数据pa1001而言,通过预设算法进行压缩后得到的数据为pag9,如果不***相应的符号以进行区分,则无法识别压缩后的数据中哪些是标签前缀,哪些是标签下标。比如,可能存在pa是标签前缀、g9是标签下标的情况,也可能存在p是标签前缀,ag9是标签下标的情况,不利于后续进行准确的解压。
因此,通过在压缩后的数据中***第二预设符号,以进行标签前缀和标签下标的区分。具体地,可以是未压缩的标签前缀和压缩后的标签下标之间***“=”以进行划分,还可以是***其他的符号,比如“/”、“;”等,在本实施例中,对第二预设符号的形式并不作限制,当然,第一预设符号与第二预设符号不同,***第二预设符号后,即完成了对待压缩数据的压缩过程。
步骤S60,基于标签前缀、第二预设符号、压缩后的标签下标,或标签前缀、第二预设符号、压缩后的标签下标、压缩后的数值,得到压缩后的数据,并输出压缩后的数据。
对于不带数值型数据pa1001而言,标签前缀pa不进行压缩,标签下标压缩后为g9,在标签前缀和压缩后的标签下标之间***第二预设符号“=”,因此,不带数值型数据pa1001压缩后为pa=g9;
对于带数值型数据pa1001:12而言,标签下标与数值部分中间是第一预设符号,标签前缀pa不进行压缩,标签下标压缩后为g9,数值部分压缩后为c,在标签前缀和压缩后的标签下标之间***第二预设符号“=”。因此,带数值型数据pa1001:12压缩后为pa=g9:c。后续进行数据解压时,可以准确区分待解压数据的标签前缀、标签下标和数值部分,以便提高解压的准确度。
在本实施例中,首先获取待压缩数据,并对待压缩数据进行分类,分为带数值型数据和不带数值型数据;对分类后的待压缩数据进行识别,确定带数值型数据的标签和数值以及不带数值型数据的标签,标签包括标签前缀和标签下标;基于预设算法对带数值型数据的标签下标和数值进行压缩,对不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值;进一步地对待压缩数据的标签前缀进行查询,如果不存在连续的带有相同标签前缀的待压缩数据,则在标签前缀和压缩后的标签下标之间***第二预设符号;最后,基于标签前缀、第二预设符号、压缩后的标签下标,或是标签前缀、第二预设符号、压缩后的标签下标及压缩后的数值,得到压缩后的数据,并输出压缩后的数据。本申请提出的数据压缩方法,采用预设算法对待压缩数据的标签下标和数值部分分别进行压缩,可以节省接近一半的内存空间,极大地提高了数据压缩率;同时,在标签前缀和压缩后的标签下标之间***第二预设符号,提高了解压的速度及正确率。
进一步地,在步骤S40之后,还包括:
步骤S70,若存在n个连续的带有相同标签前缀的待压缩数据,则将压缩后的数据中相同标签前缀的数量简化为1个,其中,n≥2;
步骤S80,在相同标签前缀和压缩后的标签下标之间***第二预设符号;
步骤S90,将相同标签前缀放在第二预设符号的左边,并将相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边;
步骤S100,当n个连续的带有相同标签前缀的待压缩数据后出现不同标签前缀的待压缩数据时,在第n个连续的带有相同标签前缀的待压缩数据的标签下标或数值之后、不同标签前缀之前,***第三预设符号。
在本实施例中,为了进一步地提高数据压缩的效率,以及节省存储空间,当检测到待压缩的数据中存在连续的带有相同标签前缀的待压缩数据时,可以将连续的多个待压缩数据中相同的标签前缀放在第二预设符号的左边,将多个待压缩数据中不同的标签下标和/或数值依次放在第二预设符号的右边,以提高压缩率。
首先,同样对待压缩数据进行标签前缀、标签下标和数值的划分,并按照预设算法分别进行标签下标和数值的压缩。进一步地,对待压缩数据的标签前缀进行检测,判断待压缩数据中是否存在标签前缀连续相同的情况。如果存在标签前缀连续相同的情况,则将这连续相同的标签前缀所对应的待压缩数据压缩后的形式进行调整。具体地,在压缩后的数据中,连续相同的标签前缀只保留一个,压缩后的标签下标和数值仍按照第一实施例中的方式进行排列,并在连续相同的标签前缀和压缩后的标签下标和/或数值之间***第二预设符号进行区分。
进一步地,当连续相同的标签前缀后出现不同的标签前缀时,在最后一个连续相同的标签前缀对应的待压缩数据的数值或标签下标之后、不同的标签前缀之前,***第三预设符号,以表明第三预设符号前后的待压缩数据的标签前缀不同。
例如,若待压缩数据为pa1001:12,pa1002:35,pa1003:63,三个待压缩数据均带有相同的标签前缀pa,因此,基于预设算法对待压缩数据进行压缩后的形式为:pa=g9:c,pa=ga:z,pa=gb:Z。为了进一步地减少数据存储空间,提高数据压缩率,将相同的标签前缀pa的数量简化为一个,放在第二预设符号“=”的左边,三个待压缩数据中不同的标签下标以及数值分别进行压缩后,按照顺序依次放在第二预设符号“=”的右边,即压缩为:pa=g9:c,ga:z,gb:Z。
进一步地,当在连续的带有相同标签前缀的待压缩数据后出现了带有不同标签前缀的数据时,在压缩后的数据中出现不同标签前缀的位置之前,使用第三预设符号“#”进行区分,第三预设符号还可以是其他形式,比如“/”、“;”等,在本实施例中,对第三预设符号的形式并不作限制,当然,第一预设符号、第二预设符号与第三预设符号三者不同。例如,待压缩数据为pa1001:12,pa1002:35,pa1003:63,pb1004:23,则压缩后的数据为pa=g9:c,ga:z,gb:Z#pb=gc:n。
具体地,以待压缩数据为带数值型数据为例,举例说明本实施例中的压缩过程。例如,待压缩数据为pa1001:12,pa1002:35,pa1003:63,pb1004:23,pb1005:26,pb1006:27,pb1007:13,上述待压缩数据中包括了7个数据,通过对各个待压缩数据的标签下标和数值部分采用62进制方法进行压缩,以及简化连续相同的标签前缀的个数,并在标签前缀和标签下标之间***第二预设符号“=”,得到压缩后的数据为pa=g9:c,ga:z,gb:Z#pb=gc:n,gd:q,ge:r,gf:d。压缩前的数据有69个字节,而压缩后的数据为40个字节,因此,压缩率达到了58%。如果连续的带有相同标签前缀的待压缩数据越多,则压缩率会更高。
而对于不带数值型数据而言,假设压缩前的数据为pa1001,pa1002,pa1003,pb1004,pb1005,pb1006,pb1007,同样地,上述待压缩数据中包括7个数据。采用62进制压缩方法进行压缩后的数据为pa=g9,ga,gb#pb=gc,gd,ge,gf。压缩前的数据有48个字节,而压缩后只有26个字节,压缩率达到了54%。同样地,如果连续的带有相同标签前缀的待压缩数据越多,则压缩率会更高。
在本实施例中,如果待压缩数据中存在连续的带有相同标签前缀的待压缩数据,则在压缩后对相同的标签前缀的数量进行简化,将相同的标签前缀放在第二预设符号的左边,将相同的标签前缀对应的不同的标签下标和/或数值按照顺序依次放在第二预设符号的右边,提高数据的压缩率。
参照图3,图3为本申请数据压缩装置一实施例的功能模块示意图。
在本实施例中,数据压缩装置包括:
分类模块10,用于获取待压缩数据,并对所述待压缩数据进行分类,其中,所述待压缩数据包括带数值型数据和不带数值型数据;
划分模块20,用于对所述分类后的待压缩数据进行识别,确定所述带数值型数据的标签和数值,以及确定所述不带数值型数据的标签,其中,所述标签包括标签前缀和标签下标,标签前缀为字母,标签下标和数值为数字;
压缩模块30,用于基于预设算法对所述带数值型数据的标签下标和数值进行压缩,以及对所述不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值;
查询模块40,用于对所述待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据;
***模块50,用于若不存在连续的带有相同标签前缀的待压缩数据,则在所述标签前缀和所述压缩后的标签下标之间***第二预设符号;
输出模块60,用于基于所述标签前缀、所述第二预设符号、所述压缩后的标签下标,或所述标签前缀、所述第二预设符号、所述压缩后的标签下标、所述压缩后的数值,得到压缩后的数据,并输出所述压缩后的数据。
进一步地,参照图4,所述分类模块10包括:
查询单元101,用于获取待压缩数据,并在所述待压缩数据中进行查询,判断所述待压缩数据中是否包含第一预设符号;
确定单元102,用于将包含第一预设符号的待压缩数据确定为带数值型数据,将不包含所述第一预设符号的待压缩数据确定为不带数值型数据。
进一步地,参照图5,所述数据压缩装置还包括:
简化模块70,用于若存在n个连续的带有相同标签前缀的待压缩数据,则将压缩后的数据中所述相同标签前缀的数量简化为1个,其中,n≥2;
简化***模块80,用于在所述相同标签前缀和所述压缩后的标签下标之间***第二预设符号;
排列模块90,用于将所述相同标签前缀放在第二预设符号的左边,并将所述相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边。
进一步地,参照图6,所述数据压缩装置还包括:
连接模块100,用于当所述n个连续的带有相同标签前缀的待压缩数据后出现不同标签前缀的待压缩数据时,在第n个连续的带有相同标签前缀的待压缩数据的标签下标或数值之后、所述不同标签前缀之前,***第三预设符号。
本申请数据压缩装置的具体实施例与上述数据压缩方法的各个实施例基本相同,在此不做赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储数据压缩程序,所述数据压缩程序被处理器执行时实现如上述的数据压缩方法的步骤。
本申请计算机可读存储介质的具体实施例与上述数据压缩方法的各个实施例基本相同,在此不做赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据压缩方法,其特征在于,所述数据压缩方法包括以下步骤:
获取待压缩数据,并对所述待压缩数据进行分类,其中,所述待压缩数据包括带数值型数据和不带数值型数据;
对所述分类后的待压缩数据进行识别,确定所述带数值型数据的标签和数值,以及确定所述不带数值型数据的标签,其中,所述标签包括标签前缀和标签下标,标签前缀为字母,标签下标和数值为数字;
基于预设算法对所述带数值型数据的标签下标和数值进行压缩,以及对所述不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值;
对所述待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据;
若不存在连续的带有相同标签前缀的待压缩数据,则在所述标签前缀和所述压缩后的标签下标之间***第二预设符号;
基于所述标签前缀、所述第二预设符号、所述压缩后的标签下标,或所述标签前缀、所述第二预设符号、所述压缩后的标签下标、所述压缩后的数值,得到压缩后的数据,并输出所述压缩后的数据。
2.如权利要求1所述的数据压缩方法,其特征在于,所述获取待压缩数据,并对所述待压缩数据进行分类包括:
获取待压缩数据,并在所述待压缩数据中进行查询,判断所述待压缩数据中是否包含第一预设符号;
将包含第一预设符号的待压缩数据确定为带数值型数据,将不包含所述第一预设符号的待压缩数据确定为不带数值型数据;
其中,所述若不存在连续的带有相同标签前缀的待压缩数据,则在所述标签前缀和所述压缩后的标签下标之间***第二预设符号之后,包括:
基于所述标签前缀、所述第二预设符号、所述压缩后的标签下标、所述第一预设符号和所述压缩后的数值,得到压缩后的数据,并输出所述压缩后的数据。
3.如权利要求1所述的数据压缩方法,其特征在于,所述对所述待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据之后,还包括:
若存在n个连续的带有相同标签前缀的待压缩数据,则将压缩后的数据中所述相同标签前缀的数量简化为1个,其中,n≥2;
在所述相同标签前缀和所述压缩后的标签下标之间***第二预设符号;
将所述相同标签前缀放在第二预设符号的左边,并将所述相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边。
4.如权利要求3所述的数据压缩方法,其特征在于,所述将所述相同标签前缀放在第二预设符号的左边,并将所述相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边之后,还包括:
当所述n个连续的带有相同标签前缀的待压缩数据后出现不同标签前缀的待压缩数据时,在第n个连续的带有相同标签前缀的待压缩数据的标签下标或数值之后、所述不同标签前缀之前,***第三预设符号。
5.一种数据压缩装置,其特征在于,所述数据压缩装置包括:
分类模块,用于获取待压缩数据,并对所述待压缩数据进行分类,其中,所述待压缩数据包括带数值型数据和不带数值型数据;
划分模块,用于对所述分类后的待压缩数据进行识别,确定所述带数值型数据的标签和数值,以及确定所述不带数值型数据的标签,其中,所述标签包括标签前缀和标签下标,标签前缀为字母,标签下标和数值为数字;
压缩模块,用于基于预设算法对所述带数值型数据的标签下标和数值进行压缩,以及对所述不带数值型数据的标签下标进行压缩,得到压缩后的标签下标和压缩后的数值;
查询模块,用于对所述待压缩数据的标签前缀进行查询,判断是否存在连续的带有相同标签前缀的待压缩数据;
***模块,用于若不存在连续的带有相同标签前缀的待压缩数据,则在所述标签前缀和所述压缩后的标签下标之间***第二预设符号;
输出模块,用于基于所述标签前缀、所述第二预设符号、所述压缩后的标签下标,或所述标签前缀、所述第二预设符号、所述压缩后的标签下标、所述压缩后的数值,得到压缩后的数据,并输出所述压缩后的数据。
6.如权利要求5所述的数据压缩装置,其特征在于,所述分类模块包括:
查询单元,用于获取待压缩数据,并在所述待压缩数据中进行查询,判断所述待压缩数据中是否包含第一预设符号;
确定单元,用于将包含第一预设符号的待压缩数据确定为带数值型数据,将不包含所述第一预设符号的待压缩数据确定为不带数值型数据。
7.如权利要求5所述的数据压缩装置,其特征在于,所述数据压缩装置还包括:
简化模块,用于若存在n个连续的带有相同标签前缀的待压缩数据,则将压缩后的数据中所述相同标签前缀的数量简化为1个,其中,n≥2;
简化***模块,用于在所述相同标签前缀和所述压缩后的标签下标之间***第二预设符号;
排列模块,用于将所述相同标签前缀放在第二预设符号的左边,并将所述相同标签前缀对应的不同标签下标和数值,按照顺序依次放在第二预设符号的右边。
8.如权利要求7所述的数据压缩装置,其特征在于,所述数据压缩装置还包括:
连接模块,用于当所述n个连续的带有相同标签前缀的待压缩数据后出现不同标签前缀的待压缩数据时,在第n个连续的带有相同标签前缀的待压缩数据的标签下标或数值之后、所述不同标签前缀之前,***第三预设符号。
9.一种数据压缩设备,其特征在于,所述数据压缩设备包括输入输出单元、存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述的数据压缩方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据压缩程序,所述数据压缩程序被处理器执行时实现如权利要求1至4中任一项所述的数据压缩方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910871503.9A CN110808738B (zh) | 2019-09-16 | 2019-09-16 | 数据压缩方法、装置、设备及计算机可读存储介质 |
PCT/CN2019/117104 WO2021051532A1 (zh) | 2019-09-16 | 2019-11-11 | 数据压缩方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910871503.9A CN110808738B (zh) | 2019-09-16 | 2019-09-16 | 数据压缩方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110808738A CN110808738A (zh) | 2020-02-18 |
CN110808738B true CN110808738B (zh) | 2023-10-20 |
Family
ID=69487560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910871503.9A Active CN110808738B (zh) | 2019-09-16 | 2019-09-16 | 数据压缩方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110808738B (zh) |
WO (1) | WO2021051532A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510154B (zh) * | 2020-04-17 | 2023-07-21 | 环荣电子(惠州)有限公司 | 坐标数据压缩方法 |
CN114866487B (zh) * | 2022-03-08 | 2024-03-05 | 国网江苏省电力有限公司南京供电分公司 | 一种海量电网调度数据采集与存储*** |
CN115422142B (zh) * | 2022-08-22 | 2024-07-09 | 北京羽乐创新科技有限公司 | 数据压缩方法及装置 |
CN117579079B (zh) * | 2024-01-15 | 2024-03-29 | 每日互动股份有限公司 | 一种数据压缩的处理方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5684478A (en) * | 1994-12-06 | 1997-11-04 | Cennoid Technologies, Inc. | Method and apparatus for adaptive data compression |
CN1786939A (zh) * | 2005-11-10 | 2006-06-14 | 浙江中控技术有限公司 | 实时数据压缩方法 |
JP2008192031A (ja) * | 2007-02-07 | 2008-08-21 | Nec Corp | 圧縮方法、圧縮装置、圧縮データ復元方法、圧縮データ復元装置、可視化方法および可視化装置 |
US7444347B1 (en) * | 2007-11-16 | 2008-10-28 | International Business Machines Corporation | Systems, methods and computer products for compression of hierarchical identifiers |
WO2009001174A1 (en) * | 2007-06-28 | 2008-12-31 | Smartimage Solutions, Sia | System and method for data compression and storage allowing fast retrieval |
CN108880556A (zh) * | 2018-05-30 | 2018-11-23 | 中国人民解放军战略支援部队信息工程大学 | 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器 |
CN109903350A (zh) * | 2017-12-07 | 2019-06-18 | 上海寒武纪信息科技有限公司 | 图像压缩方法及相关装置 |
CN110019184A (zh) * | 2017-09-04 | 2019-07-16 | 北京字节跳动网络技术有限公司 | 一种压缩和解压缩有序整数数组的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7688233B2 (en) * | 2008-02-07 | 2010-03-30 | Red Hat, Inc. | Compression for deflate algorithm |
US10169362B2 (en) * | 2016-07-07 | 2019-01-01 | Cross Commerce Media, Inc. | High-density compression method and computing system |
JP7003443B2 (ja) * | 2017-05-16 | 2022-01-20 | 富士通株式会社 | 符号化プログラム、符号化装置および符号化方法 |
CN107592116B (zh) * | 2017-09-21 | 2019-06-11 | 咪咕文化科技有限公司 | 一种数据压缩方法、装置及存储介质 |
US10735025B2 (en) * | 2018-03-02 | 2020-08-04 | Microsoft Technology Licensing, Llc | Use of data prefixes to increase compression ratios |
CN108737976B (zh) * | 2018-05-22 | 2021-05-04 | 南京大学 | 一种基于北斗短报文的压缩传输方法 |
-
2019
- 2019-09-16 CN CN201910871503.9A patent/CN110808738B/zh active Active
- 2019-11-11 WO PCT/CN2019/117104 patent/WO2021051532A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5684478A (en) * | 1994-12-06 | 1997-11-04 | Cennoid Technologies, Inc. | Method and apparatus for adaptive data compression |
CN1786939A (zh) * | 2005-11-10 | 2006-06-14 | 浙江中控技术有限公司 | 实时数据压缩方法 |
JP2008192031A (ja) * | 2007-02-07 | 2008-08-21 | Nec Corp | 圧縮方法、圧縮装置、圧縮データ復元方法、圧縮データ復元装置、可視化方法および可視化装置 |
WO2009001174A1 (en) * | 2007-06-28 | 2008-12-31 | Smartimage Solutions, Sia | System and method for data compression and storage allowing fast retrieval |
US7444347B1 (en) * | 2007-11-16 | 2008-10-28 | International Business Machines Corporation | Systems, methods and computer products for compression of hierarchical identifiers |
CN110019184A (zh) * | 2017-09-04 | 2019-07-16 | 北京字节跳动网络技术有限公司 | 一种压缩和解压缩有序整数数组的方法 |
CN109903350A (zh) * | 2017-12-07 | 2019-06-18 | 上海寒武纪信息科技有限公司 | 图像压缩方法及相关装置 |
CN108880556A (zh) * | 2018-05-30 | 2018-11-23 | 中国人民解放军战略支援部队信息工程大学 | 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器 |
Also Published As
Publication number | Publication date |
---|---|
CN110808738A (zh) | 2020-02-18 |
WO2021051532A1 (zh) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110808738B (zh) | 数据压缩方法、装置、设备及计算机可读存储介质 | |
CN108197686B (zh) | 物品条形码解析方法、装置及计算机可读存储介质 | |
CN104899204B (zh) | 数据存储方法及装置 | |
CN112116436B (zh) | 一种智能推荐方法、装置、计算机设备及可读存储介质 | |
CN115567589B (zh) | Json数据的压缩传输方法、装置、设备及存储介质 | |
CN1256605A (zh) | 用于移动通信终端的短消息发送设备和方法 | |
CN110995273A (zh) | 电力数据库的数据压缩方法、装置、设备及介质 | |
CN107704520B (zh) | 基于人脸识别的多文件检索方法和装置 | |
CN108880559B (zh) | 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备 | |
CN110874526B (zh) | 一种文件相似性检测方法、装置、电子设备及存储介质 | |
CN101465905A (zh) | 邮件地址搜寻***及方法 | |
CN114547030B (zh) | 多级时序数据压缩方法、装置、电子设备及存储介质 | |
CN112559451A (zh) | 一种数据查询方法、装置及其可读存储介质 | |
CN111143312A (zh) | 一种电力日志的格式解析方法、装置、设备和存储介质 | |
CN111191087A (zh) | 字符匹配方法、终端设备及计算机可读存储介质 | |
CN112054805B (zh) | 一种模型数据压缩方法、***及相关设备 | |
CN106209605B (zh) | 一种网络信息中附件的处理方法和设备 | |
CN112260699B (zh) | 属性通讯编解码方法、编码装置、解码装置及*** | |
CN110287147B (zh) | 一种字符串排序方法及装置 | |
CN111538914B (zh) | 地址信息的处理方法和装置 | |
CN113779932A (zh) | 数字格式化方法、装置、终端设备及存储介质 | |
CN112181869A (zh) | 信息存储方法、装置、服务器及介质 | |
CN111538730A (zh) | 一种基于哈希桶算法的数据统计的方法及其*** | |
CN117194355B (zh) | 基于数据库的数据处理方法、装置和电子设备 | |
CN114339251B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |