买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于哈希字典的随钻密度测井仪井下高速实时压缩方法_电子科技大学_201810209642.0 

申请/专利权人:电子科技大学

申请日:2018-03-14

公开(公告)日:2021-07-13

公开(公告)号:CN108494408B

主分类号:H03M7/30(20060101)

分类号:H03M7/30(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.07.13#授权;2018.09.28#实质审查的生效;2018.09.04#公开

摘要:本发明公开了一种基于哈希字典的随钻密度测井仪井下高速实时压缩方法,先将原始数据进行串并转换送入FIFO缓存,再在压缩过程启动后,从FIFO中读取输入数据,并与前缀码一起生成对应的哈希表地址,然后读取字典存储器相应地址的内容,如果内容为空,则输出输入的数据,将相应前缀码,当前面码和字典项编码存入字典;如果内容不为空且内容匹配,则输入下一数据;如果内容不为空但与当前数据冲突,则用哈希冲突函数重新进行哈希地址计算并且读取、判断数据;当字典存满后,此时开始清空该字典,同时选用另一个字典进行工作,如此循环,直至压缩结束。

主权项:1.一种基于哈希字典的随钻密度测井仪井下高速实时压缩方法,其特征在于,包括以下步骤:1、构造随钻密度测井仪中的哈希字典哈希字典的存储格式为prefix,character,code,其中,prefix为前缀码,位宽为12位,character为当前输入字符,位宽为8位,code为当前编码,位宽为12位;2、原始测井数据的缓存处理将原始测井数据先进行串并转换,再送入FIFO缓存;3、对缓存后的数据进行实时压缩3.1、初始化哈希字典;3.2、从FIFO中读出缓存后的数据并存入哈希字典的character中,再判断读入的数据是否为第一次压缩处理,如果是第一次压缩处理,则不输出,将前缀码prefix更新为character,再从FIFO中读出下一条待压缩数据,并重复步骤3.2;否则直接进入步骤3.3;3.3、将character中输入字符与前缀码prefix利用哈希函数Index=character4XORprefix计算出哈希字典的索引值Index,其中,character4表示输入字符左移4位,XOR表示异或运算;3.4、根据索引值Index,查找哈希字典地址Index处的内容,并将该处内容与当前prefix,character字符串进行比较,得到如下结果:3.4.1、若字典该地址处的内容为空,即未存储任何数据,则输出当前prefix,再更新prefix和code,prefix更新为4’b0000,character,code更新为code=code+1,再将字符串prefix,character,code存入该地址,并返回步骤3.2;3.4.2、若字典该地址处的内容不为空且存储的内容的前20位与字符串prefix,character相同,则不输出,不更新code,仅将prefix更新为当前code的值,再返回步骤3.2;3.4.3、若字典该地址处的内容不为空且存储的内容与字符串prefix,character冲突,则按照如下方法重新计算Index值;利用公式:offset=table_size-Index计算出地址偏移量offset;若满足Index=Index-offset0,则将此时的Index值作为哈希字典的索引值Index并返回步骤3.4;否则利用Index=Index-offset+table_size得到的值作为哈希字典的索引值Index并返回步骤3.4;其中,table_size为哈希字典的存储深度;3.5、重复步骤3.2~3.4,直至压缩结束,其中,在压缩过程中,当一个哈希字典存满后,启动清空该哈希字典,同时选用另一个哈希字典工作;4、编码数据的位宽转换及输出压缩结束后,将哈希字典的输出结果进行位宽转换,然后经过串并转换得到串行数据,最后把串行数据送到串行总线上进行输出。

全文数据:基于哈希字典的随钻密度测井仪井下高速实时压缩方法技术领域[0001]本发明数据压缩处理技术领域,更为具体地讲,涉及一种基于哈希字典的随钻密度测井仪井下高速实时压缩方法。背景技术[0002]随钻密度测井的原理是用化学源放射产生的伽马射线照射地层,与地层中物质中的电子发生康普顿效应,然后用探测器检测经过康普度效应后散射出来的伽马光子的能量,将探测器将伽马光子的能量转化为电信号供后续处理。由于化学源发射产生伽马射线有随机性,即化学源每次放射产生伽马射线的时刻、方向以及能量大小都没有规律可遵循,而伽马射线与地层发生康普顿散射后的伽马光子也具有随机性。由于放射产生的伽马射线和康普顿散射后的伽马光子都有随机性,所以探测器探测到康普顿散射后的伽马射线后产生的电信号也会遗传随机的特性,即每次产生的电信号的时刻和幅度大小也没有规律可寻.随钻密度测井仪采用了补偿密度测井的方法,探测系统装有长、短源距两个探测器,每个探测器独立的接收伽马光子并转换为电信号供后续处理。长、短源距的数据在后期经过总和处理后才能够获得真实地层参数。[0003]如图1所示,随钻密度测井仪井下电路主要由放射源、长短源探测器、电路系统骨架组成,随钻中子密度测井仪测试系统由前端测试装置和地面测试软件组成。随钻中子密度测井仪井下电路系统各个功能模块采用分布式系统设计,各个电路模块上都有MCU和FPGA,各自组成相应的最小系统,并可以独立实现相关的功能,各独立的电路模块之间通过RS485总线进行连接[0004]如图2所示,随钻密度测井仪电路系统骨架主要包括采集与处理模块、主控电源通讯模块、数据存储模块、超声井径模块、方位探测模块和高压供电模块。采集与处理模块是对前放电路输出的信号进行整形量化,形成256道脉冲幅度能谱数据,与扇区数据相结合,存储到SRAM存储器中,然后通过RS485总线传送给数据存储模块,数据存储模块再对数据进行进一步处理。主控电源通讯模块是仪器流程控制和通讯的核心,其主要任务是实现通信协议转换、仪器模式控制、电源供电及优先级选择、工作环境参数监测。数据存储模块的核心任务是能谱数据的存储和处理,其对数据的计算结果直接影响对当前地层情况的判断。[0005]由于随钻密度测井仪测井数据量非常大,井下数据传输率受限制,给数据的实时存储和传输带来了困难。所以,必须选用合适的数据压缩算法,对测井数据进行实时压缩处理,减少数据量,提高测井效率。发明内容[0006]本发明的目的在于克服现有技术的不足,提供一种基于哈希字典的随钻密度测井仪井下高速实时压缩方法,以实现井下仪器在大量采集信号的同时对测井数据进行实时、有效地压缩,减少数据存储量和传输量,提高测井效率。[0007]为实现上述发明目的,本发明为一种基于哈希字典的随钻密度测井仪井下高速实时压缩方法,其特征在于,包括以下步骤:[0008]1、构造随钻密度测井仪中的哈希字典[0009]哈希字典的存储格式为prefix,character,code,其中,prefix为前缀码,位宽为12位,character为当前输入字符,位宽为8位,code为当前编码,位宽为12位;[0010]2、原始测井数据的缓存处理[0011]将原始测井数据先进行串并转换,再送入FIFO缓存;[0012]3、对缓存后的数据进行实时压缩[0013]3.1、初始化哈希字典;[0014]3.2、从FIFO中读出缓存后的数据并存入哈希字典的character中,再判断读入的数据是否为第一次压缩处理,如果是第一次压缩处理,则不输出,将前缀码prefix更新为character,再从FIFO中读出下一条待压缩数据,并重复步骤(3.2;否则直接进入步骤3.3;[0015]3.3、将character中输入字符与前缀码prefiX利用哈希函数Index=character〈〈4XORprefix计算出哈希字典的索引值Index,其中,character〈〈4表示输入字符左移4位,XOR表示异或运算;[0016]3.4、根据索引值Index,查找哈希字典地址Index处的内容,并将该处内容与当前prefix,character字符串进行比较,得到如下结果:[0017]3.4.1、若该地址为空,S卩未存储任何数据,则输出当前prefix,再更新prefix和code,prefix更新为(4’bOOOO,character,code更新为code=code+l,再将字符串prefix,character,code存入该地址,并返回步骤(3.2;[0018]3.4.2、若字典该地址处不为空且存储的内容的前20位与字符串(prefix,character相同,贝Ij不输出,不更新code,仅将prefix更新为当前code的值,再返回步骤3.2;[0019]3.4.3、若字典该地址处不为空且存储的内容与字符串(prefix,character冲突,则按照如下方法重新计算Index值;[0020]利用公式:offset=table_size_Index计算出地址偏移量offset;若满足Index=Index-offset0,则将此时的Index值作为哈希字典的索引值Index并返回步骤3.4;否则利用Index=Index-offset+table_size得到的值作为哈希字典的索引值Index并返回步骤3.4;其中,table_size为哈希字典的存储深度;[0021]3.5、重复步骤3.2〜(3.4,直至压缩结束,其中,在压缩过程中,当一个哈希字典存满后,启动清空该哈希字典,同时选用另一个哈希字典工作;[0022]⑷、编码数据的位宽转换及输出[0023]压缩结束后,将哈希字典的输出结果进行位宽转换,然后经过并串转换得到串行数据,再把串行数据输入到FIFO缓存,最后把缓存数据送到串行总线上进行输出。[0024]本发明的发明目的是这样实现的:[0025]本发明基于哈希字典的随钻密度测井仪井下高速实时压缩方法,先将原始数据进行串并转换送入FIFO缓存,再在压缩过程启动后,从FIFO中读取输入数据,并与前缀码一起生成对应的哈希表地址,然后读取字典存储器相应地址的内容,如果内容为空,则输出输入的数据,将相应前缀码,当前面码和字典项编码存入字典;如果内容不为空且内容匹配,则输入下一数据;如果内容不为空但与当前数据冲突,则用哈希冲突函数重新进行哈希地址计算并且读取、判断数据;当字典存满后,此时开始清空该字典,同时选用另一个字典进行工作,如此循环,直至压缩结束。[0026]同时,本发明基于哈希字典的随钻密度测井仪井下高速实时压缩方法还具有以下有益效果:[0027]1、通过FPGA内部BIock_RAM就可以实现字典单元的构建,对资源的消耗比较少,并且在设计过程中可直接使用Xinlix自带的IP核,减少了编程工作量。[0028]2、数据压缩过程中通过哈希冲突函数对数据的再处理,能够很好解决哈希冲突,能够准确的压缩数据。[0029]3、输出的压缩数据中,不需要任何的标志位设置根据前后两个压缩码便可以得到字符串在字典中的位置,便于解压缩的实现。附图说明[0030]图1是随钻密度测井仪器结构示意图;[0031]图2是随钻密度测井仪井下电路系统整体设计示意图;[0032]图3是本发明基于哈希字典的随钻密度测井仪井下高速实时压缩方法流程图。具体实施方式[0033]下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。[0034]实施例[0035]图3是本发明基于哈希字典的随钻密度测井仪井下高速实时压缩方法流程图。[0036]在本实施例中,如图3所示,本发明一种基于哈希字典的随钻密度测井仪井下高速实时压缩方法,包括以下步骤:[0037]SI、构造随钻密度测井仪中的哈希字典[0038]如表1所示,哈希字典的存储深度table_siZe设计为4097,宽度为32位,其中,存储深度table_size满足条件为:table_size为奇数,且大于2的η次方,η为哈希字典编码位数。[0039]哈希字典用于存放三部分内容:当前输入字符character,前缀码prefix和当前码code,其存储格式为prefix,character,code,其中,prefix的位宽为12位,character的位宽为8位,code的位宽为12位。[0040]表1是哈希字典结构表;[0042]表I[0043]S2、原始测井数据的缓存处理[0044]将串行原始测井数据先进行串并转换,得到并行数据再送入FIFO缓存,以方便数据压缩过程的实现。[0045]S3、对缓存后的数据进行实时压缩[0046]S3.1、初始化哈希字典:哈希字典初始化为0,将哈希字典的编码项初始值设为256;[0047]S3.2、从FIFO中读出缓存后的数据并存入哈希字典的character中,再判断读入的数据是否为第一次压缩处理,如果是第一次压缩处理,则不输出,将前缀码prefix更新为character,再从FIFO中读出下一条待压缩数据,并重复步骤S3.2;否则直接进入步骤S3.3;[0048]S3.3、将character中输入字符与前缀码prefix利用哈希函数Index=character〈〈4XORprefix计算出哈希字典的索引值Index,其中,character〈〈4表示输入字符左移4位,XOR表示异或运算;[0049]S3.4、根据索引值Index,查找哈希字典地址Index处的内容,并将该处内容与当前prefix,character字符串进行比较,得到如下结果:[0050]S3.4.1、若该地址为空,即未存储任何数据,表示此时的字符串(prefix,character在压缩数据流中第一次出现,则输出当前prefix,再对字典进行更新,即将字符串(prefix,character,code存入该地址,再更新prefix和code,prefix更新为4’bOOOO,character,code更新为code=code+1,再返回步骤S3.2;[0051]S3.4.2、若字典该地址处不为空且存储的内容的前20位与字符串(prefix,character相同,表示此时的字符串(prefix,character在压缩数据流的历史字符串中曾经出现过,贝Ij不输出,不更新code,仅将prefix更新为当前code的值,再返回步骤S3.2;[0052]S3.4.3、若字典该地址处不为空且存储的内容与字符串(prefix,character冲突,即压缩数据流中的某历史字符串与prefix,character不同但是经过哈希函数计算得到同样的索引值index,则按照如下方法重新计算Index值;[0053]利用公式:〇€€86七=七1316_8丨26-111161计算出地址偏移量〇€€861:;若满足11116叉=Index-offset0,则将此时的Index值作为哈希字典的索引值Index并返回步骤S3.4;否则利用Index=Index-offset+table_size得到的值作为哈希字典的索引值Index并返回步骤33.4;其中41316_以狀为哈希字典的存储深度;[0054]S3.5、重复步骤S3.2〜S3.4,直至压缩结束,其中,在压缩过程中,当code更新为4093时,表示此哈希字典已经存满,为保证之后压缩过程的进行,此时需要更换另一个哈希字典工作,并且重新初始化code=256。[0055]下面对压缩过程进行举例说明,输入8位字符串流为:ABABABBBABABAABDAC,压缩开始时,首先读取字符A到character,由于是第一次压缩,不输出,将prefix的内容更新为A,然后读取昭Ijcharacter,此时词条为A,B且哈希字典中不存在此词条,则将该词条存入哈希字典且哈希字典项编码为256,同时输出prefix的内容A,并将prefix的内容更新为B;读取A到character,此时词条为B,A且哈希字典中不存在此词条,则将该词条存入哈希字典且哈希字典项编码为257,同时输出prefix的内容B,并将prefix的内容更新为A;读取下一字符B到character,此时词条为A,B且该词条存在于哈希字典中,贝Ij不输出,将prefix更新为词条A,B对应的字典项编码256;读入下一字符A到character,此时词条为256,A且哈希字典中不含有此词条,则将该词条存入哈希字典且哈希字典项编码为258,同时输出prefix的内容256,并将prefix的内容更新为A...如此循环,如表2所示,直至压缩结束。[0056]表2是哈希字典压缩流程表;[0059]表2[0060]S4、编码数据的位宽转换及缓存输出[0061]压缩结束后,由于压缩过程产生的数据为12位宽,为方便对数据的后续处理需要,因此需要将数据转换为8位进行存储,位宽转换然后经过并串转换得到串行数据;[0062]由于对数据的压缩和对压缩结果的发送所采用的时钟不一样,因此需要把串行数据输入到FIFO缓存,最后把缓存数据送到串行总线上进行输出。[0063]尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

权利要求:1.一种基于哈希字典的随钻密度测井仪井下高速实时压缩方法,其特征在于,包括以下步骤:1、构造随钻密度测井仪中的哈希字典哈希字典的存储格式为prefix,character,code,其中,prefix为前缀码,位宽为12位,character为当前输入字符,位宽为8位,code为当前编码,位宽为12位;2、原始测井数据的缓存处理将原始测井数据先进行串并转换,再送入FIFO缓存;3、对缓存后的数据进行实时压缩3.1、初始化哈希字典;3.2、从FIFO中读出缓存后的数据并存入哈希字典的character中,再判断读入的数据是否为第一次压缩处理,如果是第一次压缩处理,则不输出,将前缀码prefix更新为character,再从FIFO中读出下一条待压缩数据,并重复步骤(3.2;否则直接进入步骤3.3;3.3、将character中输入字符与前缀码prefix利用哈希函数Index=character〈〈4XORprefix计算出哈希字典的索引值Index,其中,character〈〈4表示输入字符左移4位,XOR表示异或运算;3.4、根据索引值Index,查找哈希字典地址Index处的内容,并将该处内容与当前prefix,character字符串进行比较,得到如下结果:3.4.1、若该地址为空,S卩未存储任何数据,则输出当前prefix,再更新prefix和code,prefix更新为(4’bOOOO,character,code更新为code=code+l,再将字符串prefix,character,code存入该地址,并返回步骤(3.2;3.4.2、若字典该地址处不为空且存储的内容的前20位与字符串(prefix,character相同,贝Ij不输出,不更新code,仅将prefix更新为当前code的值,再返回步骤3.2;3.4.3、若字典该地址处不为空且存储的内容与字符串(prefix,character冲突,则按照如下方法重新计算Index值;利用公式:〇€€86七=七1316_8丨26-111161计算出地址偏移量〇€€861:;若满足11116叉=Index-offset0,则将此时的Index值作为哈希字典的索引值Index并返回步骤3.4;否则利用Index=Index-offset+table_size得到的值作为哈希字典的索引值Index并返回步骤3.4;其中,table_size为哈希字典的存储深度;3.5、重复步骤3.2〜(3.4,直至压缩结束,其中,在压缩过程中,当一个哈希字典存满后,启动清空该哈希字典,同时选用另一个哈希字典工作;⑷、编码数据的位宽转换及输出压缩结束后,将哈希字典的输出结果进行进行位宽转换,然后经过串并转换得到串行数据,最后把串行数据送到串行总线上进行输出。2.根据权利要求1所述的基于哈希字典的随钻密度测井仪井下高速实时压缩方法,其特征在于,所述步骤4中,将哈希字典的输出结果进行进行位宽转换的方式为:将12bits数据转换Sbits数据。3.根据权利要求1所述的基于哈希字典的随钻密度测井仪井下高速实时压缩方法,其特征在于,所述的哈希字典的存储深度table_size满足条件为:table_size为奇数,且大于2的η次方,η为哈希字典编码位数。

百度查询: 电子科技大学 基于哈希字典的随钻密度测井仪井下高速实时压缩方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。