CN110620586B - 数据压缩方法、装置和终端设备 - Google Patents
数据压缩方法、装置和终端设备 Download PDFInfo
- Publication number
- CN110620586B CN110620586B CN201910876702.9A CN201910876702A CN110620586B CN 110620586 B CN110620586 B CN 110620586B CN 201910876702 A CN201910876702 A CN 201910876702A CN 110620586 B CN110620586 B CN 110620586B
- Authority
- CN
- China
- Prior art keywords
- semi
- continuous
- segment
- discontinuous
- segmentation
- 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
Images
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
-
- 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/70—Type of the data to be coded, other than image and sound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明适用于数据压缩技术领域,提供了一种数据压缩方法、装置和终端设备。该方法包括:获取待压缩的时间序列,并基于SemiConnAlg算法将所述时间序列转换为半连续分段集合;根据所述半连续分段集合确定所述待压缩数据的混合分段集合;以所述混合分段集合的形式存储所述待压缩数据。本发明解决了最优化的分段线性近似问题,具有线性的时间复杂度,在保证最优存储的同时,具有更优的执行效率。
Description
技术领域
本发明属于数据压缩技术领域,尤其涉及一种数据压缩方法、装置和终端设备。
背景技术
时间序列是一种数据的集合,其中每个数据点由时间戳和对应的数据值构成,这类数据通常以数据流的形式存在于现实众多领域之中,譬如云计算和医疗科学。由于数据流是随时间流失不断收集,没有穷尽,存储这样的数据类型不仅占用大量的硬盘资源,而且在实时分析这些数据时会有更多困难,所以研究高效的压缩存储方法显得尤为重要。虽然现有的技术中关于数据压缩方法众多,但依然存在数据压缩过程数据占用空间大,执行效率低的问题。
发明内容
有鉴于此,本发明实施例提供了一种数据压缩方法、装置和终端设备,以解决现有技术中的数据压缩过程数据占用空间大,执行效率低的问题。
本发明实施例的第一方面提供了一种数据压缩方法,包括:
获取待压缩的时间序列,并基于SemiConnAlg算法将所述时间序列转换为半连续分段集合;
根据所述半连续分段集合确定所述待压缩数据的混合分段集合;
以所述混合分段集合的形式存储所述待压缩数据。
可选的,基于SemiConnAlg算法将所述时间序列转换为半连续分段集合,包括:
基于DisConnAlg算法将所述时间序列转换为多个不连续分段;
依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件;
若满足,则将满足半连续相交条件的所有相邻的不连续分段依次进行半连续相交,得到半连续分段集合;
若不满足,则将所述与其右相邻的不连续分段的末端逐点删除,使不连续分段与该末端逐点删除后的不连续分段之间满足半连续相交条件,并进行半连续相交,得到半连续分段集合。
可选的,依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件,包括:
判断每个所述不连续分段的极限线段与其右相邻的不连续分段的极限线段是否相交,且每个所述不连续分段与其右相邻的不连续分段之间是否满足预设误差条件。
可选的,根据所述半连续分段集合确定所述待压缩数据的混合分段集合,包括:
根据预设半连续分段确定混合分段的起始位置,所述预设半连续分段为所述半连续分段集合中所有不满足所述半连续相交条件生成的半连续分段;
根据所述混合分段的起始位置对所述预设半连续分段进行分段,得到所述待压缩数据的混合分段集合。
可选的,根据预设半连续分段确定混合分段的起始位置,包括:
判断所述预设半连续分段与预设不连续分段之间是否满足混合分段条件,所述预设不连续分段为构成所述预设半连续分段的不连续分段;
若满足,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。
可选的,判断所述预设半连续分段与预设不连续分段之间是否满足混合分段条件,包括:
判断所述预设半连续分段的结束时间是否小于或等于所述预设不连续分段的结束时间。
可选的,根据预设半连续分段确定混合分段的起始位置,还包括:
基于所述SemiConnAlg算法,将所述预设半连续分段转换为k个半连续段,将所述预设不连续分段转换为k-1个半连续段,其中,k值为相邻所述预设半连续分段之间的满足所述半连续相交条件生成的半连续分段个数;
判断所述k个半连续段的结束时间是否小于或等于所述k-1个半连续段的结束时间;
若小于或等于,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。
本发明实施例的第二方面提供了一种数据压缩装置,包括:
半连续分段模块,用于获取待压缩的时间序列,并基于SemiConnAlg算法将所述时间序列转换为半连续分段集合;
混合分段模块,用于根据所述半连续分段集合确定所述待压缩数据的混合分段集合;
存储模块,用于以所述混合分段集合的形式存储所述待压缩数据。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述实施例的第一方面提供的任一项所述的数据压缩方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例的第一方面提供的任一项所述的数据压缩方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:通过基于SemiConnAlg算法将所述时间序列转换为半连续分段集合,再根据半连续分段集合确定待压缩数据的混合分段集合,最后以混合分段集合的形式存储所述待压缩数据,解决了最优化的分段线性近似问题,使得压缩后的数据具有线性的时间复杂度,在保证最优存储的同时,具有更优的执行效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据压缩方法的实现流程示意图;
图2是图1中步骤S101的具体实现流程示意图;
图3是图1中步骤S102的具体实现流程示意图;
图4是图3中步骤S301的具体实现流程示意图;
图5是本发明实施例提供的分段线性近似法的线段示意图;
图6是本发明实施例提供的“反向-检验”策略和“扩展-收缩”策略的示意图;
图7是本发明实施例提供的更新上、下极限线段和凸壳的流程示意图;
图8是本发明实施例提供的SemiConnAlg算法输出存储的示意图;
图9是本发明实施例提供的SemimixedAlg方法和PipeMixedAlg方法的平均时间成本示意图;
图10是本发明实施例提供的SemimixedAlg方法和PipeMixedAlg方法的平均内存成本示意图;
图11是本发明实施例提供的SemimixedAlg方法和PipeMixedAlg方法在数据规模增长下的稳定性示意图;
图12是本发明实施例提供的SemimixedAlg方法和PipeMixedAlg方法在误差增长下的稳定性示意图;
图13是本发明实施例提供的数据压缩装置的结构示意图;
图14是本发明实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,为本实施例提供的数据压缩方法的一个实施例实现流程示意图,详述如下:
步骤S101,获取待压缩的时间序列,并基于SemiConnAlg算法将所述时间序列转换为半连续分段集合。
步骤S102,根据所述半连续分段集合确定所述待压缩数据的混合分段集合。
步骤S103,以所述混合分段集合的形式存储所述待压缩数据。
本发明主要针对时间序列,在L∞空间度量(误差-有界)下,一种具有最优性的分段线性近似(Piecewise Linear Approximation,PLA)的数据压缩方法,且本发明可以在线地实时处理数据,在L∞空间度量限制条件下,保证压缩后的数据存储单元最少,同时在时间和内存消耗具有极低的成本。
分段线性近似方法的基本思想:将原始的时间序列拆分成若干数据片段,每一个数据片段在某种度量条件下用一条线段进行拟合近似,每一数据片段的若干数据被一条线段所表示(线段的起始点和终点表示),从而达到压缩数据的目的,同时生成线段的度量条件主要包括L2度量和L∞度量。L2度量要求使用线段恢复后相应数据片段的总体均方误差小于事先给定的阈值;L∞度量要求使用线段恢复相应数据片段上的每一个数据点和原始数据点的差值的绝对值小于事先给定的阈值。显然,L∞度量下的每个还原的数据点可保证误差可控的同时,保证L2度量可控,即L∞度量优于L2度量,所以本实施例的数据处理压缩方法所要处理的问题为L∞-PLA问题。
L∞-PLA问题:假设P=(p1,...,pn)表示一个时间序列,δ表示L∞度量的阈值。时间序列P在时间间隔si<ei≤n上的数据片段表示为Si=(psi,psi+1,...,pei),即在L∞度量下对时间序列P进行L∞-PLA将时间序列P分成k个数据片段S1,...,Sk,每一个数据片段Si=(psi,psi+1,...,pei),i∈{1,2,...,k}可以被一个线性函数fi(t)近似,并且fi(t)满足:|fi(t)-pt|≤δ,t∈{si,...,ei},fi(t)称作是片段Si的可行线段表示。
进一步的,根据线段表示方式的不同以及线段连接时刻是否是整时刻点,可将L∞-PLA问题问题细化为3个子问题:(1)连续L∞-PLA问题:如果相邻可行线段是连接的,即fi(ei)=fi+1(si+1),1≤i≤k-1,称作连续L∞-PLA问题,并根据连接点所在时刻是否整时刻点,可进一步分成整时刻连续L∞-PLA问题(连续分段,如图5的(ii))和半连续L∞-PLA问题(半连续分段,如图5的(iii));(2)不连续L∞-PLA问题:如果相邻可行线段是不连接的,称作不连续L∞-PLA问题(不连续分段,如图5的(i));(3)混合L∞-PLA问题:如果生成可行线段集合包含连续的和不连续的,称作混合L∞-PLA问题(混合分段,如图5的(iv)),其中包含的一个不连续分段也可称作为一个混合分段。如果上述生成的分段线性表示的存储最小,我们称之为最优化的L∞-PLA问题。
本实施例是基于SemiConnAlg算法提出的一种SemiMixedAlg数据压缩方法。SemiMixedAlg方法在时域空间内,解决最优化的混合L∞-PLA问题,即先基于SemiConnAlg算法将所述时间序列转换为半连续分段集合,根据半连续分段集合确定待压缩数据的混合分段集合,以最小化混合段的存储存储待压缩数据,保持时间序列的线性时间复杂度,与现有PipeMixedAlg算法相比,本实施例的SemiMixedAlg方法在保证最优存储的同时,具有更优的执行效率。
在一个实施例中,参见图2,本发明的步骤S101中SemiConnAlg算法将所述时间序列转换为半连续分段集合的具体实现流程包括:
步骤S201,基于DisConnAlg算法将所述时间序列转换为多个不连续分段。
步骤S202,依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件。
步骤S203,若满足,则将满足半连续相交条件的所有相邻的不连续分段依次进行半连续相交,得到半连续分段集合。
步骤S204,若不满足,则将所述与其右相邻的不连续分段的末端逐点删除,使不连续分段与该末端逐点删除后的不连续分段之间满足半连续相交条件,并进行半连续相交,得到半连续分段集合。
可选的,依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件,具体可以包括:判断每个所述不连续分段的极限线段与其右相邻的不连续分段的极限线段是否相交,且每个所述不连续分段与其右相邻的不连续分段之间是否满足预设误差条件。
具体的,基于DisConnAlg算法将连续分段(时间序列)转换为多个不连续分段,并通过挖掘两个不连续分段内部的关系制定了“扩展-收缩”策略,使得相邻的两个不连续分段转化为半连续分段,基本过程如下:通过DisConnAlg算法基于时间序列构造多个不连续分段,第k个不连续分段记为Sk,第k+1个不连续分段记为Sk+1(k≥1),应用“反向-检验”策略检查Sk+1是否半连续连接Sk(是否满足半连续相交条件),其中被检查的不连续分段Sk+1被称为“挂起”的不连续分段。
示例性的,一个时间序列片段被分为4个不连续分段,依次为A、B、C和D,先判断A与B是否满足半连续相交条件,若满足,则A与B半连续连接形成AB,然后判断AB与C是否满足半连续相交条件,若不满足,则删除不连续分段C的末端一点,使得C的斜率发生变化得到C’,例如图6所示的lk+1变为l'k+1,然后再判断AB与C’是否满足半连续相交条件,若还不满足,则继续删除C’的末端一点得到C”,再判断AB与C”是否满足半连续相交条件,若满足则AB与C”半连续连接形成ABC”,即对不连续分段C的末端逐点删除,每次删除末端的一点后,判断不连续分段AB与该末端逐点删除后的不连续分段C’(或C”,C”’等)之间是否满足半连续相交条件,直至该末端逐点删除后的不连续分段C’与AB满足半连续相交条件。以此类推,最终形成ABC”D或ABC”D’等形式的半连续分段。当数据流中包括多个时间序列时,则形成半连续分段集合。
“反向-检验”策略具体指:检验Sk+1的极限线段(可以是上、下极限线段的任意一条)是否和Sk的极限线段(可以是上、下极限线段的任意一条)相交,且在Sk+1和Sk中的所有点是否满足L∞误差限定。如果“反向-检验”策略失败(Sk+1与Sk不满足半连续相交条件)),即Sk+1与Sk不能直接半连续相交,则采用“扩展-收缩”策略强制“反向-检验”策略成功。
“扩展-收缩”策略具体指:从Sk+1的末端逐点删除,末端每删除一点后,使用“反向-检验”策略检查,直到删除到“反向-检验”策略成功为止。因为当Sk+1被删除只包含一个数据点时,“反向-检验”策略是肯定成功的,所以“扩展-收缩”策略可以保证“反向-检验”策略的成功率。
如图6(i)所示,被挂起的不连续分段Sk+1可直接半连续连接它之前的分段Sk,因为Sk+1下极限线段lk+1可以连接Sk的下极限线段lk,并且包含的所有点都满足预设误差条件;如图6(ii)所示,原始的Sk+1并不能直接半连续连接Sk,尽管lk+1可以延长使得于lk相交,但并不能保证pek满足预设误差条件,这时需要采用“扩展-收缩”策略,例如删除pek+1点,lk+1更新为l'k+1,再用“反向-检验”策略可成功,最终按照SemiConnAlg算法时间序列可以生成半连续分段集合,并且该半连续分段集合是半连续条件下存储最小的。
另外,需要说明本实施例中的DisConnAlg算法。DisConnAlg算法是一种在时域空间下用于解决不连续L∞-PLA问题的算法,即在L∞度量下,可以生成最优存储的不连续分段,即保证每个不连续分段拟合最多的数据点,这个目标通过在拟合数据点的过程中获取可行线段的范围来实现,当这个范围是空集的时候,表示拟合了最多的数据点,将产生一个不连续分段。具体的,在产生不连续分段过程中,用上、下极限线段来表示所有可行线段的范围,上、下极限线段随着新数据点的加入进行迭代更新。为了减少更新过程中的时间消耗,两个“凸壳”结构被引入,并随着上述迭代过程同步更新。具体来说,假设S=(p1,p2,...,pn)是一个数据片段,可通过DisConnAlg算法生成一个不连续分段,当pk(k∈{1,...,n-1})被拟合时,上、下极限线段的斜率分别记为u[1,k+1]和l[1,k+1],具体如下:
其中,t为对应片段的时间点,点pa,pb,pc和pd由下式确定:
综合上面两式可得:
最终可得:
为了方便理解更新上、下极限线段和“凸壳”,本实施例进行了示例性的说明。参见图7,针对初始的两个数据点p1和p2按照图7的(i)进行初始化,当拟合了pk+1点后,确定了上极限线段由uk更新为uk+1,下极限线段保持不变,两个凸壳为和cvx(k),如图7的(ii)所示,最后根据三角检验规则更新两个凸壳为和cvx(k+1),如图7的(iii)所示。最后,在每一个数据片段上,选择上、下极限线段的任意一条,即形成如图5的(i)所示的不连续分段形式。
在一个实施例中,参见图3,本发明的步骤S102中根据所述半连续分段集合确定所述待压缩数据的混合分段集合的具体实现流程包括:
步骤S301,根据预设半连续分段确定混合分段的起始位置,所述预设半连续分段为半连续分段集合中所有不满足所述半连续相交条件生成的半连续分段。
步骤S302,根据所述混合分段的起始位置对所述预设半连续分段进行分段,得到所述待压缩数据的混合分段集合。
可选的,根据预设半连续分段确定混合分段的起始位置,包括:
判断所述预设半连续分段与预设不连续分段之间是否满足混合分段条件,所述预设不连续分段为构成所述预设半连续分段的不连续分段。
若满足,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。
对于任意一个时间序列片段P,由SemiConnAlg算法生成了m个半连续分段,可以记作Ssemi=(S1,S2,...,Sm),其中构成预设半连续分段Si的不连续分段为预设不连续分段即预设半连续分段Si的挂起的不连续分段记作假设存在一个由Ssemi生成的最优混合分段集合Smixed,仅包含一个混合分段S'i,那么Si是由经过“扩展-收缩”策略生成的,且S'i和的起始时刻相等。实际处理过程中,并不是在Ssemi上任意时刻点断开生成的不连续分段都是一个混合分段,一个混合分段的起始位置唯一可能是的起始点位置,而且并不能直接和Si-1半连续相连接,只能通过“扩展-收缩”策略作用后才能半连续连接。本实施例中,半连续分段集合中所有不满足所述半连续相交条件生成的半连续分段均为“扩展-收缩”策略生成的半连续分段。
可选的,判断所述预设半连续分段的结束时间是否小于或等于所述预设不连续分段的结束时间。
在一个实施例中,参见图4,本发明的步骤S301中根据预设半连续分段确定混合分段的起始位置的具体实现流程包括:
步骤S401,基于所述SemiConnAlg算法,将所述预设半连续分段转换为k个半连续段,将所述预设不连续分段转换为k-1个半连续段,其中,k值为相邻所述预设半连续分段之间的满足半连续相交条件生成的半连续分段个数。
步骤S402,判断所述k个半连续段的结束时间是否小于或等于所述k-1个半连续段的结束时间。
步骤S403,若小于或等于,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。
为了进一步确定的起始点位置是否是一个混合分段的起始位置,本发明制定了“k-尝试”策略。具体的,“k-尝试”策略是利用SemiConnAlg算法分别从Si和作k个和k-1个半连续段,最后一个段分别记作Si+k和如果Si+k和的结束时刻ei+k和e'i+k-1满足ei+k≤e'i+k-1,那么的起始时刻为一个混合分段的起始位置,我们称Si是“k-尝试”成功的。
预设半连续分段Si是“k-尝试”成功的,记从Si利用SemiConnAlg生成k个半连续段,那么Si+k也是通过“扩展-收缩”策略生成的。假设Si+h是最靠近Si+k的,且h<k,由“扩展-收缩”策略生成得半连续分段Sj(h<j≤k)是直接半连续到之前的分段,因为Si+k是从时刻si+k开始构造的最长的半连续分段,那么Si+k和S'i+k-1的开始时刻满足si+k≤s'i+k-1,可得到Si+h+1和S'i+h的起始时刻满足si+h+1≤s'i+h,进一步得到Si+k和S'i+k-1的终止时刻满足ei+h+1≤e'i+h,由“k-尝试”的定义可得出,Si是h-成功的,并且Si+h是通过“扩展-收缩”策略生成的,所以预设半连续分段Si是“k-尝试”成功的,记从Si利用SemiConnAlg生成k个半连续段,那么Si+k也是通过“扩展-收缩”策略生成的。
可知,本实施例的“k-尝试”策略是对同一数据片段P执行两次SemiConnAlg算法过程,由于SemiConnAlg算法具有线性时间复杂度,所以“k-尝试”策略的时间复杂度仍然是线性的。尽管它可以判定一个不连续分段是否是一个混合分段,但是我们并没有对尝试的半连续分段个数k进行限定,为了计算效率,本实施例将对k进行数值限定,即k值为相邻所述预设半连续分段之间的满足半连续相交条件生成的半连续分段个数。
对于任意一个给定的时间序列P=(p1,p2,...,pn)和预设误差条件δ,P可以生成Q个数量的混合分段Smixed=(S1,...,SQ),其中包含m个不连续分段记为Mj(1≤j≤m)。Smixed的存储是2×(Q+1)+m,这说明减少存储的唯一策略是将更多断开的混合段添加到Smixed中,使得P的半连续分段更少。由于本发明通过“k-尝试”策略已经遍历了所有的两个半连续分段为一个混合分段可能性,所以在Smixed中,不存在任意两个分段合并成一个混合分段的情况,因此本实施例生成的混合分段集合是最优的,即存储空间最小。
至此,上述描述给出了解决混合L∞-PLA问题的步骤,得到了本实施例的SemiMixedAlg方法处理数据压缩过程。具体应用中,实现过程可以包括:随着数据的到来,利用SemiConnAlg算法将数据生成半连续分段集合,包括执行“扩展-收缩”策略,执行“扩展-收缩”生成的半连续分段(半连续分段集合中所有不满足半连续相交条件生成的半连续分段)记为Si;对每个Si执行“k-尝试”策略,验证Si是否是“k-尝试”成功的,如果Si是“k-尝试”成功的,从构成Si的不连续分段的起始时刻断开形成一个混合分段,并输出存储,然后在下一个数据到来时继续执行上述步骤,即本实施例的方法是在线实时应用的,每个数据到来都可以执行SemiMixedAlg方法;如果Si不是“k-尝试”成功的,保持Si的半连续连接,然后在下一个数据到来时继续执行上述步骤。
本发明主要的优点是在时域空间内提出了SemiMixedAlg方法,以解决最优化的混合L∞-PLA问题,它具有线性的时间复杂度,时间消耗少,空间成本低(占用的存储空间小),稳定性强的优点。示例性的,基于本实施例的数据压缩方法,对来自UCR(University ofCalifornia,Riverside,加州大学河滨分校)的时间序列库进行测验,试验结果通过输出存储规模、执行时间消耗、执行内存空间占用、算法稳定性四个方面进行展现。L∞误差设定为所测数据集的最大和最小值差值的2.5%,5%和10%的情况,由于结果近似,仅显示值为5%的情况下的结果。
输出存储规模可以参见表5.1,由于集合的分布是各种各样的,因此在43个数据集上实现的压缩率是不同的,其中,SemiMixedAlg方法中37个数据集的输出小于原始存储的10%。
表5. 1SemiMixedAlg的存储成本
其次,将SemiConnAlg算法和SemiMixedAlg方法输出存储大小进行计算出比率。如图8所示,由于SemiConnAlg算法并不能处理最优化的混合L∞-PLA问题,所以其存储均要大于SemiMixedAlg方法的输出存储,比率值均大于1。关于时间消耗的计算,是对于每个数据集使用的整个运行时间除以数据集的长度来获得更新一个点的平均时间成本。43个数据集的平均时间成本如图9所示,SemiMixedAlg方法和PipeMixedAlg方法的更新时间成本分别约为1.5us和8us。PipeMixedAlg方法的时间成本约为SemiMixedAlg方法的5倍。关于内存占用成本,更新每个数据集中一个点的最大内存成本如图10所示,SemiMixedAlg方法和PipeMixedAlg方法的平均内存成本分别为0.15kb和0.748kb。SemiMixedAlg方法最大内存占用只有PipeMixedAlg方法的20%左右,从图9和图10中还发现,SemiMixedAlg方法的性能比PipeMixedAlg方法的性能稳定得多,PipeMixedAlg方法对数据分布非常敏感。
关于SemiMixedAlg方法的稳定性,本实施例通过两个方面来说明。首先,针对数据规模增长的稳定性,本实施例将每个数据集分成20等份,在每次累加1份数据来增长数据集,分别计算相应的时间消耗和最大内存占用。由于所有数据集的结果非常相似,我们仅在数据规模最大的“StarLightCurves”数据集上报告结果,如图11的(a)所示,SemiMixedAlg方法和PipeMixedAlg方法的时间成本随着增加数据大小而线性增加。但是SemiMixedAlg方法的增加趋势比PipeMixedAlg方法慢得多,这说明SemiMixedAlg方法更适合处理大规模数据,此外,如图11的(b)所示,更新每个数据点的平均内存成本对于SemiMixedAlg方法和PipeMixedAlg方法都是恒定的,而PipeMixedAlg方法的内存大小是SemiMixedAlg方法的5倍。其次,针对L∞误差限定的稳定性,本实施例将分别对数据集最大值和最小值差值的1%-10%进行测试,由于所有数据集的结果相似,仅在数据规模最大的“StarLightCurves”数据集上报告结果,如图12所示,随着误差大小的增加,SemiMixedAlg方法在时间消耗和内存占用的成本比PipeMixedAlg方法更少且更稳定。
上述数据压缩方法,通过基于SemiConnAlg算法将所述时间序列转换为半连续分段集合,再根据半连续分段集合确定待压缩数据的混合分段集合,最后以混合分段集合的形式存储所述待压缩数据,解决了最优化的分段线性近似问题,使得压缩后的数据具有线性的时间复杂度,在保证最优存储的同时,具有更优的执行效率,即缩短了压缩时间,减小了数据存储空间。
本领域技术人员可以理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的数据压缩方法,本实施例提供了一种数据压缩装置。具体参见图13,为本实施例中数据压缩装置的结构示意图。为了便于说明,仅示出了与本实施例相关的部分。
所述数据压缩装置包括:半连续分段模块110、混合分段模块120和存储模块130。
半连续分段模块110用于获取待压缩的时间序列,并基于SemiConnAlg算法将所述时间序列转换为半连续分段集合。
混合分段模块120用于根据所述半连续分段集合确定所述待压缩数据的混合分段集合。
存储模块130用于以所述混合分段集合的形式存储所述待压缩数据。
在一个实施例中,半连续分段模块110具体用于:基于DisConnAlg算法将所述时间序列转换为多个不连续分段;依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件;若满足,则将满足半连续相交条件的所有相邻的不连续分段依次进行半连续相交,得到半连续分段集合;若不满足,则将所述与其右相邻的不连续分段的末端逐点删除,使不连续分段与该末端逐点删除后的不连续分段之间满足半连续相交条件,并进行半连续相交,得到半连续分段集合。可选的,判断每个所述不连续分段的极限线段与其右相邻的不连续分段的极限线段是否相交,且每个所述不连续分段与其右相邻的不连续分段之间是否满足预设误差条件。
在一个实施例中,混合分段模块120具体用于:根据预设半连续分段确定混合分段的起始位置,所述预设半连续分段为所述半连续分段集合中所有不满足所述半连续相交条件生成的半连续分段;根据所述混合分段的起始位置对所述预设半连续分段进行分段,得到所述待压缩数据的混合分段集合。
可选的,根据预设半连续分段确定混合分段的起始位置,包括:判断所述预设半连续分段与预设不连续分段之间是否满足混合分段条件,所述预设不连续分段为构成所述预设半连续分段的不连续分段;若满足,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。示例性的,判断所述预设半连续分段的结束时间是否小于或等于所述预设不连续分段的结束时间。
可选的,根据预设半连续分段确定混合分段的起始位置,还可以包括:基于所述SemiConnAlg算法,将所述预设半连续分段转换为k个半连续段,将所述预设不连续分段转换为k-1个半连续段,其中,k值为相邻所述预设半连续分段之间的满足所述半连续相交条件生成的半连续分段个数;判断所述k个半连续段的结束时间是否小于或等于所述k-1个半连续段的结束时间;若小于或等于,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。
上述数据压缩装置,半连续分段模块110通过基于SemiConnAlg算法将所述时间序列转换为半连续分段集合,、混合分段模块120再根据半连续分段集合确定待压缩数据的混合分段集合,最后存储模块130以混合分段集合的形式存储所述待压缩数据,解决了最优化的分段线性近似问题,使得压缩后的数据具有线性的时间复杂度,在保证最优存储的同时,具有更优的执行效率,即缩短了压缩时间,减小了数据存储空间。
本实施例还提供了一种终端设备100的示意图。如图14所示,该实施例的终端设备100包括:处理器140、存储器150以及存储在所述存储器150中并可在所述处理器140上运行的计算机程序151,例如数据压缩方法的程序。所述处理器140在执行所述计算机程序151时实现上述数据压缩方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器140执行所述计算机程序151时实现上述各装置实施例中各模块/单元的功能,例如图13所示模块110至130的功能。
示例性的,所述计算机程序151可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器150中,并由所述处理器140执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序151在所述终端设备100中的执行过程。例如,所述计算机程序151可以被分割成半连续分段模块110、混合分段模块120和存储模块130,各模块具体功能如下:
半连续分段模块110用于获取待压缩的时间序列,并基于SemiConnAlg算法将所述时间序列转换为半连续分段集合。
混合分段模块120用于根据所述半连续分段集合确定所述待压缩数据的混合分段集合。
存储模块130用于以所述混合分段集合的形式存储所述待压缩数据。
所述终端设备100可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备100可包括,但不仅限于处理器140、存储器150。本领域技术人员可以理解,图14仅仅是终端设备100的示例,并不构成对终端设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备100还可以包括输入输出设备、网络接入设备、总线等。
所称处理器140可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器150可以是所述终端设备100的内部存储单元,例如终端设备100的硬盘或内存。所述存储器150也可以是所述终端设备100的外部存储设备,例如所述终端设备100上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器150还可以既包括所述终端设备100的内部存储单元也包括外部存储设备。所述存储器150用于存储所述计算机程序以及所述终端设备100所需的其他程序和数据。所述存储器150还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模型的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据压缩方法,其特征在于,包括:
获取待压缩数据的时间序列,并基于半连续的最优分段近似算法SemiConnAlg算法将所述时间序列转换为半连续分段集合;
根据所述半连续分段集合确定所述待压缩数据的混合分段集合;
以所述混合分段集合的形式存储所述待压缩数据;
基于SemiConnAlg算法将所述时间序列转换为半连续分段集合,包括:
基于最优不连续分段近似算法DisConnAlg算法将所述时间序列转换为多个不连续分段;
依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件;
若满足,则将满足半连续相交条件的所有相邻的不连续分段依次进行半连续相交,得到半连续分段集合;
若不满足,则将所述与其右相邻的不连续分段的末端逐点删除,使不连续分段与该末端逐点删除后的不连续分段之间满足半连续相交条件,并进行半连续相交,得到半连续分段集合;
根据所述半连续分段集合确定所述待压缩数据的混合分段集合,包括:
根据预设半连续分段确定混合分段的起始位置,所述预设半连续分段为所述半连续分段集合中所有不满足所述半连续相交条件生成的半连续分段;
根据所述混合分段的起始位置对所述预设半连续分段进行分段,得到所述待压缩数据的混合分段集合。
2.如权利要求1所述的数据压缩方法,其特征在于,依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件,包括:
判断每个所述不连续分段的极限线段与其右相邻的不连续分段的极限线段是否相交,且每个所述不连续分段与其右相邻的不连续分段之间是否满足预设误差条件。
3.如权利要求1所述的数据压缩方法,其特征在于,根据预设半连续分段确定混合分段的起始位置,包括:
判断所述预设半连续分段与预设不连续分段之间是否满足混合分段条件,所述预设不连续分段为构成所述预设半连续分段的不连续分段;
若满足,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。
4.如权利要求3所述的数据压缩方法,其特征在于,判断所述预设半连续分段与预设不连续分段之间是否满足混合分段条件,包括:
判断所述预设半连续分段的结束时间是否小于或等于所述预设不连续分段的结束时间。
5.如权利要求3所述的数据压缩方法,其特征在于,根据预设半连续分段确定混合分段的起始位置,还包括:
基于所述SemiConnAlg算法,将所述预设半连续分段转换为k个半连续段,将所述预设不连续分段转换为k-1个半连续段,其中,k值为相邻所述预设半连续分段之间的满足所述半连续相交条件生成的半连续分段个数;
判断所述k个半连续段的结束时间是否小于或等于所述k-1个半连续段的结束时间;
若小于或等于,则确定所述预设不连续分段的起始时刻为所述混合分段的起始位置。
6.一种数据压缩装置,其特征在于,包括:
半连续分段模块,用于获取待压缩数据的时间序列,并基于半连续的最优分段近似算法SemiConnAlg算法将所述时间序列转换为半连续分段集合;
混合分段模块,用于根据所述半连续分段集合确定所述待压缩数据的混合分段集合;
存储模块,用于以所述混合分段集合的形式存储所述待压缩数据;
所述半连续分段模块,具体用于基于最优不连续分段近似算法DisConnAlg算法将所述时间序列转换为多个不连续分段;
依次判断每个不连续分段与其右相邻的不连续分段之间是否满足半连续相交条件;
若满足,则将满足半连续相交条件的所有相邻的不连续分段依次进行半连续相交,得到半连续分段集合;
若不满足,则将所述与其右相邻的不连续分段的末端逐点删除,使不连续分段与该末端逐点删除后的不连续分段之间满足半连续相交条件,并进行半连续相交,得到半连续分段集合;
所述混合分段模块,具体用于根据预设半连续分段确定混合分段的起始位置,所述预设半连续分段为所述半连续分段集合中所有不满足所述半连续相交条件生成的半连续分段;
根据所述混合分段的起始位置对所述预设半连续分段进行分段,得到所述待压缩数据的混合分段集合。
7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的数据压缩方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910876702.9A CN110620586B (zh) | 2019-09-17 | 2019-09-17 | 数据压缩方法、装置和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910876702.9A CN110620586B (zh) | 2019-09-17 | 2019-09-17 | 数据压缩方法、装置和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110620586A CN110620586A (zh) | 2019-12-27 |
CN110620586B true CN110620586B (zh) | 2021-07-13 |
Family
ID=68923242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910876702.9A Active CN110620586B (zh) | 2019-09-17 | 2019-09-17 | 数据压缩方法、装置和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110620586B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111294054B (zh) * | 2020-02-13 | 2023-05-23 | 北京天拓智领科技有限公司 | 一种服务于工业互联数据采集存储的压缩方法 |
CN112487880B (zh) * | 2020-11-13 | 2021-09-24 | 河北省科学院应用数学研究所 | 基于最大误差准则的中值滤波器、设备和系统 |
CN115034337B (zh) * | 2022-08-10 | 2022-11-01 | 江西科骏实业有限公司 | 一种轨道交通车辆中牵引电机状态辨识方法及装置、介质 |
CN116418349B (zh) * | 2023-03-07 | 2024-01-26 | 东华大学 | 基于最大误差准则的序列数据压缩方法、设备和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960059A (zh) * | 2017-04-06 | 2017-07-18 | 山东大学 | 一种基于分段线性表示的时间序列流数据降维与简化表示方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2548461C (en) * | 2004-02-26 | 2009-08-11 | Mitsubishi Denki Kabushiki Kaisha | Time series data dimensional compression apparatus |
CN104077309B (zh) * | 2013-03-28 | 2018-05-08 | 日电(中国)有限公司 | 一种对时序序列进行降维处理的方法和装置 |
CN107994906A (zh) * | 2017-08-01 | 2018-05-04 | 河北省科学院应用数学研究所 | 一种基于l∞准则的半连续最优分段线性近似方法 |
CN107995488B (zh) * | 2017-11-09 | 2019-09-03 | 浙江大学宁波理工学院 | 一种基于直线扩展收缩模式的图像缩放方法 |
-
2019
- 2019-09-17 CN CN201910876702.9A patent/CN110620586B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960059A (zh) * | 2017-04-06 | 2017-07-18 | 山东大学 | 一种基于分段线性表示的时间序列流数据降维与简化表示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110620586A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110620586B (zh) | 数据压缩方法、装置和终端设备 | |
CN110971239A (zh) | 基于数据压缩的均值计算方法、装置和终端设备 | |
CN111382863A (zh) | 一种神经网络压缩方法及装置 | |
CN112562069A (zh) | 三维模型的构造方法、装置、设备和存储介质 | |
CN113644917B (zh) | 用于脑电、心电数据压缩的方法、终端及存储介质 | |
WO2021034387A1 (en) | Flexible huffman tree approximation for low latency encoding | |
CN114418086B (zh) | 压缩神经网络模型的方法、装置 | |
CN111325096A (zh) | 直播流采样方法、装置及电子设备 | |
CN115797565A (zh) | 三维重建模型训练方法、三维重建方法、装置及电子设备 | |
CN113381767B (zh) | 用于心电数据压缩的方法、终端及存储介质 | |
CN114781650A (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN117746125A (zh) | 图像处理模型的训练方法、装置及电子设备 | |
CN114881227B (zh) | 模型压缩方法、图像处理方法、装置和电子设备 | |
CN115205163B (zh) | 一种标识图像的处理方法、装置、设备及存储介质 | |
Jobst et al. | Efficient MPS representations and quantum circuits from the Fourier modes of classical image data | |
Yan et al. | TopoSZ: Preserving topology in error-bounded lossy compression | |
CN112102328A (zh) | 基于深度学习的图像分割处理方法及其系统、电子设备 | |
CN115861255A (zh) | 用于图像处理的模型训练方法、装置、设备、介质及产品 | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
CN113361535A (zh) | 图像分割模型训练、图像分割方法及相关装置 | |
CN109828894B (zh) | 设备状态数据的采集方法、装置、存储介质和电子设备 | |
CN106055669A (zh) | 一种数据离散化方法及系统 | |
CN114640357B (zh) | 数据编码方法、设备及存储介质 | |
CN113609648B (zh) | 基于动态负荷的电能误差计量方法、装置及电子设备 | |
CN116341689B (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 |