一种波形数据压缩方法与系统的制作方法_2

文档序号:9767583阅读:来源:国知局
差值算法2ms采样压缩第一次结 果图;
[0048]图14为RAR软件压缩算法2ms采样压缩第一次结果图;
[0049] 图15为本发明一种波形数据压缩方法实施例一的差值算法2ms采样压缩第二次结 果图;
[0050] 图16为RAR软件压缩算法2ms采样压缩第二次结果图;
[0051]图17为本发明一种波形数据压缩方法实施例一的差值算法2ms采样压缩第三次结 果图;
[0052]图18为RAR软件压缩算法2ms采样压缩第三次结果图;
[0053]图19为本发明一种波形数据压缩方法实施例一的差值算法5ms采样压缩第一次结 果图;
[0054]图20为RAR软件压缩算法5ms采样压缩第一次结果图;
[0055]图21为本发明一种波形数据压缩方法实施例一的差值算法5ms采样压缩第二次结 果图;
[0056]图22为RAR软件压缩算法5ms采样压缩第二次结果图;
[0057]图23为本发明一种波形数据压缩方法实施例一的差值算法5ms采样压缩第三次结 果图;
[0058]图24为RAR软件压缩算法5ms采样压缩第三次结果图;
[0059] 图25为本发明一种波形数据压缩系统实施例二的结构示意图。
【具体实施方式】
[0060] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0061] (1)差值压缩方法
[0062] 分布式行波故障定位系统的波形数据有一个特点,每个波形数据占用2个BYTE,并 且每两个相邻的原始数据之间差值较小。此特点不局限于分布式行波故障定位系统的波形 数据,所有其它非离散性的波形数据均有此特点。
[0063] 现有技术对波形数据压缩一般使用差值压缩,假设整个波形有N个数据,计算所有 差值数据将得到一个N-1大小的差值数据数组(差值数据是指当前波形数据与前一个波形 数据之差得到的一个数据,此数据包含符号位),以差值数据数组中最大值所占用的比特位 长度作为每个差值数据的比特位长
[0064](此值定义为BitLength),并以此生成压缩数据(所有差值数据按同一比特位长度 连接生成一个比特位串,存储时按字节单位分别存储,每个存储的字节数据为一个压缩数 据);同时第一个波形数据没有进行差值计算,将被存储为原始数据(直接存储的波形数据 为原始数据);此方法可以用较少的比特位表示一个16bit的数据,以达到压缩数据的目的。 图1示出了基于差值压缩基本思想的压缩流程。
[0065]图2为压缩数据存储格式,当数据为16b i t或32b i t时,均以小端格式存储,图2中: [0066] Head为压缩头,占用2个BYTE固定为'Τ' 'R',表示其为波形压缩数据;
[0067] BlockLength为压缩分块总数,占用一个2个BYTE长度,取值0表示没有压缩;
[0068] DataLength为原始波形数据总长度(单位BYTE),占用4个BYTE长度;
[0069] <Method[RawData] [(1小"(1(1]>是一个压缩数据块,Method为此压缩数据块的16bit 压缩方法字,其结构如图3所示,Method解释此压缩数据块的方法及数据结构;[RawData]为 16bit原始数据,属于可选项,其是否存在由Method中的flag决定;[dd…dd]为8bit-个单 位的连续压缩数据,属于可选项,其是否存在由Method中bitl决定。
[0070] 图3中示出了Me thod方法字数据结构,图3中:
[0071] flag: lbit,原始数据是否存在标志;当flag = 0时,Method后面无原始数据 [RawData],基础数据使用上一个解压后的波形数据;当flag=l时,Method后面有原始数据 [RawData],此原始数据将是本压缩数据块的第一个波形数据,并将此原始数据替换为新的 基础数据;在第一个压缩数据块中flag必须为1,才能为基础数据指定第一个数据源。
[0072] sign: 2bi t,差值数据符号位标志;当sign = 0x00时,表示压缩数据中的差值数据 有符号位,且为最高位,0表示正,1表示负;基础数据根据正负与差值数据进行加、减运算; 当sign = 0x01时,压缩数据中的差值数据无符号位,基础数据与差值数据执行加法操作;当 sign = 〇X〇2时,压缩数据中的差值数据无符号位,基础数据与差值数据执行减法操作。 [0073] datal:9bit,数据长度;取值范围为1~512,其具体含义由bitl决定。
[0074] bitl :4bit,根据其取值有3个不同定义(3个不同方法):
[0075] 当bitl = l~8时,bitl值代表压缩数据块的BitLength,块内有[dd."dd]项,且为 压缩数据,datal取值为压缩数据中包含的差值数据个数;此为差值压缩方法;
[0076]当bitl = 9时,压缩数据块没有进行数据压缩,但块内有[(Η···(Η]项,且为原始数 据,datal取值为原始数据个数;此为原始数据存储方法;
[0077]当bitl = 10时,执行对基础数据的复制功能,块内无[dd"_dd]项,datal取值为复 制基础数据的个数[当flag=l时,在原始数据[RawData]替换为基础数据后,先取得本块的 第一个波形数据,再执行复制功能];此为复制压缩方法;
[0078] 当bitl为0、11~15时,保留。
[0079] dd: dd数据有两个不同定义。
[0080]当bitl = l-8时,dd为压缩数据。一个压缩数据块内的所有差值数据由低bit到高 bit连接而生成一个长度为datal*bitl的比特位串,此位串按字节生成dd数据,最后一个dd 数据可能有剩余无用位则填充〇;因此,一个dd数据可能包含几个差值数据,同时一个差值 数据可能包含在相邻的两个dd中;
[0081]当bitl = 9时,dd为原始数据,并且每两个dd数据组成一个原始数据。
[0082] (2)差值压缩方法的解压方法
[0083]对应于差值压缩的解压缩方法,首先读取存储的原始数据设置为基础数据(波形 数据,占用2个BYTE;基础数据的作用是在解压时与压缩数据中取出的差值数据进行运算得 到一个解压数据,此时基础数据将被解压数据替换,用于计算下一个解压数据),同时也作 为解压缩的第一个波形数据;取得第一个压缩数据中的差值数据,根据差值数据的符号将 基础数据与差值数据执行加法/减法操作,解压缩出第二个波形数据;
[0084] 将第二个波形数据同时作为新的基础数据,并取得压缩数据中的第二个差值数 据,按同样的方法计算出第三个波形数据;
[0085] 按上面方法继续计算后续数据,在计算N-1次后即可解压缩出所有波形数据。解压 的基本流程如图2所示。
[0086] 采用以上的差值压缩和解压方法,只要整个波形不存在大量的相邻数据突变,压 缩率将非常理想,但是在以上差值压缩基本方法中,如果存在大量连续差值数据的实际比 特位长小于BitLength,会造成这部分差值数据的压缩性能降低,因此有必要将差值数据数 组进行分块处理。
[0087] 为了提高压缩率,将差值数据数组分成块,形成若干个小的差值数据数组块。这样 每个差值数据数组块的BitLength将尽可能接近其每个差值数据实际比特位长。规定 BitLength取值范围为1~8比特(超过8比特的则用原始波形数据表示),如果BitLength平 均在4~7,压缩率可以达到25.00 %~43.75%,小于50% ;因此,压缩方法主要解决的问题 是如何对差值数据数组分块(或简称压缩数据分块);
[0088] 差值数据数组分块需要考虑以下几种情况:
[0089] 第一,差值数据为0,即波形原始数据完全相同(可极大提高压缩率);
[0090] 第二,差值数据符号位相同(可以去掉符号位小幅提高压缩率);
[0091] 第三,差值数据数组中的BitLength大于8(使用波形原始数据表示,减少压缩算法 复杂度);
[0092] 第四,差值数据比特位长相近的最优组合(差值压缩基本算法)。
[0093] 实施例一:
[0094] 针对波形数据特点进行数据压缩主要是为了提高数据存储与传输性能,为了达到 最佳的性能,本发明提供了一种波形数据压缩方法,包括:
[0095] 步骤S101:获取所有待压缩波形数据,从第二个波形数据开始,分别计算各波形数 据与前一波形数据的差值数据,直到满足计算停止条件时停止差值数据的计算;
[0096] 第一计算停止条件为差值数据连续为0的差值数据个数超过第一预设阈值;第二 计算停止条件为差值数据连续出现符号相同的差值数据个数超过第二预设阈值;第三计算 停止条件为差值数据大于或等于第三预设阈值;第四计算停止条件为差值数据长度等于第 四预设阈值;
[0097] 从第二个波形数据开始,依次计算差值数据(同时生成比特位长值);
[0098] bit l_max为已经计算差值数据得到的比特位长最大值,如计算出3个差值数据的 比特位长值分别为3、4、5,则b i t l_max = 5;
[0099] 计算停止的条件为:
[0100] 计算停止条件A:差值数据连续为0的数据超过(16/bitl_max)[+l]+l个;
[0101] 计算停止条件B:差值数据符号相同连续数据超过16个;
[0102] 计算停止条件C:差值数据大于或等于正
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1