CN108873062A - 一种基于fpga的多编码器高速地震数据并行无损压缩方法 - Google Patents
一种基于fpga的多编码器高速地震数据并行无损压缩方法 Download PDFInfo
- Publication number
- CN108873062A CN108873062A CN201810435810.8A CN201810435810A CN108873062A CN 108873062 A CN108873062 A CN 108873062A CN 201810435810 A CN201810435810 A CN 201810435810A CN 108873062 A CN108873062 A CN 108873062A
- Authority
- CN
- China
- Prior art keywords
- data
- dictionary
- compression
- fpga
- lossless compression
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V1/00—Seismology; Seismic or acoustic prospecting or detecting
- G01V1/24—Recording seismic data
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Acoustics & Sound (AREA)
- Environmental & Geological Engineering (AREA)
- Geology (AREA)
- General Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Geophysics (AREA)
- Geophysics And Detection Of Objects (AREA)
Abstract
本发明针对地震数据传输对实时和质量的较高要求,提出了一种基于FPGA的多编码器高速地震数据并行无损压缩方法,运用N阶差分预测编码与改进的LZW算法实现两次压缩,数据压缩可达到原数据的50%以下,压缩速度是原算法的10倍以上。以Spartan6系列xc6slx100t‑2fgg484FPGA为算法硬件实现平台,设计了包含1个数据收发模块和4个压缩模块的并行无损压缩系统方法,带宽可达到4Gbps,为海量地震数据实时压缩提供了参考。
Description
技术领域
本发明属于地球物理勘探技术领域,具体涉及一种基于FPGA的多编码器高速地震数据并行无损压缩方法。
背景技术
地质勘探过程中,海量数据的实时回收给现有地震勘探仪器带来了巨大的挑战,这也是制约地震勘探仪器发展的最主要因素。特别是,随着地震勘探的不断深入,使得地震勘探数据持续膨胀,给地震勘探仪器的采样和无线传输速度、存储器的存储容量以及计算机的处理速度造成极大压力。地震勘探仪器通常使用24位AD转换技术获取3字节有符号整形的采样数据,现在吉林大学自主研发的地震仪已经使用32位AD,AD转换位数的增加和采样道数的增加需要更高的数据传输速率来保证数据的正确性和安全性,否则会影响施工效率、勘探分辨能力等。面对大数据量的实时数据传输,带宽的瓶颈直接制约着系统的带道能力,数据压缩可以从传输的源头减少数据量,提升系统能力。
中国专利CN106772567A公开了《一种用于地震勘探仪的数据传输无损压缩算法》,首先根据前两个采样点对本采样点的预测值与本采样点的真实值之差求得预测差值ΔV,用ΔV替代本采样点24位原始数据;再根据数据特点,采用游程编码和霍夫曼编码两次压缩指示预测差值ΔV数据位数的指示数据位数段,显著减少一帧中指示数据位数段的长度。该方法具有在算法的复杂度和时效性方面,计算和实现简单,不改变采集站微处理器实时性的优点。
中国专利CN103067022A公开了《一种整型数据无损压缩方法、解压缩方法及装置》,提供一种整型数据压缩方法包括:位重组处理过程、数据块划分及基本信息存储过程和编码处理过程;该方法具有算法简单、易于实现,编码解码效率高,压缩效果好,可用于对音频数据、地震勘探信号、地球物理测井波形数据和图像数据等多种类型的整型数据进行无损压缩和解压缩的优点。
中国专利CN107135004A公开了《一种对地震数据流的自适应实时无损压缩方法》,提供一种对地震数据流的自适应实时无损压缩方法,为提高设备的传输效率,在地震勘探设备采集时,对24位模数转换后的地震数据进行自适应实时无损压缩。
虽然上述现有技术可用于地震数据的无损压缩,但都是利用算法对有限的少量地震数据处理,算法压缩效果大多停留在软件试验仿真阶段。并且算法的硬件实现处理能力与高速数据的传输需求相差甚远,对于海量的地震数据流的实时压缩与传输并不适用。
发明内容
本发明的目的就在于针对上述现有地震压缩技术的不足,提供一种基于FPGA的多编码器高速地震数据并行无损压缩方法,运用N阶差分预测编码与改进的LZW算法实现两次压缩,能够对地震勘探仪器32位模数转换数据上实现实时高速并行无损压缩,以提高地震勘探系统的传输效率。
为实现上述目的,本发明用于对单个通道若干个周期采集到的32位地震数据进行压缩,是实时对数据流进行无损压缩,压缩后数据量大幅减小,可提高数据传输效率。
本发明的目的是通过以下技术方案实现的:
一种基于FPGA的多编码器高速地震数据并行压缩方法,包括以下步骤:
A、N阶差分预测编码:使用N阶差分预测编码消除数据之间存在的冗余和减小数据的幅值;
B、以改进的LZW算法对预测编码后的值进行再压缩:
B1、采用并行查找方式,每次将新字符串与字典中的16个词条进行比较,再采取查找次数截断的方式,设置参数Match-Count,在查找次数大于Match-Count以后,如果还没有找到匹配的词条,就认为字典中没有该词条,强行跳出查找过程;
B2、选择合适的字典容量并通过FIFO方式对字典进行更新;
B3、针对传统LZW算法给不同的码字分配固定码字,改进的算法对不同的码字分配变长长度;
C、地震数据并行无损压缩系统实现:由FPGA的5个模块构成地震数据并行无损压缩系统,5个FPGA模块分为两类:FPGA0是第一类,用于数据的输入和输出,码流的汇总、输出和同步管理;FPGA1至FPGA4是第二类,用于数据压缩;
所述步骤A具体为:先对采集的原始数据进行的一阶差分,利用后一个数据减前一个数据得到差分数据,即原始数据为:X1、X2、…、Xn,则一阶差分数据为:X1、X2-X1、…、Xn-Xn-1;对一阶差分数据再做一次差分,得到二阶差分为:X1、X2-X1、X3-2X2+X1…、Xn-2Xn-1+Xn-2;对二阶差分后的数据再做一次差分,得到三阶差分,以此类推,得到任意阶次的差分预测编码。
所述步骤B1查找起始地址的选取,是在字典中将前缀相同的词条放在一起,查找时根据前缀的低8bit来确定起始地址。
与现有技术相比,本发明的有益效果在于:
本发明对地震仪中A/D转换后地震数据的特点,运用N阶差分预测编码与改进的LZW算法实现两次压缩,数据压缩可达到原数据的50%以下,压缩速度是原算法的10倍以上。并在FPGA上实现了地震数据的实时并行无损压缩,以Spartan6系列xc6slx100t-2fgg484FPGA为算法硬件实现平台,设计了包含5个模块的并行压缩模块的系统方法,带宽可达到4Gbps,保证了地震数据实时高速无损地传输和存储。从源头上缩减了地震数据量,缓解了地震数据传输压力,采用数据流的方式对地震数据进行压缩,实现了一边采集一边压缩,使得地震勘探实时监测的效率大大提升。
附图说明:
图1地震数据并行无损压缩系统的结构图;
图2LZW算法步骤流程图;
图3地震数据并行无损压缩系统的总体设计图;
图4数据输入部分原理图;
图5数据压缩部分原理图;
图6码流输出部分原理图。
具体实施方式
下面结合附图对本发明进行详细说明。
如图1所示,地震数据通过检波器、A/D转换模块采集到,再经过数据压缩系统对地震数据无损并行压缩,最后对压缩后的数据进行存储或传输到PC端解压。本发明一种基于FPGA的多编码器高速地震数据并行无损压缩方法,首先,使用N阶差分预测编码消除数据之间存在的冗余和减小数据的幅值;然后,改进LZW算法,用改进的LZW算法对预测编码后的值进行再压缩。具体包括以下步骤:
A、N阶差分预测编码实现
先对采集的原始数据进行的一阶差分,利用后一个数据减前一个数据得到差分数据,即原始数据为:X1、X2、…、Xn,则一阶差分数据为:X1、X2-X1、…、Xn-Xn-1;对一阶差分数据再做一次差分,得到二阶差分为:X1、X2-X1、X3-2X2+X1…、Xn-2Xn-1+Xn-2;对二阶差分后的数据再做一次差分,得到三阶差分,以此类推,得到任意阶次的差分预测编码。差分预测编码只需要做若干次减法,并且地震仪A/D输出的是32位整形补码,所以很容易硬件实现减法器,解压缩只需对差分预测编码后的数据做若干次加法。
B、LZW算法的改进
LZW算法的核心思想是用字典词条代码来代替原始字符串,它不必对数据进行预先分析,在压缩的过程中自适应地建立起相应的字典,并在解压缩时逐步建立与压缩时完全相同的字典。LZW算法实现步骤如图2所示,算法的压缩速度很大程度上是由查表速度决定的;其次,LZW算法主要依赖编码过程中生成的字典,在压缩编码初期,由于字典中只有初始化表项,输入数据流和字典中的表项匹配度很低,所以初期的压缩效果较差。针对以上LZW算法本身存在的不足,结合FPGA流水线并行处理的优势,对算法进行如下改进。
B1、首先采用了并行查找方式,每次将新字符串与字典中的16个词条进行比较;其次,采取查找次数截断的方式,设置参数Match-Count,在查找次数大于Match-Count以后,如果还没有找到匹配的词条,就认为字典中没有该词条,强行跳出查找过程。但是,如果字典中原本存在的词条,强行跳出查找会使压缩比受到影响。为了减小判断错误的概率,进行了查找起始地址选取的优化。在字典中将前缀相同的词条放在一起,查找时根据前缀的低8bit来确定起始地址,这样的搜索就非常具有针对性,错误判断的概率也会很低,因此压缩比几乎不受影响。
B2、选择合适的字典容量并通过FIFO方式对字典进行更新。采用两个字节存储码字,即字典的容量为65536。当字典填满后,不要立即清空字典,而是进行更新字典操作。本方案选择软件算法相对比较简单,硬件也容易实现的FIFO字典更新策略。当字典填满时,不同于传统的字典更新策略将字典中所有的串表删除,而是新生成的字符串将填充在最开始地址处,覆盖第一个字符串,而不影响字典中的其他内容。
B3、针对传统LZW算法给不同的码字分配固定码字,改进的算法对不同的码字分配变长长度。以位长为16位的LZW压缩算法为例,该算法字典可以容纳216=65536个码字。整个字典分为9个部分,其中1~256、257~512、513~1024、1025~2048、2049~4096、4097~8192、8193~16384、16385~32768、32769~65536分别是第1~9部分,每个部分所对应的输出码字长度分别为8bit、9bit、10bit、11bit、12bit、13bit、14bit、15bit、16bit。在算法中设置257为变长标志,每出现一次码字长度的变化便输出一个变长标志,以提示解码程序码字长度的变化。
C、地震数据并行无损压缩系统实现:
本发明的并行无损压缩系统用FPGA实现,包含5个模块,如图3所示,这5个FPGA模块分为两类:FPGA0是第一类,用于数据的输入和输出,码流的汇总、输出和同步管理;FPGA1至FPGA4是第二类,用于数据压缩。本装置硬件采用Xilinx公司生产的以Spartan6系列LX150T FPGA芯片。FPGA0模块实现的功能主要包括数据的输入部分、码流输出部分和同步管理部分;FPGA1至FPGA4是4个功能相同压缩模块,主要实现多编码器数据压缩功能。FPGA0模块与FPGA1至FPGA4模块相互配合,共同构成了地震数据高速并行无损压缩系统,主要功能具体实现如下:
1)数据输入部分:负责以设定的数据大小为单位接收数据,并把每一段数据存入相应的数据输入缓存区。如图4,当前端有压缩数据的请求时,数据提取模块会向数据DDR缓存管理模块进行查询。若数据缓存管理模块认为RAM中有空闲的数据输入缓存区,则启动数据提取模块,将设定的数据大小的一段数据写入数据输入缓存区。数据整理模块不断地读取数据输入缓存区中的数据,交替写入两个RAM中,进行乒乓操作,由数据存储模块读取RAM中的数据,并存入数据缓存区中。
2)数据压缩部分:编码器控制模块负责从数据输入缓存区读取数据,16个编码器并行压缩,并将码流写入相应的数据输出缓冲区。如图5,编码器控制模块对16个编码器的状态进行管理,当有编码器空闲时,首先查询码流DDR管理模块,如果有空闲的数据输出缓存区,则再查询数据管理模块,如果同样存在空闲的数据输入缓存区,将该编码器设置为工作状态。数据FIFO管理模块维护一个数据输入缓存区-数据输出缓存区对应的表。当编码器启动时,数据管理模块会将一组新的对应关系发给数据管理模块,由本模块启动数据地址管理模块。同理,码流数据管理模块、码流地址管理模块、码流选择模块和DDR写模块协同工作。
3)码流输出部分:负责将完整的一段码流从数据输出缓存区中读出,并发送出去。如图6,当后端有接收码流的请求时,码流输出模块会向码流DDR管理模块进行查询。若码流DDR管理模块认为码流输出缓存区中有一段完整的码流,则启动码流提取模块并告知起始地址和码流长度,由码流提取模块将该码流从中从码流输出缓存区读出,乒乓写入两个RAM。码流整理模块从RAM中读取码流并写入FIFO。码流输出模块将码流从FIFO中读出,输出给后端。
4)同步管理部分:DDR控制器负责数据和码流的缓存管理,对各个模块的时钟进行同步,保证程序运行的过程中,对RAM的读写正常进行。
Claims (2)
1.一种基于FPGA的多编码器高速地震数据并行无损压缩方法,其特征在于,包括以下步骤:
A、N阶差分预测编码:使用N阶差分预测编码消除数据之间存在的冗余和减小数据的幅值;
B、以改进的LZW算法对预测编码后的值进行再压缩:
B1、采用并行查找方式,每次将新字符串与字典中的16个词条进行比较,再采取查找次数截断的方式,设置参数Match-Count,在查找次数大于Match-Count以后,如果还没有找到匹配的词条,就认为字典中没有该词条,强行跳出查找过程;
B2、选择合适的字典容量并通过FIFO方式对字典进行更新;
B3、针对传统LZW算法给不同的码字分配固定码字,改进的算法对不同的码字分配变长长度;
C、地震数据并行无损压缩系统实现:由FPGA的5个模块构成地震数据并行无损压缩系统,5个FPGA模块分为两类:FPGA0是第一类,用于数据的输入和输出,码流的汇总、输出和同步管理;FPGA1至FPGA4是第二类,用于数据压缩;
所述步骤A具体为:先对采集的原始数据进行的一阶差分,利用后一个数据减前一个数据得到差分数据,即原始数据为:X1、X2、…、Xn,则一阶差分数据为:X1、X2-X1、…、Xn-Xn-1;对一阶差分数据再做一次差分,得到二阶差分为:X1、X2-X1、X3-2X2+X1…、Xn-2Xn-1+Xn-2;对二阶差分后的数据再做一次差分,得到三阶差分,以此类推,得到任意阶次的差分预测编码。
2.根据权利要求1所述的一种基于FPGA的多编码器高速地震数据并行无损压缩方法,其特征在于:所述步骤B1查找起始地址的选取,是在字典中将前缀相同的词条放在一起,查找时根据前缀的低8bit来确定起始地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810435810.8A CN108873062A (zh) | 2018-05-08 | 2018-05-08 | 一种基于fpga的多编码器高速地震数据并行无损压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810435810.8A CN108873062A (zh) | 2018-05-08 | 2018-05-08 | 一种基于fpga的多编码器高速地震数据并行无损压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108873062A true CN108873062A (zh) | 2018-11-23 |
Family
ID=64333169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810435810.8A Pending CN108873062A (zh) | 2018-05-08 | 2018-05-08 | 一种基于fpga的多编码器高速地震数据并行无损压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108873062A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889204A (zh) * | 2018-12-24 | 2019-06-14 | 医渡云(北京)技术有限公司 | 一种fpga及其压缩数据的方法、加速卡 |
CN110913012A (zh) * | 2019-12-05 | 2020-03-24 | 金陵科技学院 | 一种基于农业物联网的高速并行数据的处理方法 |
CN111384963A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据解压方法 |
CN111384962A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据压缩方法 |
CN112100455A (zh) * | 2020-08-18 | 2020-12-18 | 北京理工大学 | 基于字符串并行搜索的lzw字典搜索方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572552A (zh) * | 2009-06-11 | 2009-11-04 | 哈尔滨工业大学 | 基于内容可寻址存储器的高速无损数据压缩系统 |
CN101807214A (zh) * | 2010-03-22 | 2010-08-18 | 湖南亿能电子科技有限公司 | 一种基于fpga的高速信号采集存储及回放装置 |
CN102710263A (zh) * | 2012-05-31 | 2012-10-03 | 西安电子科技大学 | 基于熵判决最优差分编码的lzw压缩方法 |
CN107135004A (zh) * | 2017-04-20 | 2017-09-05 | 中国科学技术大学 | 一种对地震数据流的自适应实时无损压缩方法 |
-
2018
- 2018-05-08 CN CN201810435810.8A patent/CN108873062A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572552A (zh) * | 2009-06-11 | 2009-11-04 | 哈尔滨工业大学 | 基于内容可寻址存储器的高速无损数据压缩系统 |
CN101807214A (zh) * | 2010-03-22 | 2010-08-18 | 湖南亿能电子科技有限公司 | 一种基于fpga的高速信号采集存储及回放装置 |
CN102710263A (zh) * | 2012-05-31 | 2012-10-03 | 西安电子科技大学 | 基于熵判决最优差分编码的lzw压缩方法 |
CN107135004A (zh) * | 2017-04-20 | 2017-09-05 | 中国科学技术大学 | 一种对地震数据流的自适应实时无损压缩方法 |
Non-Patent Citations (2)
Title |
---|
王孔华 等: "LZW算法的优化及其在FPGA上的实现", 《空军工程大学学报(自然科学版)》 * |
韩凯等: "一种多核高速数据无损压缩方案及FPGA实现", 《计算机仿真》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889204A (zh) * | 2018-12-24 | 2019-06-14 | 医渡云(北京)技术有限公司 | 一种fpga及其压缩数据的方法、加速卡 |
CN111384963A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据解压方法 |
CN111384962A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据压缩方法 |
CN111384963B (zh) * | 2018-12-28 | 2022-07-12 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据解压方法 |
CN111384962B (zh) * | 2018-12-28 | 2022-08-09 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据压缩方法 |
CN110913012A (zh) * | 2019-12-05 | 2020-03-24 | 金陵科技学院 | 一种基于农业物联网的高速并行数据的处理方法 |
CN112100455A (zh) * | 2020-08-18 | 2020-12-18 | 北京理工大学 | 基于字符串并行搜索的lzw字典搜索方法 |
CN112100455B (zh) * | 2020-08-18 | 2022-09-20 | 北京理工大学 | 基于字符串并行搜索的lzw字典搜索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108873062A (zh) | 一种基于fpga的多编码器高速地震数据并行无损压缩方法 | |
CN102970043B (zh) | 一种基于gzip的压缩硬件系统及其加速方法 | |
CN101783788B (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
US20130036101A1 (en) | Compression Analyzer | |
CN112953550A (zh) | 数据压缩的方法、电子设备及存储介质 | |
KR20110007865A (ko) | 데이터의 압축방법 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
Ledwon et al. | High-throughput FPGA-based hardware accelerators for deflate compression and decompression using high-level synthesis | |
CN115840799A (zh) | 一种基于深度学习的知识产权综合管理系统 | |
WO2001063772A1 (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
CN104156990A (zh) | 一种支持特大型数据窗口的无损压缩编码方法及系统 | |
CN109672449B (zh) | 一种基于fpga快速实现lz77压缩的装置及方法 | |
CN108494408B (zh) | 基于哈希字典的随钻密度测井仪井下高速实时压缩方法 | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
CN103701470A (zh) | 一种流智能预测差异压缩算法及相应的控制装置 | |
CN117040539B (zh) | 一种基于m叉树和lzw算法的石油测井数据压缩方法及装置 | |
CN202931290U (zh) | 一种基于gzip的压缩硬件系统 | |
CN105631000A (zh) | 基于移动终端位置特征信息的终端缓存的数据压缩方法 | |
CN114629504B (zh) | 基于fpga的井下随钻数据压缩方法和系统 | |
CN112506876B (zh) | 一种支持sql查询的无损压缩查询方法 | |
CN111858391A (zh) | 一种数据处理过程中优化压缩存储格式的方法 | |
Di et al. | Layered lossless compression method of massive fault recording data | |
YuanJing | The combinational application of LZSS and LZW algorithms for compression based on Huffman | |
CN1964351A (zh) | 一种通过数据包压缩减小游戏服务器网络流量的方法 | |
CN117200805B (zh) | 一种mcu的低内存占用的压缩和解压方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181123 |
|
WD01 | Invention patent application deemed withdrawn after publication |