CN105530013A - 一种波形数据压缩方法与系统 - Google Patents
一种波形数据压缩方法与系统 Download PDFInfo
- Publication number
- CN105530013A CN105530013A CN201510874817.6A CN201510874817A CN105530013A CN 105530013 A CN105530013 A CN 105530013A CN 201510874817 A CN201510874817 A CN 201510874817A CN 105530013 A CN105530013 A CN 105530013A
- Authority
- CN
- China
- Prior art keywords
- difference data
- data
- piecemeal
- difference
- compression method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/55—Compression Theory, e.g. compression of random number, repeated compression
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种波形数据压缩方法与系统,获取所有待压缩波形数据,计算各波形数据与前一波形数据的差值数据,对出现差值数据连续为0,差值数据符号连续相同达到一定程度,差值数据较大的情况进行分块,根据不同分块的特点使用差值压缩方法,复制压缩方法或原始数据存储的方法实现压缩,对不满足分块条件达到一定长度的差值数据进行强制分块后进行差值压缩,可以根据波形数据得到的差值数据特点有针对地优化差值压缩方法,提高对波形数据的压缩效率。
Description
技术领域
本发明涉及数据压缩领域,特别是涉及一种波形数据压缩方法与系统。
背景技术
分布式行波故障定位系统组成:在高压输电线路中安装的一组装置中包括3个设备,每个设备中包含至少一个行波检测和一个工频检测;每个设备的行波数据采样率为10Mhz,采样时间为5ms,每个点由两个字节组成,其波形数据总计100KBYTE;同样,工频数据的采样率为10KHz,采样时间为100ms,每个点由两个字节组成,其波形数据总计2KBYTE;因此,每个设备总的数据采集量为102KBYTE,3个设备总计306KBYTE;由此可见,在实际设计中需要考虑其存储及传输的效率问题。
按实际输电线路所在环境的特点,数据从装置中传输到服务器不保证都能够使用4G或3G网络,必须考虑使用GPRS网络。而GPRS网络的上行速度是非常慢的,在一般情况下通信模块的速度实测为1KBYTE/S左右,一个装置的全部数据在网络较好的情况下传输完毕需要至少306秒,再加上设备间数据传输(时间大概为一个设备60秒)及GPRS网络的实际效率,其数据传输时间将大致在500秒左右;无论其GPRS实际速度能够提高多少,波形数据的压缩存储及传输都显得特别重要。即便今后4G网络可以普及到每一个地方,行波的数据量可能会因为性能提升的原因采集更多的数据,其存储及传输的效率仍然值得考虑。因此,在分布式故障定位系统中,需要对行波及工频的采集数据进行数据压缩,通过提高压缩率实现数据的快速存储及传输。
现有分布式故障行波定位系统在设计上很少考虑波形数据的压缩。另外,按现有软件技术的压缩算法,都是基于一种通用数据的压缩,对这种特定波形数据的压缩率提高不大。
发明内容
有鉴于此,本发明的主要目的在于提供一种波形数据压缩方法与系统,可以有效提高波形数据的压缩率。
为实现上述目的,本发明提供了一种波形数据压缩方法,包括:
获取所有待压缩波形数据,从第二个波形数据开始,分别计算各波形数据与前一波形数据的差值数据,直到满足计算停止条件时停止差值数据的计算;
第一计算停止条件为差值数据连续为0的差值数据个数超过第一预设阈值;第二计算停止条件为差值数据连续出现符号相同的差值数据个数超过第二预设阈值;第三计算停止条件为差值数据大于或等于第三预设阈值;第四计算停止条件为差值数据长度等于第四预设阈值;
当满足第一计算停止条件时,进行分块,将个数超过第一预设阈值的连续为0的差值数据中的第一个为0的差值数据之前的差值数据确定为第一分块,将所述第一个为0的差值数据以及之后连续为0的差值数据确定为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照复制压缩方法进行压缩;
当满足第二计算停止条件时,进行分块,将个数超过第二预设阈值的连续出现的相同符号的差值数据中第一个差值数据之前的差值数据确定为第一分块,将所述第一个差值数据以及之后符号连续相同的差值数据确定为第二分块,将所述第一分块按照包含符号位的差值压缩方法进行压缩,将所述第二分块按照不包含符号位的差值压缩方法进行压缩;
当满足第三计算停止条件时,进行分块,将大于或等于第三预设阈值的差值数据之前的差值数据作为第一分块,将所述大于或等于第三预设阈值的差值数据以及之后满足相同条件的连续差值数据作为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照原始数据存储方法处理;
当满足第四计算停止条件时,进行分块,将差值数据长度等于第四预设阈值的各差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩。
优选地,当需要将分块按照差值压缩方法进行压缩时,还包括:
步骤A:确定要按照差值压缩方法进行压缩的目标分块,将所述目标分块中的第一个差值数据比特位长x作为最大值,记录所述最大值的位置m,将所述目标分块中的第二个差值数据比特位长y,记录所述第二个差值数据的位置n;
步骤B:判断y是否大于x,如果否则进入步骤C,如果是,则判断第一预设不等式是否成立,如果成立,则将所述第二个差值数据之前的n-1个差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩,如果不成立则将y赋值为x,将n赋值为m,进入步骤D;
步骤C:判断y是否小于x,如果否则进入步骤D,如果是,则查找m至n之间差值数据比特位长的次大值z,判断第二预设不等式是否成立,如果成立,则将m之前的差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩;
步骤D:判断当前差值数据是否为最后一个数据,如果是,则继续按照差值压缩方法进行压缩,否则取出下一个差值数据,将其比特位长确定为y,位置确定为n,返回步骤B。
优选地,所述第一预设阈值为(16/k)[+1]+1,k为已经计算出的差值数据的比特位长中的最大比特位长值。
优选地,所述第二预设阈值为16。
优选地,所述第三预设阈值为128。
优选地,所述第四预设阈值为512。
优选地,所述第一预设不等式为(x*(n-1))/8[+1]+3<y*n/8[+1]。
优选地,所述第二预设不等式为(z*(n-m))/8[+1]+3+x*m/8[+1]+3<x*n/8[+1]。
本发明还提供了一种波形数据压缩系统,包括:
差值数据计算模块、计算停止条件判断模块和分块压缩模块;
所述差值数据计算模块用于获取所有待压缩波形数据,从第二个波形数据开始,分别计算各波形数据与前一波形数据的差值数据,直到所述计算停止条件判断模块判断成立时停止差值数据的计算;
所述计算停止条件判断模块用于判断是否满足计算停止条件,第一计算停止条件为差值数据连续为0的差值数据个数超过第一预设阈值;第二计算停止条件为差值数据连续出现符号相同的差值数据个数超过第二预设阈值;第三计算停止条件为差值数据大于或等于第三预设阈值;第四计算停止条件为差值数据长度等于第四预设阈值;
所述分块压缩模块用于:
当满足第一计算停止条件时,进行分块,将个数超过第一预设阈值的连续为0的差值数据中的第一个为0的差值数据之前的差值数据确定为第一分块,将所述第一个为0的差值数据以及之后连续为0的差值数据确定为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照复制压缩方法进行压缩;
当满足第二计算停止条件时,进行分块,将个数超过第二预设阈值的连续出现的相同符号的差值数据中第一个差值数据之前的差值数据确定为第一分块,将所述第一个差值数据以及之后符号连续相同的差值数据确定为第二分块,将所述第一分块按照包含符号位的差值压缩方法进行压缩,将所述第二分块按照不包含符号位的差值压缩方法进行压缩;
当满足第三计算停止条件时,进行分块,将大于或等于第三预设阈值的差值数据之前的差值数据作为第一分块,将所述大于或等于第三预设阈值的差值数据以及之后满足相同条件的连续差值数据作为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照原始数据存储方法处理;
当满足第四计算停止条件时,进行分块,将差值数据长度等于第四预设阈值的各差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩。
应用本发明提供的一种波形数据压缩方法与系统,获取所有待压缩波形数据,计算各波形数据与前一波形数据的差值数据,对出现差值数据连续为0,差值数据符号连续相同达到一定程度,差值数据较大的情况进行分块,根据不同分块的特点使用差值压缩方法,复制压缩方法或原始数据存储的方法实现压缩,对不满足分块条件达到一定长度的差值数据进行强制分块后进行差值压缩,可以根据波形数据得到的差值数据特点有针对地优化差值压缩方法,提高对波形数据的压缩效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为基于差值压缩基本思想的压缩流程图;
图2为压缩数据存储格式图;
图3为Method方法字结构图;
图4为基于差值压缩基本思想的解压缩流程图;
图5为本发明一种波形数据压缩方法实施例一的差值压缩分块处理流程图;
图6为本发明一种波形数据压缩方法实施例一的波形测试图;
图7为本发明一种波形数据压缩方法实施例一的差值算法1ms采样压缩第一次结果图;
图8为RAR软件压缩算法1ms采样压缩第一次结果图;
图9为本发明一种波形数据压缩方法实施例一的差值算法1ms采样压缩第二次结果图;
图10为RAR软件压缩算法1ms采样压缩第二次结果图;
图11为本发明一种波形数据压缩方法实施例一的差值算法1ms采样压缩第三次结果图;
图12为RAR软件压缩算法1ms采样压缩第三次结果图;
图13为本发明一种波形数据压缩方法实施例一的差值算法2ms采样压缩第一次结果图;
图14为RAR软件压缩算法2ms采样压缩第一次结果图;
图15为本发明一种波形数据压缩方法实施例一的差值算法2ms采样压缩第二次结果图;
图16为RAR软件压缩算法2ms采样压缩第二次结果图;
图17为本发明一种波形数据压缩方法实施例一的差值算法2ms采样压缩第三次结果图;
图18为RAR软件压缩算法2ms采样压缩第三次结果图;
图19为本发明一种波形数据压缩方法实施例一的差值算法5ms采样压缩第一次结果图;
图20为RAR软件压缩算法5ms采样压缩第一次结果图;
图21为本发明一种波形数据压缩方法实施例一的差值算法5ms采样压缩第二次结果图;
图22为RAR软件压缩算法5ms采样压缩第二次结果图;
图23为本发明一种波形数据压缩方法实施例一的差值算法5ms采样压缩第三次结果图;
图24为RAR软件压缩算法5ms采样压缩第三次结果图;
图25为本发明一种波形数据压缩系统实施例二的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
(1)差值压缩方法
分布式行波故障定位系统的波形数据有一个特点,每个波形数据占用2个BYTE,并且每两个相邻的原始数据之间差值较小。此特点不局限于分布式行波故障定位系统的波形数据,所有其它非离散性的波形数据均有此特点。
现有技术对波形数据压缩一般使用差值压缩,假设整个波形有N个数据,计算所有差值数据将得到一个N-1大小的差值数据数组(差值数据是指当前波形数据与前一个波形数据之差得到的一个数据,此数据包含符号位),以差值数据数组中最大值所占用的比特位长度作为每个差值数据的比特位长
(此值定义为BitLength),并以此生成压缩数据(所有差值数据按同一比特位长度连接生成一个比特位串,存储时按字节单位分别存储,每个存储的字节数据为一个压缩数据);同时第一个波形数据没有进行差值计算,将被存储为原始数据(直接存储的波形数据为原始数据);此方法可以用较少的比特位表示一个16bit的数据,以达到压缩数据的目的。图1示出了基于差值压缩基本思想的压缩流程。
图2为压缩数据存储格式,当数据为16bit或32bit时,均以小端格式存储,图2中:
Head为压缩头,占用2个BYTE固定为’T’‘R’,表示其为波形压缩数据;
BlockLength为压缩分块总数,占用一个2个BYTE长度,取值0表示没有压缩;
DataLength为原始波形数据总长度(单位BYTE),占用4个BYTE长度;
<Method[RawData][dd…dd]>是一个压缩数据块,Method为此压缩数据块的16bit压缩方法字,其结构如图3所示,Method解释此压缩数据块的方法及数据结构;[RawData]为16bit原始数据,属于可选项,其是否存在由Method中的flag决定;[dd…dd]为8bit一个单位的连续压缩数据,属于可选项,其是否存在由Method中bitl决定。
图3中示出了Method方法字数据结构,图3中:
flag:1bit,原始数据是否存在标志;当flag=0时,Method后面无原始数据[RawData],基础数据使用上一个解压后的波形数据;当flag=1时,Method后面有原始数据[RawData],此原始数据将是本压缩数据块的第一个波形数据,并将此原始数据替换为新的基础数据;在第一个压缩数据块中flag必须为1,才能为基础数据指定第一个数据源。
sign:2bit,差值数据符号位标志;当sign=0x00时,表示压缩数据中的差值数据有符号位,且为最高位,0表示正,1表示负;基础数据根据正负与差值数据进行加、减运算;当sign=0x01时,压缩数据中的差值数据无符号位,基础数据与差值数据执行加法操作;当sign=0x02时,压缩数据中的差值数据无符号位,基础数据与差值数据执行减法操作。
datal:9bit,数据长度;取值范围为1~512,其具体含义由bitl决定。
bitl:4bit,根据其取值有3个不同定义(3个不同方法):
当bitl=1~8时,bitl值代表压缩数据块的BitLength,块内有[dd…dd]项,且为压缩数据,datal取值为压缩数据中包含的差值数据个数;此为差值压缩方法;
当bitl=9时,压缩数据块没有进行数据压缩,但块内有[dd…dd]项,且为原始数据,datal取值为原始数据个数;此为原始数据存储方法;
当bitl=10时,执行对基础数据的复制功能,块内无[dd…dd]项,datal取值为复制基础数据的个数[当flag=1时,在原始数据[RawData]替换为基础数据后,先取得本块的第一个波形数据,再执行复制功能];此为复制压缩方法;
当bitl为0、11~15时,保留。
dd:dd数据有两个不同定义。
当bitl=1—8时,dd为压缩数据。一个压缩数据块内的所有差值数据由低bit到高bit连接而生成一个长度为datal*bitl的比特位串,此位串按字节生成dd数据,最后一个dd数据可能有剩余无用位则填充0;因此,一个dd数据可能包含几个差值数据,同时一个差值数据可能包含在相邻的两个dd中;
当bitl=9时,dd为原始数据,并且每两个dd数据组成一个原始数据。
(2)差值压缩方法的解压方法
对应于差值压缩的解压缩方法,首先读取存储的原始数据设置为基础数据(波形数据,占用2个BYTE;基础数据的作用是在解压时与压缩数据中取出的差值数据进行运算得到一个解压数据,此时基础数据将被解压数据替换,用于计算下一个解压数据),同时也作为解压缩的第一个波形数据;取得第一个压缩数据中的差值数据,根据差值数据的符号将基础数据与差值数据执行加法/减法操作,解压缩出第二个波形数据;
将第二个波形数据同时作为新的基础数据,并取得压缩数据中的第二个差值数据,按同样的方法计算出第三个波形数据;
按上面方法继续计算后续数据,在计算N-1次后即可解压缩出所有波形数据。解压的基本流程如图2所示。
采用以上的差值压缩和解压方法,只要整个波形不存在大量的相邻数据突变,压缩率将非常理想,但是在以上差值压缩基本方法中,如果存在大量连续差值数据的实际比特位长小于BitLength,会造成这部分差值数据的压缩性能降低,因此有必要将差值数据数组进行分块处理。
为了提高压缩率,将差值数据数组分成块,形成若干个小的差值数据数组块。这样每个差值数据数组块的BitLength将尽可能接近其每个差值数据实际比特位长。规定BitLength取值范围为1~8比特(超过8比特的则用原始波形数据表示),如果BitLength平均在4~7,压缩率可以达到25.00%~43.75%,小于50%;因此,压缩方法主要解决的问题是如何对差值数据数组分块(或简称压缩数据分块);
差值数据数组分块需要考虑以下几种情况:
第一,差值数据为0,即波形原始数据完全相同(可极大提高压缩率);
第二,差值数据符号位相同(可以去掉符号位小幅提高压缩率);
第三,差值数据数组中的BitLength大于8(使用波形原始数据表示,减少压缩算法复杂度);
第四,差值数据比特位长相近的最优组合(差值压缩基本算法)。
实施例一:
针对波形数据特点进行数据压缩主要是为了提高数据存储与传输性能,为了达到最佳的性能,本发明提供了一种波形数据压缩方法,包括:
步骤S101:获取所有待压缩波形数据,从第二个波形数据开始,分别计算各波形数据与前一波形数据的差值数据,直到满足计算停止条件时停止差值数据的计算;
第一计算停止条件为差值数据连续为0的差值数据个数超过第一预设阈值;第二计算停止条件为差值数据连续出现符号相同的差值数据个数超过第二预设阈值;第三计算停止条件为差值数据大于或等于第三预设阈值;第四计算停止条件为差值数据长度等于第四预设阈值;
从第二个波形数据开始,依次计算差值数据(同时生成比特位长值);
bitl_max为已经计算差值数据得到的比特位长最大值,如计算出3个差值数据的比特位长值分别为3、4、5,则bitl_max=5;
计算停止的条件为:
计算停止条件A:差值数据连续为0的数据超过(16/bitl_max)[+1]+1个;
计算停止条件B:差值数据符号相同连续数据超过16个;
计算停止条件C:差值数据大于或等于正负128;
计算停止条件D:计算差值数据长度等于最大值(取值512);
计算停止条件A、B主要判断在进行分块后,增加分块所占用空间必须小于所节约的存储空间,对于计算停止条件A,如果16%bitl_max>0,则需要[+1]项(表示有多余的位需要额外一个字节存储),而前面还必须要有一个相同的数据做参考,所以最后还有一个+1;后面涉及到[+1]的含义相同;
举例说明:假设bitl_max=2,9个相同数据中后面8个占用存储空间2个BYTE,而如果采用复制的方法值存储(复制8个数据),增加2个BYTE的方法字,在不增加原始数据值作为复制对象时,仅需要2个BYTE能存储,但没有节省存储空间;在10个相同数据时,不分块情况下后面9个数据占用3个BYTE,而采用复制方法存储仍然只需要2个BYTE存储空间(复制9个数据)。根据公式可得出:16/2+1=9,因此只需要相同数据大于9个就可以分块。
对于计算停止条件B,连续为正或负的差值数据可以去掉符号位减少一个bit存储,因此必须有超过16个差值数据才可以消除多出的2byte方法字;
对于计算停止条件C,差值数据的值超过正负128需要使用8bit以上的数据表示,因此压缩率本身不高,同时增加了复杂度。所以不进行压缩并用原始数据表示,当然会多开销2byte的方法字;
对于计算停止条件D,强制一个块中差值数据只有512个;
步骤S102:当满足第一计算停止条件时,进行分块,将个数超过第一预设阈值的连续为0的差值数据中的第一个为0的差值数据之前的差值数据确定为第一分块,将所述第一个为0的差值数据以及之后连续为0的差值数据确定为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照复制压缩方法进行压缩;
当满足第二计算停止条件时,进行分块,将个数超过第二预设阈值的连续出现的相同符号的差值数据中第一个差值数据之前的差值数据确定为第一分块,将所述第一个差值数据以及之后符号连续相同的差值数据确定为第二分块,将所述第一分块按照包含符号位的差值压缩方法进行压缩,将所述第二分块按照不包含符号位的差值压缩方法进行压缩;
当满足第三计算停止条件时,进行分块,将大于或等于第三预设阈值的差值数据之前的差值数据作为第一分块,将所述大于或等于第三预设阈值的差值数据以及之后满足相同条件的连续差值数据作为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照原始数据存储方法处理;
当满足第四计算停止条件时,进行分块,将差值数据长度等于第四预设阈值的各差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩。
除条件D外,正常情况下分为两块,但如果没有第一块,则按第二块方法执行。
停止条件A,在差值数据为0的第一个数据处进行强制分块(不含第一个数据),此时已计算过的差值数据被分为两块。第一块按照差值压缩方法压缩,第二块按照复制方法压缩;
停止条件B,在差值数据符号相同的第一个数据前进行强制分块(不含第一个数据),此时已计算过的差值数据被分为两块,均按照差值压缩方法进行压缩。第一块差值数据包含符号位,第二块差值数据不包含符号位;
停止条件C,在停止位置前进行强制分块,此时已计算过的差值数据被分为两块。第一块按照差值压缩方法压缩,第二块按照原始数据存储方法执行;
停止条件D,已经计算过的512个差值数据作为一个整块,按照差值压缩方法进行压缩。
图6示出了本实施例差值压缩分块处理的总流程图。
进一步地,对差值压缩方法进一步进行分块优化处理,在第二步分块处理时,如果使用的是差值压缩方法,将可以按照下面步骤进一步做优化分块处理;
A,选取块内第一个差值数据比特位长作为最大值bitlm,并记录最大值位置bitlm_pos=1,取出第二个差值数据的比特位长bitlc,并记录当前位置n=2);
B,如果bitlc大于bitlm,如果否则进入C,如果是则比较以下不等式是否成立,成立则将前面n-1个差值数据进行强制分块压缩处理,不成立则将bitlc及n分别赋bitlm及bitlm_pos,下一步进入D;
不等式:(bitlm*(n-1))/8[+1]+3<bitlc*n/8[+1];
说明:此步关键是在n位置前进行分块,即使当前差值数据单独存储,其总的存储空间也比不分块前占用更少。另外,其中+3的含义为,需要增加2个BYTE的方法字,另外需要增加一个字节存储当前差值数据;后面涉及到+3的含义相同。
C,如果bitlc小于bitlm,如果否则进入D,如果是则先查找bitlm_pos至n间差值数据比特位长的次大值bitlsm,比较以下不等式是否成立,成立则将bitlm_pos前的差值数据进行强制分块压缩处理,下一步进入D;
不等式:(bitlsm*(n-bitlm_pos)/8[+1]+3+bitlm*bitlm_pos/8[+1]+3<bitlm*n/8[+1];
说明:此步关键在bitlm_pos前进行分块,将两块占用存储空间相加后,仍然比不分块时占用存储空间更少。
D,如果当前差值数据是最后一个数据,则完成最后一块差值数据的压缩处理;否则取出下一个差值数据的bitlc及n,重复B处理。
以上在执行优化分块完成后,最后一块可以合并到后面差值数据中处理,会得到更优的分块数据,以此避免分块时一次最多只处理512个差值数据时造成性能降低。
应用本实施例的压缩方法对波形数据进行压缩,与其他压缩软件对比压缩率,进行测试,测试说明:
步骤1:选择行波测距校验仪PH01设备输出行波故障波形(测试波形见图7);
步骤2:选择分布式行波故障定位系统产品ZGLJ-X1采集数据;
步骤3:ZGLJ-X1采集参数设置为:采样率10MHz,采样时间分别为1ms,2ms,5ms三种,对应行波数据量分别为20KBYTE,40KBYTE,100KBYTE;
步骤4:采用RAR软件对比测试压缩率,每个相同测试做3次。
下表为测试结果的记录表:
图8中,原文件大小为20.24K,RAR压缩后为10.26K,压缩率=10.26/20.24=50.69%;
图10中,原文件大小为20.24K,RAR压缩后为10.511K,压缩率=10.511/20.24=51.93%;
图12中,原文件大小为20.24K,RAR压缩后为10.983K,压缩率=10.983/20.24=54.26%;
图14中,原文件大小为40.48K,RAR压缩后为21.695K,压缩率=21.695/40.48=53.59%;
图16中,原文件大小为40.48K,RAR压缩后为19.054K,压缩率=19.054/40.48=47.04%;
图18中,原文件大小为40.48K,RAR压缩后为22.291K,压缩率=22.291/40.48=55.06%;
图20中,原文件大小为102.4K,RAR压缩后为51.974K,压缩率=51.974/102.4=50.75%;
图22中,原文件大小为102.4K,RAR压缩后为56.675K,压缩率=56.675/102.4=55.34%;
图24中,原文件大小为102.4K,RAR压缩后为51.406K,压缩率=51.406/102.4=50.20%。
测试结果:
使用PH01设备输出较长并且具有一定突变的波形,采集到的数据经过差值压缩后基本都能达到50%以内,而RAR软件算法明显低于本方法的压缩率。
应用本实施例提供的一种波形数据压缩方法,获取所有待压缩波形数据,计算各波形数据与前一波形数据的差值数据,对出现差值数据连续为0,差值数据符号连续相同达到一定程度,差值数据较大的情况进行分块,根据不同分块的特点使用差值压缩方法,复制压缩方法或原始数据存储的方法实现压缩,对不满足分块条件达到一定长度的差值数据进行强制分块后进行差值压缩,可以根据波形数据得到的差值数据特点有针对地优化差值压缩方法,提高对波形数据的压缩效率,此方法在实现上非常简单,系统开销非常小。在一般通用单片机上都很容易实现。
实施例二:
本发明还提供了一种波形数据压缩系统,图示出了本发明波形数据压缩系统的结构示意图,包括:
差值数据计算模块101、计算停止条件判断模块102和分块压缩模块103;
所述差值数据计算模块101用于获取所有待压缩波形数据,从第二个波形数据开始,分别计算各波形数据与前一波形数据的差值数据,直到所述计算停止条件判断模块判断成立时停止差值数据的计算;
所述计算停止条件判断模块102与所述差值数据计算模块相连接,用于判断是否满足计算停止条件,第一计算停止条件为差值数据连续为0的差值数据个数超过第一预设阈值;第二计算停止条件为差值数据连续出现符号相同的差值数据个数超过第二预设阈值;第三计算停止条件为差值数据大于或等于第三预设阈值;第四计算停止条件为差值数据长度等于第四预设阈值;
所述分块压缩模块103与所述计算停止条件判断模块102相连接,用于:
当满足第一计算停止条件时,进行分块,将个数超过第一预设阈值的连续为0的差值数据中的第一个为0的差值数据之前的差值数据确定为第一分块,将所述第一个为0的差值数据以及之后连续为0的差值数据确定为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照复制压缩方法进行压缩;
当满足第二计算停止条件时,进行分块,将个数超过第二预设阈值的连续出现的相同符号的差值数据中第一个差值数据之前的差值数据确定为第一分块,将所述第一个差值数据以及之后符号连续相同的差值数据确定为第二分块,将所述第一分块按照包含符号位的差值压缩方法进行压缩,将所述第二分块按照不包含符号位的差值压缩方法进行压缩;
当满足第三计算停止条件时,进行分块,将大于或等于第三预设阈值的差值数据之前的差值数据作为第一分块,将所述大于或等于第三预设阈值的差值数据以及之后满足相同条件的连续差值数据作为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照原始数据存储方法处理;
当满足第四计算停止条件时,进行分块,将差值数据长度等于第四预设阈值的各差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩。
应用本实施例提供的一种波形数据压缩系统,获取所有待压缩波形数据,计算各波形数据与前一波形数据的差值数据,对出现差值数据连续为0,差值数据符号连续相同达到一定程度,差值数据较大的情况进行分块,根据不同分块的特点使用差值压缩方法,复制压缩方法或原始数据存储的方法实现压缩,对不满足分块条件达到一定长度的差值数据进行强制分块后进行差值压缩,可以根据波形数据得到的差值数据特点有针对地优化差值压缩方法,提高对波形数据的压缩效率。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种波形数据压缩方法,其特征在于,包括:
获取所有待压缩波形数据,从第二个波形数据开始,分别计算各波形数据与前一波形数据的差值数据,直到满足计算停止条件时停止差值数据的计算;
第一计算停止条件为差值数据连续为0的差值数据个数超过第一预设阈值;第二计算停止条件为差值数据连续出现符号相同的差值数据个数超过第二预设阈值;第三计算停止条件为差值数据大于或等于第三预设阈值;第四计算停止条件为差值数据长度等于第四预设阈值;
当满足第一计算停止条件时,进行分块,将个数超过第一预设阈值的连续为0的差值数据中的第一个为0的差值数据之前的差值数据确定为第一分块,将所述第一个为0的差值数据以及之后连续为0的差值数据确定为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照复制压缩方法进行压缩;
当满足第二计算停止条件时,进行分块,将个数超过第二预设阈值的连续出现的相同符号的差值数据中第一个差值数据之前的差值数据确定为第一分块,将所述第一个差值数据以及之后符号连续相同的差值数据确定为第二分块,将所述第一分块按照包含符号位的差值压缩方法进行压缩,将所述第二分块按照不包含符号位的差值压缩方法进行压缩;
当满足第三计算停止条件时,进行分块,将大于或等于第三预设阈值的差值数据之前的差值数据作为第一分块,将所述大于或等于第三预设阈值的差值数据以及之后满足相同条件的连续差值数据作为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照原始数据存储方法处理;
当满足第四计算停止条件时,进行分块,将差值数据长度等于第四预设阈值的各差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩。
2.根据权利要求1所述的一种波形数据压缩方法,其特征在于,当需要将分块按照差值压缩方法进行压缩时,还包括:
步骤A:确定要按照差值压缩方法进行压缩的目标分块,将所述目标分块中的第一个差值数据比特位长x作为最大值,记录所述最大值的位置m,将所述目标分块中的第二个差值数据比特位长y,记录所述第二个差值数据的位置n;
步骤B:判断y是否大于x,如果否则进入步骤C,如果是,则判断第一预设不等式是否成立,如果成立,则将所述第二个差值数据之前的n-1个差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩,如果不成立则将y赋值为x,将n赋值为m,进入步骤D;
步骤C:判断y是否小于x,如果否则进入步骤D,如果是,则查找m至n之间差值数据比特位长的次大值z,判断第二预设不等式是否成立,如果成立,则将m之前的差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩;
步骤D:判断当前差值数据是否为最后一个数据,如果是,则继续按照差值压缩方法进行压缩,否则取出下一个差值数据,将其比特位长确定为y,位置确定为n,返回步骤B。
3.根据权利要求1所述的一种波形数据压缩方法,其特征在于,所述第一预设阈值为(16/k)[+1]+1,k为已经计算出的差值数据的比特位长中的最大比特位长值。
4.根据权利要求1所述的一种波形数据压缩方法,其特征在于,所述第二预设阈值为16。
5.根据权利要求1所述的一种波形数据压缩方法,其特征在于,所述第三预设阈值为128。
6.根据权利要求1所述的一种波形数据压缩方法,其特征在于,所述第四预设阈值为512。
7.根据权利要求2所述的一种波形数据压缩方法,其特征在于,所述第一预设不等式为(x*(n-1))/8[+1]+3<y*n/8[+1]。
8.根据权利要求2所述的一种波形数据压缩方法,其特征在于,所述第二预设不等式为(z*(n-m))/8[+1]+3+x*m/8[+1]+3<x*n/8[+1]。
9.一种波形数据压缩系统,其特征在于,包括:
差值数据计算模块、计算停止条件判断模块和分块压缩模块;
所述差值数据计算模块用于获取所有待压缩波形数据,从第二个波形数据开始,分别计算各波形数据与前一波形数据的差值数据,直到所述计算停止条件判断模块判断成立时停止差值数据的计算;
所述计算停止条件判断模块用于判断是否满足计算停止条件,第一计算停止条件为差值数据连续为0的差值数据个数超过第一预设阈值;第二计算停止条件为差值数据连续出现符号相同的差值数据个数超过第二预设阈值;第三计算停止条件为差值数据大于或等于第三预设阈值;第四计算停止条件为差值数据长度等于第四预设阈值;
所述分块压缩模块用于:
当满足第一计算停止条件时,进行分块,将个数超过第一预设阈值的连续为0的差值数据中的第一个为0的差值数据之前的差值数据确定为第一分块,将所述第一个为0的差值数据以及之后连续为0的差值数据确定为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照复制压缩方法进行压缩;
当满足第二计算停止条件时,进行分块,将个数超过第二预设阈值的连续出现的相同符号的差值数据中第一个差值数据之前的差值数据确定为第一分块,将所述第一个差值数据以及之后符号连续相同的差值数据确定为第二分块,将所述第一分块按照包含符号位的差值压缩方法进行压缩,将所述第二分块按照不包含符号位的差值压缩方法进行压缩;
当满足第三计算停止条件时,进行分块,将大于或等于第三预设阈值的差值数据之前的差值数据作为第一分块,将所述大于或等于第三预设阈值的差值数据以及之后满足相同条件的连续差值数据作为第二分块,将所述第一分块按照差值压缩方法进行压缩,将所述第二分块按照原始数据存储方法处理;
当满足第四计算停止条件时,进行分块,将差值数据长度等于第四预设阈值的各差值数据确定为一个分块,将该分块按照差值压缩方法进行压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510874817.6A CN105530013B (zh) | 2015-12-03 | 2015-12-03 | 一种波形数据压缩方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510874817.6A CN105530013B (zh) | 2015-12-03 | 2015-12-03 | 一种波形数据压缩方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105530013A true CN105530013A (zh) | 2016-04-27 |
CN105530013B CN105530013B (zh) | 2018-08-31 |
Family
ID=55772045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510874817.6A Active CN105530013B (zh) | 2015-12-03 | 2015-12-03 | 一种波形数据压缩方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105530013B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788450A (zh) * | 2016-11-22 | 2017-05-31 | 深圳市长龙铁路电子工程有限公司 | 一种道岔动作曲线的压缩方法 |
CN107040525A (zh) * | 2017-03-23 | 2017-08-11 | 上海保橙网络科技有限公司 | 一种使用gps数据压缩及其数据传输方法 |
CN109523772A (zh) * | 2018-12-29 | 2019-03-26 | 东莞钜威动力技术有限公司 | 一种电压数据传输方法、装置、终端及存储介质 |
CN110912563A (zh) * | 2019-10-24 | 2020-03-24 | 北京交通大学 | 一种针对动力电池的数据压缩优化方法 |
CN111865324A (zh) * | 2019-11-20 | 2020-10-30 | 马上消费金融股份有限公司 | 数据的压缩和解压方法、装置、系统和存储装置 |
CN112688692A (zh) * | 2020-12-23 | 2021-04-20 | 深圳市骏普科技开发有限公司 | 抄表数据压缩方法、数据格式、设备及存储介质 |
CN112835518A (zh) * | 2021-01-27 | 2021-05-25 | 歌尔科技有限公司 | 数据存储方法、装置、可穿戴设备及存储介质 |
CN113433367A (zh) * | 2021-08-25 | 2021-09-24 | 深圳市鼎阳科技股份有限公司 | 一种用于数字示波器的显示控制装置、方法和数字示波器 |
CN116388768A (zh) * | 2023-06-06 | 2023-07-04 | 上海海栎创科技股份有限公司 | 一种信号数据的压缩方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0372970A1 (en) * | 1988-12-07 | 1990-06-13 | BRITISH TELECOMMUNICATIONS public limited company | Data compression |
CN1127558A (zh) * | 1994-04-22 | 1996-07-24 | 索尼公司 | 数据传输装置和数据记录装置及数据传输方法和数据记录方法 |
EP0810532A2 (en) * | 1996-05-31 | 1997-12-03 | Siemens Medical Systems, Inc. | A lossless data compression technique that also facilitates signal analysis |
TW358165B (en) * | 1997-03-24 | 1999-05-11 | Advantest Corp | Compression of data patterns and decompression method, the compression and decompression device |
CN104868922A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 数据压缩方法及装置 |
-
2015
- 2015-12-03 CN CN201510874817.6A patent/CN105530013B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0372970A1 (en) * | 1988-12-07 | 1990-06-13 | BRITISH TELECOMMUNICATIONS public limited company | Data compression |
CN1127558A (zh) * | 1994-04-22 | 1996-07-24 | 索尼公司 | 数据传输装置和数据记录装置及数据传输方法和数据记录方法 |
EP0810532A2 (en) * | 1996-05-31 | 1997-12-03 | Siemens Medical Systems, Inc. | A lossless data compression technique that also facilitates signal analysis |
TW358165B (en) * | 1997-03-24 | 1999-05-11 | Advantest Corp | Compression of data patterns and decompression method, the compression and decompression device |
CN104868922A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 数据压缩方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788450A (zh) * | 2016-11-22 | 2017-05-31 | 深圳市长龙铁路电子工程有限公司 | 一种道岔动作曲线的压缩方法 |
CN107040525A (zh) * | 2017-03-23 | 2017-08-11 | 上海保橙网络科技有限公司 | 一种使用gps数据压缩及其数据传输方法 |
CN109523772A (zh) * | 2018-12-29 | 2019-03-26 | 东莞钜威动力技术有限公司 | 一种电压数据传输方法、装置、终端及存储介质 |
CN110912563A (zh) * | 2019-10-24 | 2020-03-24 | 北京交通大学 | 一种针对动力电池的数据压缩优化方法 |
CN111865324A (zh) * | 2019-11-20 | 2020-10-30 | 马上消费金融股份有限公司 | 数据的压缩和解压方法、装置、系统和存储装置 |
CN111865324B (zh) * | 2019-11-20 | 2021-08-24 | 马上消费金融股份有限公司 | 数据的压缩和解压方法、装置、系统和存储装置 |
CN112688692A (zh) * | 2020-12-23 | 2021-04-20 | 深圳市骏普科技开发有限公司 | 抄表数据压缩方法、数据格式、设备及存储介质 |
CN112835518A (zh) * | 2021-01-27 | 2021-05-25 | 歌尔科技有限公司 | 数据存储方法、装置、可穿戴设备及存储介质 |
CN113433367A (zh) * | 2021-08-25 | 2021-09-24 | 深圳市鼎阳科技股份有限公司 | 一种用于数字示波器的显示控制装置、方法和数字示波器 |
CN113433367B (zh) * | 2021-08-25 | 2021-11-02 | 深圳市鼎阳科技股份有限公司 | 一种用于数字示波器的显示控制装置、方法和数字示波器 |
CN116388768A (zh) * | 2023-06-06 | 2023-07-04 | 上海海栎创科技股份有限公司 | 一种信号数据的压缩方法和系统 |
CN116388768B (zh) * | 2023-06-06 | 2023-08-22 | 上海海栎创科技股份有限公司 | 一种信号数据的压缩方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105530013B (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105530013A (zh) | 一种波形数据压缩方法与系统 | |
CN107102220A (zh) | 录波数据处理方法及装置 | |
CN103457609B (zh) | 故障录波数据无损压缩、解压缩方法 | |
CN110277998B (zh) | 电网数据无损压缩方法和装置 | |
CN101923569B (zh) | 一种实时数据库的结构类型数据的存储方法 | |
CN103258030B (zh) | 基于字典与游长编码的移动设备内存压缩方法 | |
CN104657362A (zh) | 数据存储、查询方法和装置 | |
CN109871362A (zh) | 一种面向流式时序数据的数据压缩方法 | |
CN103685589A (zh) | 基于二进制编码的dns数据压缩、解压缩方法及系统 | |
CN104168085A (zh) | 一种基于冗余熵变换的数据压缩方法 | |
CN104125475B (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
CN104410424A (zh) | 嵌入式设备内存数据的快速无损压缩方法 | |
CN108153483A (zh) | 一种基于属性分组的时序数据压缩方法 | |
CN109039342A (zh) | 一种出力数据的压缩方法、系统和解压缩方法、系统 | |
Abdulzahra MSc et al. | Energy conservation approach of wireless sensor networks for IoT applications | |
CN105337617A (zh) | 一种fsn文件高效压缩方法 | |
CN104320143A (zh) | 三相电压、电流信号波形采样数据的压缩方法及装置 | |
CN103618554B (zh) | 基于字典的内存页面压缩方法 | |
CN105631000B (zh) | 基于移动终端位置特征信息的终端缓存的数据压缩方法 | |
CN104636432B (zh) | 一种日志文件压缩和解压的方法及装置 | |
CN115622566A (zh) | 高效率的电力实时数据动态无损压缩传输方法 | |
CN104899311A (zh) | WebGIS矢量数据高效传输方法 | |
Khairi et al. | Run-length encoding (RLE) data compression algorithm performance analysis on climate datasets for Internet of Things (IoT) application | |
CN104301726A (zh) | 一种图像无损压缩与解压缩的方法 | |
CN112751567B (zh) | 电力系统暂态录波交互数据的压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |