负载均衡策略下实时数据渐进式压缩方法
2021-11-17郭建方曹丽娜朱方娥石家庄铁道大学四方学院河北石家庄051132
郭建方,曹丽娜,朱方娥,(石家庄铁道大学四方学院,河北 石家庄 051132)
1 引言
数据压缩理论始于上世纪40年代,数据压缩是指在数据储存空间的要求之下,重组庞大的原始数据,从而满足一定储存空间的数据集合,使得该数据集合中被恢复出来的数据能够完全符合原始数据[1]。信息技术的发展,扩大了各个系统的数据量,严重阻碍了数据的传输与储存,因此,数据压缩技术的研究越来越广泛。国内学者对数据压缩的研究中,虽然指出了负载均衡对数据压缩的重要性,但是在压缩过程中,仍然采用传统的评估准则,以压缩率为指标,很少涉及到数据压缩理论[2];国外学者对数据压缩的研究仅仅考虑到了压缩算法在层次上的改进,主要对原始数据进行相应改造和裁剪,缺少压缩算法在执行效率上的优化研究[3]。
任秀江等人[4]从减少网络注入数据量的角度出发,对网络通信实时压缩技术进行了研究,给出了一种面向网络通信的硬件实时压缩引擎RTCE的设计,在网络通信过程中,硬件自动实现对网络包的压缩传输,采用SPEC2006,Graph500,CFD算法测试数据进行测试,压缩后的网络包数据量平均减少32.8%~48.7%。但是该方法的实时数据压缩比较大;杨理践[5]提出一种管道漏磁检测实时数据压缩算法,在实时压缩和提升小波编码的基础上,利用双缓冲区模型对数据进行采集,并根据管道漏磁数据的特征,通过自适应算术编码完成数据无损压缩,无损压缩比可达9.166:1。但是该方法的实时数据的通信能耗较大。
针对上述方法存在的问题,本文在负载均衡策略下,提出了一种实时数据渐进式压缩方法,减少实时数据的储存空间、提高数据传输速度,从而提升实时数据的渐进式压缩性能。
2 实时数据渐进式压缩方法设计
2.1 自适应量化实时数据
由于实时数据在样本采集过程中,采集频率过高、样本数量较大,导致实时数据处理起来较麻烦[6],因此,需要先分块处理实时数据,以实现实时数据的自适应量化。由于实时数据在渐进式处理时具有周期性,因此对实时数据采用分块处理的方式,将数据间联系起来[7],这种联系可以提高实时数据的渐进式压缩性能。
在负载均衡策略下,DCT变换和离散小波变换都具有良好的负载均衡特性,但是离散小波变换更适用于强烈且非平稳的数据,DCT变换在处理变化不大的实时数据时具有更优的负载均衡特性[8]。考虑到网络节点硬件平台的支持,在负载均衡策略下,采用DCT变换的IV变换为
(1)
其中,k的取值为k=1,2,…,N,N表示实时数据的分块大小,mn表示原始实时数据。
经过分块处理后,0得到
(2)
实时数据自适应量化的好坏时刻影响实时数据的失真大小,根据自适应量化原则,能够提高负载均衡较大的子带分配的位数,设定每一个实时数据块所期望的总位数R,子带负载自适应量化的步骤如下:
Step2:设置每一个子带对应的初始位数nj为0,求解得到每一个子带的最大绝对值大小A=[a1,a2,…,aN],计算出每一个子带所需要的最大位数;
(3)
Step3:计算实时数据子带j的负载总和
(4)
其中,j的取值为j=1,2,…,N。
Step4:将实时数据子带的负载总和从大到小进行排序,假设第r个实时能量子带的负载最大,将实时数据子带r的分配位数加1,即nr=nr+1,,如果实时数据子带的分配位数大于最大位数br,那么就使nr=br;
Step5:将实时能量子带的负载与4作商,并使实时数据总位数减1;
Step6:重复Step4和Step5,直到实时数据总位数等于0,将得到的实时数据子带分配位数Nb=[n1,n2,…,nN]作为实时数据边带信息进行保存。
在完成实时数据各个子带的位数分配之后,对均匀量化处理分配位数进行计算,将实时数据子带设置为大于0并且小于最大位数,即
(5)
利用离散余弦变换的负载均衡特性,对原始实时数据进行了分块处理和DCT变换,使实时数据中DCT变换系数的负载均衡储存在少量子带中,根据实时数据各个子带的负载均衡大小自适应分配量化位数,完成实时数据的自适应量化处理,接下来通过设计实时数据渐进式压缩算法,来简化实时数据渐进式压缩的程序。
2.2 设计实时数据渐进式压缩算法
实时数据在渐进式压缩过程中会面临两个比较关键的问题,首先,实时数据渐进式压缩算法必须可以为系统提供比较高的实时数据压缩率,从而来支持实时数据的储存特点;其二,实时数据的记录功能和查询功能需要渐进式压缩算法在数据压缩和解压两项都具有一定的速度性能。
实时数据渐进式压缩算法在运行原理和实现方面都比较容易,代码实现过程中也没有相对复杂的运算过程,需要消耗更短的数据压缩和解压时间。尤其在实时数据的解压过程中,具有更高的加压效率,但是实时数据渐进式压缩算法也存在很多缺点和不足,因此,在负载均衡策略下,设计实时数据渐进式压缩算法。
对于实时数据而言,如果直接采用渐进式压缩算法会因为实时数据的波动浮动较大、规律性不强等特点,导致实时数据的渐进式压缩速度和效率不理想,通过在负载均衡策略下设计实时数据渐进式压缩算法,从而提高压缩算法的执行速度。
实时数据渐进式压缩以测点为单元,读取单位时间内的实时数据,分别对其进行压缩处理,实时数据的压缩过程是一个以字节为单位的字符串,根据读入的字符依次添加到表项中,记录一段时间后就要将其清空,保留一个标识项。实时数据渐进式压缩流程如图1所示。
图1 实时数据渐进式压缩流程
根据上述流程可知:
Step1:初等变换原始实时数据,并将变换处理后的实时数据采用字节为单位进行读取;
Step2:对字典进行初始化处理,使字典中包含单字符实时数据;
Step3:对代码进行清零处理,使字符串为空集;
Step4:对于输入实时数据字符流中的每一个字符重复操作Step5~ Step9;
Step5:抽取实时数据字符保存在字符串中;
Step6:如果实时数据字符串S+String在字典中,那么S=S+String,转到Step5;
Step7:在字典中编写与S对应的代码,将其输出为字符流;
Step8:将实时数据字符串S+String写在字典中,并在字典中添加一项;
Step9:S=String,再一次转到Step5;
Step10:在字典中编写与S对应的代码,将其输出为字符流;
Step11:编写实时数据渐进式压缩算法的结束码。
针对实时数据渐进式压缩面临的问题,依据实时数据渐进式压缩算法的原理,设计了实时数据渐进式压缩算法流程,利用实时数据渐进式压缩算法的实现步骤,完成实时数据渐进式压缩算法设计,接下来通过设计实时数据渐进式压缩程序,来实现实时数据的渐进式压缩。
2.3 重构实时数据
在对实时数据没有先验了解的情况下,选取第一个周期内的实时数据样本作为基准,利用距离测度来判断实时数据出现的时刻,并再一次重新选择基准数据。采用归一化距离测度的计算方法,如下式
(6)
其中,a表示实时数据向量,b表示基准向量,d(a,b)表示实时数据向量和基准向量的归一化距离测度。
由于实时数据的信号频率会出现一个比较小的波动,在确定实时数据周期的起止点时还会产生误差,为了消除外界因素对实时数据渐进式压缩的影响,需要建立一个数据组,来保存各个周期实时数据的起点和终点。实时数据渐进式压缩流程如图2所示。
图2 实时数据渐进式压缩流程
根据实时数据渐进式压缩流程,得到实时数据渐进式压缩步骤,如下:
Step1:获取第一个采样周期内实时数据样本作为初始的基准向量Db,并将基准向量Db赋值给实时数据渐进式压缩过程中的运算基准向量Dt;
Step2:按照一定顺序将一个采样周期内的实时数据样本保存至中间向量Do中,将表征该数据起点和终点的参数保存在数组中,将Do与Dt做差值处理,并将计算得到的差值向量De保存到数据文件中;
Step3:通过与事先设定好的判决门限进行对比,观察实时数据样本的归一化测度值是否在连续两个周期内超过了该限值,从而来判断实时数据样本在连续两个周期内是否发生了畸变,如果实时数据样本发生了较大畸变,将数组中表征该采样周期内截止点的实时数据后面添加一个标记0,此时令该周期数据等于实时数据渐进式压缩过程中的运算基准向量Dt;如果实时数据样本没有发生了较大畸变,将数组中表征该采样周期内截止点的实时数据后面添加一个标记-1,且实时数据渐进式压缩过程中的运算基准向量Dt保持不变;
Step4:如果仍然存在待处理的实时数据,那么就跳转到Step2继续处理,否则就要跳转到Step5;
Step5:对实时数据进行阈值处理,如下式
(7)
综上所述,在负载均衡策略下,对实时数据进行了自适应量化处理,通过设计实时数据渐进式压缩算法,简化了实时数据渐进式压缩的程序,结合实时数据渐进式压缩程序设计,实现了实时数据的渐进式压缩。
3 仿真分析
为了验证负载均衡策略下实时数据渐进式压缩方法在实际应用中的性能,通过MATLAB平台进行仿真分析。在仿真软件中50m*50m的区域内部署100个实时数据节点。仿真分析过程中采用1024*4个具有光强、温度、湿度和节点电压的实时数据,拟合多项式的次数为1,2,3,相关性阈值为0.7,0.8,0.9,1.0时,将负载均衡策略下实时数据渐进式压缩方法与文献[4]提出的面向网络通信的高实时压缩方法、文献[5]提出的管道漏磁检测实时数据压缩方法进行对比,分别从压缩比和通信能耗两个指标进行对比实验分析。
三种方法的实时数据压缩比测试结果如图3所示。
图3 实时数据压缩比测试结果
从图3中的测试结果可以看出,随着相关性阈值的增大,三种数据压缩方法的实时数据压缩比也在逐渐增大,但是负载均衡策略下实时数据渐进式压缩方法始终小于文献[4]提出的面向网络通信的高实时压缩方法和文献[5]提出的管道漏磁检测实时数据压缩方法。原因是相关性阈值越大,实时数据序列之间的相关性就比较弱,需要设置更多的参数来进行描述,当相关性阈值为1时,不需要考虑实时数据的相关性,此时实时数据的压缩比达到了最大值;在相关性阈值相同的情况下,拟合次数越大,负载均衡策略下实时数据渐进式压缩方法对实时数据序列的分段个数就越少,因此,本文提出的负载均衡策略下实时数据渐进式压缩方法可以缩小实时数据的压缩比。
对本文提出的负载均衡策略下实时数据渐进式压缩方法、文献[4]提出的面向网络通信的高实时压缩方法和文献[5]提出的管道漏磁检测实时数据压缩方法的实时数据通信能耗进行测试对比,对比结果如图4所示。
图4 实时数据的通信能耗测试结果
从图4的测试结果可以看出,随着相关性阈值的增大,负载均衡策略下实时数据渐进式压缩方法的实时数据通信能耗逐渐降低,说明负载均衡策略下实时数据渐进式压缩方法的压缩效果越来越好,而随着相关性阈值的增大,文献[4]提出的面向网络通信的高实时压缩方法和文献[5]提出的管道漏磁检测实时数据压缩方法的实时数据通信能耗逐渐上升。说明本文提出的负载均衡策略下实时数据渐进式压缩方法的通信能耗始终小于其它两种压缩方法。
4 结束语
针对实时数据在渐进式压缩过程中受到数据特征的影响,降低了实时数据的渐进式压缩性能,本文提出了负载均衡策略下实时数据渐进式压缩方法,在负载均衡策略下,对实时数据进行了自适应量化处理,通过设计实时数据渐进式压缩算法,实现了实时数据的渐进式压缩。仿真结果显示,该数据压缩方法具有较高的实时数据渐进式压缩能力。