测井数据实时无损压缩研讨和实践

时间:2022-07-22 10:39:59

导语:测井数据实时无损压缩研讨和实践一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

测井数据实时无损压缩研讨和实践

随着新型井下仪器的不断涌现及多种井下仪器的组合应用,测井信息通道也不断增加,传输的数据量越来越大。由于数据传输率与数据的实时存取以及井下系统的功耗是矛盾的,要实现井下几千米的测井数据的实时传输,就必须尽量提高数据传输率,但随着传输率的提高,信号的衰减和系统功耗也随之增加。为了满足新型测井系统对数据传输的要求,本系统采用了较高的传输率,测井时必须把采集的井下信息可靠而实时地传输到地面,由于测井信息传输通道的传输距离远,无线传输速度慢等特性的限制,解决好传输率的问题并非易事。因此,为了满足井下数据的实时传输,便通过将井下采集的数据进行压缩处理后再进行传输,这样就间接地提高了传输率。

本文以研究LzW算法为基础,以FPGA为硬件平台,以解决软件压缩解压所存在的速度慢、占用内存多的缺点。即:a.提高压缩解压速度,有利于实时性处理;b.节省宝贵的CPU资源,从而取得非常好的效果匡3〕。用不同的无损压缩方法对数据(b)进行处理,从图2可以看出,与RLE[4]、Huffinan算法[5]、帧相关压缩[6]相比,LZW的压缩效果明显高于其他算法,尤其是远远高于通用的(未考虑测井数据特征)RLE、Huffillan算法。几种无损压缩结果的比较信息头一数据区{CRC校验位1FAAF图1观叮井数据格式测井数据是以区为单位连续读取的,每个区有258个字节组成,如图1所示,每个区有四部分组成:信息头(6个Bytes)、数据区(246个字节)、CRC校验位(4个Bytes)、信息尾(FAAF)。为了获得更好的压缩效果,将测井数据进行预处理,处理后的数据分为三部分:数据(a)包括信息头、FAAF,数据(b)包括数据区,数据(c)包括cRc校验位。由于数据(a)是固定的,用特殊的代码(100H)表示即可。由于数据(c)位数相对较少,故主要对数据区进行处理。从图3可以看出,随着数据字节数的增多,数据的重复率越高,压缩效果越好。但是,压缩效果不能无限制地提高,这是因为随着测井数据差别的增大,数据重复率降低,压缩效果受到限制。因此,根据实际情况确定合适的字典大小是非常关键的,本文采用两个字典轮流工作,取得了很好的效果。另外,LZW算法的实时性较好,运算快,易于硬件的实现,这也正是选择该算法的重要原因。

2LZW算法的过程描述LZW算法有三个重要的对象:输入数据流、输出编码流和一张用于编码的字典。输入数据流是指被压缩的数据;输出编码流是指压缩后输出的代码流;字典存储的是字符串及其索引号,从而实现了数据的无损压缩。其压缩算法的过程见文献【7]。该算法的基本思想是用简单的代码来代替复杂的字符串以实现压缩,在压缩过程中自适应建立一个字典,反应了字符串和代码的对照关系,通过查询字典来确定字符串压缩代码的输出。LZW编码能够有效地利用重复出现的字符,只需扫描一次,无需有关输入数据统计量的先验信息,其运算时间正比于数据的长度。图4是对数据(b)进行编码的过程,如果字典中没有当前组成的字符串,则给该字符串编码,并且放入字典中,否则,继续读取下一个字符组成新的字符串,如此循环。可以看出,随着输入的增多,字典的存储也会增多,每个存储地址代表更长的字符串,编码效果也会越来越好。7只吞二奋591砚种170451556众16习4多87t4U苦4人凌56卜礴9子4子〕2矛八口6封吞〔一14月5(1044公129盆O呜65t78455717B今,17臼38t7日_.{尸图5编码输出图5是对数据(b)编码后的数据输出,如果字典中没有当前组成的字符串,则将前缀输出,否则,不进行任何输出,继续读取字符,组成新的字符串,如此循环。3硬件数据压缩算法的基本原理及过程本文采用FPGA[8]实现了数据的实时无损压缩。以Altera公司的Cyclonexl系列中的EPZe5T一1418作为目标器件,经过Quartusll软件编译综合,ModelsimSE仿真,得到工程的综合报告和仿真情况。图6是整个工程的FPGA资源占用情况。由综合结果得到,系统能够稳定运行的最高工作频率是134MHz,平均每12个周期压缩一个数据点,数据点输入位宽为shits,所以整个系统能够有效处理的能力为:89.3M/S。

其中,使用Verilog语言进行功能描述设计的FPGA芯片是整个算法的核心部分。系统运行时,井下的测井数据经过一些预处理(去冗余:将帧头去陶后传送给FpG入进行存储、压缩处理等操作。综合该算法和FPGA的特点,提高算法的压缩性能与FPGA的资源利用率,做出了如下处理。

(l)为提高测井数据的压缩率,对数据(c)先进行差值处理后,再进行LZW压缩。

(2)为保证异步时钟域数据同步,采用FPG内的双口RAM构成一个FIFO对预处理后的数据进行缓存。

(3)对于HASH地址查找[9],难免会有冲突发生,解决该问题的途径有两种:a.改变HASH函数;b.记录法:将每个字符串是否被用过、被哪个段用过记录下来,当然这样会占用额外内存,但是用这点内存换取时间也是非常值得的。

(4)字典存储器模块。字典的一个词条包括字典编码、前缀、后缀(当前字节)。每个词条的宽度为咒位(字典编码12位,前缀12位,当前字节8位)。

(5)由于数据具有局部平稳性,随着数据的增多,数据间的相关性降低,影响压缩效率。可采用双字典轮流工作机制,使字典适应于数据流的输入。图8所示是数据(b)的仿真截图,图中的code是字典编码,dataout是12位的输出,对照图4、图5对应的理论压缩过程,可见LZW模块仿真的结果无误。3硬件数据压缩算法的基本原理及过程本文采用FPGA[8]实现了数据的实时无损压缩。以Altera公司的Cyclonexl系列中的EPZe5T一1418作为目标器件,经过Quartusll软件编译综合,ModelsimSE仿真,得到工程的综合报告和仿真情况。图6是整个工程的FPGA资源占用情况。4结语本文用硬件方法实现测井数据的实时无损压缩,能够将高速信号变成缓变信号进行传输,对于提高通信的信道容量,提高数据的可靠性具有重要的意义。

通过实践证明,数据的压缩比能达到19%左右,这大大提高了无线测井数据传输的效率。本技术对于石油探测数据的采集具有重要的意义,具有广阔的应用前景。本文创新点:与其他同类文章相比,本文将LZW压缩算法应用于测井数据特征的数据压缩处理,并通过FPGA对LZW算法进行完善,充分利用硬件资源,避免了在处理过程中有可能会出现的遗漏采样点情况。