掌桥专利:专业的专利平台
掌桥专利
首页

数据压缩方法、装置、电子设备及计算机可读介质

文献发布时间:2023-06-19 11:27:38


数据压缩方法、装置、电子设备及计算机可读介质

技术领域

本申请实施例涉及数据处理领域,尤其涉及一种数据压缩方法、装置、电子设备及计算机可读介质。

背景技术

数据压缩技术是数据库存储系统的关键技术,它不仅能够减小数据的存储开销,而且还能够通过减少数据库存储系统对外部存储空间的额外访问,为数据库存储系统带来可观的性能提升。考虑到不同的数据块所存储的数据记录在数据类型、长度、取值范围等方面存在差异,利用不同的数据压缩方式对同一数据块进行压缩所能达到的压缩效果也不相同。如果所采用的数据压缩方式与数据块的数据压缩特性相适应,可以有效地提高数据块的压缩效果。因此,如何为数据块选择与数据块的数据压缩特性相适应的数据压缩方式成为当前亟待解决的技术问题。

对于列存储数据库,各列的数据独立存储,由此生成的数据块中的各条数据记录的类型相同,且通常具有明显的局部特征,从而更具备可压缩性。利用数据块中的数据记录在取值范围、离散度、有序、连续性等方面的统计特性,可在建立逻辑表时便为每一列数据指定采用的数据压缩方式,以获得最佳的压缩效果。此外,还可通过数据采样,利用数据库中知识库的规则对数据进行特征分析,实现指定步长范围内数据块的数据压缩方式的自主选择。

然而,在实际应用中,为了满足不同的业务需求,数据库存储系统内部可能会采用多种数据存储方式,实现对数据的行列混合存储。这意味着待压缩的数据块集合中既存在着行存储的数据块,也存在着列存储的数据块,并且对于列存储的数据块,与之相邻存储的数据块并不必然属于逻辑表中的同一列,而可能是源自逻辑表中若干条相同数据记录的不同列。此时,有必要以单个数据块的粒度进行数据压缩方式的选择,专门针对列存储数据库的数据压缩方式的选择方法不再适用。另外,在现有技术中,往往需要利用数据库中的知识库的规则人工定义若干数据特征,如数据块中的数据记录的取值范围、离散度、有序、连续性等。由于不同类型和不同存储形式的数据混杂一起,很难通过这些数据特征反应出数据块在可压缩性方面的特性。通过这种方法进行数据压缩方式选择的效果严重依赖于数据特征定义的好坏与否,不合适的数据特征定义在带来巨大的计算开销的同时却不能取得很好的压缩效果,并且针对某一数据集合所定义的数据特征往往并不适用于另一个新的数据集合。

发明内容

本申请的目的在于提出一种数据压缩方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何为数据块选择与数据块的数据压缩特性相适应的数据压缩方式的技术问题。

根据本申请实施例的第一方面,提供了一种数据压缩方法。所述方法包括:对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据;基于所述数据块的特征数据,确定所述数据块的压缩特征数据;基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

根据本申请实施例的第二方面,提供了一种数据压缩装置。所述装置包括:特征提取模块,用于对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据;确定模块,用于基于所述数据块的特征数据,确定所述数据块的压缩特征数据;筛选模块,用于基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

根据本申请实施例的第三方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面所述的数据压缩方法。

根据本申请实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面所述的数据压缩方法。

根据本申请实施例提供的技术方案,对待压缩的数据块进行特征提取处理,以获得数据块的特征数据,并基于数据块的特征数据,确定数据块的压缩特征数据,再基于数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩数据块的数据压缩方式,与现有的其它方式相比,利用数据块的压缩特征数据对集合中的数据压缩方式进行筛选,使得筛选得到的数据压缩方式与待压缩的数据块的数据压缩特性相适应,从而能够有效地提高待压缩的数据块的压缩效果。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1A为本申请实施例一中数据压缩方法的步骤流程图;

图1B为根据本申请实施例一提供的核心数据块样本的筛选过程的示意图;

图2A为本申请实施例二中数据压缩方法的步骤流程图;

图2B为根据本申请实施例二提供的数据压缩方法在各阶段的执行步骤的示意图;

图3为本申请实施例三中数据压缩装置的结构示意图;

图4为本申请实施例四中数据压缩装置的结构示意图;

图5为本申请实施例五中数据压缩装置的结构示意图;

图6为本申请实施例六中电子设备的结构示意图;

图7为本申请实施例七中电子设备的硬件结构。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

参照图1A,示出了本申请实施例一的数据压缩方法的步骤流程图。

具体地,本实施例的数据压缩方法包括以下步骤:

在步骤S101中,对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据。

本实施例中,所述待压缩的数据块可理解为一组或几组按顺序连续排列在一起的数据记录,是主存储器与输入设备、输出设备或外存储器之间进行传输的数据单位。所述数据块的特征数据可理解为用于表征数据块的特征的数据,例如,数据块的特征向量。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在对待压缩的数据块进行特征提取处理时,对所述数据块中用于分别表示至少一条数据记录的二进制比特流分别进行转换,以获得所述至少一条数据记录分别对应的浮点数;基于所述至少一条数据记录分别对应的浮点数,确定所述数据块的特征数据。籍此,通过对数据块中用于表示一条数据记录的二进制比特流进行转换,能够准确地提取待压缩的数据块的特征数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在对所述数据块中用于分别表示至少一条数据记录的二进制比特流分别进行转换时,对用于表示所述至少一条数据记录中的每条数据记录的二进制比特流进行分组,以获得所述二进制比特流的每个分组对应的二进制数;对所述二进制比特流的每个分组对应的二进制数分别进行转换,以获得所述二进制比特流的每个分组对应的十进制数;基于所述二进制比特流的每个分组对应的十进制数,确定所述至少一条数据记录中的每条数据记录对应的浮点数。籍此,通过对用于表示一条数据记录的二进制比特流进行分组,能够准确地确定一条数据记录对应的浮点数。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,一个数据块对应生成一个数据块的特征向量,该向量的各分量为浮点数,其精度可以是64位或是32位,该向量中的分量的数量n的取值,视待压缩数据集合中的数据块的具体大小确定,n的值一旦确定,在具体实施方式的各阶段均不再变化,即使待压缩的数据集合发生了改变。在对数据块中用于表示一条数据记录的二进制比特流进行转换时,从数据块中的第一条数据记录开始,每次读入表示一条长度为S个字节的数据记录的二进制比特流,经代数运算将该二进制比特流转化一个浮点数,作为数据块特征向量中的一个分量。其中,数据记录的长度S由数据块中存储的数据的类型决定,可以从数据库存储系统中获得。若数据块中的数据记录的条数不足n条,则数据块特征向量中的剩余分量值均设置为零,若数据块中的数据记录的条数超过n条,则之后的数据记录不再进行转换,由该数据块的前n条数据记录经过转换生成该数据块对应的特征向量。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在进行将表示一条数据记录的二进制比特流转换为对应的浮点数的代数运算时,以L个字节为单位(L≤S),将二进制比特流分成C组,其中

