一种工业实时数据无损编码压缩方法技术

技术编号:30700340 阅读:17 留言:0更新日期:2021-11-06 09:36
本发明专利技术公开了一种工业实时数据无损编码压缩方法,包括步骤:1)获取输入的一个工业实时数据测点的一组时序性的待存储数据集合,将集合中第一个数据完整存储;2)对数据集合中第二个数据开始依次进行编码压缩,对于每个待压缩数据依次将数据的时戳部分、质量部分、值部分压缩,以编码压缩格式存储。本发明专利技术根据工业实时数据的物理特征进行高效的数据编码压缩,使工业实时数据的传输和存储效率更高、系统资源占用更低。源占用更低。源占用更低。

【技术实现步骤摘要】
一种工业实时数据无损编码压缩方法


[0001]本专利技术属于数据处理
,具体涉及一种工业实时数据无损编码压缩方法。

技术介绍

[0002]随着信息时代的飞速发展,不论是学术界还是工业界,其产生的数据量都在爆炸式增长。特别在工业界中,整个工业生产流程中数据采集点规模随着设备数量的增加而不断增大,通常有几万到几十万。这些生产数据一般都是以秒级甚至毫秒级的采样频率采集的,采集到的数据量非常大。为了实现高效的实时数据传输和存储,对实时数据进行压缩是一个可行且热门的解决方案,而合适的压缩算法可以有效地降低数据传输和存储所需的时间与空间。
[0003]工业实时数据压缩一般可分为有损压缩算法和无损压缩算法两大类,经过有损压缩的数据会产生一定的信息损失,该方法普遍应用于数据采样阶段,可在确保数据精度的情况下降低数据的采样密度,比较有名的有OSI公司的旋转门压缩算法。但有损压缩算法不适用于工业实时数据的传输和存储,因为数据的传输和存储阶段必须要保证数据的完整性,因此为了提高系统传输效率,减少磁盘空间占用,工业实时数据的传输和存储阶段需要采用无损压缩算法。无损压缩技术的工作原理是通过一定的编码手段减少数据中的重码冗余部分,从而降低数据的大小,在恢复时按照解压的规则完整地恢复数据。不同的无损压缩技术优势主要体现在压缩率和压缩速度上,针对数据的结构及种类,不同压缩技术的表现相差很大。
[0004]为了提升工业实时数据传输和存储效率,目前大部分的工业实时数据库采用Zip、LZO或Snappy等通用型无损压缩算法。但是这种类型的压缩算法没有考虑到工业实时数据的物理特征,算法比较复杂,CPU运算量普遍较大,如果在工业实时数据库的海量实时数据压缩中使用这些压缩算法,会造成工业实时数据库系统资源占用过高,数据查询性能降低等一系列问题。

技术实现思路

