一种工业实时数据的快速压缩方法

文档序号:7522761阅读:389来源:国知局
专利名称:一种工业实时数据的快速压缩方法
一种工业实时数据的快速压缩方法技术领域
本发明属于数据压缩技术领域,更为具体地讲,涉及一种工业实时数据的快速压缩方法。
背景技术
1、数据压缩概述
数据压缩技术在图像,音频处理等领域已有非常广泛的应用,技术日趋先进成熟并已形成了国际化标准,如图像处理领域的JEPG压缩技术,音频处理中的MP3压缩技术等。 但是由于现代存储设备容量的不断增大,在工业自动化领域则应用的较少,在电力系统、故障检测与诊断系统、过程控制、过程监测、多通道数据采集系统等会产生海量实时和历史数据的自动化系统中,数据压缩还没有得到广泛的重视和应用。在多通道自动测试系统中数据一般由数据采集模块采集得到,采集的信号一般为传感器信号,目前的数据采集模块采样频率都较高,例如总采样速率为ΙΟΟΚΗζ,则如果系统为16个通道,单个通道每秒可采集 62次,现行更高的从几十MHz到几十GHz不等的采集模块比这个次数还要高的多,这样每秒就可产生大量高精度的浮点数据,面对海量的存储数据,人们解决的办法只是单纯的增加存储设备,而很少应用数据压缩技术对其中大量的冗余数据进行压缩,以达到减少数据量, 节约存储设备的目的。
2.现有工业实时数据压缩方法
数据压缩根据不同编码对原始文件数据产生的不同损失效果,可把数据压缩技术分为无损压缩和有损压缩。无损压缩一般以通用压缩理论为基础,采取哈佛曼算法等经典的压缩算法,具有无失真、无差错或无噪声编码的性质。有损压缩是在压缩过程中损失一定的信息以获得较高的压缩比。有损压缩虽然不能完全恢复原始数据,但损失的数据对理解原始数据的信息影响不大,并由此获得较大的压缩比,从而节约大量存储空间。
目前比较有效并且应用较多的工业实时数据压缩方法主要有稳态阈值法,即死区算法,旋转门算法,线性外插算法,这三种方法均属于有损压缩。
2. 1稳态阈值法
稳态阈值法的原理是以一般能容忍的失真范围为限定,通过判断当前数据值与下一个数据值是否大于压缩限值来决定是否舍弃或记录该数据,限值设置越大,数据压缩率越高,但失真度也越大。如图1所示,如果压缩限值设置为0. 5,当前数据值是10. 0,则下一个数据值如果在10. 5以上或9. 5以下都将被记录,并以记录的数据点为起点,设该点的值为y,0. 5为判别门限,判断下一个数据值是否在y 士0. 5之间,如果在,则舍弃该数据点, 如果不在,则记录该数据点,再以记录的数据点为起点,进行判断,对数据进行压缩。如图1 中,打圈的数据点被记录下来。
2. 2旋转门算法
旋转门算法是一种线性趋势化压缩算法,将线性趋势化的斜率变化情况作为重点考虑的因素,强调寻找改变斜率的线性“触发点”,主要有平行四边形和三角形两种处理方式。算法的主要思想是利用当前数据点与前一个存储点缩构成的压缩限值覆盖区来判断数据是否应当保留。如果两点构成的压缩覆盖区能覆盖两点之间所有数据点,则舍弃当前数据点,反之如果有数据点落在覆盖区以外,就保存当前点的前一个数据点,并以该点为新的起点与后读入的点构成新的覆盖区继续判断压缩的取舍点。具体压缩判断流程介绍如下
设旋转门的压缩限值设为0. 1,数据存储时间间隔为Is。从读入的第一个数据点开始,以它到当前数据点之间的连线为中轴,过这两点做一个宽度为2倍压缩限值的平行四边形,判断平行四边形覆盖的区域是否能覆盖所有从上个存储点到当前点之间的所有数据点,随着数据点的读入,以同样的方法作新的平行四边形,如图2所示。
当产生的平行四边形不能容纳上个存储点到当前点之间的所有数据点时,即有数据点落在当前平行四边形覆盖面积之外时,则对当前点通过本段压缩,将一个数据点保存, 其他点舍弃。如图2中,第10秒时有数据点落在了平行四边形覆盖范围之外,所以将起点和前一点,即第9秒的数据点保存,其余数据舍弃。以新保存的数据点为起点继续重复上述过程,判断后续数据点是否满足判别要求。
2. 3线性外插算法
线性外插算法也是一种利用线性化思想进行压缩处理的方法,其主要处理方式是读入两个数据点,用这两点作出一条直线,直线方程为y = ax+b,设后续点的横坐标值为 Xi,把横坐标的值带入直线方程,算出该点的对应的函数值乂,Yi是实际读入点的数据值, S是门限值,判断后续点是否满足y' -δ <y<y' +δ,若满足则舍弃该数据点,不满足则记录该数据点及该数据点的前一点的值。并以不满足门限值的数据点为下次判断直线的起点,与后续的一个数据点作出直线进行判断,算法的主要思路如图3所示。
重复上述判别步骤,经过判断,只有图3中打圈的点被保存下来,其余满足判别门限的点都被压了。
上述方法中,稳态阈值法更适用于相对稳态的变化数据,对实时变化较大的数据效果则不是很好;旋转门压缩算法,主要利用当前数据点与前一个存储点所构成的压缩限制覆盖区来判断数据是否该保留,此算法中,可能重复判断多个数据点,从而使压缩时间过长;线性外插算法对压缩限值较小的数据压缩效果较好,对压缩限值较大时效果则较差。发明内容
本发明的目的在于克服旋转门压缩算法压缩时间过长的不足,提供一种计算量小、判断速度快的工业实时数据的快速压缩方法。
为实现上述发明目的,本发明工业实时数据的快速压缩方法,其特征在于,包括以下步骤
(1)、将数据起点(Xi,Yi)保存,读入下一个数据点(Xj,y」),此时,j = i+1 ;
(2)、将下一数据点(X」,Yj)与前一保存点(Xi,Yi)生成上下两斜率值kup、klow
kup = (yj+d-Yi) / (Xj-Xi)
klow = (Yj-Cl-Yi) / (Xj-Xi)①
其中d为压缩限值,j = i+1 ;
等待后续点(Xj+1,yJ+1)到来,并作为当前点;
(3)、计算当前点(xj+1,yJ+1)与前一个保存点(Xi,Yi)的斜率值k
k = (yJ+1-yi) / (Xj+1-Xi)②;
(4)、如果kup彡k彡klow成立,则进行步骤(5),如果不成立,则进行步骤(6)
(5)、将上一数据点(Xj,Yj)舍弃,如果当前点(xj+1,yJ+1)为采样数据的最后一个点,则保存该数据点,压缩结束;
否则,用当前点(xj+1,yj+1)计算出新的上下两斜率值^;、Κ,·
Kp = +d-yt) /(x;+1 - X1)
kL = (y]+i-d-y,)l(x]+l -X1)③;
并比较,如果、> Kp,则‘ =Kp,否则kup保持不变;如果< k'low ,%\\klow = Kow,否则klOT保持不变;
j = j+1,继续等待下一数据点(xj+1,yJ+1)的到来,并作为当前点,返回步骤(3);
(6)、将上一数据点(Xj,yj)保存,并作为保存点(Xi,yi);如果当前点(xj+1,yj+1)为采样数据的最后一个点,则保存该数据点,压缩结束;否则,返回步骤O)。
本发明的发明目的是这样实现的
本发明工业实时数据的快速压缩方法简称为关键窗趋势法,在旋转门算法的思路,对生成的判定区域加入了斜率的概念,用于找到变化的信号中的斜率触发点。关键窗趋势法在旋转门算法的基础上进行的改进,目的是使算法更简捷,从而使代码实现时计算量小、判断速度快。首先根据压缩限值生成上下两个斜率kup、klM构成一个窗口,读入下一个数据点后,判断该点是否在这个窗口内,如果在,则前一点可以舍弃,然后生成新的上下斜率Kp、K,,这两个斜率是与原先的两个斜率比较得出的,从而使关键窗口缩小。
关键窗趋势法每个数据点只判断一次,即只判断每个数据点与上一个保存数据点形成的斜率与上下限斜率的大小。而旋转门算法,若有η点在窗内,则窗内的第一点需判断 η次,即同一个点经过了 η次比较,第二点也重复比较了 η-1次,后续点比较次数依次递减, 在窗内的η个点累计比较次数为(η+1)η/2,计算量相对较大,在判断速度上会明显低于关键窗趋势法。