在步骤S102中,基于所述数据块的特征数据,确定所述数据块的压缩特征数据。

本实施例中,所述压缩特征数据可理解为用于表征数据块的压缩特征的数据,例如,压缩特征向量。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在基于所述数据块的特征数据,确定所述数据块的压缩特征数据时,基于第一数据块样本所属的压缩类别的标识标注数据,对待训练的数据块压缩特征提取模型进行训练;通过训练后的所述数据块压缩特征提取模型,基于所述数据块的特征数据,预测所述数据块的压缩特征数据。籍此,通过数据块压缩特征提取模型,能够准确地预测数据块的压缩特征数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,每个数据压缩类别均采用一个长度为m的独热编码唯一地标识。对于每个第一数据块样本,它唯一地属于某一数据压缩类别,并被赋予相应的独热编码,称之为真实标签,也即是第一数据块样本所属的压缩类别的标识标注数据。所述数据块压缩特征提取模型可以是一种时间递归神经网络,该神经网络可以有效建立数据上下文关系,依据文本数据的长期依赖信息进行学习。将数据块的特征向量输入到数据块压缩特征提取模型后,该模型便能够自动运算生成数据块在数据可压缩性方面的压缩特征向量。所述压缩特征向量,是由数据块压缩特征提取模型读入步骤S101中获得的数据块特征向量,与模型内部存储的一组模型参数共同参与一系列运算,得到的一个包含m个分量的向量,m等于步骤S103中的集合中的数据压缩方式的数量。数据块的压缩特征向量反映了数据块在数据可压缩性方面的数据特征。数据块的压缩特征向量的各个分量为与数据块的特征向量的各个分量的精度相同的浮点数。其中,所述数据块压缩特征提取模型的模型结构是固定的,并且该模型内部存储的模型参数需要在初次具体实施本实施例提供的数据压缩方法时通过对数据块压缩特征提取模型的训练加以确定。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在所述通过训练后的所述数据块压缩特征提取模型,基于所述数据块的特征数据,预测所述数据块的压缩特征数据时,通过训练后的所述数据块压缩特征提取模型的输入全连接层,对所述数据块的特征数据进行映射处理,以获得所述特征数据对应的特征矩阵;通过训练后的所述数据块压缩特征提取模型的长短期记忆网络,基于所述特征数据对应的特征矩阵,预测所述数据块的第一压缩特征数据;通过训练后的所述数据块压缩特征提取模型的输出全连接层,对所述数据块的第一压缩特征数据进行映射处理,以获得所述数据块的第二压缩特征数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在所述通过训练后的所述数据块压缩特征提取模型的输入全连接层,对所述数据块的特征数据进行映射处理,以获得所述特征数据对应的特征矩阵时,通过所述输入全连接层,对所述数据块的特征数据进行分组,以获得所述特征数据的每个分组对应的数据;通过所述输入全连接层,将所述特征数据的每个分组对应的数据与所述输入全连接层中的输入权值矩阵进行矩阵乘法运算,并将乘法运算结果与所述输入全连接层中的输入偏置数据进行加法运算,以获得所述特征矩阵中与所述特征数据的每个分组对应的行数据;通过所述输入全连接层,对所述行数据进行合并处理,以获得所述特征数据对应的特征矩阵。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,所述通过训练后的所述数据块压缩特征提取模型的输出全连接层,对所述数据块的第一压缩特征数据进行映射处理,以获得所述数据块的第二压缩特征数据时,通过所述输出全连接层,将所述第一压缩特征数据与所述输出全连接层中的输出权值矩阵进行矩阵乘法运算,并将乘法运算结果与所述输出全连接层中的输出偏置数据进行加法运算,以获得所述数据块的第二压缩特征数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,所述数据块压缩特征提取模型的主体是一个长短期记忆网络,长短期记忆网络的输入端与输出端分别连接有一个全连接层,以使模型的输入向量和输出向量的长度相匹配。输入全连接层、长短期记忆网络,以及输出全连接层共同组成完整的数据块压缩特征提取模型。其中,所述长短期记忆网络是由h个长短期记忆单元组成(h为时间步的个数,也是隐藏状态的个数),计算时依次读入h个时间步的输入数据。每个长短期记忆单元均包含输入门、遗忘门、细胞单元(存储隐藏状态,用一个包含hs个分量的向量表示,用以更新和保留历史信息)和输出门,前一个长短期记忆单元的输出端与后一个长短期记忆单元的输入端相连。长短期记忆网络的激活函数使用的是Sigmod函数。在每个时间步中,长短期记忆网络分别读入由输入全连接层输出的特征矩阵中的一行包含hs个分量的数据,参与当前长短期记忆单元的运算,输出到下一个长短期记忆单元,如此重复h个时间步,使得输入全连接层输出的数据全部参与长短期记忆网络的计算。各长短期记忆单元的输出被称为隐藏状态,其中最后一个隐藏状态为整个长短期记忆网络的输出。所述输入全连接层将包含n个分量的数据块特征向量按顺序拆分为h个子向量,每个子向量包含n/h个分量,分别将各个子向量先与输入权值矩阵进行矩阵乘法运算,再与输入偏置向量进行加法运算,得到一个包含hs个分量的向量,其中hs为长短期记忆网络隐藏状态的长度。由h个子向量计算而得的向量合并组成一个包含h行hs列的特征矩阵,分成h个时间步分别输入到长短期记忆网络。所述输出全连接层将长短期记忆网络的输出先与输出权值矩阵进行矩阵乘法运算,再与输出偏置向量进行加法运算,得到数据块的压缩特征向量。其中,输入权值矩阵为n/h行hs列的矩阵,输入偏置向量包含hs个分量,输出权值矩阵为hs行m列的矩阵,输出偏置向量包含m个分量。输入权值矩阵、输出权值矩阵、输入偏置向量,以及输出偏置向量的参数的具体取值均通过训练确定。h和hs的取值可由本领技术人员根据实际需要进行设定。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在基于第一数据块样本所属的压缩类别的标识标注数据,对待训练的数据块压缩特征提取模型进行训练时,对训练数据集中的第二数据块样本的特征数据进行分批处理,使得每批特征数据包括所述第一数据块样本的特征数据和多个第三数据块样本的特征数据,其中,所述多个第三数据块样本分别属于所述集合中的不同的数据压缩方式所应用的数据压缩类别;通过待训练的所述数据块压缩特征提取模型,基于所述每批特征数据,预测所述第一数据块样本和所述多个第三数据块样本的压缩特征数据;基于所述第一数据块样本和所述多个第三数据块样本的压缩特征数据,及所述标识标注数据,对待训练的所述数据块压缩特征提取模型进行训练。其中,获取训练数据集中的第二数据块样本的特征数据的具体实施方式与上述步骤S101中获得待压缩数据块的特征数据的具体实施方式类似,在此不再赘述。籍此,通过对训练数据集中的第二数据块样本的特征数据进行分批处理,能够有效提升数据块压缩特征提取模型的训练效果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在基于所述第一数据块样本和所述多个第三数据块样本的压缩特征数据,及所述标识标注数据,对待训练的所述数据块压缩特征提取模型进行训练时,确定所述第一数据块样本的压缩特征数据分别与所述多个第三数据块样本中的每个第三数据块样本的压缩特征数据的相似度;对所述相似度进行归一化处理,以获得所述第一数据块样本所属的压缩类别的标识预测数据;基于所述标识预测数据和所述标识标注数据,对待训练的所述数据块压缩特征提取模型进行训练。其中,所述相似度可为角相似性。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在基于所述标识预测数据和所述标识标注数据,对待训练的所述数据块压缩特征提取模型进行训练时,通过目标损失函数,确定所述标识预测数据和所述标识标注数据的差异值;基于所述差异值,调整待训练的所述数据块压缩特征提取模型的参数。其中,所述目标损失函数可为交叉熵损失函数、softmax损失函数、L1损失函数、L2损失函数等任意损失函数。在调整待训练的所述数据块压缩特征提取模型的参数时,可采用反向传播算法,或者随机梯度下降算法来调整所述数据块压缩特征提取模型的参数。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,通过确定所述标识预测数据和所述标识标注数据的差异值,对当前获得的标识预测数据进行评估,以作为后续训练所述数据块压缩特征提取模型的依据。具体地,可将所述差异值反向传输给所述数据块压缩特征提取模型,从而迭代地训练所述数据块压缩特征提取模型。所述数据块压缩特征提取模型的训练是一个迭代的过程,本实施例仅对其中的一次训练过程进行了说明,但本领域技术人员应当明了,对所述数据块压缩特征提取模型的每次训练都可采用该训练方式,直至完成所述数据块压缩特征提取模型的训练。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,所述数据块压缩特征提取模型的训练利用了对训练数据集中的数据块样本而言最为合适的数据压缩方式是已知的这一特性,通过调整数据块压缩特征提取模型中的参数的取值,使得实际预测的压缩特征数据越准确。在训练过程中,所述数据块压缩特征提取模型的输入数据是按批进行组织的。一个批中包含m+1个数据块特征向量,批中的数据块特征向量是有序的,前m个数据块特征向量所对应的数据块样本分别属于所述集合中的不同的数据压缩方式所应用的数据压缩类别,最后一个数据块特征向量对应的数据块样本则可以属于任意的数据压缩类别。由于最后一个数据块特征向量所属的数据压缩类别对数据块压缩特征提取模型而言是未知的,因此称该数据块特征向量为查询向量。不同批中的同一位置的数据块特征向量之间没有必然联系,例如,不同批中的第i个数据块特征向量可以来源于原数据压缩类别中相邻的数据块样本、或是不相邻的数据块样本,甚至可以是同一数据块样本。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,采用Softmax交叉熵作为数据块压缩特征提取模型的训练损失函数,数据块压缩特征提取模型的优化目标便是最小化这一损失函数。对于每一个数据块样本而言,它唯一地属于某一数据压缩类别,并被赋予相应的独热编码,称之为真实标签L,另一方面,可以得到数据块样本的压缩特征数据与各个数据压缩类别分别对应的压缩特征数据的相似度,从而获得所述相似度组成的相似度向量,真实标签L与相似度向量均包含m个分量。先利用Softmax函数将相似度向量归一化为预测标签P,它包含m个分量,每个分量的取值在0-1之间,其中第k个分量表示为该数据块样本被预测为第k个标签值的概率(即预测该数据块样本属于第k个数据压缩类别的概率)。Softmax函数的计算方式如下:

