CN117560013A - 数据压缩方法和电子设备 - Google Patents
数据压缩方法和电子设备 Download PDFInfo
- Publication number
- CN117560013A CN117560013A CN202210929287.0A CN202210929287A CN117560013A CN 117560013 A CN117560013 A CN 117560013A CN 202210929287 A CN202210929287 A CN 202210929287A CN 117560013 A CN117560013 A CN 117560013A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- operator
- operators
- target
- 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
- 238000013144 data compression Methods 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 145
- 238000007906 compression Methods 0.000 claims description 583
- 230000006835 compression Effects 0.000 claims description 580
- 238000012549 training Methods 0.000 claims description 135
- 238000013507 mapping Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 37
- 230000015654 memory Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 12
- 238000000605 extraction Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种数据压缩方法和电子设备,涉及数据压缩技术领域。其中,数据压缩方法包括:确定待压缩数据的第一数据特征;第一数据特征中可以包括待压缩数据的一个或多个数据特征;根据第一数据特征生成数据压缩算法,并采用生成的数据压缩算法对待压缩数据进行压缩。该方法无需遍历多种数据压缩算法,可以快速实现数据压缩,提高数据压缩的执行效率。
Description
技术领域
本申请涉及数据压缩技术领域,尤其涉及一种数据压缩方法和电子设备。
背景技术
为了使用有限的存储空间存储数量日益增长的数据,可以采用数据压缩算法对原始数据进行压缩,以缩减原始数据占用的存储空间。
目前,电子设备可以内置多种数据压缩算法,在对数据进行压缩时,通过轮询的方式遍历多种数据压缩算法,从多种数据压缩算法中选择一种最优的数据压缩算法来压缩数据。然而,如果内置的数据压缩算法较多,通过轮询的方式依次尝试每种数据压缩算法,耗费的时间非常长,数据压缩的执行效率过于低下;如果内置的数据压缩算法较少,又无法保证对每种数据都具有较高的压缩率,导致压缩后的数据可能仍需要占用很大的存储空间。
因此,如何同时提高数据压缩的执行效率和数据的压缩率,是一个亟待解决的问题。
发明内容
本申请实施例提供一种数据压缩方法和电子设备,可以提高数据压缩的执行效率,并提供数据的压缩率。
第一方面,本申请实施例提供一种数据压缩方法,由电子设备执行,该方法可以包括:确定待压缩数据的第一数据特征;其中,第一数据特征中可以包括待压缩数据的一个或多个数据特征;根据第一数据特征生成数据压缩算法,并采用生成的数据压缩算法对待压缩数据进行压缩。
本申请实施例提供的数据压缩方法,根据待压缩数据的数据特征生成数据压缩算法,用来对待压缩数据进行压缩。该方法无需遍历多种数据压缩算法,可以快速实现数据压缩,提高数据压缩的执行效率。
在一种可能的实现方式中,在生成数据压缩算法时,可以根据第一数据特征对应的目标压缩算子生成数据压缩算法。根据待压缩数据的数据特征对应的目标压缩算子生成的数据压缩算法,与其他数据压缩算法相比,更有针对性,可以提高待压缩数据的数据压缩率。
在一种可能的实现方式中,电子设备中存储有对应关系信息,对应关系信息中保存有多组数据特征与算子集信息之间的对应关系。根据预存的对应关系信息,可以确定第一数据特征对应的目标算子集信息;根据目标算子集信息所指示的目标压缩算子,生成数据压缩算法。根据预存的对应关系信息,可以快速确定待压缩数据的数据特征对应的目标压缩算子,进一步节省数据压缩所用的时间。
在一种可能的实现方式中,目标算子集信息包括至少一个目标压缩算子的标识,以及至少一个目标压缩算子中每个目标压缩算子的权重值;在生成数据压缩算法时,可以根据所述至少一个目标压缩算子的标识,获取目标压缩算子,根据每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到数据压缩算法。
示例性地,电子设备中存储有压缩算子库,压缩算子库中包括多种压缩算子。针对目标算子集信息中包含的一个或多个目标压缩算子的标识,从压缩算子库中查找到一个或多个目标压缩算子,根据每个目标压缩算子的权重值,将获取的目标压缩算子组合,例如,按照目标压缩算子的权重值由小到大的顺序,依次将每个目标压缩算子进行组合,可以得到数据压缩算法。
上述实施例中,根据每个目标压缩算子的权重值,将目标压缩算子组合,得到的数据压缩算法可以更有效地对待压缩数据进行压缩。
在一种可能的实现方式中,可以通过如下方式,确定数据特征与算子集信息的对应关系信息:提取训练数据的第二数据特征,第二数据特征包括训练数据的一个或多个数据特征;第二数据特征为对应关系信息中包含的任意一个数据特征;分别确定第二数据特征中包含的每个数据特征的关联压缩算子,并获取每个关联压缩算子的初始权重值;分别将每个关联压缩算子的初始权重值,作为每个关联压缩算子的待训练权重值,重复执行如下训练过程:根据每个关联压缩算子的待训练权重值,将多个关联压缩算子组合,得到待检验压缩算法;采用待检验压缩算法对训练数据进行压缩,并确定训练数据的压缩率;若训练数据的压缩率未达到设定的收敛条件,则调整每个关联压缩算子的待训练权重值;直至训练数据的压缩率达到设定的收敛条件,根据当前的每个关联压缩算子的标识和每个关联压缩算子的待训练权重值,生成第二数据特征对应的算子集信息。也就是说,将当前的关联压缩算子作为第二数据特征对应的算子集信息所指示的压缩算子,将当前的关联压缩算子的待训练权重值作为第二数据特征对应的算子集信息所指示的压缩算子的权重值,得到第二数据特征与算子集信息的对应关系。其中,收敛条件可以包括相邻至少两次训练过程得到的压缩率之间的差值满足设定的差值阈值;或者,相邻至少两次训练过程得到的压缩率之间的比值满足设定的比例阈值。
当相邻至少两次训练过程得到的压缩率之间的差值满足设定的差值阈值;或者,相邻至少两次训练过程得到的压缩率之间的比值满足设定的比例阈值时,说明训练数据的压缩率已经达到或接近最高,即使再调整关联压缩算子及其对应的权重值,也无法再提高训练数据的压缩率,因此,可以将基于当前的关联压缩算子和当前各关联压缩算子的权重值,生成算子集信息。
通过上述训练过程,可以得到多组数据特征与算子集信息的对应关系,并保存在特征与算子对应信息中。使用特征与算子对应信息中的一组数据特征对应的算子集信息,对该数据特征关联的待压缩数据进行压缩时,可以保证具有较高的数据压缩率。
在一种可能的实现方式中,在获取训练数据的第二数据特征之后,可以根据保存的数据特征与压缩算子的关联关系,分别确定第二数据特征中的每个数据特征的关联压缩算子;针对第一关联压缩算子,分别获取第一关联压缩算子与第二数据特征中的每个数据特征之间的设定映射权重,得到多个设定映射权重;第一关联压缩算子为关联压缩算子中的任意一个;根据多个设定映射权重,确定第一关联压缩算子的初始权重值。例如,可以将多个设定映射权重之和,作为第一关联压缩算子的初始权重值,或者,可以将多个设定映射权重的平均值,作为第一关联压缩算子的初始权重值。
在另一种可能的实现方式中,在获取训练数据的第二数据特征之后,针对第一数据特征,可以分别获取多个压缩算子与第一数据特征之间的设定映射权重;其中,第一数据特征为第二数据特征中的任意一个数据特征;根据每个压缩算子对应的设定映射权重的大小,从多个压缩算子中选择第一设定数量的压缩算子,作为第一数据特征的关联压缩算子;通过上述过程,可以获取每个数据特征的关联压缩算子。针对第一关联压缩算子,可以根据第一关联压缩算子与第二数据特征中的每个数据特征之间的设定映射权重,确定第一关联压缩算子的初始权重值;其中,第一关联压缩算子为关联压缩算子中的任意一个。例如,可以将第一关联压缩算子与第二数据特征中的每个数据特征之间的设定映射权重之和,作为第一关联压缩算子的初始权重值;或者,可以将第一关联压缩算子与第二数据特征中的每个数据特征之间的设定映射权重的平均值,作为第一关联压缩算子的初始权重值。
在一种可能的实现方式中,在生成待检验压缩算法时,可以根据每个关联压缩算子的待训练权重值的大小,从多个关联压缩算子中选择第二设定数量的关联压缩算子,将第二设定数量的关联压缩算子组合,得到待检验压缩算法。
上述实施例中,从多个关联压缩算子中选择部分关联压缩算子,将选择的部分关联压缩算子进行组合,生成的待检验压缩算法包含更少数量的压缩算子,因此其对数据的压缩过程可以更快完成,不仅可以减少训练过程的时长,提高训练效率,而且可以使训练过程得到的算子集信息中包含较少数量的压缩算子,可以进一步提高数据压缩的执行效率。
在一种可能的实现方式中,在调整每个关联压缩算子的待训练权重值时,可以分别确定每个关联压缩算子对训练数据的压缩率的影响值;根据每个关联压缩算子对训练数据的压缩率的影响值的大小,调整每个关联压缩算子的待训练权重值。
上述实施例中,根据每个关联压缩算子对训练数据的压缩率的影响值的大小,调整每个关联压缩算子的待训练权重值,可以提高对训练数据的压缩率影响较大的关联压缩算子的权重值,降低对训练数据的压缩率影响较小的关联压缩算子的权重值,从而可以筛选出对训练数据的压缩率影响较大的压缩算子,得到最终的算子集信息,使得基于算子集信息生成的数据压缩算法,可以对第二数据特征关联的数据具有较高的压缩率。
第二方面,本申请实施例提供一种数据压缩装置,该装置包括:
特征提取单元,用于确定待压缩数据的第一数据特征;所述第一数据特征中包括待压缩数据的一个或多个数据特征;
数据压缩单元,用于根据第一数据特征生成数据压缩算法,并采用数据压缩算法对待压缩数据进行压缩。
在一种可能的实现方式中,所述数据压缩单元,具体用于:根据第一数据特征对应的目标压缩算子生成数据压缩算法。
在一种可能的实现方式中,数据压缩单元,具体用于:所述数据压缩单元,具体用于:
根据预存的对应关系信息,确定所述第一数据特征对应的目标算子集信息;所述对应关系信息中保存有多组数据特征与算子集信息之间的对应关系;
根据所述目标算子集信息所指示的目标压缩算子生成数据压缩算法。
在一种可能的实现方式中,所述目标算子集信息包括至少一个目标压缩算子的标识,以及所述至少一个目标压缩算子中每个目标压缩算子的权重值;所述数据压缩单元,具体用于:
根据所述至少一个目标压缩算子的标识,获取目标压缩算子;
按照每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到所述数据压缩算法。
在一种可能的实现方式中,所述数据压缩单元,具体用于:
按照目标压缩算子的权重值由小到大的顺序,依次将每个目标压缩算子进行组合,得到所述数据压缩算法。
在一种可能的实现方式中,数据压缩装置还可以包括:
训练单元,用于提取训练数据的第二数据特征;所述第二数据特征包括所述训练数据的一个或多个数据特征;所述第二数据特征为所述对应关系信息中包含的任意一个数据特征;分别确定所述第二数据特征中包含的每个数据特征的关联压缩算子,并获取每个关联压缩算子的初始权重值;分别将每个关联压缩算子的初始权重值,作为每个关联压缩算子的待训练权重值,重复执行如下训练过程:根据每个关联压缩算子的待训练权重值,将多个关联压缩算子组合,得到待检验压缩算法;采用待检验压缩算法对所述训练数据进行压缩,并确定所述训练数据的压缩率;若所述训练数据的压缩率未达到设定的收敛条件,则调整每个关联压缩算子的待训练权重值;直至所述训练数据的压缩率达到设定的收敛条件,根据当前的每个关联压缩算子的标识和每个关联压缩算子的待训练权重值,生成所述第二数据特征对应的算子集信息。
其中,所述收敛条件包括相邻至少两次训练过程得到的压缩率之间的差值满足设定的差值阈值;或者,相邻至少两次训练过程得到的压缩率之间的比值满足设定的比例阈值。
在一种可能的实现方式中,所述训练单元,具体用于:
根据保存的数据特征与压缩算子的关联关系,分别确定所述第二数据特征中的每个数据特征的关联压缩算子;
针对第一关联压缩算子,分别获取所述第一关联压缩算子与所述第二数据特征中的每个数据特征之间的设定映射权重,得到多个设定映射权重;所述第一关联压缩算子为所述关联压缩算子中的任意一个;
根据所述多个设定映射权重,确定所述第一关联压缩算子的初始权重值。
在一种可能的实现方式中,所述训练单元,具体用于:
针对第一数据特征,分别确定多个压缩算子与所述第一数据特征之间的设定映射权重,所述第一数据特征为所述第二数据特征中的任意一个数据特征;
根据每个压缩算子对应的设定映射权重,从所述多个压缩算子中选择第一设定数量的压缩算子,作为所述第一数据特征的关联压缩算子;
针对第一关联压缩算子,根据所述第一关联压缩算子与所述第二数据特征中的每个数据特征之间的设定映射权重,确定所述第一关联压缩算子的初始权重值;所述第一关联压缩算子为所述关联压缩算子中的任意一个。
在一种可能的实现方式中,所述训练单元,具体用于:
根据每个关联压缩算子的待训练权重值,从所述多个关联压缩算子中选择第二设定数量的关联压缩算子,将所述第二设定数量的关联压缩算子组合,得到待检验压缩算法。
在一种可能的实现方式中,所述训练单元,具体用于:
分别确定每个关联压缩算子对所述训练数据的压缩率的影响值;
根据每个关联压缩算子对所述训练数据的压缩率的影响值,调整每个关联压缩算子的待训练权重值。
第三方面,本申请实施例还提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现上述第一方面记载的任一种方法。
第四方面,本申请实施例提供一种芯片,包括处理器和供电电路;供电电路用于为处理器供电,处理器,用于读取计算机可执行指令并执行,使得上述第一方面中任一种可能设计提出的方法被执行。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述第一方面提供的任一种方法。
第六方面,本申请实施例提供一种计算机程序产品,包含有计算机可执行指令,该计算机可执行指令用于使计算机执行上述第一方面提供的任一种方法。
上述第二方面至第六方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。
附图说明
图1为本申请实施例的一种应用场景的示意图;
图2为本申请实施例提供的一种数据压缩方法的流程示意图;
图3为本申请实施例提供的一种数据训练过程的流程示意图;
图4为本申请实施例提供的一种数据压缩装置的结构示意图;
图5为本申请实施例提供的一种使用数据压缩装置进行数据压缩的流程图;
图6为本申请实施例提供的一种另数据压缩装置的结构示意图;
图7为本申请实施例提供的一种使用训练单元训练数据的流程图;
图8为本申请实施例提供的一种电子设备的结构框图;
图9为本申请实施例提供的一种芯片的结构框图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例进行详细描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
在介绍本申请实施例提供的具体方案之前,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解,并不对本申请中的用语进行限定。
(1)压缩算子:压缩算子是数据压缩算法的基本组成单元,不同的压缩算子适用于处理不同数据特征的数据,多个压缩算子可以组合生成数据压缩算法,以对相应场景中的待压缩数据进行压缩,以提高数据的压缩率。
(2)LZ算子:两位研究者Ziv和Lempel提出的一种通用数据压缩算子。
本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
本申请实施例提供的数据压缩方法可以应用于数据存储或数据传输的应用场景中,例如,在对数据进行存储时,采用数据压缩算法对数据进行压缩,可以缩减数据占用的存储空间,提高存储设备或存储介质的空间利用率。在对数据进行传输时,采用数据压缩算法对数据进行压缩,可以减少传输数据所使用的带宽,节省通信资源。
图1示例性地示出了一种数据存储系统的结构示意图。如图1所示,该系统可以包括计算设备101和存储设备102,存储设备102可以独立于计算设备101存在,也可以集成于计算设备101内部。当存储设备102独立于计算设备101存在时,存储设备102可以通过有线或者无线的方式与计算设备101连接进行通信。存储设备102还可以与多个计算设备101连接。计算设备101可以与存储设备102进行数据的交互,例如,读取固态硬盘中的数据、向硬盘写入数据等。
存储设备102可以采用固态硬盘(solid state drive,SSD),存储设备102中可以包括处理器和存储介质,处理器用于将计算设备101传输至存储设备102的数据进行压缩,并将压缩后的数据保存至存储介质中,处理器还可以用于读取存储介质中保存的数据,将数据解压后传输给计算设备101。
处理器可以包括一个或多个处理器,例如,中央处理器(central processingunit,CPU),该一个或多个处理器可以集成在同一块硬件芯片上。存储介质可以是多个存储器,每个存储器又可被称为闪存颗粒。处理器可通过输入输出(input/output,IO)通道实现对存储介质执行命令下发、数据存储、读取、更改、删除等操作。
在一些应用场景中,对数据进行压缩的操作也可以由计算设备101执行,本申请实施例对此不作限制。下文中将执行数据压缩过程的设备统称为电子设备。
对数据的压缩过程主要包括无损压缩和有损压缩。无损压缩后的数据可以完全还原到数据的原始状态。有损压缩为大幅提升数据压缩率,丢失了部分数据精度,压缩后的数据无法完美还原到数据原始状态。通常,为保证数据的完整性,电子设备所采用的数据压缩过程均为无损压缩。
由于需要存储的数据量日益增长,尤其是非结构化数据在需存储的数据中的占比增长,给采用固定的数据压缩算法进行数据压缩的传统方案带来巨大挑战。非结构化数据表现出三个典型特性:第一,非结构化数据的来源多,例如,包括生物信息学中的基因测序、遥感、气象、大数据应用等超过20个场景均会产生或使用非结构化数据;第二,非结构化数据的类型多,常见的有20种以上的数据格式,并且不同场景产生或使用的非结构化数据具有不同的数据格式,例如,基因测试场景主要生成fastq格式、fasta格式、bam格式的非结构化数据,大数据应用场景中使用的非结构化数据的数据格式可以是parquet格式或orc格式等;第三,非结构化数据还表现出数据特征多的特点,例如,文本数据、视频图像数据、二进制数据因为其数据格式差异表现出巨大的数据特征差异,而同一数据格式的数据在不同的场景中,数据特征也不统一。
针对海量的不同格式的非结构化数据,固定的数据压缩算法无法在对每种数据进行压缩时都能够达到较高的压缩率,例如常见的数据压缩算法gzip对文本数据有较高的压缩率,但针对图像、二进制格式的数据的压缩率表现较差。其中,压缩率也可以称为数据缩减率,是根据压缩前和压缩后的数据量确定的。压缩率可以是压缩后与压缩前相比减少的数据量,与压缩前的数据量的比值。例如,将100M的数据进行压缩,压缩后的数据是80M,压缩率为(100-80)/100*100%=20%。由此可见,压缩率越高,对硬盘存储空间、网络带宽等带来的压力越小。
为了提升对非结构化数据的压缩率,一部分电子设备可以内置多种数据压缩算法,在对数据进行压缩时,通过轮询的方式遍历多种数据压缩算法,从多种数据压缩算法中选择一种最优的数据压缩算法来压缩数据。然而,如果内置的数据压缩算法较多,通过轮询的方式依次尝试每种数据压缩算法,耗费的时间非常长,数据压缩的执行效率过于低下;如果内置的数据压缩算法较少,又无法保证对每种数据都具有较高的压缩率,导致压缩后的数据可能仍需要占用很大的存储空间。
基于此,本申请实施例提供一种数据压缩方法,该方法可以由电子设备执行,电子设备中确定待压缩数据的第一数据特征;根据第一数据特征生成数据压缩算法,并采用生成的数据压缩算法对待压缩数据进行压缩。其中,第一数据特征中可以包括待压缩数据的一个或多个数据特征。该方法无需遍历多种数据压缩算法,可以快速地实现数据压缩,提高数据压缩的执行效率。
图2示出了本申请实施例提供的一种数据压缩方法的流程图,如图2所示,该方法可以包括如下步骤:
S201,确定待压缩数据的第一数据特征。
提取待压缩数据的数据特征,待压缩数据可能仅具有一个数据特征,也可能具有多个数据特征,数据特征可以包括但不限于自然语言文本特征、数值特征或多维矩阵特征中的至少一种。
其中,自然语言文本特征:具有自然语言文本特征的数据由段落、句子、单词构成,例如,中文或英文文本等。
数值特征:具有数值特征的数据的一种表现形式是由ASCII码直接表示,通常包括字符“0”~“9”以及小数点“.”等;另一种表现形式是二进制编码的整型或浮点型数,根据数据类型的不同,数据可以表现为1byte、2byte、4byte或8byte对齐,且呈现一致的大端或小端字节序。数值特征可以进一步分为重复数值特征、数值单调性特征等。
多维矩阵特征:包括二维矩阵特征或高维矩阵特征,具有该类特征的数据属于数值数据,数据表现出一致的行列特征,如在行内表现出数据连续性,而在当前行尾和下一行行首表现出跳变。使用该类数据的典型场景可以包括图片场景,以及一些科学测量场景,如气象测量、地震测量等。
上述列举的数据特征,仅是举例说明,实际使用中数据可能具有更多的数据特征,本申请实施例对此不作限定。
示例性地,可以通过对待压缩数据进行数据结构分析,确定待压缩数据的数据特征;或者,通过深度学习神经网络,提取待压缩数据的数据特征。将提取的一个或多个数据特征成第一数据特征,即第一数据特征中包括待压缩数据的一个或多个数据特征。
S202,根据第一数据特征生成数据压缩算法,并采用数据压缩算法对待压缩数据进行压缩。
示例性地,可以确定第一数据特征对应的目标压缩算子,根据目标压缩算子生成数据压缩算法。
在一些实施例中,电子设备中存储有对应关系信息,对应关系信息中保存有多组数据特征与算子集信息之间的对应关系。电子设备可以根据预存的对应关系信息,确定第一数据特征对应的目标算子集信息。对应关系信息中,任意一组对应关系中的算子集信息用于指示对关联数据进行压缩所使用的压缩算子,关联数据指该对应关系中的数据特征关联的数据。例如,待压缩数据是第一数据特征关联的数据。第一数据特征对应的目标算子集信息用于指示对待压缩数据进行压缩所使用的目标压缩算子。
其中,压缩算子可以包括但不限于如下种类压缩算子中的至少一种:LZ算子、delta算子、游程编码(run-length encoding,RLE)算子、图像预测算子、多帧关联算子、熵编码算子等。下面逐一介绍各个压缩算子对数据进行压缩的原理。
LZ算子:在一个滑动窗口内,寻找与当前编码序列重复的片段,进而使用“偏移+长度”表示该重复序列,即当前位置的字符串与历史窗口中的字符串存在重复匹配时,使用“偏移+长度”是元组来表示当前位置的字符串。例如,字符串“AABCBAABC”,用LZ算子作用后表示成“AABCB(5,4)”,其中,“5”表示当前位置的字符串“AABC”与历史窗口中的“AABC”相比,偏移5个字符,“4”表示存在重复匹配的字符串“AABC”的长度为4个字符。
delta算子:对于一个数值序列,从序列的第二个值开始,用当前位置值与前一位置值的差值替代当前位置值,例如,序列“1,2,3,4,5”,用delta算子作用后表示为“1,1,1,1,1”。delta算子通常用于连续递增或递减的数值序列。
RLE算子:使用字符和连续次数替换原始字符串中连续出现的字符,例如,对于字符串“AAABBCCCC”,用RLE算子作用后表示为“A3B2C4”。
图像预测算子:在以图像为代表的二维矩阵数据中,相邻的像素点或矩阵元素通常是平滑变化的,像素间存在较强关联性,可以使用历史像素预测当前像素值。
多帧关联算子:一些场景中存在较短时间内连续拍摄的多张图片,这些图片具有较大的相似性,图片间进行关联可以有效减少数据冗余。
熵编码算子:熵编码通过对数据字母表的每个符号重新赋码,编码成一种紧凑码流。基于数据的信息熵原理,对出现频率高的字符赋予较短码字,出现频率低的元素赋予相对较长的码字,从而降低编码整体数据所需的字长。常用的熵编码算子可以包括哈夫曼(huffman)编码、算术编码等。
上述列举的压缩算子,仅是举例说明,在实际使用中,可能有更多或更少的压缩算子,本申请实施例对此不作限定。
在一些实施例中,目标算子集信息包括至少一个目标压缩算子的标识,以及至少一个目标压缩算子中每个目标压缩算子的权重值。电子设备可以根据至少一个目标压缩算子的标识,获取目标压缩算子;按照每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到数据压缩算法。也可以理解为,对应关系信息中的每个算子集信息可以包括至少一条压缩算子信息,每条压缩算子信息中可以包括压缩算子的算子标识和压缩算子的权重值。电子设备中存储有压缩算子库,压缩算子库中包括多种压缩算子。在生成数据压缩算法时,可以根据目标算子集信息包含的每条压缩算子信息中的算子标识,获取目标压缩算子,根据每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到数据压缩算法。
示例性地,假设目标算子集信息中包含三条压缩算子信息,分别是算子标识002:权重值0.7;算子标识003:权重值0.8;算子标识006:权重值0.9。根据三条压缩算子信息中的算子标识,从电子设备存储的压缩算子库中查找对应的压缩算子,找到算子标识002的压缩算子是delta算子,算子标识003的压缩算子是RLE算子,算子标识006的压缩算子是熵编码算子,由此,可以获取delta算子、RLE算子和熵编码算子共3个目标压缩算子。根据三条压缩算子信息,可以确定delta算子对应的权重值是0.7,RLE算子对应的权重值是0.8,熵编码算子对应的权重值是0.9。
可以按照目标压缩算子的权重值由小到大的顺序,依次将每个目标压缩算子进行组合,得到数据压缩算法。例如,按照权重值由小到大的顺序,依次将delta算子、RLE算子和熵编码算子进行叠加组合,得到数据压缩算法。
在另一些实施例中,目标算子集信息中可以仅包含目标压缩算子的算子标识。如果目标算子集信息中仅包含目标压缩算子的算子标识,可以根据目标算子集信息中包含的目标压缩算子的算子标识,从压缩算子库获取目标压缩算子,将获取的目标压缩算子组合,得到数据压缩算法。在一些实施例中,电子设备中存储的压缩算子库可以保存尽量多的压缩算子,以满足不同数据的压缩需求。
示例性地,假设目标算子集信息中包含三个压缩算子的算子标识,分别是算子标识002,算子标识003和算子标识006。根据三条压缩算子信息中的算子标识,从电子设备存储的压缩算子库中查找对应的压缩算子,可以获取delta算子、RLE算子和熵编码算子共3个目标压缩算子。可以将3个目标压缩算子以任意顺序进行组合,得到数据压缩算法。例如,可以依次将delta算子、RLE算子和熵编码算子进行叠加组合,或者,依次将RLE算子、delta算子和熵编码算子进行叠加组合,或者,依次将RLE算子、熵编码算子和delta算子进行叠加组合,得到数据压缩算法;也可以采用其他顺序将3个目标压缩算子进行组合,在此不再逐一枚举。
采用上述得到的数据压缩算法对待压缩数据进行压缩,得到压缩后数据。例如,采用依次将delta算子、RLE算子和熵编码算子进行叠加组合,得到的数据压缩算法对待压缩数据进行压缩时,可以先采用delta算子对待压缩数据进行压缩,得到第一压缩数据,再采用RLE算子对第一压缩数据进行压缩,得到第二压缩数据,然后采用熵编码算子对第二压缩数据进行压缩,得到压缩后数据。
在压缩后数据中可以记录所使用的数据压缩算法的相关信息,以让解压程序可以正确解压。示例性地,数据压缩算法的相关信息可以包括:数据压缩算法所使用的压缩算子,以及各个压缩算子的组合排列顺序。例如,在上述数据压缩算法的相关信息中,可以记录数据压缩算法所使用的压缩算子的组合排列顺序是delta算子、RLE算子和熵编码算子,则在对压缩后数据进行解压时,可以先采用熵编码算子对压缩后数据进行解压,得到第二压缩数据,再采用RLE算子对第二压缩数据进行解压,得到第一压缩数据,然后采用delta算子对第一压缩数据进行解压,得到原始的待压缩数据。
上述实施例中,采用根据待压缩数据的数据特征生成的数据压缩算法对待压缩数据进行压缩,与其他数据压缩算法相比,更有针对性,因此,可以大幅度提升待压缩数据的数据压缩率,在存储数据时有利于提高存储设备或存储介质的空间利用率;在对数据进行传输时,有利于减少传输数据所使用的带宽,节省通信资源。
上述实施例中所使用的对应关系信息,可以通过图3所示的训练过程确定,该训练过程可以电子设备在离线状态下进行。如图3所示,该方法可以包括如下步骤:
S301,获取训练数据,提取训练数据的至少一个数据特征,并将训练数据的至少一个数据特征组成第二数据特征。
在获取训练数据之前,可以在电子设备中内置多种压缩算子,多种压缩算子是在生产过程中对数据进行在线压缩时可能会使用的压缩算子,不同的压缩算子适用于处理不同特征的数据。
由于不同的压缩算子作用在不同特征的数据上,得到的压缩效果差异很大。因此,本申请实施例中通过针对不同数据特征选择合适的压缩算子,将选择的压缩算子组合成数据压缩算法,来满足不同场景中的数据压缩需求。其中,数据特征可以包括上述的自然语言文本特征、数值特征或多维矩阵特征中的一种或多种。
示例性地,电子设备中存储的压缩算子可以包括如下种类压缩算子中的至少一种:LZ算子、delta算子、游程编码(run-length encoding,RLE)算子、图像预测算子、多帧关联算子、熵编码算子等。
在确定数据特征与算子集信息之间的对应关系时,获取训练数据,并提取训练数据的数据特征,其中,训练数据可以具有一个或多个数据特征。示例性地,数据特征可以包括自然语言文本特征、数值特征、多维矩阵特征等。
在一些实施例中,可以通过对训练数据进行数据结构分析,确定训练数据所具有的数据特征。在另一些实施例中,通过深度学习神经网络,提取训练数据的数据特征。
将提取的训练数据的数据特征组成第二数据特征。其中,第二数据特征可以是上述对应关系信息中的任意一个数据特征。
S302,分别确定第二数据特征中的每个数据特征的关联压缩算子,并获取每个关联压缩算子的初始权重值。
不同的压缩算子适用于处理不同特征的数据。在一些实施例中,可以预先保存数据特征与压缩算子的关联关系。例如,与自然语言文本特征具有关联关系的压缩算子可以包括LZ算子、RLE算子、熵编码算子;与数值特征具有关联关系的压缩算子可以包括LZ算子、delta算子、RLE算子、熵编码算子;与多维矩阵特征具有关联关系的压缩算子可以包括图像预测算子、多帧关联算子、LZ算子、delta算子、熵编码算子。
可以根据保存的不同类型的数据特征与压缩算子的关联关系,分别确定第二数据特征中的每个数据特征的关联压缩算子,针对任意一个关联压缩算子,分别获取该关联压缩算子与第二数据特征中的每个数据特征之间的设定映射权重,得到多个设定映射权重,根据得到的多个设定映射权重,确定该关联压缩算子的初始权重值,示例性地,可以将多个设定映射权重之和,作为该关联压缩算子的初始权重值,或者,可以将多个设定映射权重的平均值,作为该关联压缩算子的初始权重值。
其中,关联压缩算子与数据特征之间的映射权重可以是预先设定的默认值,不同的关联压缩算子与数据特征之间的设定映射权重可以不同,也可以所有的关联压缩算子与数据特征之间的设定映射权重均采用相同的值。
例如,假设第二数据特征包括两个数据特征,分别是自然语言文本特征和数值特征,以关联压缩算子RLE算子为例进行说明,RLE算子既是自然语言文本特征的关联压缩算子,又是数值特征的关联压缩算子,可以将RLE算子与自然语言文本特征的映射权重Q1,以及RLE算子与数值特征的映射权重Q2之和,作为RLE算子的初始权重值,也可以将映射权重Q1和映射权重Q2的平均值,作为RLE算子的初始权重值。
在另一些实施例中,针对第二数据特征中的任意一个数据特征,可以分别获取电子设备中存储的多个压缩算子与该数据特征之间的映射权重,根据每个压缩算子对应的映射权重的大小,从多个压缩算子中选择第一设定数量的压缩算子,作为该数据特征的关联压缩算子。其中,第一设定数量为预先设定的数值。
例如,假设电子设备中存储有10个压缩算子,针对任意一个数据特征,预先保存有每个压缩算子与该数据特征之间的映射权重,其中,每个压缩算子对应的映射权重可以是根据每个压缩算子在压缩该数据特征的数据时的压缩效果确定的。假设第一设定数量为4,第二数据特征包括两个数据特征,分别是自然语言文本特征和数值特征。以数值特征为例,按照10个压缩算子与数值特征之间的映射权重由大到小的顺序,将10个压缩算子进行排序,其中前4个压缩算子分别是LZ算子、delta算子、RLE算子、熵编码算子。选择前4个压缩算子,作为数值特征的关联压缩算子,因此,可以确定数值特征的关联压缩算子包括LZ算子、delta算子、RLE算子、熵编码算子4个压缩算子。
通过上述过程,可以确定第二数据特征中的每个数据特征的关联压缩算子,得到多个关联压缩算子。针对任意一个关联压缩算子,可以根据该关联压缩算子与第二数据特征中的每个数据特征之间的映射权重,确定该关联压缩算子的初始权重值。例如,可以将该关联压缩算子与第二数据特征中的每个数据特征之间的映射权重之和,作为该关联压缩算子的初始权重值;或者,可以将该关联压缩算子与第二数据特征中的每个数据特征之间的映射权重的平均值,作为该关联压缩算子的初始权重值。
S303,分别将每个关联压缩算子的初始权重值,作为每个关联压缩算子的待训练权重值。
由于基于每个关联压缩算子的初始权重值,将多个关联压缩算子组合,得到的数据压缩算法,对训练数据的压缩效果并不一定是最好的,因此,可以将每个关联压缩算子的初始权重值,作为待训练权重值,通过下述训练过程进行调整。
S304,根据每个关联压缩算子的待训练权重值,将多个关联压缩算子组合,得到待检验压缩算法。
在一些实施例中,在生成待检验压缩算法时,可以根据每个关联压缩算子的待训练权重值,将全部的关联压缩算子进行组合,得到待检验压缩算法。例如,可以按照关联压缩算子的待训练权重值由小到大的顺序,依次将各个关联压缩算子进行叠加组合,得到待检验压缩算法。
在另一些实施例中,在生成待检验压缩算法时,可以根据每个关联压缩算子的待训练权重值的大小,从多个关联压缩算子中选择第二设定数量的关联压缩算子,将第二设定数量的关联压缩算子组合,得到待检验压缩算法。其中,第二设定数量是预先设定的数值。例如,假设步骤S302中确定的第二数据特征的关联压缩算子共有15个,第二设定数量为6,按照每个关联压缩算子的待训练权重值从大到小的顺序,对15个关联压缩算子进行排序,选择前6个关联压缩算子,按照从第6个关联压缩算子至第1个关联压缩算子,依次将选择的6个关联压缩算子进行叠加组合,得到待检验压缩算法。
从多个关联压缩算子中选择部分关联压缩算子,将选择的部分关联压缩算子进行组合,生成的待检验压缩算法包含更少数量的压缩算子,因此其对数据的压缩过程可以更快完成,不仅可以减少训练过程的时长,提高训练效率,而且可以使训练过程得到的算子集信息中包含较少数量的压缩算子,可以进一步提高数据压缩的执行效率。
S305,采用待检验压缩算法对训练数据进行压缩,并确定训练数据的压缩率。
假设待检验压缩算法包括6个关联压缩算子,按照关联压缩算子的叠加顺序,依次采用6个关联压缩算子对训练数据进行压缩,得到压缩后的训练数据。确定训练数据压缩前的数据量与压缩后的数据量的差值,将得到的差值与训练数据压缩前的数据量的比值,作为本轮训练得到的压缩率。
S306,确定训练数据的压缩率是否达到设定的收敛条件;如果是,则执行步骤S308;如果否,则执行步骤S307。
其中,收敛条件可以包括相邻至少两次训练过程得到的压缩率之间的差值满足设定的差值阈值;或者,相邻至少两次训练过程得到的压缩率之间的比值满足设定的比例阈值。
在一些实施例中,可以将本轮训练得到的压缩率与上一轮训练得到的压缩率进行比较,确定二者的差值,如果二者的差值的绝对值小于或等于设定的差值阈值,则确定训练数据的压缩率达到设定的收敛条件,其中,设定的差值阈值可以是接近于0的数值。
在另一些实施例中,可以将本轮训练得到的压缩率与上一轮训练得到的压缩率进行比较,确定二者的比值,如果二者的比值在设定的比例阈值范围内,则确定训练数据的压缩率达到设定的收敛条件,其中,设定的比例阈值范围包括设定的最小阈值和最大阈值,最小阈值小于1,最大阈值大于1,且最小阈值和最大阈值均是接近于1的数值。
S307,调整每个关联压缩算子的待训练权重值。
在一些实施例中,可以分别确定每个关联压缩算子对训练数据的压缩率的影响值;根据每个关联压缩算子对训练数据的压缩率的影响值的大小,调整每个关联压缩算子的待训练权重值。
示例性地,对训练数据进行压缩的过程,是采用待检验压缩算法中的每个关联压缩算子依次对训练数据进行压缩,即先采用第一个关联压缩算子对训练数据进行压缩,得到第一级压缩数据,再采用第二个关联压缩算子对第一级压缩数据进行压缩,得到第二级压缩数据,然后采用第三个关联压缩算子对第二级压缩数据进行压缩,得到第三级压缩数据,以此类推。在每个关联压缩算子完成压缩之后,均可以记录当前压缩数据的数据量。针对任意一个关联压缩算子,可以根据该每个关联压缩算子对数据进行压缩前后的数据量,确定该关联压缩算子对训练数据的压缩率的影响值,该影响值也可以称为对压缩率的贡献值。例如,对于第三个关联压缩算子,可以根据第二级压缩数据的数据量和第三级压缩数据的数据量的差值,与第二级压缩数据的数据量的比值,确定第三个关联压缩算子对训练数据的压缩率的影响值。
通过上述过程,可以确定待检验压缩算法中的每个关联压缩算子对训练数据的压缩率的影响值。根据每个关联压缩算子对训练数据的压缩率的影响值的大小,调整每个关联压缩算子的待训练权重值。示例性地,可以调高对压缩率的影响值较大的关联压缩算子的待训练权重值,调低对压缩率的影响值较小的关联压缩算子的待训练权重值;或者,可以按照设定变化幅度调高对压缩率的影响值最大的关联压缩算子的待训练权重值,按照设定变化幅度调低对压缩率的影响值最小的关联压缩算子的待训练权重值。
通过调整每个关联压缩算子的待训练权重值,可以提高对训练数据的压缩率影响较大的关联压缩算子的权重值,降低对训练数据的压缩率影响较小的关联压缩算子的权重值,从而可以筛选出对训练数据的压缩率影响较大的压缩算子,得到最终的算子集信息,使得基于算子集信息生成的数据压缩算法,可以对第二数据特征关联的数据具有较高的压缩率。
在一些实施例中,调整待检验压缩算法中的关联压缩算子的待训练权重值之后,再返回步骤S304执行时,可能会影响第二数据特征的关联压缩算子的排序顺序,例如,假设第二数据特征的关联压缩算子共有15个,待检验压缩算法内包括该15个关联压缩算子中的6个关联压缩算子。调低某个关联压缩算子的待训练权重值之后,按照待训练权重值再次进行排序时,该关联压缩算子可能会由于待训练权重值减小,而不再排列在前6个内,此时,再生成待检验压缩算法时,所使用的排序在前的6个关联压缩算子,与上一轮所使用的关联压缩算子相比,就可能会发生变化。通过该变化过程,可以筛选出更适合第二数据特征的关联压缩算子的组合。
S308,根据当前的关联压缩算子的算子标识和待训练权重值,生成第二数据特征对应的算子集信息。
在一些实施例中,针对当前的关联压缩算子中的每个关联压缩算子,可以根据该关联压缩算子的算子标识以及该关联压缩算子当前的待训练权重值,生成一条压缩算子信息;或者说,可以将该关联压缩算子当前的待训练权重值作为该关联压缩算子的权重值,与该关联压缩算子的算子标识,共同生成一条压缩算子信息。例如,假设一个关联压缩算子的算子标识为001,达到收敛条件时,该关联压缩算子当前的待训练权重值为0.8,则针对该关联压缩算子生成的压缩算子信息可以是算子标识001:权重值0.8,表示算子标识为001的压缩算子对应的权重值是0.8。
每个关联压缩算子均可以对应生成一条压缩算子信息,一条或多条压缩算子信息组成第二数据特征的算子集信息。例如,如果当前的关联压缩算子中仅包含一个关联压缩算子,则第二数据特征的算子集信息仅包含一条压缩算子信息;如果当前的关联压缩算子中包含多个关联压缩算子,则第二数据特征的算子集信息中包含多条压缩算子信息。通过上述方法,可以将当前的关联压缩算子作为第二数据特征对应的算子集信息所指示的压缩算子,将当前的关联压缩算子的待训练权重值作为第二数据特征对应的算子集信息所指示的压缩算子的权重值,得到第二数据特征与算子集信息的对应关系。
在另一些实施例中,第二数据特征对应的算子集信息中也可以仅包含关联压缩算子的算子标识。示例性地,可以根据当前的关联压缩算子中的每个关联压缩算子的算子标识,生成第二数据特征对应的算子集信息。
采用不同场景生成的多种训练数据或者不同场景使用的多种训练数据,执行图3所示的训练过程,可以得到多组数据特征对应的算子集信息。可以将多组数据特征对应的算子集信息保存在对应关系信息中。
在使用过程中,可以根据对应关系信息,确定待压缩数据的第一数据特征对应的目标压缩算子,采用根据目标压缩算子生成的数据压缩算法对待压缩数据进行压缩,与其他数据压缩算法相比,更有针对性,因此,可以大幅度提升待压缩数据的数据压缩率,在存储数据时有利于提高存储设备或存储介质的空间利用率;在对数据进行传输时,有利于减少传输数据所使用的带宽,节省通信资源。
并且,本申请实施例通过在电子设备中存储多个压缩算子,根据待压缩数据的数据特征确定目标算子集信息,基于目标算子集信息在存储的多个压缩算子中选择目标压缩算子,将目标压缩算子组合,得到数据压缩算法。该方法无需遍历多种数据压缩算法,可以快速实现数据压缩,提高数据压缩的执行效率。
本申请实施例提供的数据压缩方法,可以用于对非结构化数据进行压缩,也可以用于对其他类型的数据进行压缩,例如,可以对结构化数据进行压缩。本申请实施例的电子设备中保存有多组不同的数据特征对应的算子集信息,可以自适应地处理不同场景、不同类型及不同数据特征的海量数据,实现对多种不同数据均具有较高的压缩率。
与上述方法实施例基于相同的发明构思,本申请实施例中还提供一种数据压缩装置。在一些实施例中,如图4所示,该数据压缩装置400可以包括特征提取单元401和数据压缩单元402。数据压缩装置400可以用于实现上述方法实施例的功能,因此可以实现上述方法实施例所具备的有益效果。
其中,特征提取单元401,可以用于确定待压缩数据的第一数据特征;第一数据特征中包括待压缩数据的一个或多个数据特征;数据压缩单元402,可以用于根据第一数据特征生成数据压缩算法,并采用数据压缩算法对待压缩数据进行压缩。
在一些实施例中,数据压缩单元402具体可以用于:根据第一数据特征对应的目标压缩算子生成数据压缩算法。例如,数据压缩单元402可以用于:根据预存的对应关系信息,确定第一数据特征对应的目标算子集信息;所述对应关系信息中保存有数据特征与算子集信息之间的对应关系;根据目标算子集信息所指示的目标压缩算子生成数据压缩算法。
在一些实施例中,如图5所示,数据压缩单元402可以包括算子确定子单元4021和压缩子单元4022。将待压缩数据输入特征提取单元401,特征提取单元401可以对待压缩数据进行特征提取,得到n个数据特征,分别为特征1、特征2……特征n,将n个数据特征组成第一数据特征。将第一数据特征输入算子确定子单元4021,从特征与算子对应信息中,查找第一数据特征对应的目标算子集信息。目标算子集信息中包括至少一个目标压缩算子的算子标识和权重值。算子确定子单元4021将目标算子集信息传输至压缩子单元4022。压缩子单元4022可以根据目标算子集信息包含的每个目标压缩算子的算子标识,获取目标压缩算子,根据每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到数据压缩算法。示例性地,压缩子单元4022可以按照目标压缩算子的权重值由小到大的顺序,依次将每个目标压缩算子进行组合,得到数据压缩算法。采用得到的数据压缩算法对待压缩数据进行压缩,得到压缩数据。
在一些实施例中,如图6所示,数据压缩装置400还可以包括训练单元610。训练单元610可以用于基于训练数据,训练得到上述对应关系信息。训练单元610用于提取训练数据的至少一个数据特征,并将训练数据的至少一个数据特征组成第二数据特征;第二数据特征为所述对应关系信息中的任意一个数据特征;分别确定第二数据特征中的每个数据特征的关联压缩算子,并获取每个关联压缩算子的初始权重值;分别将每个关联压缩算子的初始权重值,作为每个关联压缩算子的待训练权重值,重复执行如下训练过程:根据每个关联压缩算子的待训练权重值,将多个关联压缩算子组合,得到待检验压缩算法;采用待检验压缩算法对训练数据进行压缩,并确定训练数据的压缩率;若训练数据的压缩率未达到设定的收敛条件,则调整每个关联压缩算子的待训练权重值;直至训练数据的压缩率达到设定的收敛条件,根据当前的关联压缩算子的算子标识和待训练权重值,生成第二数据特征对应的算子集信息。
示例性地,如图7所示,训练单元可以包括特征提取子单元611、权重映射子单元612、算子选择子单元613、算子混合子单元614和权重调整子单元615。获取训练数据之后,可以将训练数据输入特征提取子单元611,特征提取子单元611用于提取训练数据的m个数据特征,分别为特征1、特征2……特征m,将m个数据特征组成第二数据特征,输入权重映射子单元612。
权重映射子单元612用于分别确定第二数据特征中的每个数据特征的关联压缩算子,并获取每个关联压缩算子的初始权重值,分别将每个关联压缩算子的初始权重值,作为每个关联压缩算子的待训练权重值。在一些实施例中,权重映射子单元612可以用于:根据保存的数据特征与压缩算子的关联关系,分别确定第二数据特征中的每个数据特征的关联压缩算子;例如,确定的关联压缩算子可以包括算子1、算子2~算子k。针对关联压缩算子中的任意一个,分别获取该关联压缩算子与第二数据特征中的每个数据特征之间的映射权重,得到多个映射权重;根据多个映射权重,确定第一关联压缩算子的初始权重值。在另一些实施例中,权重映射子单元612可以用于:针对第一数据特征,分别获取多个压缩算子与第一数据特征之间的映射权重,第一数据特征为第二数据特征中的任意一个数据特征;根据每个压缩算子对应的映射权重,从多个压缩算子中选择第一设定数量的压缩算子,作为第一数据特征的关联压缩算子;针对第一关联压缩算子,根据第一关联压缩算子与第二数据特征中的每个数据特征之间的映射权重,确定第一关联压缩算子的初始权重值;第一关联压缩算子为关联压缩算子中的任意一个。
算子选择子单元613用于根据每个关联压缩算子的待训练权重值,从多个关联压缩算子中选择第二设定数量的关联压缩算子。算子混合子单元614用于根据每个关联压缩算子的待训练权重值,将第二设定数量的关联压缩算子组合,得到待检验压缩算法,采用待检验压缩算法对训练数据进行压缩,并确定训练数据的压缩率。若训练数据的压缩率未达到设定的收敛条件,则通过权重调整子单元615调整每个关联压缩算子的待训练权重值,在一些实施例中,权重调整子单元615可以用于分别确定每个关联压缩算子对训练数据的压缩率的影响值;根据每个关联压缩算子对训练数据的压缩率的影响值,调整每个关联压缩算子的待训练权重值。调整关联压缩算子的待训练权重值之后,可以重新通过算子选择子单元613选择关联压缩算子,直至训练数据的压缩率达到设定的收敛条件,根据当前的关联压缩算子的算子标识和待训练权重值,生成第二数据特征对应的算子集信息。其中,收敛条件可以包括相邻至少两次训练过程得到的压缩率之间的差值满足设定的差值阈值;或者,相邻至少两次训练过程得到的压缩率之间的比值满足设定的比例阈值。
与上述方法实施例基于相同的技术构思,本申请实施例中还提供一种电子设备,该电子设备可以是存储设备,例如主存设备、备份存储设备或分布式存储设备等,还可以是图1中所示的存储设备102,也可以是其他具有数据压缩需求的电子设备。该电子设备可以用于实现图3所示的方法实施例的功能,因此可以实现上述方法实施例所具备的有益效果。
在一些实施例中,该电子设备800的结构可以如图8所示,包括处理器801以及与处理器801连接的存储器802。处理器801和存储器802之间可以通过总线相互连接,处理器801可以是通用处理器,如微处理器,或其他常规的处理器。总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。
其中,存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802中的软件程序以及模块,从而执行电子设备800的各种功能应用以及数据处理,如本申请实施例提供的数据压缩方法。
存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个应用的应用程序等;存储数据区可用于存储特征与算子对应信息,以及压缩后的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
电子设备800中的处理器801用于运行存储器802中保存的计算机指令或者程序,执行图3所示的方法实施例中的功能。当电子设备800用于实现图3所示的方法时,处理器801用于:确定待压缩数据的第一数据特征;第一数据特征中包括所述待压缩数据的一个或多个数据特征;根据第一数据特征生成数据压缩算法,并采用数据压缩算法对待压缩数据进行压缩。
在一些实施例中,处理器801可以包括一个或多个处理单元,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器801中还可以包括控制器,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
与上述方法实施例基于相同的技术构思,本申请实施例中还提供一种芯片,该芯片可以是计算芯片。该芯片可以用于实现图3所示的方法实施例的功能,因此可以实现上述方法实施例所具备的有益效果。
在一些实施例中,该芯片900的结构可以如图9所示,包括处理器901以及与处理器901连接的供电电路902。处理器901和供电电路902之间可以通过总线相互连接,处理器901可以是通用处理器,如微处理器,或其他常规的处理器。总线可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。总线可以分为地址总线、数据总线、控制总线等。供电电路902用于通过总线为处理器901供电。
处理器901可以与设置在芯片外部的存储器连接,或者与设置在芯片内部的存储器连接,运行存储在存储器中的软件程序以及模块,从而执行芯片900的各种功能应用以及数据处理,如本申请实施例提供的数据压缩方法。
在一些实施例中,处理器901可以包括一个或多个处理单元,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器901中还可以包括控制器,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行计算机程序或指令的方式来实现。计算机程序或指令可以构成计算机程序产品。
本申请实施例还提供一种计算机程序产品,包含有计算机可执行指令。在一种实施例中,该计算机可执行指令用于使计算机执行图2所示的方法实施例中的功能。
计算机可执行指令可以被存放于计算机可读存储介质中,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有可执行指令。在一种实施例中,该计算机可执行指令用于使计算机执行图2所示的方法实施例中的功能。
本申请实施例提供的计算机可读存储介质可以是随机存取存储器(randomaccess memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically ePROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的计算机可读存储介质。
计算机可执行指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital videodisc,DVD);还可以是半导体介质,例如,固态硬盘。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的方案进行示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (21)
1.一种数据压缩方法,其特征在于,包括:
确定待压缩数据的第一数据特征;所述第一数据特征包括所述待压缩数据的一个或多个数据特征;
根据所述第一数据特征生成数据压缩算法,并采用所述数据压缩算法对所述待压缩数据进行压缩。
2.根据权利要求1所述的方法,其特征在于,根据所述第一数据特征生成数据压缩算法包括:
根据所述第一数据特征对应的目标压缩算子生成数据压缩算法。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一数据特征对应的目标压缩算子生成数据压缩算法,包括:
根据预存的对应关系信息,确定所述第一数据特征对应的目标算子集信息;所述对应关系信息中保存有数据特征与算子集信息之间的对应关系;
根据所述目标算子集信息所指示的目标压缩算子生成数据压缩算法。
4.根据权利要求3所述的方法,其特征在于,所述目标算子集信息包括至少一个目标压缩算子的标识,以及所述至少一个目标压缩算子中每个目标压缩算子的权重值;所述根据所述目标算子集信息所指示的目标压缩算子生成数据压缩算法,包括:
根据所述至少一个目标压缩算子的标识,获取目标压缩算子;
按照每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到所述数据压缩算法。
5.根据权利要求4所述的方法,其特征在于,所述按照每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到所述数据压缩算法,包括:
按照目标压缩算子的权重值由小到大的顺序,依次将每个目标压缩算子进行组合,得到所述数据压缩算法。
6.根据权利要求3~5任一项所述的方法,其特征在于,通过如下方式确定所述对应关系信息:
提取训练数据的第二数据特征;所述第二数据特征包括所述训练数据的一个或多个数据特征;所述第二数据特征为所述对应关系信息中包含的任意一个数据特征;
分别确定所述第二数据特征中包含的每个数据特征的关联压缩算子,并获取每个关联压缩算子的初始权重值;
分别将每个关联压缩算子的初始权重值,作为每个关联压缩算子的待训练权重值,重复执行如下训练过程:根据每个关联压缩算子的待训练权重值,将多个关联压缩算子组合,得到待检验压缩算法;采用待检验压缩算法对所述训练数据进行压缩,并确定所述训练数据的压缩率;若所述训练数据的压缩率未达到设定的收敛条件,则调整每个关联压缩算子的待训练权重值;
直至所述训练数据的压缩率达到设定的收敛条件,根据当前的每个关联压缩算子的标识和每个关联压缩算子的待训练权重值,生成所述第二数据特征对应的算子集信息。
7.根据权利要求6所述的方法,其特征在于,所述收敛条件包括相邻至少两次训练过程得到的压缩率之间的差值满足设定的差值阈值;或者,相邻至少两次训练过程得到的压缩率之间的比值满足设定的比例阈值。
8.根据权利要求6或7所述的方法,其特征在于,所述分别确定所述第二数据特征中包含的每个数据特征的关联压缩算子,包括:
根据保存的数据特征与压缩算子的关联关系,分别确定所述第二数据特征中包含的每个数据特征的关联压缩算子,得到多个关联压缩算子;或者,
针对所述第二数据特征中包含的每个数据特征,分别获取多个压缩算子与所述数据特征之间的设定映射权重,根据所述多个压缩算子与所述数据特征之间的设定映射权重,从所述多个压缩算子中选择第一设定数量的压缩算子,作为所述数据特征的关联压缩算子。
9.根据权利要求6~8任一项所述的方法,其特征在于,所述获取每个关联压缩算子的初始权重值,包括:
针对所述多个关联压缩算子中的每个关联压缩算子,根据每个关联压缩算子与所述第二数据特征中包含的每个数据特征之间的设定映射权重,确定所述关联压缩算子的初始权重值。
10.根据权利要求6~9任一项所述的方法,其特征在于,所述根据每个关联压缩算子的待训练权重值,将多个关联压缩算子组合,得到待检验压缩算法,包括:
根据每个关联压缩算子的待训练权重值,从所述多个关联压缩算子中选择第二设定数量的关联压缩算子,将所述第二设定数量的关联压缩算子组合,得到待检验压缩算法。
11.根据权利要求6~10任一项所述的方法,其特征在于,所述调整每个关联压缩算子的待训练权重值,包括:
分别确定每个关联压缩算子对所述训练数据的压缩率的影响值;
根据每个关联压缩算子对所述训练数据的压缩率的影响值,调整每个关联压缩算子的待训练权重值。
12.一种数据压缩装置,其特征在于,包括:
特征提取单元,用于确定待压缩数据的第一数据特征;所述第一数据特征中包括所述待压缩数据的一个或多个数据特征;
数据压缩单元,用于根据所述第一数据特征生成数据压缩算法,并采用所述数据压缩算法对所述待压缩数据进行压缩。
13.根据权利要求12所述的装置,其特征在于,所述数据压缩单元,具体用于:
根据所述第一数据特征对应的目标压缩算子生成数据压缩算法。
14.根据权利要求13所述的装置,其特征在于,所述数据压缩单元,具体用于:
根据预存的对应关系信息,确定所述第一数据特征对应的目标算子集信息;所述对应关系信息中保存有数据特征与算子集信息之间的对应关系;
根据所述目标算子集信息所指示的目标压缩算子生成数据压缩算法。
15.根据权利要求14所述的装置,其特征在于,所述目标算子集信息包括至少一个目标压缩算子的标识,以及所述至少一个目标压缩算子中每个目标压缩算子的权重值;所述数据压缩单元,具体用于:
根据所述至少一个目标压缩算子的标识,获取目标压缩算子;
按照每个目标压缩算子的权重值,将获取的目标压缩算子组合,得到所述数据压缩算法。
16.根据权利要求15所述的装置,其特征在于,所述数据压缩单元,具体用于:
按照目标压缩算子的权重值由小到大的顺序,依次将每个目标压缩算子进行组合,得到所述数据压缩算法。
17.根据权利要求14~16任一项所述的装置,其特征在于,所述装置还包括:
训练单元,用于提取训练数据的第二数据特征;所述第二数据特征包括所述训练数据的一个或多个数据特征;所述第二数据特征为所述对应关系信息中包含的任意一个数据特征;分别确定所述第二数据特征中包含的每个数据特征的关联压缩算子,并获取每个关联压缩算子的初始权重值;分别将每个关联压缩算子的初始权重值,作为每个关联压缩算子的待训练权重值,重复执行如下训练过程:根据每个关联压缩算子的待训练权重值,将多个关联压缩算子组合,得到待检验压缩算法;采用待检验压缩算法对所述训练数据进行压缩,并确定所述训练数据的压缩率;若所述训练数据的压缩率未达到设定的收敛条件,则调整每个关联压缩算子的待训练权重值;直至所述训练数据的压缩率达到设定的收敛条件,根据当前的每个关联压缩算子的标识和每个关联压缩算子的待训练权重值,生成所述第二数据特征对应的算子集信息。
18.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序;所述处理器用于读取所述存储器中存储的所述计算机程序并执行,以使得如权利要求1~11任一项所述的方法被执行。
19.一种芯片,其特征在于,包括处理器和供电电路;所述供电电路用于为所述处理器供电,所述处理器用于执行计算机程序,以实现如权利要求1~11任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~11中任一项所述的方法。
21.一种计算机程序产品,其特征在于,包含有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210929287.0A CN117560013A (zh) | 2022-08-03 | 2022-08-03 | 数据压缩方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210929287.0A CN117560013A (zh) | 2022-08-03 | 2022-08-03 | 数据压缩方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117560013A true CN117560013A (zh) | 2024-02-13 |
Family
ID=89817206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210929287.0A Pending CN117560013A (zh) | 2022-08-03 | 2022-08-03 | 数据压缩方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117560013A (zh) |
-
2022
- 2022-08-03 CN CN202210929287.0A patent/CN117560013A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8977066B2 (en) | Image compression using sub-resolution images | |
US20060139188A1 (en) | Data compression/decompression device and data compression/decompression method | |
CN112506879B (zh) | 数据处理方法及相关设备 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
US7650040B2 (en) | Method, apparatus and system for data block rearrangement for LZ data compression | |
US20190052284A1 (en) | Data compression apparatus, data decompression apparatus, data compression program, data decompression program, data compression method, and data decompression method | |
CN109874018A (zh) | 基于神经网络的图像编码方法、系统、终端及存储介质 | |
US6748520B1 (en) | System and method for compressing and decompressing a binary code image | |
EP0304608A2 (en) | Multi-mode dynamic code assignment for data compression | |
CN110021368B (zh) | 比对型基因测序数据压缩方法、系统及计算机可读介质 | |
CN112449191B (zh) | 压缩多个图像的方法、解压缩图像的方法和装置 | |
CN117560013A (zh) | 数据压缩方法和电子设备 | |
US20220199202A1 (en) | Method and apparatus for compressing fastq data through character frequency-based sequence reordering | |
CN110392262A (zh) | 一种压缩虚拟桌面图像的方法及装置 | |
CN112612762B (zh) | 数据处理方法及相关设备 | |
US10931303B1 (en) | Data processing system | |
US7733249B2 (en) | Method and system of compressing and decompressing data | |
CN115250351A (zh) | 用于图像数据的压缩方法、解压方法及相关产品 | |
US11640265B2 (en) | Apparatus for processing received data | |
CN109698704B (zh) | 比对型基因测序数据解压方法、系统及计算机可读介质 | |
CN118354087B (zh) | 一种图像无损压缩方法及系统 | |
CN113659992B (zh) | 数据压缩方法及装置、存储介质 | |
CN113595557B (zh) | 一种数据处理的方法和装置 | |
JPH06202844A (ja) | データ圧縮復元処理装置 | |
Matos et al. | Lossy-to-lossless compression of biomedical images based on image decomposition |
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 |