一种监测数据无损压缩方法、装置、设备及可读存储介质

文档序号:30701992发布日期:2022-07-09 20:10阅读:83来源:国知局
一种监测数据无损压缩方法、装置、设备及可读存储介质

1.本发明涉及数据计算技术领域,具体而言,涉及一种监测数据无损压缩方法、装置、设备及可读存储介质。


背景技术:

2.随着国家对交通构筑物安全的重视,交通构筑物上的各个角落布置的传感器密度会越来越高,相对应监测频率也会随着提高,采集每时每刻的监测数据,每年产生的数据达到pb级之多。目前在交通构筑物结构健康监测工作中,在交通构筑物的特定关键部位安装的传感器所采集到的交通构筑物结构响应数据均属于海量数据范畴,数据在长期的累积下,使得数据处理与分析及存储工作的工作量日益增加。当前的压缩技术应对交通构筑物监测系统中产生的监测数据时,存在压缩率低的缺点。


技术实现要素:

3.本发明的目的在于提供一种监测数据无损压缩方法、装置、设备及可读存储介质,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:第一方面,本技术提供了一种监测数据无损压缩方法,包括:获取待压缩数据表,所述待压缩数据表包括传感器采集到的监测值和每个所述监测值对应的时间数据,每个所述监测值为所述传感器按照时间顺序采集得到;根据预设的时间差分数学模型将所有所述时间数据进行计算得到时间戳压缩结果,所述时间戳压缩结果包括一个起始时间戳和所有所述时间数据进行二次差值法处理后得到的时间戳二次差值;根据预设的数据进制转换数学模型将所有所述监测值进行计算得到待压缩数值;根据预设的哈夫曼编码数学模型将所述待压缩数值进行计算得到监测值压缩结果。
4.第二方面,本技术还提供了一种监测数据无损压缩装置,包括:数据采集模块,用于获取待压缩数据表,所述待压缩数据表包括传感器采集到的监测值和每个所述监测值对应的时间数据;第一计算模块,用于根据预设的时间差分数学模型将所有所述时间数据进行计算得到时间戳压缩结果,所述时间戳压缩结果包括一个起始时间戳和所有所述时间数据进行二次差值法处理后得到的时间戳二次差值;第二计算模块,用于根据预设的数据进制转换数学模型将所有所述监测值进行计算得到待压缩数值;第三计算模块,用于根据预设的哈夫曼编码数学模型将所述待压缩数值进行计算得到监测值压缩结果。
5.第三方面,本技术还提供了一种监测数据无损压缩设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现所述监测数据无损压缩方法的步骤。
6.第四方面,本技术还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于监测数据无损压缩方法的步骤。
7.本发明的有益效果为:本发明通过针对监测值的浮点数特性,采用包含差分思想的算法编码进行编码转
换、进制转换编码和哈夫曼编码三种编码思想相结合,最终构建监测值无损压缩算法模型,完成对监测值的压缩编码,达到提高数据压缩率、降低数据库存储压力的效果。
8.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
9.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
10.图1为本发明实施例中所述的监测数据无损压缩方法流程示意图;图2为本发明实施例中所述的监测数据无损压缩装置结构示意图;图3为本发明实施例中所述的监测数据无损压缩设备结构示意图;图4为本发明实施例中所述的ascii码转换示意图。
11.图中标记:1、数据采集模块;2、第一计算模块;21、第一计算单元;22、第二计算单元;3、第二计算模块;31、第三计算单元;311、第一判断单元;312、第二判断单元;313、第三判断单元;32、第四计算单元;321、第五计算单元;322、第六计算单元;4、第三计算模块;41、第七计算单元;42、第八计算单元;43、第九计算单元;800、监测数据无损压缩设备;801、处理器;802、存储器;803、多媒体组件;804、i/o接口;805、通信组件。
具体实施方式
12.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
13.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
14.实施例1:本实施例提供了一种监测数据无损压缩方法。
15.参见图1,图中示出了本方法包括步骤s100、步骤s200、步骤s300和步骤s400。
16.步骤s100、获取待压缩数据表,待压缩数据表包括传感器采集到的监测值和每个监测值对应的时间数据,每个监测值为传感器按照时间顺序采集得到。
17.需要说明的是,在步骤s100中,采集由交通构造物内传感器设备产生的时序数据,将采集到的监测数据进行缺失值填补、数据标准化、异常值剔除等操作,将得到的数据整理
为待压缩数据表,简化后续压缩过程的步骤,提升数据处理的效率。
18.s200、根据预设的时间差分数学模型将所有时间数据进行计算得到时间戳压缩结果,时间戳压缩结果包括一个起始时间戳和所有时间数据进行二次差值法处理后得到的时间戳二次差值。
19.需要说明的是,在步骤s200中,本步骤是对时间数据进行无损压缩,通过时间数据转换为时间戳形式后,将时间戳数据进行二次差值后得到时间戳压缩结果。通过对时间数据和监测值分别压缩处理,降低压缩数据的计算量。
20.s300、根据预设的数据进制转换数学模型将所有监测值进行计算得到待压缩数值。
21.需要说明的是,在步骤s300中,数据进制转换数学模型通过对浮点数形式的监测值进行多次进制转换,最终转化为ascii编码,有效降低了存储成本。
22.s400、根据预设的哈夫曼编码数学模型将待压缩数值进行计算得到监测值压缩结果。
23.需要说明的是,在步骤s400中,哈夫曼编码数学模型通过对待压缩数值中ascii码符号出现频率进行假设后构造哈夫曼编码数,通过存储哈夫曼编码数大幅降低存储成本。
24.在本技术所公开的具体实施例中,步骤s200中包括步骤s210和步骤s220。
25.s210、将时间数据转换为unix时间戳形式并按照时间顺序排列得到时间戳数据列。
26.s220、根据预设的时间戳二次差值法数学模型将时间戳数据列进行计算得到起始时间戳和时间戳二次差值。
27.需要说明的是,如表1所示,表1示出了时间戳二次差值法计算表,本技术将时间数据转换为unix时间戳数据,按照时间戳数据排列后提取出起始时间戳数据进行存储,其余的时间戳数据采用对差值法进行二次差值来保证二次差值90%以上的数为0可以用1bit位进行存储,出现的跳点、缺点等情况在基于之前缺失值填补也能保证二次差值在[-60,60]以内,这一类的二次差值使用控制位
‘1’
来标记并用7bit来存储d
n-d
n-1
,在时间戳二次差值法计算表中6个时间戳只需要64bit+8*2+3*1=83bit进行存储,比直接存储时间戳存储成本为(长整型为8字节64bit*6)要大幅度降低。
[0028] 表1 时间戳二次差值法计算表
在本技术所公开的具体实施例中,步骤s300中包括步骤s310、和步骤s320。
[0029]
s310、根据预设的差分编码数学模型将所有监测值进行计算得到监测值编码,监测值编码为十进制编码。
[0030]
在本技术所公开的具体实施例中,步骤s310中包括步骤s311、步骤s312和步骤s313。
[0031]
s311、遍历所有监测值,根据时间顺序对相邻两个监测值进行差值计算,判断计算结果是否为0。
[0032]
s312、若相邻监测值的差值为0,则将相邻两个监测值中时间顺序靠后一个监测值数据作为0存储至第一数组,第一数组用于存储差值为0的数组。
[0033]
s313、若相邻两个监测值的差值不为0,则对相邻两个监测值的整数部分和浮点数部分分别进行差值处理,计算得到正整数数组。
[0034]
需要说明的是,在上述步骤中,如表2所示,表2示出了监测值差分编码表,将采集到的监测值按照时间顺序进行排列,遍历所有监测值判断监测值与前一个点差值是否为0,若差值为0,则声明一个第一数组(delta数组)用于存储与前一个点差值为0的索引值。
[0035]
如果不为0,则继续执行如下步骤:取监测值整数部分xi,计算x
i-x
i-1
保存整数部分差值数组dx(默认dx[0]为第一条数据整数部分);取监测值小数部分(默认取四位)将其整数化保存为数组ex;分别遍历整数差值数组dx与小数整数化数组ex进行拼接,拼接规则如下,其中i为第i条数据,为编码后结果:当i=0为第一条数据时,;其中,rx为正整数数组,dx为整数部分差值数组,ex为小数部分差值数组,i为第i
条数据。
[0036]
当delta[i]=0成立时:表明监测值与前一个监测值相同则不重复记录,;其中,rx为正整数数组,i为第i条数据。
[0037]
当dx[i]=0成立时:表明监测值整数部分与前一个监测值整数部分相同则只记录小数部分(则rx[i]长度默认为4位),;其中,rx为正整数数组,dx为整数部分差值数组,ex为小数部分差值数组,i为第i条数据。
[0038]
当dx[i]》0成立时:表明监测值整数大于前一个部分监测值,监测值的拼接规则为 其中,rx为正整数数组,dx为整数部分差值数组,ex为小数部分差值数组,i为第i条数据。
[0039]
该公式表示将整数差值部分+小数差值部分+
‘0’
拼接组成的字符串转换成整数,末尾的
‘0’
是》0的标志位(长度范围在5-9位之间);当《0成立时:表明监测值整数大于前一个部分监测值,监测值的拼接规则为其中,rx为正整数数组,dx为整数部分差值数组,ex为小数部分差值数组,i为第i条数据。
[0040]
该公式表示将整数差值部分放最前面+小数差值部分+
‘1’
拼接组成的字符串转换成整数,末尾的
‘1’
是《0的标志位(长度范围在5-9位之间)。
[0041]
编码后将浮点数转换为4-9位之间的正整数存储12*4=48bytes存储由此可见通过该种方式编码将浮点数转换为正整数同时还能够降低数据的平均长度,提升数据的压缩率,提高系统的资源使用效率。
[0042]
表2 监测值差分编码表
s320、根据预设的编码进制转换模型将监测值编码进行计算得到待压缩数值,待压缩数值的进制高于监测值差分编码的进制。
[0043]
在本技术所公开的具体实施例中,步骤s320中包括步骤s321和步骤s322。
[0044]
s321、对监测值差分编码进行进制转换得到二进制形式编码。
[0045]
s322、将二进制形式编码按照每7个比特位进行ascii编码得到待压缩数值,待压缩数值为ascii码符号。
[0046]
需要说明的是,在上述步骤中,如图4和表3所示,图4示出了ascii码转换示意图,表3示出了监测值ascii编码表,在utf-8 (unicode transformation format)中,单字节字符对应ascii码中128个字符,如果能将10进制字符的信息与ascii码建立联系,就能将10进制转化成128进制,就能做到1个字节存储log2128=7bit的信息,实现空间利用率达到87.5%。本技术采用的方法是将10进制字符组成的字串对应的数字转化为2进制形式,然后每7个bit与一个ascii码对应(ascii码中128个字符可对应0-127),得出待压缩数值,由监测值ascii编码表结果可知,压缩前存储12条浮点数记录每条需要8bytes来保存,12条记录共需要12*8=96bytes存储,编码后将浮点数转换为4-9位之间的正整数存储12*4=48bytes,然后基于进制压缩转换编码方式将整数经过位与运算后转换为ascii码,其存储成本为3+2+2+2+1+1+2+3+2+2+2+2=24bytes相比于最开始存储浮点数的96bytes来说压缩比达到4,有效降低了存储成本。
[0047] 表3 监测值ascii编码表
在本技术所公开的具体实施例中,步骤s400中包括步骤s410、步骤s420和步骤s430。
[0048]
s410、根据待压缩数值计算得到字符频率表,字符频率表中包括了待压缩数值中的数值与数值对应的频率。
[0049]
s420、对字符频率表进行哈夫曼编码计算得到哈夫曼编码表。
[0050]
s430、根据待压缩数值和哈夫曼编码表计算得到监测值压缩结果。
[0051]
需要说明的是,在上述步骤中,本技术提出了在进制转换的基础上已经将十进制整数转换成128进制的ascii码,这样做的目的就是为了更好地结合哈夫曼编码的特点,编码范围只包含128个ascii码,本技术使用哈夫曼原理对上述8条监测数据中ascii码符号出现频率进行假设后构造哈夫曼编码树其符号频率得到了表4所示的基于ascii码频率对应哈夫曼编码表。根据表4中计算得到的ascii码出现频率存储ascii码编码总共需要10000bytes空间,大小为200+300+600+700+1000+3200+1900+2100=10000bytes,如果按照哈夫曼编码存储该ascii码表存储总共需要3275bytes空间大小为200*5+300*5+600*4+700*4+1000*4+3200*2+1900*2+2100*2)/8bit=3274.5bytes+8bytes+4bytes(最后的8+4bytes为哈夫曼编码表的存储成本),其压缩比达到3.05表明压缩效果较好,完成了对监测值的压缩编码,降低数据库的存储压力,提高系统的资源使用率。
[0052]
表4 基于ascii码频率对应哈夫曼编码表
实施例2:如图2所示,本实施例提供了一种监测数据无损压缩装置,装置包括数据采集模块1,用于获取待压缩数据表,待压缩数据表包括传感器采集到的监测值和每个监测值对应的时间数据。
[0053]
第一计算模块2,用于根据预设的时间差分数学模型将所有时间数据进行计算得到时间戳压缩结果,时间戳压缩结果包括一个起始时间戳和所有时间数据进行二次差值法处理后得到的时间戳二次差值。
[0054]
第二计算模块3,用于根据预设的数据进制转换数学模型将所有监测值进行计算得到待压缩数值。
[0055]
第三计算模块4,用于根据预设的哈夫曼编码数学模型将待压缩数值进行计算得到监测值压缩结果。
[0056]
在一些具体的实施例中,第一计算模块2包括:第一计算单元21,用于将时间数据转换为unix时间戳形式并按照时间顺序排列得到时间戳数据列。
[0057]
第二计算单元22,用于根据预设的时间戳二次差值法数学模型将时间戳数据列进行计算得到起始时间戳和时间戳二次差值。
[0058]
在一些具体的实施例中,第二计算模块3包括:第三计算单元31,用于根据预设的差分编码数学模型将所有监测值进行计算得到监测值编码,监测值编码为十进制编码。
[0059]
第四计算单元32,用于根据预设的编码进制转换模型将监测值编码进行计算得到待压缩数值,待压缩数值的进制高于监测值差分编码的进制。
[0060]
在一些具体的实施例中,第三计算单元31包括:第一判断单元311,用于遍历所有监测值,根据时间顺序对相邻两个监测值进行差值计算,判断计算结果是否为0。
[0061]
第二判断单元312,用于判断若相邻监测值的差值为0,则将相邻两个监测值中时间顺序靠后一个监测值数据作为0存储至第一数组,第一数组用于存储差值为0的数组。
[0062]
第三判断单元313,用于判断若相邻两个监测值的差值不为0,则对相邻两个监测
值的整数部分和浮点数部分分别进行差值处理,计算得到正整数数组。
[0063]
在一些具体的实施例中,第四计算单元32包括:第五计算单元321,用于对监测值差分编码进行进制转换得到二进制形式编码。
[0064]
第六计算单元322,用于将二进制形式编码按照每7个比特位进行ascii编码得到待压缩数值,待压缩数值为ascii码符号。
[0065]
在一些具体的实施例中,第三计算模块4包括:第七计算单元41,用于根据待压缩数值计算得到字符频率表,字符频率表中包括了待压缩数值中的数值与数值对应的频率。
[0066]
第八计算单元42,用于对字符频率表进行哈夫曼编码计算得到哈夫曼编码表。
[0067]
第九计算单元43,用于根据待压缩数值和哈夫曼编码表计算得到监测值压缩结果。
[0068]
实施例3:相应于上面的方法实施例,本实施例中还提供了一种监测数据无损压缩设备,下文描述的一种监测数据无损压缩设备与上文描述的一种监测数据无损压缩方法可相互对应参照。
[0069]
图3是根据示例性实施例示出的一种监测数据无损压缩设备800的框图。如图3所示,该监测数据无损压缩设备800可以包括:处理器801,存储器802。该监测数据无损压缩设备800还可以包括多媒体组件803, i/o接口804,以及通信组件805中的一者或多者。
[0070]
其中,处理器801用于控制该监测数据无损压缩设备800的整体操作,以完成上述的监测数据无损压缩方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该监测数据无损压缩设备800的操作,这些数据例如可以包括用于在该监测数据无损压缩设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该监测数据无损压缩设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near fieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:wi-fi模块,蓝牙模块,nfc模块。
[0071]
在一示例性实施例中,监测数据无损压缩设备800可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器
(digitalsignal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的监测数据无损压缩方法。
[0072]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的监测数据无损压缩方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由监测数据无损压缩设备800的处理器801执行以完成上述的监测数据无损压缩方法。
[0073]
实施例4:相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种监测数据无损压缩方法可相互对应参照。
[0074]
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的监测数据无损压缩方法的步骤。
[0075]
该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
[0076]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0077]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1