其中sim

对于一个包含N个数据块样本的训练数据集合,记第i个数据块样本被预测为第k个标签值的概率为p

具体地,数据块压缩特征提取模型的训练过程如下:首先对训练数据集中的各个数据块样本进行特征提取处理,得到各个数据块样本的特征向量。然后,将数据块样本的特征向量按批输入数据块压缩特征提取模型,其中一批特征向量的读入与后续处理流程合称为一个训练步。在一个训练步中,数据块压缩特征提取模型由当前批中的m+1个数据块特征向量得到m+1个数据块压缩特征向量,分别计算查询向量对应的压缩特征向量与前m个数据块压缩特征向量之间的相似度sim

在一个具体的例子中,数据块压缩特征提取模型的重新训练一般发生在利用现有的数据块压缩特征提取模型对待压缩数据集中的数据块进行自适应数据压缩时压缩效果不够理想的情况下。压缩效果不够理想可能是因为待压缩数据集中数据的类型、长度、取值范围等方面发生了变化,与训练数据集存在巨大差异,从而导致现有的数据块压缩特征提取模型不再适用于提取新的数据块在可压缩性方面的特征。此时,需要使用新的训练数据集对数据块压缩特征提取模型进行训练,新的训练数据集一般应与待压缩的数据集有一定的相似性,可以反映出待压缩的数据集在数据的类型、长度、取值范围等方面的特征。另一个导致对待压缩数据集中的数据块进行自适应数据压缩的压缩效果不够理想的可能原因是现有的数据块压缩特征提取模型的训练存在问题,从而使得该数据块压缩特征提取模型在提取数据块的可压缩性方面的特征存在缺陷。在重新训练数据块压缩特征提取模型时,可以尝试改变数据块压缩特征提取模型的训练方法,例如,更改模型参数的优化方法或者更改模型输入的各个批中的数据的排列形式等。在该种情况下,可以仍旧使用原来的训练数据集进行训练。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S103中,基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

