贪婪式智能拟合有损数据压缩方法

文档序号:7523157阅读:214来源:国知局
专利名称:贪婪式智能拟合有损数据压缩方法
技术领域
本发明涉及一种数据压缩领域中的贪婪式智能拟合有损数据压缩方法。
背景技术
目前实时数据压缩的主要方法可分为三类,即分段线性方法、矢量量化方法和信号变换方法。分段线性方法包括矩形波串法(boxcar)、后向斜率法(backward slope)、旋转门趋势化方法(SDT)和分段线性在线趋势化方法(PLOT),尽管这些方法压缩比不如信号变换方法高,但其优点是算法简单、代码执行速度快,已经在过程工业中得到广泛使用。矢量量化方法需要花很多时间计算码本,且码本不具有通用性,即一个数据集的码本不能用于别的数据集,由于计算量太大,矢量量化方法不适合过程数据在线压缩。信号变换方法很多,如傅立叶变换、小波变换等,虽然小波变换方法目前还存在一些实际技术问题需要解决,但长期以来傅立叶变换一直是信号处理的主要手段,但它只能获得信号的整个频谱,而很难得到信号的局部特征,不能充分刻画时变、非平稳信号的特征,同时在数据的有损压缩阈值难以控制,再加上有很多实际的问题有待解决,所以实际使用并不多。在传统的线性压缩算法中,一般都是仅仅采用直线来刻画某一段待压缩空间内的数据,无论这段空间内的数据的具体趋势如何,都是一成不变的用直线来进行逼近拟合,而不忽略具体的数据特点, 实际压缩算法时,往往通过依次考察每一个数据点,当某一个数据点误差范围符合用直线来拟合的误差时便继续下一个点的压缩,否则便结束本轮压缩,开始下一轮的压缩,比如传统的旋转门算法。这种单纯的压缩方式往往造成数据的压缩率低,压缩效率低。发明内容
本发明目的是针对现有技术存在的缺陷提供一种贪婪式智能拟合有损数据压缩方法。
本发明为实现上述目的,采用如下技术方案
本发明贪婪式智能拟合有损数据压缩方法,其特征在于包括如下步骤
(I)如果当前数据点为一轮压缩的起始点,置(bU) =ak_E和(bL) = ak_E,结束对ak的处理,ak为当前数据点,UJPLi的函数表达式为久=(KL) ,Xtaj +(bL) ^Ui ={KU) ^xt +(々"),ai 表示第 i 个元素,i = 0、1、2. n, t = 1、2、3. n, k = 1、2、3.. . n,其中(KL)、(KU)表示点的坐标值,E表示误差值、(bL)、(bU)表示数据点的修正值;
(2)对i的任一可能值,如果(KU) ( (KL) i 判断若让Ui经过ak是否会增大(KU) i,如果会使(KU) i增大则增大(KU) i使Ui经过ak ;
(3)对i的任一可能值,如果(KU) ( (KL) i 判断若让Li经过ak是否会减小(KL) i,如果会使(KL) i减小则减小(KL) i使Li经过ak ;
(4)如果对i的所有可能值都有(KU) i > (KL)单独保存此时的ak ;继续按照考察 ak+1,如果符合(KU)i > (KL)i则按照⑵(3)继续考察ak+2、ak+3、ak+4...直至不符合的元素,以不符合的元素为起点开始新一轮的压缩。
在一轮压缩结束后,记录压缩区间的起点和终点数据,同时本算法还需要记录最后一个Si值;算法记录的终点值也不是终点处的原始数据,而是处理完终点数据后Ui和Li, 在终点处函数值的均值。
本发明在实际数据中,通过分析,待压缩的数据在某一段压缩空间内,往往不只是单一的成直线型变化趋势,数据还有其他形式的变化趋势,比如类似抛物线形式的,而且往往结束某轮压缩过程的点是一个“噪点”,如果跳过这个“噪点”继续考察下一个点可以发现它也是符合本轮压缩的误差,可传统的压缩算法却结束了本轮压缩,所以我们的算法在压缩数据时,不仅不用单独的直线去拟合数据变化趋势,同时在每次压缩过程中不仅仅会考察下一个待压缩的点,而是考察下面两个待压缩的点,这样不仅能排除数据噪点的影响,更能大大的提闻压缩比。


图I :数据的变化趋势图2 :元素反抛物线图3 :数据压缩基本流程图4:解压缩程序流程图。
具体实施方式
在工业生产中,数据的变化一般有不同的趋势,所以我们的算法就是在每次压缩过程中考察下面两个待压缩的数据点,特殊处理噪点,自适应的选择数据变化趋势进行曲线拟合压缩。
如图I所示,在分析了数据后,大致发现在一段待压缩的数据段内,大体上有如下 3种变化趋势直线型,抛物线型,反抛物线型。
其中直线型代表平稳变化,即相邻的两个实时数据差值始终保持不变;抛物线型代表变化逐渐增大,即相邻的两个实时数据之间的差值越来越大;反抛物线型逐渐减小,即相邻的两个实时数据之间的差值越来越小。
传统的算法针对以上三种情况只是采用相同的方式如直线型进行拟合,如果要求算法能够取得更好的压缩效果,新的算法必须能根据实际数据的变化趋势在运行时动态的调整拟合函数的表达式的形式。在本项目中,我们假设我们的拟合函数是y = kXta+b(其中t = 1、2、3...11,而1^、3为待定变量,&可以预先取值)------(I)
如图2所示,从拟合函数中可以看出当a = I时函数⑴所表示的图形就是即为直线型,当a = 2时函数⑴所表示的图形就是即为抛物线型,当a = 0. 5时函数⑴所表示的图形就是即为反抛物线型,所以在此我们不妨假设a = 1、2、0. 5三个数。
实际算法中为了控制压缩的阈值即压缩误差,仍然用上下两扇门控制每一轮的压缩
如图所示,以数据点I为起始点。在垂直方向上距离数据点I为E的地方有两个支点。每个元素对应两个连接支点和过程数据的直线或曲线,把这两个直线或曲线看成两扇虚拟的以支点为轴的“门”。i中有三个元素,共有六扇门。算法开始时这六扇门都是关闭的。在算法执行过程中六扇门只能开启不能关闭。以 表示第i(i = 0,1,2)个元素, 以U和1表示a对应的两个直线或曲线的描述函数,则Ui和Li的函数表达式为Li =(KL) ,Xi3i ^bDui =(KU)iXtai +{bU)其中t为实时数据到来的时刻。如图3和图4所示,以a” a2、a3. . . . ak. . . . an表示实际过程数据,假设当前数据点为4,本算法在接收到此后作以下处理(1)如果当前数据点为一轮压缩的起始点,置(bU) = ak-E和(bL) = ak_E,结束对 ak的处理;(2)对i的任一可能值,如果(KU)≥(KL) 判断若让Ui经过^t是否会增大(KU) “如果会使KUi增大则增大(KU)丄使Ui经过ak ;(3)对i的任一可能值,如果KU ( KLi,判断若让Li经过^t是否会减小(KL) 如果会使KLi减小则减小(KL)丄使Li经过ak ;(4)如果对i的所有可能值都有(KU) i > (KL) i,单独保存此时的ak,继续按照考察 ak+1,如果符合条件则按照(2) (3)继续ak+2,ak+3>ak+4. · ·只有当ak+1也不符合,才以ak+1为起点开始新一轮的压缩。需要在一轮压缩结束后,记录压缩区间的起点和终点数据,同时本算法还需要记录最后一个%值。算法记录的终点值也不是终点处的原始数据,而是处理完终点数据后Ui和Li,在终点处函数值的均值。在数据还原时,我们根据在压缩算法中每一轮的压缩所记录的事件的信息,包括压缩点的时间点,压缩点的拟合值和噪点的值、压缩点的拟合曲线参数,然后再利用函数将原来的点还原出来。
权利要求
1.一种贪婪式智能拟合有损数据压缩方法,其特征在于包括如下步骤(1)如果当前数据点为一轮压缩的起始点,置(bu)=ak-E和(bL) =ak-E,结束对ak的处理,ak为当前数据点,UjPLi的函数表达式为久=(KL) ,Xtaj +(bL) ^Ui ={KU) ^xt +(々"),ai 表示第 i 个元素,i = 0、1、2. n, t = 1、2、3. n, k = 1、2、3.. . n,其中(KU)、(KU)表示点的坐标值,E表示误差值、(bL)、(bU)表示数据点的修正值;(2)对i的任一可能值,如果(KU)( (KL)i,判断若让Ui经过ak是否会增大(KU)i,如果会使(KU) i增大则增大(KU) i使Ui经过ak ;(3)对i的任一可能值,如果(KU)( (KL)i,判断若让Li经过ak是否会减小(KL)i,如果会使(KL) i减小则减小(KL) i使Li经过ak ;(4)如果对i的所有可能值都有(KU)i > (KL) i,单独保存此时的ak ;继续按照考察ak+1, 如果符合(KU)i > (KL)i则按照(2) (3)继续考察ak+2、ak+3、ak+4.直至不符合的元素,以不符合的元素为起点开始新一轮的压缩。
2.根据权利要求I所述的贪婪式智能拟合有损数据压缩方法,其特征在于在一轮压缩结束后,记录压缩区间的起点和终点数据,同时本算法还需要记录最后一个%值;算法记录的终点值也不是终点处的原始数据,而是处理完终点数据后Ui和Li,在终点处函数值的均值。
全文摘要
本发明公布了一种贪婪式智能拟合有损数据压缩方法,如果当前数据点为一轮压缩的起始点,置和,结束对的处理;对i的任一可能值,如果,判断若让经过是否会增大,如果会使增大则增大使经过;对i的任一可能值,如果,判断若让经过是否会减小,如果会使减小则减小使经过;如果对i的所有可能值都有,单独保存此时的;继续按照考察,如果符合则按照(2)(3)继续考察、、…直至不符合的元素,以不符合的元素为起点开始新一轮的压缩。本发明能排除数据噪点的影响,更能大大的提高压缩比。
文档编号H03M7/30GK102545909SQ20111042626
公开日2012年7月4日 申请日期2011年12月19日 优先权日2011年12月19日
发明者周文欢, 张雪洁, 许峰 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1