图1是现有技术稳态阈值法一实例示意图2是现有技术旋转门算法一实例示意图3是现有技术线性外插算法一实例示意图4是本发明工业实时数据的快速压缩方法一具体实施方式
示意图5是需要压缩的工业实时数据;
图6是图5的工业实时数据四种压缩方法在不同压缩限值下的压缩比曲线图。
具体实施方式
下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图4是本发明工业实时数据的快速压缩方法一具体实施方式
示意图。
在本实施例中,如图4所示,在图4(a)将数据起点O^yi)保存,保存点O^yi)与下一个读入数据点生成关键窗的上下限斜率值、、1^ ,其中,」=i+1。
在图4(b)中下一个数据点0^+1,&+1)作为当前点,计算与保存点(Xyyi)生成的斜率值k,并比较该斜率值k与图4 (a)中上下限斜率值kup、klOT的大小,若满足kup彡k彡klow 条件,则舍弃当前点(xj+1,yj+1)的前一点,即数据点(Xj,yj)。由图4(b)可知,该斜率值Idi 足上述条件,故舍去当前点(xj+1,yj+1)的前一点,即数据点(Xj,yj)。
关键窗的起点不变,即仍然为起点(Xi,yi),重新生成关键窗的上下两斜率值 Kp、Kw,并比较,如果、> Kp mKP = Kp,否则kup保持不变;如果< Kow Mklow = k'low,否则klOT保持不变,由图4 (b)可知,Kp > Kp ,Kw > K。W,故‘ =Kp,klow保持不变,如图4 (C)中所示。
j = j+1,继续等待下一数据点(xj+1,yj+1)的到来,并作为当前点,返回步骤(3),重新计算斜率值k。由图4(d)可知,斜率值k仍然满足kup彡k彡klOT,则舍弃当前点(xj+1,yj+1) 的前一点,即数据点(Xj,y」)。计算新的上下两斜率值^;、C,由于、>《,^>(,故 Kp=Kp, U呆持不变,新的关键窗上下限值kup、klOT,新取得的关键窗上下限值如图4(e) 所示。
j = j+l,继续等待下一数据点(Xj+1,yj+1)的到来,并作为当前点,返回步骤(3),重新计算斜率值k。由图4(f)中,斜率值k不满足kup彡k彡klOT,保存该数据点0^+1,&+1)的前一数据点yp,返回步骤⑵,以该点为新的保存点(Xi,Yi)与下一数据Yj)点生成关键窗的上下斜率值kup、klOT,如图(g)。
同理,下一个数据点(xj+1,yJ+1)作为当前点,如图4(h)所示,计算与保存点(Xi, Yi)生成的斜率值k,并比较该斜率值k与图4(a)中上下限斜率值kup、klOT的大小,满足 kup彡k彡klOT条件,舍弃当前点(xj+1,yj+1)的前一点,即数据点(Xj,yj);重新生成关键窗的上下两斜率值<、Kw,由于、<KP K,故kup保持不变,,关键窗上下斜率值kup、klOT如4图⑴所示,在这段数据,最后归档的数据点为图4(j)中的实心点。
1、四种种压缩方法压缩率的比较
压缩测试即为对压缩效果的测试,本测试工业实时数据如图5所示,点数为6000 点,得出各压缩方法在不同压缩限值时的压缩测试结果。num表示压缩后点数,ratio表示压缩比,结果如表1所示。
权利要求
1. 一种工业实时数据的快速压缩方法,其特征在于,包括以下步骤(1)、将采集数据起点(Xpyi)保存,读入下一个数据点(Xj,yj);O)、将下一数据点(Xj,yj)与前一保存点(Xi,yi)生成上下两斜率值kup、klOT:kup = (yj+d-Yi) / (Xj-Xi)kiow = (yj-d-Yi) / (Xj-Xi)①其中d为压缩限值,j = i+l;等待后续点0^+1,&+1)到来,并作为当前点;(3)、计算当前点0^+1,乃+1)与前一个保存点(Xi,yi)的斜率值k: k = (yJ+1-yi) / (xj+i-xi)②;(4)、如果kup< k < klow成立,则进行步骤(5),如果不成立,则进行步骤(6)(5)、将上一数据点(Xj,Yj)舍弃,如果当前点(xj+1,yJ+1)为采样数据的最后一个点,则保存保存该数据点,压缩结束;否则,用当前点(xj+1,yj+1)计算出新的上下两斜率值仏、K,-KP=(y]+l+d-yr)l(Xj+l-Xr)kL = (y]+i-d-y,) /(x,+1 -X1)③;并比较,恤茱Kp >Kp,则‘ =Kp,否则kup保持不变;如果Iw mlow=k'low,否则 klOT保持不变;j = j+1,继续等待下一数据点。+1,乃+1)的到来,并作为当前点,返回步骤⑶;(6)、将上一数据点(Xj,yj)保存,并作为保存点(Xi,yi);如果当前点(xj+1,yj+1)为采样数据的最后一个点,则保存该数据点,压缩结束;否则,返回步骤O)。
全文摘要
本发明公开了一种工业实时数据的快速压缩方法,首先根据压缩限值生成上下两个斜率kup、klow构成一个窗口,读入下一个数据点后,判断该点是否在这个窗口内,如果在,则前一点可以舍弃,然后生成新的上下斜率这两个斜率是与原先的两个斜率比较得出的,从而使关键窗口缩小。旋转门算法,若有n点在窗内,在窗内的n个点累计比较次数为(n+1)n/2,计算量相对较大,在判断速度上会明显低于关键窗趋势法。本发明工业实时数据的压缩方法每个数据点只判断一次,即只判断每个数据点与上一个保存数据点形成的斜率与上下限斜率的大小。这样进行工业实时数据压缩,用代码实现时计算量小、判断速度快。
文档编号H03M7/30GK102510287SQ201110343878
公开日2012年6月20日 申请日期2011年11月3日 优先权日2011年11月3日
发明者古天祥, 温李慧, 詹惠琴, 赵涛, 金鸣, 陈虹吉, 陶宇翔 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1