在本实施例中,所述数据压缩方式可理解为数据压缩算法或数据压缩策略,所述集合可理解为数据压缩算法库。数据压缩算法库是一个预先确定的由不同的数据压缩算法组成的算法集合,由数据压缩算法Alg

在一些可选实施例中,在基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理时,基于所述数据块的压缩特征数据与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的相似度,确定所述数据块所属的数据压缩类别;确定应用于所述数据块所属的数据压缩类别的数据压缩方式为用于压缩所述数据块的数据压缩方式。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,数据压缩类别是指对于一系列的数据块A

在一个具体的例子中,所述数据块的压缩特征向量与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征向量的相似度,用于在数据块压缩特征向量空间中刻画出待压缩的数据块的压缩特征向量与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征向量的差异程度。待压缩的数据块的压缩特征向量与各数据压缩类别对应的压缩特征向量之间的相似度的取值越大,则认为两者之间的差异程度越小。待压缩的数据块的压缩特征向量分别与各数据压缩类别对应的压缩特征向量之间的相似度sim

在一些可选实施例中,所述确定所述数据块所属的数据压缩类别之前,所述方法还包括:确定所述数据块的压缩特征数据与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的角相似性,并确定所述角相似性为所述相似度。籍此,通过所述数据块的压缩特征数据与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的角相似性,能够准确地表征所述数据块的压缩特征数据与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的相似度。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,所述待压缩的数据块的压缩特征向量分别与各个数据压缩类别对应的压缩特征向量的之间的相似度的计算方法,可以为计算待压缩的数据块的压缩特征向量分别与各个数据压缩类别对应的压缩特征向量之间的角相似性。对于非零向量A和非零向量B,θ为两个向量之间的夹角,首先计算它们之间的余弦相似度:

在一个具体的例子中,在确定所述待压缩的数据块所属的数据压缩类别时,找出相似度向量中取值最大的分量,选择计算该分量所使用的压缩特征向量对应的数据压缩类别为所述待压缩的数据块所属的数据压缩类别,并利用应用于所述数据块所属的数据压缩类别的数据压缩算法对待压缩的数据块进行压缩。如果相似度向量中的各分量sim

在一些可选实施例中,所述确定所述数据块所属的数据压缩类别之前,所述方法还包括:针对样本数据集中的每个数据块样本,使用所述集合中的不同的数据压缩方式分别对数据块样本进行压缩,以获得所述集合中的不同的数据压缩方式分别针对所述数据块样本的压缩比,并基于所述压缩比,确定针对所述数据块样本的压缩比最高的数据压缩方式;确定所述样本数据集中使用同一数据压缩方式获得最高压缩比的所有数据块样本属于同一数据压缩类别;基于属于所述同一数据压缩类别的数据块样本的压缩特征数据,生成所述同一数据压缩类别对应的压缩特征数据。籍此,能够准确地确定数据压缩类别对应的压缩特征数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述生成所述同一数据压缩类别对应的压缩特征数据之前,所述方法还包括:对属于所述同一数据压缩类别的数据块样本进行筛选处理,以获得属于所述同一数据压缩类别的核心数据块样本。在基于属于所述同一数据压缩类别的数据块样本的压缩特征数据,生成所述同一数据压缩类别对应的压缩特征数据时,基于属于所述同一数据压缩类别的核心数据块样本的压缩特征数据,生成所述同一数据压缩类别对应的压缩特征数据。籍此,通过筛选得到的属于同一数据压缩类别的核心数据块样本的压缩特征数据,能够更加准确地确定数据压缩类别对应的压缩特征数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在对属于所述同一数据压缩类别的数据块样本进行筛选处理时,基于属于所述同一数据压缩类别的每个数据块样本的压缩特征数据,确定所述同一数据压缩类别的标准压缩特征数据;确定属于所述同一数据压缩类别的每个数据块样本的压缩特征数据分别与所述标准压缩特征数据的相似度;基于所述相似度,确定属于所述同一数据压缩类别的核心数据块样本。其中,所述标准压缩特征数据可为标准压缩特征向量。籍此,通过属于同一数据压缩类别的每个数据块样本的压缩特征数据分别与标准压缩特征数据的相似度,能够准确地确定属于同一数据压缩类别的核心数据块样本。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,如图1B所示,对属于同一数据压缩类别的每一个数据块样本分别进行特征提取处理,以获得属于同一数据压缩类别的每一个数据块样本的特征向量,并根据属于同一数据压缩类别的每一个数据块样本的特征向量,确定属于同一数据压缩类别的每一个数据块样本的压缩特征向量。其中,此处特征提取处理的具体实施方式与上述步骤S101中特征提取处理的具体实施方式类似,此处确定属于同一数据压缩类别的每一个数据块样本的压缩特征向量的具体实施方式与上述步骤S102中确定数据块的压缩特征数据的具体实施方式类似,在此不再赘述。在获得属于同一数据压缩类别的每一个数据块样本的压缩特征向量之后,求取属于同一数据压缩类别的每一个数据块样本的压缩特征向量的算术平均值,作为所述同一数据压缩类别的标准压缩特征向量。其中,各个数据压缩类别的标准压缩特征向量使用一个包含m个分量的向量表示。随后,通过利用角相似性的计算方法,确定属于所述同一数据压缩类别的核心数据块样本。具体地,对于某一数据压缩类别,逐一计算属于该数据压缩类别的数据块样本的压缩特征向量与该数据压缩类别的标准压缩特征向量的角相似性,如果角相似性的取值大于某个预先设定的阈值Th_center,则确定该数据块样本为属于该数据压缩类别的核心数据块样本。如果属于该数据压缩类别的核心数据块样本的集合为空集,则去除与该数据压缩类别的标准压缩特征向量的角相似性最小的数据块压缩特征向量,重新计算该数据压缩类别的标准压缩特征向量,再根据阈值Th_center判断属于该数据压缩类别的各个数据块样本是否为核心数据块样本。重复执行上述步骤,直至属于该数据压缩类别的核心数据块样本的集合为非空集,或是执行次数达到了预先设定的最大执行次数。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,支持集是一个由m个数据压缩类别分别对应的子数据压缩类别组成的集合,该集合中的各个子数据压缩类别对应的数据块样本事先经过筛选,由若干个最能表现其所属的数据压缩类别与数据压缩算法之间的一一对应关系的数据块样本组成。支持集是训练数据集的一个子集,组成支持集的子数据压缩类别是训练数据集中的数据压缩类别的子类别。视具体的筛选标准而定,子数据压缩类别对应的数据块样本的集合可以是空集。支持集的生成是指分别从每个数据压缩类别对应的数据块样本的集合中筛选出若干个核心数据块样本,组成每个数据压缩类别对应的子数据压缩类别,添加到支持集中的过程。对数据压缩类别对应的数据块样本的集合进行筛选的目的是为了找出合适的核心数据块样本,用于计算出每一种数据压缩算法所应用的数据压缩类别对应的压缩特征向量。核心数据块样本应当最能表现其所属的数据压缩类别与数据压缩算法之间的一一对应关系。具体而言,由核心数据块样本的压缩特征向量计算得到核心数据块样本所属的数据压缩类别对应的压缩特征向量应当是核心数据块样本的特征向量在数据块压缩特征向量空间的中心,能够反映出一系列适合采用这一数据压缩类别所对应的数据压缩算法进行压缩的核心数据块样本的总体数据特征。即使不改变训练数据集和数据块压缩特征提取模型而重新生成了支持集,仍可能改变相似度向量的计算结果,进而使对于同一待压缩数据集实施本实施例的方法所获得的压缩策略发生变化,从而影响到最终的压缩效果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在基于属于所述同一数据压缩类别的核心数据块样本的压缩特征数据,生成所述同一数据压缩类别对应的压缩特征数据时,对属于所述同一数据压缩类别的核心数据块样本的压缩特征数据进行算术平均,以获得所述同一数据压缩类别对应的压缩特征数据,也即对属于所述同一数据压缩类别的核心数据块样本的压缩特征向量进行算术平均,以获得所述同一数据压缩类别对应的压缩特征向量。同一数据压缩类别对应的压缩特征向量是属于所述同一压缩类的数据块样本的特征向量在数据块压缩特征向量空间的中心,反映了一系列适合采用这一数据压缩类别所对应的数据压缩算法进行压缩的数据块样本的总体数据特征。由于数据压缩算法库中包含m种数据压缩算法,故数据压缩算法库中的数据压缩算法所应用的数据压缩类别对应的压缩特征向量的个数也为m个。对于属于同一数据压缩类别的核心数据块样本的集合为空集的情况,此时数据压缩类别对应的压缩特征向量是一个由m个分量构成的零向量。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