[0005]本专利技术的目的是为了针对上述现有技术的不足,提供了一种工业实时数据无损编码压缩方法,根据工业实时数据的物理特征进行高效的数据编码压缩,使工业实时数据的传输和存储效率更高、系统资源占用更低。
[0006]为了实现上述目的,本专利技术采用的技术方案是:
[0007]一种工业实时数据无损编码压缩方法,包括以下步骤:
[0008]1)获取输入的一个工业实时数据测点的一组时序性的待存储数据集合,将集合中第一个数据完整存储;
[0009]2)对数据集合中第二个数据开始依次进行编码压缩,对于每个待压缩数据依次将数据的时戳部分、质量部分、值部分压缩,以编码压缩格式存储。
[0010]本专利技术进一步的改进在于,步骤1)所述的数据集合中的第一个数据在压缩时不经
过编码,直接存储在压缩集合的首位。
[0011]本专利技术进一步的改进在于,步骤2)中,每个待压缩数据以前一数据为基准,通过与前一数据对比进行压缩,具体实现方法如下:
[0012]对待压缩数据的时戳秒值进行编码压缩,将待压缩数据秒值减去前一数据秒值,差值作为秒值编码;
[0013]对待压缩数据的时戳豪秒值进行编码压缩,将待压缩数据毫秒值与前一数据毫秒值对比,相同的毫秒值压缩不存储,不同的毫秒值作为毫秒值编码;
[0014]对待压缩数据的质量值进行编码压缩,将待压缩数据质量值与前一数据质量值对比,相同的质量值压缩不存储,不同的质量值作为质量值编码;
[0015]对待压缩数据的数据值进行编码压缩,不同数据类型的数据进行相应的编码。
[0016]本专利技术进一步的改进在于,所述的不同数据类型编码方法分为四类:开关类型;int32、uint32、float32类型;int64、uint64类型;float64类型;其中:
[0017]开关类型值为0、1、2时,压缩不存储,为其他值时,值作为数据值编码;
[0018]int32、uint32、float32类型值从高字节向低字节与前一数据值进行对比,如果高字节相同,则压缩这个字节,继续向低字节比较,否则停止压缩,未压缩值作为数据值编码;
[0019]int64、uint64类型值从高字节向低字节以2字节为单位与前一数据值进行对比,如果高2字节相同,则压缩这两个字节,继续向低位比较,否则停止压缩,未压缩值作为数据值编码;
[0020]float64类型值的低4字节不压缩,对高4字节从高字节向低字节与前一数据值进行对比,如果高字节相同,则压缩这个字节,继续向低字节比较,否则停止压缩,未压缩值作为数据值编码。
[0021]本专利技术进一步的改进在于,所述编码压缩格式由五个部分构成:压缩状态码、秒差值、毫秒值、质量值和数据值。
[0022]本专利技术进一步的改进在于,压缩后的时戳秒差值、毫秒值、质量值、数据值编码存储在对应的部分中。
[0023]本专利技术进一步的改进在于,所述编码压缩格式中的压缩状态码包含四个区域:秒差值字节数、毫秒值字节数、质量值字节数和值字节数。
[0024]本专利技术进一步的改进在于,压缩后的时戳秒差值、毫秒值、质量值、数据值编码状态存储在对应的区域中。
[0025]本专利技术至少具有如下有益的技术效果:
[0026]1.本专利技术方法可以对一测点的一组时序性数据集合进行高效的无损压缩。虽然集合中第一个数据没有进行压缩,但后续所有数据均可以得到充分的压缩,因为数据集合中数据间关联性很高,方法有效地压缩了前后数据关联性部分,且不会丢失任何信息。
[0027]2.本专利技术方法很巧妙地利用了工业实时数据的物理特征:一般由时戳、质量和值三部分组成,对每个待压缩数据以前一数据为基准,分别对时戳、质量和值进行充分压缩。由于数据集合是时序性的,因此时戳部分只增不减,可以有效地利用秒值的差值来高度压缩;毫秒值部分大多数场景未被利用,可以被高度压缩;质量部分值大多数相同,有少量波动,可以被高度压缩;值部分在数据采样过程中,两次采样值一般不会有太大的变化,可以根据数据类型针对性压缩。
[0028]3.本专利技术方法对不同测点数据类型分别进行分析,主要分为开关类型、整数类型和浮点类型数据,从每个数据类型测点值之间特点出发,对数据值充分压缩。其中开关类型数据大部分为0、1、2的三种状态,其他状态最大占用1个字节,可以被高度压缩;整数类型数据通过计算前后值之差来缩小数据范围进行压缩;浮点类型数据在前后值相差的波动不大时,低字节底数部分差别较大,不易被压缩,但高字节的符号位和指数部分可压缩性更大一些。
[0029]4.本专利技术方法解压时以第一个完整数据为参照,根据压缩状态码可以很快地进行逆向解码,且不会造成数据损失。压缩状态码记录了压缩字节数,根据压缩值与前数据值就可以直接恢复出原值,计算量很小。
[0030]综上,本专利技术方法增强了数据无损压缩编码的针对性,利用工业实时数据的物理性质,通过对编码结构及压缩算法重新设计,对数据的时戳、质量、值的每一部分分别进行了充分压缩。其优点在于压缩结构简单,针对工业实时数据压缩相比通用方法的压缩率和性能都得到了很大的提升,从而很大的提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工业实时数据无损编码压缩方法,其特征在于,包括以下步骤:1)获取输入的一个工业实时数据测点的一组时序性的待存储数据集合,将集合中第一个数据完整存储;2)对数据集合中第二个数据开始依次进行编码压缩,对于每个待压缩数据依次将数据的时戳部分、质量部分、值部分压缩,以编码压缩格式存储。2.根据权利要求1所述的一种工业实时数据无损编码压缩方法,其特征在于,步骤1)所述的数据集合中的第一个数据在压缩时不经过编码,直接存储在压缩集合的首位。3.根据权利要求1所述的一种工业实时数据无损编码压缩方法,其特征在于,步骤2)中,每个待压缩数据以前一数据为基准,通过与前一数据对比进行压缩,具体实现方法如下:对待压缩数据的时戳秒值进行编码压缩,将待压缩数据秒值减去前一数据秒值,差值作为秒值编码;对待压缩数据的时戳豪秒值进行编码压缩,将待压缩数据毫秒值与前一数据毫秒值对比,相同的毫秒值压缩不存储,不同的毫秒值作为毫秒值编码;对待压缩数据的质量值进行编码压缩,将待压缩数据质量值与前一数据质量值对比,相同的质量值压缩不存储,不同的质量值作为质量值编码;对待压缩数据的数据值进行编码压缩,不同数据类型的数据进行相应的编码。4.根据权利要求3所述的一种工业实时数据无损编码压缩方法,其特征在于,所述的不同数据类型编码方法分为四类:开关类型;int32、uint32、float32类型;int64、uint64类型;flo...

【专利技术属性】
技术研发人员:何清王奕飞王毅何新
申请(专利权)人:西安热工研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1