特别地,如果数据压缩算法库中的某个压缩算法所应用的数据压缩类别对应的数据块样本的集合非空,但经过筛选处理之后,属于该数据压缩类别的核心数据块样本的集合为空集,从而使得该数据压缩类别对应的压缩特征向量为零向量,可以从这一数据压缩类别对应的数据块样本的集合中随机地选出一个数据块样本,并将该数据块样本的压缩特征向量作为该数据压缩类别对应的压缩特征向量的替代,参与相似度的计算。然而,如果本领域技术人员认为这一数据压缩类别当前对应的数据块样本均不具有典型性,仍可保持零向量为该数据压缩类别对应的压缩特征向量。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述方法还包括:测试所述集合中的不同的数据压缩方式针对测试数据集中的数据块样本的数据压缩时间;基于所述数据压缩时间,对所述集合中的不同的数据压缩方式进行排序,以获得所述集合中的不同的数据压缩方式的排序结果。籍此,通过所述集合中的不同的数据压缩方式针对测试数据集中的数据块样本的数据压缩时间,能够准确地对所述集合中的不同的数据压缩方式进行排序。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,当数据压缩算法的种类确定之后,将由不同的数据压缩算法组成的算法集合中的各个数据压缩算法根据平均压缩时间进行排序,平均压缩时间较短的排列在前,即对于某一个用于计算各数据压缩算法的平均压缩时间的数据集,使用排列在先的数据压缩算法对数据集中各组成部分的平均压缩时间较短,而排列在后的数据压缩算法对数据集中各组成部分的平均压缩时间较长。用于计算各数据压缩算法的平均压缩时间的数据集,通常为训练数据集,但也可以是某个公认的用于对数据压缩算法进行测试的数据集,或是与待压缩的数据集有关联的其他数据集。计算平均压缩时间时,可以对数据集中各组成部分的压缩时间求取算术平均值,也可以采用几何平均、加权平均等平均值计算方法。如果压缩速度不是本领域技术人员有必要关注的性能指标,可以根据本技术领域中对数据压缩算法的压缩速度的已有认识直接进行排序,不需要再对数据压缩算法的平均压缩时间进行测试。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

综上所述,对于待压缩数据集合中的每一个数据块,从一个预先确定的由不同的数据压缩算法组成的算法集合中选出可以达到最高压缩比的数据压缩算法,对该数据块进行压缩,是获得整体高压缩比的可行方案。具体地,自适应地从数据压缩算法库中选出数据压缩算法,对给定的数据库存储系统中的数据块进行压缩。更具体地,对待压缩数据集合中的每一个数据块逐一进行压缩,相比于使用数据压缩算法库中的某个单一的数据压缩算法,可以获得更高的压缩比。本实施例的自适应性体现于,对于待压缩的数据集中的各个数据块,不论其中所存储的数据的类型、长度、取值范围和具体取值,均能够通过本实施例的数据块压缩特征提取模型提取出数据块在数据可压缩性方面的特征,以此为依据选择出对该数据块进行压缩的数据压缩算法。数据块在数据可压缩性方面的特征是由数据块压缩特征提取模型自动生成的,不需要本领域技术人员对数据特征事先进行任何的定义,数据特征的具体计算方式由数据块压缩特征提取模型在训练时利用训练数据集学习到的参数决定。如果改变训练数据集,或是改变数据压缩算法库中包含的数据压缩算法的数量或是算法类型,通过对数据块压缩特征提取模型重新训练,数据特征的形式(具体表现为数据块压缩特征向量的分量个数)和计算方式(具体表现为数据块压缩特征提取模型中的参数)将自适应地发生改变。

通过本申请实施例提供的数据压缩方法,对待压缩的数据块进行特征提取处理,以获得数据块的特征数据,并基于数据块的特征数据,确定数据块的压缩特征数据,再基于数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩数据块的数据压缩方式,与现有的其它方式相比,利用数据块的压缩特征数据对集合中的数据压缩方式进行筛选,使得筛选得到的数据压缩方式与待压缩的数据块的数据压缩特性相适应,从而能够有效地提高待压缩的数据块的压缩效果。

本实施例的数据压缩方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。

参照图2A,示出了本申请实施例二的数据压缩方法的步骤流程图。

具体地,本实施例的数据压缩方法包括以下步骤:

在步骤S201中,对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据。

由于该步骤S201的具体实施方式与上述步骤S101的具体实施方式类似,在此不再赘述。

在步骤S202中,基于所述数据块的特征数据,确定所述数据块的压缩特征数据。

由于该步骤S202的具体实施方式与上述步骤S102的具体实施方式类似,在此不再赘述。

在步骤S203中,基于所述数据块的压缩特征数据与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的相似度,确定所述数据块所属的数据压缩类别。

由于该步骤S203的具体实施方式与上述实施例一中确定所述数据块所属的数据压缩类别的具体实施方式类似,在此不再赘述。

在步骤S204中,确定应用于所述数据块所属的数据压缩类别的数据压缩方式为用于压缩所述数据块的数据压缩方式。

由于该步骤S204的具体实施方式与上述实施例一中确定应用于所述数据块所属的数据压缩类别的数据压缩方式为用于压缩所述数据块的数据压缩方式的具体实施方式类似,在此不再赘述。

在一个具体的例子中,如图2B所示,本实施例的具体实施方式包括准备阶段与实施阶段两个部分。准备阶段对数据块压缩特征提取模型进行训练,以确定模型内部参数的取值,并依据该模型确定每个数据压缩算法所应用的数据压缩类别的子数据压缩类别的组成,生成支持集。实施阶段利用准备阶段训练得到的数据块压缩特征提取模型,自适应地为待压缩数据集中的各个数据块选择合适的数据压缩算法。

为了能够有效地实施本实施例以自适应地对待压缩数据集中的数据块进行压缩,需要事先执行准备阶段的各个步骤,这些步骤只需执行一次,之后便可以用于对多个待压缩数据集中的数据块进行压缩,也可以在之后的某个时间点重新执行准备阶段的某些步骤,以获得更好的压缩效果。

准备阶段的根本目标,便是找出数据块到数据压缩算法的映射F:A→a,其中A为给定数据库存储系统中的某一数据块,a为数据压缩算法库中的数据压缩算法的下标,1≤a≤m,采用数据压缩算法库中的数据压缩算法Alg

在准备阶段使用到的数据集称为训练数据集,它主要被用于训练数据块压缩特征提取模型,确定模型内部各类参数的取值。训练数据集可以是待压缩数据集的一个子集,也可以是与待压缩数据集有继承关系的另一个数据集,例如,训练数据集是某个数据库存储系统的历史数据,待压缩数据是之后某个时刻该系统中存储的数据,或是在数据的存储形式上与待压缩数据集较为类似的其他数据集。准备阶段需执行的步骤包括数据压缩算法库的构建、各个数据压缩类别的生成、数据块压缩特征提取模型的训练和支持集的生成共四项任务。准备阶段包含的各步骤需要按次序进行,但不一定要从最先列出的步骤开始执行,如果执行了准备工作包含的某一任务,则在该项任务之后列出的其他步骤必须一并执行。

数据压缩算法库的构建是指由实施本实施例提供的数据压缩方法进行数据压缩的本领域技术人员列出若干个可以被应用于对待压缩的数据集中的数据块进行压缩的算法,例如空值抑制、游程编码、差值编码、序列编码、字典编码和位图编码等轻量级数据压缩算法,以及哈夫曼编码、Lempel-Ziv系列压缩算法等重量级数据压缩算法。其中,轻量级数据压缩算法主要利用相邻数据间的相似性或数据取值分布的宏观特征,使用长度更短的编码对原数据进行表示,通常处理速度快,易于根据待压缩数据的具体特性做出有针对性地优化。重量级压缩算法能够利用待压缩数据的上下文信息建立某种形式的模式表,从而为其中的不同数据片段选出较优的编码方式,通常这些算法压缩率更高,适用的数据类型更加广泛。

数据压缩算法库中的数据压缩算法可以是基于一个或多个压缩原理的单一数据压缩算法,也可以是由多个数据压缩算法级联形成的复合压缩算法。数据压缩算法的级联是指将未经压缩的数据作为前一个数据压缩算法的输入,将前一个数据压缩算法的输出再作为后一个数据压缩算法的输入的压缩操作,数据压缩算法的级联可以是多级的。包含在数据压缩算法库中的数据压缩算法应当不需要输入任何的参数,如果根据不同的输入参数,将会得到不同的压缩效果,则将以多个不同的参数值作为输入的数据压缩算法视为不同的数据压缩算法。

一旦确定了数据压缩算法库的组成,在出现以下情形(但不限于以下情形)时,可以重新构建数据压缩算法库:该算法集合中存在对应的数据压缩类别对应的数据块样本为空集且从未在实际压缩中被使用过的数据压缩算法、存在子数据压缩类别对应的数据块样本的集合为空集,以及遗漏了重要的数据压缩算法。遗漏了重要的数据压缩算法主要表现为待压缩数据块与各个数据压缩类别之间均缺乏相似性。具体来说,可以使用一个计数单元对相似度向量的各个分量进行监测,如果待压缩数据块与各个数据压缩类别的相似度sim

如果需要对数据压缩算法库中的数据压缩算法进行优化,例如,提高数据压缩算法并行度、将数据压缩算法迁移到GPU或FPGA等硬件上执行,此时也可以重新确定数据压缩算法库的组成,仅保留在实际应用中主要使用到的主要数据压缩算法,从而减小数据压缩算法优化的总体工作量。

重新确定数据压缩算法库的组成会改变对于同一数据集利用本实施例进行数据压缩算法的选择所生成的压缩策略,而压缩策略的变化不可避免地会影响到最终的压缩效果。

各数据压缩类别的生成是指对于训练数据集中的每一个数据块样本,分别使用数据压缩算法库中的每一个数据压缩算法对该数据块样本进行压缩,找出获得最高压缩比时使用的数据压缩算法。训练数据集中使用同样的数据压缩算法获得最高压缩比的所有数据块组成一个数据压缩类别,该数据压缩类别对应的数据压缩算法即为使属于该数据压缩类别的所有数据块样本获得最高压缩比的数据压缩算法。训练数据集中的一个数据块样本只能属于一个数据压缩类别,如果存在多个数据压缩算法可以使得一个数据块获得最高的压缩比,则该数据块样本属于数据压缩算法库中排列在前的数据压缩算法所应用的数据压缩类别。

如欲使用新的训练数据集重新训练数据块压缩特征提取模型,可以重新进行各个数据压缩类别的生成,也可以直接重新训练数据块压缩特征提取模型,但保留原来的各个数据压缩类别。在保留原数据压缩类别的情况下,属于原数据压缩类别的数据块样本利用新的数据块压缩特征提取模型会生成新的压缩特征向量,经筛选后得到新的支持集。

数据块压缩特征提取模型的训练利用了对训练数据集中的数据块样本而言最为合适的数据压缩算法是已知的这一特性,通过调整数据块压缩特征提取模型中的参数的取值,使得实际找出的映射关系F′:A→a′与目标映射F:A→a尽可能接近。

支持集的生成是指分别从每个数据压缩类别对应的数据块样本的集合中筛选出若干个核心数据块样本,组成每个数据压缩类别对应的子数据压缩类别,添加到支持集中的过程。对数据压缩类别对应的数据块样本的集合进行筛选的目的是为了找出合适的核心数据块样本,用于计算出每一种数据压缩算法所应用的数据压缩类别对应的压缩特征向量。核心数据块样本应当最能表现其所属的数据压缩类别与数据压缩算法之间的一一对应关系。具体而言,由核心数据块样本的压缩特征向量计算得到核心数据块样本所属的数据压缩类别对应的压缩特征向量应当是核心数据块样本的特征向量在数据块压缩特征向量空间的中心,能够反映出一系列适合采用这一数据压缩类别所对应的数据压缩算法进行压缩的核心数据块样本的总体数据特征。

在利用本实施例进行数据压缩算法的自适应选择的实施阶段,对于给定的某个需要进行压缩的数据集合中的每一个数据块,分别执行步骤S201至步骤S204的操作,直至所有的数据块均被压缩完毕,依此流程可自动地生成一个以单个数据块为基本压缩粒度的数据集合压缩策略。

综上所述,本实施例利用数据块压缩特征提取模型自动完成对待压缩数据集合中的各个数据块的压缩特征的提取,自动建立数据块的二进制表示与所宜采用的数据压缩算法之间的对应关系,从而使得在数据压缩算法的选择过程中无需本领域技术人员根据经验定义数据块中的数据记录的取值范围、离散度、有序、连续性等数据特征并确定相应的判断标准。本实施例中基于相似度比较的数据压缩算法的选择标准,相比于现有技术通常采用的直接将待压缩的数据块归入某一数据压缩类别的方法,本发明在数据压缩算法的选取上更具灵活性。由于压缩速度快的数据压缩算法在数据压缩算法库中排列在前,在相似度相同的情况下压缩速度快的数据压缩算法将被用于进行数据压缩,兼顾了压缩效果和压缩速度。另一方面,本领域技术人员可以利用相似度向量揭示的待压缩数据块与各个数据压缩类别的具体差异程度,能够有针对性地更改数据压缩算法库中的数据压缩算法组成,使得数据压缩算法与待压缩的数据块的压缩特性更加匹配,从而有效提升待压缩的数据块的压缩效果。本实施例的另一个有利特性在于,只需数量很少的已知所属数据压缩类别的数据块样本,便能生成数据压缩类别对应的压缩特征向量用于待压缩的数据块的数据压缩算法选择,大大降低了在行列混合存储系统中不同的数据压缩算法的典型数据块样本的获取难度。

在实施例一的基础上,基于数据块的压缩特征数据与集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的相似度,确定数据块所属的数据压缩类别,并确定应用于数据块所属的数据压缩类别的数据压缩方式为用于压缩数据块的数据压缩方式,与现有的其它方式相比,通过利用数据块的压缩特征数据与集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的相似度,揭示了待压缩的数据块与集合中的不同的数据压缩方式所应用的数据压缩类别的具体差异程度,可确定与数据块的压缩特征数据的相似度最大的数据压缩类别为数据块所属的数据压缩类别,进而可确定应用于数据块所属的数据压缩类别的数据压缩方式为用于压缩数据块的数据压缩方式,使得数据压缩方式与待压缩的数据块的数据压缩特性更加匹配,从而有效提升了待压缩的数据块的压缩效果。

本实施例的数据压缩方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。

参照图3,示出了本申请实施例三中数据压缩装置的结构示意图。

本实施例的数据压缩装置包括:特征提取模块301,用于对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据;确定模块302,用于基于所述数据块的特征数据,确定所述数据块的压缩特征数据;筛选模块303,用于基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

本实施例的数据压缩装置用于实现前述多个方法实施例中相应的数据压缩方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图4,示出了本申请实施例四中数据压缩装置的结构示意图。

本实施例的数据压缩装置包括:特征提取模块401,用于对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据;确定模块402,用于基于所述数据块的特征数据,确定所述数据块的压缩特征数据;筛选模块403,用于基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

可选地,所述特征提取模块401,包括:转换子模块4011,用于对所述数据块中用于分别表示至少一条数据记录的二进制比特流分别进行转换,以获得所述至少一条数据记录分别对应的浮点数;第一确定子模块4012,用于基于所述至少一条数据记录分别对应的浮点数,确定所述数据块的特征数据。

可选地,所述转换子模块4011,具体用于:对用于表示所述至少一条数据记录中的每条数据记录的二进制比特流进行分组,以获得所述二进制比特流的每个分组对应的二进制数;对所述二进制比特流的每个分组对应的二进制数分别进行转换,以获得所述二进制比特流的每个分组对应的十进制数;基于所述二进制比特流的每个分组对应的十进制数,确定所述至少一条数据记录中的每条数据记录对应的浮点数。

可选地,所述筛选模块403,包括:第二确定子模块4036,用于基于所述数据块的压缩特征数据与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的相似度,确定所述数据块所属的数据压缩类别;第三确定子模块4037,用于确定应用于所述数据块所属的数据压缩类别的数据压缩方式为用于压缩所述数据块的数据压缩方式。

可选地,所述第二确定子模块4036之前,所述筛选模块403还包括:第四确定子模块4035,用于确定所述数据块的压缩特征数据与所述集合中的不同的数据压缩方式所应用的数据压缩类别对应的压缩特征数据的角相似性,并确定所述角相似性为所述相似度。

可选地,所述第二确定子模块4036之前,所述筛选模块403还包括:第五确定子模块4031,用于针对样本数据集中的每个数据块样本,使用所述集合中的不同的数据压缩方式分别对数据块样本进行压缩,以获得所述集合中的不同的数据压缩方式分别针对所述数据块样本的压缩比,并基于所述压缩比,确定针对所述数据块样本的压缩比最高的数据压缩方式;第六确定子模块4032,用于确定所述样本数据集中使用同一数据压缩方式获得最高压缩比的所有数据块样本属于同一数据压缩类别;生成子模块4034,用于基于属于所述同一数据压缩类别的数据块样本的压缩特征数据,生成所述同一数据压缩类别对应的压缩特征数据。

可选地,所述生成子模块4034之前,所述筛选模块403还包括:筛选子模块4033,用于对属于所述同一数据压缩类别的数据块样本进行筛选处理,以获得属于所述同一数据压缩类别的核心数据块样本;所述生成子模块4034,具体用于:基于属于所述同一数据压缩类别的核心数据块样本的压缩特征数据,生成所述同一数据压缩类别对应的压缩特征数据。

可选地,所述筛选子模块4033,具体用于:基于属于所述同一数据压缩类别的每个数据块样本的压缩特征数据,确定所述同一数据压缩类别的标准压缩特征数据;确定属于所述同一数据压缩类别的每个数据块样本的压缩特征数据分别与所述标准压缩特征数据的相似度;基于所述相似度,确定属于所述同一数据压缩类别的核心数据块样本。

可选地,所述装置还包括:测试模块404,用于测试所述集合中的不同的数据压缩方式针对测试数据集中的数据块样本的数据压缩时间;排序模块405,用于基于所述数据压缩时间,对所述集合中的不同的数据压缩方式进行排序,以获得所述集合中的不同的数据压缩方式的排序结果。

本实施例的数据压缩装置用于实现前述多个方法实施例中相应的数据压缩方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图5,示出了本申请实施例五中数据压缩装置的结构示意图。

本实施例的数据压缩装置包括:特征提取模块501,用于对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据;确定模块502,用于基于所述数据块的特征数据,确定所述数据块的压缩特征数据;筛选模块503,用于基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

可选地,所述确定模块502,包括:训练子模块5021,用于基于第一数据块样本所属的压缩类别的标识标注数据,对待训练的数据块压缩特征提取模型进行训练;预测子模块5028,用于通过训练后的所述数据块压缩特征提取模型,基于所述数据块的特征数据,预测所述数据块的压缩特征数据。

可选地,所述预测子模块5028,包括:第一映射单元5029,用于通过训练后的所述数据块压缩特征提取模型的输入全连接层,对所述数据块的特征数据进行映射处理,以获得所述特征数据对应的特征矩阵;第一预测单元50291,用于通过训练后的所述数据块压缩特征提取模型的长短期记忆网络,基于所述特征数据对应的特征矩阵,预测所述数据块的第一压缩特征数据;第二映射单元50292,用于通过训练后的所述数据块压缩特征提取模型的输出全连接层,对所述数据块的第一压缩特征数据进行映射处理,以获得所述数据块的第二压缩特征数据。

可选地,所述第一映射单元5029,具体用于:通过所述输入全连接层,对所述数据块的特征数据进行分组,以获得所述特征数据的每个分组对应的数据;通过所述输入全连接层,将所述特征数据的每个分组对应的数据与所述输入全连接层中的输入权值矩阵进行矩阵乘法运算,并将乘法运算结果与所述输入全连接层中的输入偏置数据进行加法运算,以获得所述特征矩阵中与所述特征数据的每个分组对应的行数据;通过所述输入全连接层,对所述行数据进行合并处理,以获得所述特征数据对应的特征矩阵。

可选地,所述第二映射单元50292,具体用于:通过所述输出全连接层,将所述第一压缩特征数据与所述输出全连接层中的输出权值矩阵进行矩阵乘法运算,并将乘法运算结果与所述输出全连接层中的输出偏置数据进行加法运算,以获得所述数据块的第二压缩特征数据。

可选地,所述训练子模块5021,包括:分批单元5022,用于对训练数据集中的第二数据块样本的特征数据进行分批处理,使得每批特征数据包括所述第一数据块样本的特征数据和多个第三数据块样本的特征数据,其中,所述多个第三数据块样本分别属于所述集合中的不同的数据压缩方式所应用的数据压缩类别;第二预测单元5023,用于通过待训练的所述数据块压缩特征提取模型,基于所述每批特征数据,预测所述第一数据块样本和所述多个第三数据块样本的压缩特征数据;训练单元5024,用于基于所述第一数据块样本和所述多个第三数据块样本的压缩特征数据,及所述标识标注数据,对待训练的所述数据块压缩特征提取模型进行训练。

可选地,所述训练单元5024,包括:确定子单元5025,用于确定所述第一数据块样本的压缩特征数据分别与所述多个第三数据块样本中的每个第三数据块样本的压缩特征数据的相似度;处理子单元5026,用于对所述相似度进行归一化处理,以获得所述第一数据块样本所属的压缩类别的标识预测数据;训练子单元5027,用于基于所述标识预测数据和所述标识标注数据,对待训练的所述数据块压缩特征提取模型进行训练。

可选地,所述训练子单元5027,具体用于:通过目标损失函数,确定所述标识预测数据和所述标识标注数据的差异值;基于所述差异值,调整待训练的所述数据块压缩特征提取模型的参数。

本实施例的数据压缩装置用于实现前述多个方法实施例中相应的数据压缩方法,并具有相应的方法实施例的有益效果,在此不再赘述。

图6为本申请实施例六中电子设备的结构示意图;该电子设备可以包括:

一个或多个处理器601;

计算机可读介质602,可以配置为存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一或实施例二所述的数据压缩方法。

图7为本申请实施例七中电子设备的硬件结构;如图7所示,该电子设备的硬件结构可以包括:处理器701,通信接口702,计算机可读介质703和通信总线704;

其中处理器701、通信接口702、计算机可读介质703通过通信总线704完成相互间的通信;

可选地,通信接口702可以为通信模块的接口,如GSM模块的接口;

其中,处理器701具体可以配置为:对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据;基于所述数据块的特征数据,确定所述数据块的压缩特征数据;基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

计算机可读介质703可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括特征提取模块、确定模块和筛选模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,特征提取模块还可以被描述为“对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据的模块”。

作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一或实施例二所描述的数据压缩方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:对待压缩的数据块进行特征提取处理,以获得所述数据块的特征数据;基于所述数据块的特征数据,确定所述数据块的压缩特征数据;基于所述数据块的压缩特征数据,对预先确定的数据压缩方式的集合中的数据压缩方式进行筛选处理,以确定用于压缩所述数据块的数据压缩方式。

在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。

当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 数据压缩方法、装置、电子设备及计算机可读介质
  • 数据压缩方法、装置、计算机可读存储介质及电子设备
技术分类

06120112935848