Earthquake data compression method, decompression method and device

Through multi-threaded segmented compression and fidelity adjustment technology, the problem of seismic data compression space occupation in the existing technology is solved, and efficient disk space saving and data reading and writing functions are achieved.

CN119109463AActive Publication Date: 2024-12-10CHINA NAT PETROLEUM CORP +2

Patent Information

Application Number
CN202310675920.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-08
Publication Date
2024-12-10
Estimated Expiration
2043-06-08

AI Technical Summary

Technical Problem

The existing seismic data compression technology is difficult to effectively reduce disk space usage under the conditions of ensuring numerical accuracy and processing effects. Lossive compression has high requirements for data quality, and lossless compression has poor effect on redundant style data compression, resulting in compression after compression. The data byte length is inconsistent, which affects random read and write.

Method used

Multi-threading technology is used to compress seismic data in segments. By synchronizing concurrent bounded queues and running bounded queues to coordinate the calculation threads, adjust the number of compressed bits of each seismic sample point until the preset fidelity threshold is met, and the earthquake is transferred. The numerical type of sample points is converted into a form with fewer digits, ensuring that the size and read and write functions of the compressed data are not affected.

Benefits of technology

On the premise of ensuring numerical fidelity and data transmission rate, the compression rate of seismic data is improved, disk space requirements are reduced, hardware equipment is saved, and data index sorting and read and write functions are guaranteed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119109463A_ABST
    Figure CN119109463A_ABST
Patent Text Reader

Abstract

The invention provides a seismic data compression method and device and a seismic data decompression method and device. The seismic data compression method comprises the steps that a main thread initializes resources; trying to calculate the fidelity of the seismic data channel before and after compression according to the compression digit of each seismic sampling point until the fidelity meets a preset fidelity threshold value; calculating the length of the compressed seismic data channel according to the compression digit of each seismic sampling point; by utilizing a synchronous concurrent bounded queue, operating a bounded queue control coordination calculation thread to convert the numerical value type of the seismic sampling point into a form with fewer digits according to a preset first rule so as to compress a data segment of the seismic data; and when one seismic channel is compressed, the corresponding calculation thread is blocked, waiting for other calculation threads to complete the compression of the remaining data channels, and placing the compressed seismic data in the compressed seismic data buffer area for the main thread to obtain. The seismic data compression rate is improved, the disk space in the seismic data processing process can be reduced, and hardware equipment is saved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of seismic data compression, and in particular relates to a seismic data compression method and device. Background Art

[0002] In recent years, with the continuous advancement of exploration technology, new acquisition technologies have emerged, which has accelerated the rapid growth of the amount of seismic data collected. The amount of seismic data collected in a single work area has sometimes reached the PB level. Experience in processing production seismic data projects: A processing project needs to save 10 steps of seismic data to ensure the normal operation of the project. 100TB-level processing projects are common. If the initial data of the project is 100TB, then the entire project processing requires 1PB of disk space. Seismic data processing production units are in urgent need of reducing seismic data storage space. Summary of the invention

[0003] The inventors have found that the amount of seismic data in current production projects is large, and the use of software processing requires more disk space. Under the condition of ensuring numerical accuracy and processing effect, the occupied disk space can be reduced by compressing the seismic data sample values. At present, similar compression technologies are divided into lossy compression and lossless compression. Lossless compression algorithms usually use statistical redundancy methods. The compressed data must be statistically analyzed as a whole. The compression effect of data that does not contain or contains little identifiable redundant patterns is not good, but the compression effect of text data is good. Lossy compression is used when the quality requirements of the data are not high, and is often used for the compression of audio and video data. The byte length of each seismic data after compression in the two types of algorithms is not equal, which will result in the inability to randomly read and write any data channel after compression.

[0004] In view of this, the inventor hopes to develop a method for compressing seismic data to meet the following requirements:

[0005] In a first aspect, an embodiment of the present invention provides a method for compressing seismic data, comprising the following steps:

[0006] The main thread initializes resources, including at least calculating the number of segments of the seismic data track to be compressed that enters the original seismic data track buffer; setting the compression bit number of each seismic sample point, and allocating the compressed seismic data buffer; determining the number of computing threads participating in the compression; initializing the synchronous concurrent bounded queue Q, several running bounded queues QS, and starting the computing thread; wherein the seismic data includes multiple seismic data tracks, each seismic data track includes a seismic track header and multiple seismic sample points, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to compress a preset number of data segments in a seismic data track;

[0007] Calculating the fidelity of the seismic data before and after compression according to the number of compressed bits of each seismic sample point until the fidelity meets a preset fidelity threshold;

[0008] Calculate the length of the compressed seismic data trace according to the number of compressed bits of each seismic sample point;

[0009] Using the synchronous concurrent bounded queue Q and the running bounded queue QS to control the coordinated computing thread, the numerical type of the seismic sample point is converted into a form with fewer bits according to the preset first rule, so as to compress the data segment of the seismic data;

[0010] When compression of a seismic trace is completed, the corresponding computing thread is blocked, waiting for other computing threads to complete compression of the remaining data traces, and puts the compressed seismic data into the compressed seismic data buffer for the main thread to obtain.

[0011] On the other hand, the present invention also discloses a seismic data compression device, including a first initialization module, a fidelity calculation module, a first seismic data trace length calculation module, and:

[0012] The first initialization module is used to initialize resources, including at least calculating the number of segments of the seismic data track to be compressed that enters the original seismic data track buffer; setting the number of compression bits for each seismic sample point and allocating the compressed seismic data buffer; determining the number of computing threads participating in the compression, initializing a synchronous concurrent bounded queue Q and a plurality of running bounded queues QS, and starting the computing thread; wherein the seismic data includes a plurality of seismic data tracks, each of which includes a seismic track header and a plurality of seismic samples, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to compress a preset number of data segments in a seismic data track;

[0013] A fidelity calculation module, used to calculate the fidelity of the seismic data before and after compression according to the number of compression bits of each seismic sample point, until the fidelity meets a preset fidelity threshold;

[0014] A first seismic data track length calculation module, used to calculate the length of the compressed seismic data track according to the number of compressed bits of each seismic sample point;

[0015] The seismic data segment compression module is used to use the synchronous concurrent bounded queue Q and the running bounded queue QS to control the coordinated computing thread to convert the numerical type of the seismic sample point into a form with fewer bits according to the preset first rule to compress the data segment of the seismic data; it is also used to block the corresponding computing thread after the compression of a seismic track is completed, waiting for other computing threads to complete the compression of the remaining data tracks, and put the compressed seismic data into the compressed seismic data buffer for the main thread to obtain.

[0016] Based on the same inventive concept, a seismic data decompression method and a seismic data decompression device are also disclosed accordingly.

[0017] Based on the above technical solution, the beneficial effects of the present invention compared with the prior art are as follows:

[0018] The present invention provides a seismic data compression method, which processes all sample points in seismic data, controls the size of compressed data by segmenting seismic data tracks, compressing the number of sample points of seismic data tracks, etc., while meeting the requirements of compression fidelity, and ensures data loading and output efficiency through multi-threaded related technologies. The seismic data compression method proposed by the present invention improves the data compression rate while ensuring numerical fidelity and data transmission rate, can reduce disk space in the process of seismic data processing, and saves hardware equipment. In addition, since the byte length of the seismic data tracks before and after compression remains unchanged, it can ensure that the functions of seismic data index sorting, data track reading and writing, etc. are not affected. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0020] Figure 1 This is a flow chart of a seismic data compression method in Embodiment 1;

[0021] Figure 2 This is a flow chart of step S10 in Embodiment 1;

[0022] Figure 3 This is a flow chart of step S104 in Embodiment 1;

[0023] Figure 4 This is a flow chart of step S20 in Embodiment 1;

[0024] Figure 5 This is a flow chart of step S30 in Embodiment 1;

[0025] Figure 6 This is a schematic diagram of the compression principle of seismic data in the first embodiment;

[0026] Figure 7 This is a flow chart of step S40 in Embodiment 1;

[0027] Figure 8 This is a flow chart of step S50 in Embodiment 1;

[0028] Fig. 9This is a schematic diagram of the working status of the main thread, each computing thread, the synchronous concurrent bounded queue Q, the running bounded queue QS, the original seismic data channel buffer, and the compressed seismic data buffer when compressing the seismic data channel in the first embodiment;

[0029] Fig.10 A schematic diagram of the basic structure of seismic compression software developed in accordance with the seismic data compression method of the present invention in Embodiment 1;

[0030] Fig.11 In the first embodiment, the seismic data compression method of the present invention is used to actually process the seismic data produced by the project;

[0031] Fig.12 This is a schematic structural diagram of a seismic data compression device in Embodiment 2;

[0032] Fig.13 This is a flow chart of a method for decompressing seismic data in Embodiment 3;

[0033] Fig.14 This is a schematic diagram of the structure of a seismic data decompression device in Example 4. DETAILED DESCRIPTION

[0034] In order to better understand the above technical solution, the above technical solution will be described in detail below in conjunction with specific implementation methods.

[0035] Embodiment 1

[0036] The embodiment of the present invention provides a seismic data compression method, combining Figure 1 As shown, steps S10-S50 are included, specifically:

[0037] Step S10, the main thread initializes resources.

[0038] The purpose of this step is to calculate the number of segments of a seismic data, allocate a compressed seismic data buffer, determine the number of computing threads involved in compression, etc., so as to divide the data segments that each computing thread is responsible for and ensure the efficiency of data conversion.

[0039] Combination Figure 2 As shown, this step includes at least sub-steps S101 to S104, wherein:

[0040] Step S101, calculating the number of segments of the seismic data track to be compressed that enters the original seismic data track buffer.

[0041] The existing seismic data includes multiple seismic data channels, each of which includes a seismic channel header and multiple seismic sample points, and each sample point is a 4-byte floating point value. In this step, the seismic data channel to be compressed that enters the original seismic data channel buffer is segmented according to a preset number of seismic sample points to obtain data segment numbers. If all seismic sample points of the seismic data channel can be divided by the preset number of seismic sample points without a remainder, the number of segments of the seismic data channel is the obtained quotient value, otherwise, the number of segments of the seismic data channel is the obtained quotient value plus 1, and the last segment of the seismic data channel is filled according to the preset number of seismic sample points.

[0042] In some embodiments, SN can be used to represent the number of seismic sample points contained in each segment of seismic data, which must be a multiple of 8. The preferred default value is 32, that is, each segment contains 32 sample points. The calling program gives the number of sample points M of each seismic data to calculate the number of segments. If the last segment is less than SN sample points, the remaining sample points are supplemented to a multiple of 8 and counted as one segment.

[0043] Step S102, setting the compression bit number for each seismic sample point, and allocating a compressed seismic data buffer according to the number of segments of the seismic data channel to be compressed and the compression bit number for each seismic sample point.

[0044] Reasonable setting of the number of bits after compression of each seismic sample point will directly affect the compression effect. In some embodiments, the value range is preferably 16-23 bits. The inventors have found through a large number of implementations that when the number of bits is 20, the compression rate can reach about 35%.

[0045] Step S103, determining the number of computing threads involved in compression.

[0046] The number of computing threads involved in compression can be determined based on the number of computing threads that the current hardware environment can provide, or can be specified by the user and determined based on the number of segments of the seismic data track. The number of computing threads is not greater than the number of segments of the seismic data track.

[0047] Step S104, initialize the synchronous concurrent bounded queue Q, several running bounded queues QS, and start the computing thread.

[0048] Specific, combined Figure 3 As shown, it includes steps S1041 to S1043.

[0049] Step S1041, initialize a synchronous concurrent bounded queue Q for coordinating the synchronous and independent operation of each computing thread, and use the obtained number of computing threads to set the maximum number of elements in the synchronous concurrent bounded queue.

[0050] The synchronous concurrent bounded queue can coordinate the synchronous operation of each computing thread and ensure the independence of each computing thread in the compression operation of the current data channel.

[0051] Step S1042, initializing a running bounded queue QS corresponding to each computing thread, wherein the maximum number of elements in the running bounded queue is 1.

[0052] Each computing thread corresponds to a bounded running queue. The maximum number of elements in the queue is set to 1 to ensure that when there are seismic data channels that can be compressed, the computing thread starts running from a blocked state. After the current data channel is compressed, the computing thread is blocked.

[0053] Step S1043: Allocate the preset number of data segments to be compressed to each computing thread, and start each computing thread.

[0054] Assign the data segment for operation to each computing thread, start each thread, because the bounded queue used by each computing thread is empty, when each thread obtains its element from the queue, the computing thread is blocked, waiting for the data compression calculation after the seismic data channel is ready.

[0055] Step S20, calculating the fidelity of the seismic data before and after compression according to the number of compression bits of each seismic sample point, until the fidelity meets a preset fidelity threshold.

[0056] Specific, combined Figure 4 As shown, it at least includes steps S201 to S204.

[0057] Step S201, calculating the fidelity of each seismic data sample point before and after compression.

[0058] Specifically, if the original value and the compressed value of the seismic data sample point have different positive and negative signs, the fidelity of the seismic data sample point is set to 0.

[0059] Otherwise, if the original value of the seismic data sample is 0 and the compressed value is not 0, the fidelity is set to 0.

[0060] Otherwise, the absolute value of the difference between the original value and the compressed value of the seismic data sample point is calculated. If the absolute value is 0, the fidelity is set to a preset fidelity peak value.

[0061] Otherwise, the fidelity is calculated as follows:

[0062] 20log(V / ABS)

[0063] Among them, ABS is the original value of the seismic data sample point, and V is the absolute value of the difference between the original value and the compressed value of the seismic data sample point.

[0064] In actual applications, the inventors found that the fidelity of data during seismic data processing must reach above -105DB in order not to affect the subsequent seismic data processing effect. If the fidelity reaches -140DB, the data processing effect will be very good, and the preset fidelity peak value can be set to -140DB.

[0065] Step S202: Divide the sum of the fidelity of each seismic data sample point in the data segment by the total number of sample points to obtain the fidelity of each data segment.

[0066] Step S203, the fidelity of the seismic data track before and after compression is obtained by dividing the sum of the fidelity of each data segment by the number of data segments of the seismic data track.

[0067] Step S204, determine whether the fidelity of the obtained seismic data before and after compression meets the preset fidelity threshold. If the fidelity of the obtained seismic data before and after compression meets the preset fidelity threshold, calculate and record the data compression rate. Otherwise, adjust the compression bit number of each seismic sample point, re-calculate the fidelity of each seismic data sample point before and after compression and subsequent steps until the fidelity before and after compression meets the preset fidelity threshold. In this embodiment, the preset fidelity threshold is set to -105DB.

[0068] In other embodiments, it is not only hoped that the compression algorithm can automatically adjust the number of compression bits to meet the fidelity requirements, but also hoped that the data compression rate can be maximized. Therefore, preferably, it is also necessary to record the data compression rate after each trial calculation of the fidelity of the seismic data before and after compression, and then adjust the number of compression bits for each seismic sample point again, re-execute steps S201-S204, compare the saved data compression rates, and use the number of compression bits for the seismic sample point corresponding to the maximum data compression rate as the final set number of compression bits for the seismic sample point.

[0069] Step S30, calculating the length of the compressed seismic data trace according to the number of compressed bits of each seismic sample point. Figure 5 As shown, this step at least includes sub-steps S301-S304, specifically:

[0070] Step S301, calculating the number of bytes of each segment of the seismic data channel after compression according to a preset formula, the preset formula is:

[0071] (BIT*SN / 8)+5

[0072] Wherein, BIT is the compression bit number of each seismic sample point set, and SN is the number of seismic samples contained in each segment of seismic data. The 5 bytes here include the maximum value of the original sample point of this segment (single-precision floating point type 4 bytes), and the compression bit number is one byte.

[0073] Step S302, calculating the first byte number occupied by the entire seismic data track except the last segment of data according to the number of bytes of each segment of the seismic data track after compression.

[0074] Step S303, calculating the second byte number occupied by the last segment of data of the seismic data track.

[0075] In practical applications, the last segment of data may not have enough samples of SN, so it needs to be calculated separately. If the number of samples in the last segment is equal to SN, add a whole segment of bytes. If the number of samples in the last segment is not a multiple of 8, increase the number of samples to a multiple of 8, and use this value to calculate the number of bytes after compression of the last segment.

[0076] Step S304, adding the first byte number and the second byte number to obtain the length of the compressed seismic data track.

[0077] Step S40, using the synchronous concurrent bounded queue Q and the running bounded queue QS to control the coordinated computing thread to convert the numerical type of the seismic sample point into a form with fewer bits according to the preset first rule, so as to compress the data segment of the seismic data.

[0078] An original data segment is composed of multiple seismic sample points. Each seismic sample point is a 32-bit single-precision floating-point type number. Data compression is achieved by converting the floating-point type value into a form that occupies fewer bits and occupies less storage space. The compression operations of each data segment are independent of each other and can be performed in a multi-threaded parallel manner to improve data compression efficiency. For example, each sample point is stored as an N-bit unsigned integer. In a data, M sample points are grouped together, and M is required to be a multiple of 8. According to the sample value variation law, the range of influence of outliers and other factors, M is more appropriately 32. Each group is assisted by a floating-point scale factor (SCALE) for independent compression and decompression operations. Combined with Figure 6 As shown in Figure 2, the compression principle of seismic data is:

[0079] Assumption: Nmax = 2 (N-1) -1;

[0080] Mmax is the maximum absolute value of the M sample points in the group, and the proportional factor SCALE = Nmax / Mmax. If Mmax is 0, special processing is performed.

[0081] The original floating-point sample value is fValue; the compressed unsigned integer value is nValue, and the corresponding value after compression is:

[0082] nValue=fValue×SCALE+Nmax

[0083] Decompression operation: fValue = (nValue-Nmax) / SCALE

[0084] Final result: nValue is shifted, bitwise ORed, or byte-swapped with adjacent sample values.

[0085] Next, we use this compression principle and combine it with Figure 7 The specific implementation process of this step is described in detail. This step at least includes sub-steps S401-S405:

[0086] Step S401, obtaining the range of the data segment to be compressed and the program number of the computing thread that the current computing thread is responsible for.

[0087] Step S402, obtaining the running bounded queue QS corresponding to the current computing thread by calculating the thread program number;

[0088] Step S403, obtain an element from the bounded running queue QS belonging to the current computing thread. If there is no element in the bounded running queue, the computing thread is blocked; otherwise,

[0089] Step S404, obtain an element value, if the element value represents that the compression of the entire seismic data track is completed, then the current computing thread exits; otherwise, execute step S405. The step S405 at least includes sub-steps S4051-S4054.

[0090] Step S4051, calculating the byte position of the data segment to be compressed in the original data buffer and the byte position in the compressed data buffer by using the obtained data segment number.

[0091] Step S4052, using the number of seismic sample points contained in the data segment to be compressed to calculate the maximum absolute value MAX of the valid sample values ​​in this segment, wherein the maximum positive integer that can be represented by the number of bits BIT used by the compressed data buffer to store the data in this segment is the maximum absolute value of the valid sample values.

[0092] In this step, it is necessary to determine whether the number of samples contained in the last segment of the seismic data channel is a multiple of 8. If not, it is necessary to fill it up to a multiple of 8. In addition, it is also necessary to determine whether the seismic sample value is abnormal (for example, the seismic sample value is INF (positive and negative infinity), NAN (not a number), the absolute value exceeds a certain value (such as: 10 10 ) and other situations can be considered as outliers). If the anomaly needs to be discarded, the remaining number of earthquake sample points will be taken as the valid value, and the maximum absolute value MAX of the valid sample values ​​will be found from them.

[0093] Step S4053, the scale factor SCALE of the seismic sample points in the data segment before and after compression is obtained by dividing the number of bits of the compressed data buffer used to store the data in this segment by the maximum absolute value of the valid sample values ​​in this segment.

[0094] Assume that the maximum positive integer that can be represented by the number of bits BIT used to store the data in the compressed data buffer is V1, V1 = POW (2, BIT-1) - 1, and the POW() function is used to calculate 2 to the power of BIT-1, the maximum absolute value MAX of the valid sample value, and the scale factor SCALE before and after the compression of the seismic sample points in the data segment is:

[0095] SCALE=V1 / MAX

[0096] It should be noted that if the maximum absolute value MAX of the valid sample value is 0, the scale factor is SCALE0.

[0097] Step S4054, create and initialize variables for compression, convert each original seismic sample point in the data segment to be compressed into compressed data in sequence according to the preset operation method, put the compressed data into the compressed data buffer, put an element into the synchronous concurrent bounded queue Q, and then execute the running bounded queue QS belonging to this computing thread to obtain the element and subsequent steps. The preset operation method may include original value mapping, data shift splicing, byte exchange algorithm, etc. Specifically:

[0098] In some embodiments, variables for compression are created and initialized, such as: the value Value after the original seismic sample point is converted using the scaling factor; the value ChangeValue after a seismic sample point is compressed is saved, and the value type is an unsigned integer; the number of bits that the current sample value needs to be shifted left LeftMove, and the initial value is 0; the number of bits that the current sample value needs to be shifted right RightMove, and the initial value is 0; the number of bits available in ChangeValue (the remaining bits) LeftBits, and the initial value is 32.

[0099] Then, each original sample point in this segment is converted into compressed data, and the compressed data is placed in the compressed data buffer. The processing process is from the first sample value to the last sample value in this segment. The specific steps are as follows:

[0100] Step (1): Convert an original sample point into an integer representation. The specific steps are as follows:

[0101] Step (1.1): If SCALE is 0, the integer value Value after the current sample value is converted is 0, otherwise, go to step (1.2).

[0102] Step (1.2): If this segment is the last segment and is the sample point of the padded part, the integer value Value is 0, otherwise, go to step (1.3).

[0103] Step (1.3): The floating point value of the current sample point is *SCALE, then rounded to units, assigned to Value, and then added to V1.

[0104] Step (2): If the current sample value is the first sample point of this segment, go to step (3); otherwise go to step (4).

[0105] Step (3): Value is assigned to ChangeValue, and then left-shifted by (32-BIT) bits. The remaining bits of Value, LeftBits, are (32-BIT), and the process goes to step (1). BIT represents the number of bits that store this segment of data.

[0106] Step (4): If the remaining number of bits LeftBits is greater than the number of bits in this segment BIT, go to step (5); otherwise, go to step (6).

[0107] Step (5): Set the number of bits to be shifted left LeftMove to LeftMove-BIT, shift Value left by LeftMove bits, and then perform a bitwise AND operation with ChangeValue. The result is placed in ChangeValue, and the process goes to step (1).

[0108] Step (6): Set the number of bits to be shifted right RightMove to BIT-LeftBits, shift Value right by RightMove bits, and then perform a bitwise AND operation with ChangeValue.

[0109] Step (7): ChangeValue is a 4-byte unsigned integer. The content is exchanged according to the first byte and the fourth byte, and the second byte and the third byte, and then ChangeValue is written into the data compression buffer.

[0110] Step (8): Calculate the number of bits to be shifted left LeftMove as 32-RightMove. If the number of bits to be shifted left is 32, ChangeValue is set to 0. Otherwise, assign the result of shifting Value left by LeftMove bits to ChangeValue.

[0111] Step (9): Set the remaining number of bits LeftBits in ChangeValue to the number of bits to be shifted left, and go to step (2).

[0112] Through the above-mentioned original value mapping, data shift splicing, byte exchange algorithm and other methods, the floating-point type values ​​of seismic data can be converted to occupy fewer bits, occupy less storage space, and ensure that the compressed data tracks are of equal length.

[0113] Step S50, when compression of a seismic trace is completed, the corresponding computing thread is blocked, waiting for other computing threads to complete compression of the remaining data traces, and put the compressed seismic data into the compressed seismic data buffer for the main thread to obtain.

[0114] After a seismic trace is compressed, it is necessary to wait for the compressed data to be output before the next seismic trace can be compressed. At this time, each computing thread needs to be blocked and stop computing. Figure 8 As shown, it specifically includes sub-steps S501-S506:

[0115] Step S501, prepare a seismic data channel to be compressed. The interface corresponding to this step is called by the application program using the compression function.

[0116] Step S502, putting an element with a value of 1 into the bounded queue QS corresponding to each computing thread, in order to start each blocked computing thread.

[0117] Step S503, obtain elements of the number of computing threads from the synchronous concurrent bounded queue Q. If there are no corresponding number of elements in the synchronous concurrent bounded queue Q, the current computing thread is blocked and waits for each computing thread to complete the compression task of the current data channel, otherwise enter step S504.

[0118] Step S504: Each computing thread has completed the compression task for the current data track, and the data in the compression buffer is valid and can be used by the calling application.

[0119] Step S505: If there are still seismic data channels that need to be compressed, execute step S501. Otherwise, the compression task of the representative data volume is completed, and execute step S506.

[0120] Step S506, putting an element with a value of -1 into the running bounded queue QS corresponding to each computing thread, and waiting for each computing thread to end.

[0121] At this point, the seismic data compression process is completed.

[0122] For ease of understanding, the present invention also provides Fig. 9 , in the hope of explaining some of the core contents of the present invention in more detail. Fig. 9The diagram shows the working status of the main thread, each computing thread, synchronous concurrent bounded queue Q, running bounded queue QS, original seismic data buffer, and compressed seismic data buffer when compressing seismic data. When there is a seismic data channel that needs to be compressed, each computing thread switches from a blocked state to a running state. Each computing thread is responsible for part of the data segments and performs operations such as mapping of seismic data sample values, shift-related operations, and byte exchange on all sample values ​​in each segment. When all data segments are compressed, the computing thread blocks and waits for the compressed / decompressed result data to be taken away.

[0123] In this embodiment, the main thread is responsible for initializing resources and dividing the data segments that each computing thread is responsible for. Each computing thread coordinates and runs under the control of the synchronous concurrent bounded queue Q and the running bounded queue QS. During the compression operation, each computing thread runs independently without interfering with each other. When there are seismic data channels that need to be compressed, each computing thread is responsible for part of the data segments, and performs operations such as original value mapping, shifting, and byte swapping on all sample values ​​in each segment. When all data segments are compressed, wait for the main thread to take away the compressed result data. When the bounded queue of the computing thread is full, the computing thread will perform compression operations; when the synchronous queue is full, each computing thread completes the compression operation and waits for the main thread to obtain the compressed data.

[0124] Using the method of this embodiment, the inventor conducted a large number of experiments, and the results of one of the experiments are presented in this application document to verify the effectiveness of the present invention.

[0125] Specifically: According to the earthquake data compression method of the present invention, a earthquake compression software is developed. The basic structure of the software is as follows: Fig.10 As shown in Figure 1, the software was deployed on a high-performance cluster and experiments were conducted on the cluster multiple times. Each node in the cluster is equipped with two Intel(R)Xeon(R)E5-2660 v3 2.6GHz CPUs, each processor contains 10 physical cores, and each node has a total of 20 physical cores, 128GB of memory, and shared storage. The node operating system version is RedHat Enterprise Linux Server release 6.8 (Santiago). The data scale of the test is the actual data of the processing project.

[0126] Fig.11It is the seismic data produced by the actual processing project. It can be seen from the figure that when there are many concurrent jobs in the cluster, it can effectively alleviate the cluster storage IO load and improve the efficiency of seismic operation. It is very suitable for big data / multi-project conventional processing cluster environment. The integrated application of this seismic data compression method not only saves disk space, but also improves IO efficiency. In the experiment conducted by the applicant, the data body size of an original data is 617GB and the header is 29GB. After compression, the data body is 410GB and the header is 29GB, and the compression rate is as high as 33.5% (data body only).

[0127] The embodiment of the present invention processes all sample points in the seismic data, and controls the size of the compressed data by segmenting the seismic data track, compressing the number of sample points of the seismic data track, etc., while meeting the requirements of compression fidelity, and ensures data loading and output efficiency through multi-threaded related technologies. The seismic data compression method proposed by the present invention improves the data compression rate under the premise of ensuring numerical fidelity and data transmission rate, can reduce the disk space in the process of seismic data processing, and save hardware equipment. In addition, since the byte length of the seismic data track before and after compression remains unchanged, it can ensure that the functions of seismic data index sorting, data track reading and writing, etc. are not affected.

[0128] Embodiment 2

[0129] The present invention also provides a seismic data compression device, such as Fig.12 As shown, it includes a first initialization module 101, a fidelity calculation module 102, a first seismic data track length calculation module 103, and a seismic data segment compression module 104, wherein:

[0130] The first initialization module 101 is used to initialize resources, including at least calculating the number of segments of the seismic data track to be compressed that enters the original seismic data track buffer, allocating the compressed seismic data buffer, setting the number of compression bits for each seismic sample point, determining the number of computing threads involved in compression, initializing a synchronous concurrent bounded queue Q, a plurality of running bounded queues QS, and starting the computing thread; wherein the seismic data includes a plurality of seismic data tracks, each of which includes a seismic track header and a plurality of seismic samples, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to compress a preset number of data segments in a seismic data track;

[0131] The fidelity calculation module 102 is used to calculate the fidelity of the seismic data before and after compression according to the compression bit number of each seismic sample point, until the fidelity meets the preset fidelity threshold;

[0132] A first seismic data track length calculation module 103, used to calculate the length of the compressed seismic data track according to the number of compressed bits of each seismic sample point;

[0133] The seismic data segment compression module 104 is used to utilize the synchronous concurrent bounded queue Q and the running bounded queue QS to control and coordinate the computing threads to convert the numerical type of the seismic sample points into a form with fewer bits according to the preset first rule, so as to compress the data segments of the seismic data; it is also used to block the corresponding computing thread after the compression of a seismic track is completed, waiting for other computing threads to complete the compression of the remaining data tracks, and put the compressed seismic data into the compressed seismic data buffer for the main thread to obtain.

[0134] The specific working process of the seismic data compression device can be found in Example 1, which will not be described in detail here.

[0135] Embodiment 3

[0136] Based on the same inventive idea, this embodiment also discloses a seismic data decompression method. It can be understood by those skilled in the art that the steps of the decompression method are roughly the inverse process of the compression operation, so the details of the decompression method can refer to Example 1. The decompression method of this embodiment is slightly simpler than the compression process, and there is no process of calculating the maximum value of each segment, and there is no need to care about the fidelity, the number of bits of sample value storage, etc.

[0137] Specifically, a seismic data decompression method, such as Fig.13 As shown, the steps S10' to S40' may be included:

[0138] Step S10', the main thread initializes resources, including at least obtaining the information of the number of compressed bits and sample points of each seismic sample point, calculating the number of segments of the compressed seismic data track, and allocating a decompressed seismic data buffer; determining the number of computing threads involved in decompression; initializing synchronous concurrent bounded queues and several running bounded queues, and starting computing threads; wherein the decompressed seismic data includes multiple seismic data tracks, each seismic data track includes a seismic track header and compressed sample value data, the sample value data is composed of multiple data segments, each segment includes multiple compressed seismic sample points, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to decompress a preset number of data segments in a seismic data track.

[0139] Among them, obtaining the information of the number of compressed bits and the number of sample points for each seismic sample point, calculating the number of segments of the compressed seismic data channel, and allocating the decompressed seismic data buffer include: obtaining the information of the number of compressed bits and the number of sample points from the compressed seismic data channel, calculating the number of data segments of the compressed data channel, and further calculating the number of seismic sample points filled in the last segment.

[0140] Determining the number of computing threads involved in decompression includes: using the number of computing threads that can be provided by the current hardware environment as the number of computing threads involved in decompression, or determining the number of computing threads according to the number of segments of the seismic data track, wherein the number of computing threads is not greater than the number of segments of the seismic data track.

[0141] Initialize synchronous concurrent bounded queues, several running bounded queues, and start computing threads, including:

[0142] Initialize a synchronous concurrent bounded queue for coordinating the synchronous and independent operation of each computing thread, and use the obtained number of computing threads to set the maximum number of elements of the synchronous concurrent bounded queue. Initialize a running bounded queue corresponding to each computing thread, and the maximum number of elements in the running bounded queue is 1. Allocate the preset number of data segments to be decompressed to each computing thread, and start each computing thread.

[0143] Step S20', calculate the length of the decompressed seismic data track according to the number of compressed bits of each seismic sample point. Specifically, it includes steps S201'-step S204':

[0144] Step S201', calculating the number of bytes of each segment of the seismic data channel after compression according to a preset formula, the preset formula is:

[0145] (BIT*SN / 8)+5

[0146] Wherein, BIT is the number of compression bits for each seismic sample point set, and SN is the number of seismic sample points contained in each segment of seismic data channel.

[0147] Step S202', calculating the first byte number occupied by the entire seismic data track except the last segment of data according to the number of bytes of each segment of the seismic data track after compression.

[0148] Step S203', calculating the second number of bytes occupied by the last segment of data of the seismic data track.

[0149] Step S204', adding the first byte number and the second byte number to obtain the length of the compressed seismic data track.

[0150] Step S30', using the synchronous concurrent bounded queue and running the bounded queue to control the coordinated computing thread, converting the value type of the compressed seismic sample points into a floating point value according to the preset second rule. Specifically including steps S301'-step S308':

[0151] Step S301', obtaining the range of the data segment to be decompressed and the program number of the computing thread that the current computing thread is responsible for;

[0152] Step S302', obtain the running bounded queue QS corresponding to the current computing thread by calculating the thread program number;

[0153] Step S303', obtain an element from the bounded running queue QS belonging to the current computing thread. If there is no element in the bounded running queue, the computing thread is blocked; otherwise,

[0154] Step S304', obtain an element value. If the element value represents that the decompression of the entire seismic data channel is completed, then the current calculation thread exits; otherwise,

[0155] Step S305', calculating the byte position of the data segment to be decompressed in the decompressed data buffer and the byte position in the decompressed data buffer by using the obtained data segment number;

[0156] Step S306', extracting the maximum absolute value of the seismic sample points in this segment and the number of bits of the sample values ​​in this segment from the compressed data segment;

[0157] Step S307', obtaining the scale factor SCALE before and after decompression by dividing the maximum absolute value of the valid sample values ​​in the current segment in the compressed data buffer by the maximum integer that can be represented by the number of bits of the current segment of data;

[0158] Step S308', create variables for decompression and initialize the variables, convert each compressed seismic sample point in the data segment to be decompressed into decompressed data in sequence according to the preset operation method, put the decompressed data into the decompressed data buffer, put an element into the synchronous concurrent bounded queue, and then execute the steps of obtaining elements from the running bounded queue belonging to the current computing thread and the subsequent steps. In this step, the preset operation method includes at least one of data shift splicing, byte exchange, and original value mapping algorithm.

[0159] Step S40', when a seismic trace is decompressed, the corresponding computing thread is blocked, waiting for other computing threads to complete the decompression of the remaining data traces, and put the decompressed seismic data into the decompressed seismic data buffer for the main thread to obtain.

[0160] Embodiment 4

[0161] Based on the same inventive concept, this embodiment also discloses a seismic data decompression device, such as Fig.14 As shown, it includes a second initialization module 201, a second seismic data track length calculation module 202, and a seismic data segment decompression module 203, wherein:

[0162] The second initialization module 201 is used to initialize resources, including at least calculating the number of segments of the seismic data channels to be decompressed that enter the original seismic data channel buffer, allocating the decompressed seismic data buffer, obtaining the number of compression bits for each seismic sample point, determining the number of computing threads involved in decompression, initializing a synchronous concurrent bounded queue Q, a plurality of running bounded queues QS, and starting the computing thread; wherein the seismic data includes a plurality of seismic data channels, each of which includes a seismic channel header and a plurality of seismic sample points, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to decompress a preset number of data segments in a seismic data channel;

[0163] A second seismic data track length calculation module 202, used to calculate the length of the compressed seismic data track according to the number of compression bits of each seismic sample point, and the length is used to read the compressed seismic data track;

[0164] The seismic data segment decompression module 203 is used to utilize the synchronous concurrent bounded queue Q and the running bounded queue QS to control the coordinated computing thread to convert the numerical type of the compressed seismic sample points into the form of floating-point numbers according to the preset first rule to decompress the data segments of the seismic data; it is also used to block the corresponding computing thread after the decompression of a seismic channel is completed, waiting for other computing threads to complete the decompression of the remaining data channels, and put the decompressed seismic data into the decompressed seismic data buffer for the main thread to obtain.

[0165] The specific working process of the seismic data compression device can be found in Example 1, which will not be described in detail here.

[0166] Correspondingly, an embodiment of the present invention further discloses a computer-readable storage medium, in which instructions are stored. When the instructions are executed on a terminal, the terminal executes the seismic data compression method in the first embodiment.

[0167] The embodiment of the present invention further discloses another computer-readable storage medium, in which instructions are stored. When the instructions are executed on a terminal, the terminal executes the seismic data decompression method in the third embodiment.

[0168] In the above detailed description, various features are grouped together in a single embodiment to simplify the disclosure. This method of disclosure should not be interpreted as reflecting an intention that the embodiments of the claimed subject matter require more features than are clearly stated in each claim. On the contrary, as reflected in the appended claims, the invention is in a state of having less than all the features of the disclosed individual embodiments. Therefore, the appended claims are hereby expressly incorporated into the detailed description, with each claim standing on its own as a separate preferred embodiment of the invention.

[0169] The above description includes examples of one or more embodiments. Of course, it is not possible to describe all possible combinations of components or methods for the purpose of describing the above embodiments, but it should be recognized by those skilled in the art that the various embodiments may be further combined and arranged. Therefore, the embodiments described herein are intended to cover all such changes, modifications and variations that fall within the scope of protection of the appended claims. In addition, with respect to the term "comprising" used in the specification or claims, the word is encompassed in a manner similar to the term "including", as explained by "including," used as a transitional word in the claims. In addition, any term "or" used in the specification of the claims is intended to mean "non-exclusive or".

Claims

1. A seismic data compression method, It is characterized in that The following steps are involved: The main thread initializes resources, including at least calculating the number of segments of the seismic data track to be compressed that enters the original seismic data track buffer; setting the number of compression bits for each seismic sample point and allocating the compressed seismic data buffer; determining the number of computing threads participating in the compression; initializing synchronous concurrent bounded queues and several running bounded queues, and starting the computing thread; wherein the seismic data includes multiple seismic data tracks, each seismic data track includes a seismic track header and multiple seismic sample points, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to compress a preset number of data segments in a seismic data track; Calculating the fidelity of the seismic data before and after compression according to the number of compressed bits of each seismic sample point until the fidelity meets a preset fidelity threshold; Calculate the length of the compressed seismic data trace according to the number of compressed bits of each seismic sample point; Using a synchronous concurrent bounded queue and running a bounded queue to control and coordinate the computing thread, the numerical type of the seismic sample point is converted into a form with fewer bits according to a preset first rule, so as to compress the data segment of the seismic data; When compression of a seismic trace is completed, the corresponding computing thread is blocked, waiting for other computing threads to complete compression of the remaining data traces, and puts the compressed seismic data into the compressed seismic data buffer for the main thread to obtain.

2. The seismic data compression method according to claim 1, It is characterized in that The calculating the number of segments of the seismic data track to be compressed that enters the original seismic data track buffer comprises: The seismic data track to be compressed entering the original seismic data track buffer is segmented according to a preset number of seismic sample points to obtain data segment numbers. If all the seismic sample points of the seismic data track can be divided by the preset number of seismic sample points without a remainder, the number of segments of the seismic data track is the obtained quotient value; otherwise, the number of segments of the seismic data track is the obtained quotient value plus 1, and the last segment of the seismic data track is padded with the preset number of seismic sample points.

3. The seismic data compression method according to claim 1, It is characterized in that The determining of the number of computing threads participating in the compression includes: using the number of computing threads that can be provided by the current hardware environment as the number of computing threads participating in the compression, or determining the number of computing threads according to the number of segments of the seismic data track, wherein the number of computing threads is not greater than the number of segments of the seismic data track.

4. The seismic data compression method according to claim 1, It is characterized in that The initialization of the synchronous concurrent bounded queue and several running bounded queues and the start of the computing thread include: Initialize a synchronous concurrent bounded queue for coordinating the synchronization and independent operation of each computing thread, and use the obtained number of computing threads to set the maximum number of elements in the synchronous concurrent bounded queue; Initialize a running bounded queue corresponding to each computing thread, wherein the maximum number of elements in the running bounded queue is 1; The preset number of data segments to be compressed is allocated to each computing thread, and each computing thread is started.

5. The seismic data compression method according to claim 1, It is characterized in that The fidelity of the seismic data before and after compression is calculated according to the number of compression bits of each seismic sample point until the fidelity before and after compression meets a preset fidelity threshold, including: Calculate the fidelity of each seismic data sample before and after compression; The sum of the fidelity of each seismic data sample point in the data segment is divided by the total number of sample points to obtain the fidelity of each data segment; The fidelity of the seismic data track before and after compression is obtained by dividing the sum of the fidelity of each data segment by the number of data segments of the seismic data track; Determine whether the fidelity of the seismic data track obtained before and after compression meets the preset fidelity threshold. If the fidelity of the seismic data track obtained before and after compression meets the preset fidelity threshold, calculate and record the data compression rate. Otherwise, adjust the number of compression bits for each seismic sample point, re-calculate the fidelity of each seismic data sample point before and after compression and subsequent steps until the fidelity before and after compression meets the preset fidelity threshold.

6. The seismic data compression method according to claim 5, It is characterized in that The method further comprises: calculating the fidelity of the seismic data channel before and after compression according to the number of compression bits of each seismic sample point until the fidelity before and after compression meets a preset fidelity threshold, and further comprises: after calculating and recording the data compression rate, adjusting the number of compression bits of each seismic sample point again, re-executing the calculation of the fidelity of each seismic data sample point before and after compression and subsequent steps, comparing several saved data compression rates, and using the seismic sample point compression bit corresponding to the maximum data compression rate as the final set seismic sample point compression bit number.

7. The seismic data compression method according to claim 5 or 6, It is characterized in that The calculating the fidelity of each seismic data sample point before and after compression includes: If the original value and the compressed value of the seismic data sample point have different positive and negative signs, the fidelity of the seismic data sample point is set to 0; Otherwise, if the original value of the seismic data sample is 0 and the compressed value is not 0, the fidelity is set to 0; Otherwise, the absolute value of the difference between the original value and the compressed value of the seismic data sample point is calculated. If the absolute value is 0, the fidelity is set to the preset fidelity peak value. Otherwise, the fidelity is calculated according to the following formula: 20log(V / ABS) Among them, ABS is the original value of the seismic data sample point, and V is the absolute value of the difference between the original value and the compressed value of the seismic data sample point.

8. The seismic data compression method according to claim 1, It is characterized in that The step of calculating the length of the compressed seismic data trace comprises: The number of bytes of each segment of the seismic data channel after compression is calculated according to a preset formula, and the preset formula is: (BIT*SN / 8)+5 Wherein, BIT is the number of compression bits for each seismic sample point set, and SN is the number of seismic sample points contained in each segment of seismic data channel; Calculate the first byte number occupied by the entire seismic data channel except the last segment of data according to the number of bytes after compression of each segment of data in the seismic data channel; Calculate the number of second bytes occupied by the last segment of data in the seismic data channel; The first byte number and the second byte number are added together to obtain the length of the compressed seismic data track.

9. The seismic data compression method according to claim 1, It is characterized in that Using a synchronous concurrent bounded queue and running a bounded queue to control and coordinate the computing thread, the numerical type of the seismic sample point is converted into a form with fewer bits according to a preset first rule to compress the data segment of the seismic data, including: Get the range of the data segment to be compressed and the program number of the computing thread that the current computing thread is responsible for; Obtain the running bounded queue corresponding to the current computing thread by calculating the thread program number; Get elements from the running bounded queue belonging to this computing thread. If there are no elements in the running bounded queue, the computing thread is blocked; otherwise, Get an element value. If the element value represents that the compression of the entire seismic data channel is completed, the calculation thread exits; otherwise, Calculate the byte position of the data segment to be compressed in the original data buffer and the byte position in the compressed data buffer by using the obtained data segment number; The maximum absolute value of the valid sample values ​​in the segment to be compressed is calculated using the number of seismic sample points contained in the segment, wherein the maximum positive integer that can be represented by the number of bits of the compressed data buffer used to store the data in the segment is the maximum absolute value of the valid sample values; The proportional factors of the seismic sample points in the data segment before and after compression are obtained by dividing the number of bits used to store the data in the compressed data buffer by the maximum absolute value of the valid sample values ​​in the segment; Create variables for compression and initialize the variables, convert each original seismic sample point in the data segment to be compressed into compressed data in sequence according to a preset operation method, put the compressed data into a compressed data buffer, put an element into the synchronous concurrent bounded queue, and then execute the running bounded queue belonging to this computing thread to obtain the element and subsequent steps.

10. The seismic data compression method according to claim 9, It is characterized in that The preset operation method includes at least one of original value mapping, data shift splicing, and byte exchange algorithm.

11. A seismic data compression device, It is characterized in that It includes a first initialization module, a fidelity calculation module, a first seismic data track length calculation module, and a seismic data segment compression module, wherein: An initialization module is used to initialize resources, including at least calculating the number of segments of the seismic data track to be compressed that enters the original seismic data track buffer; setting the number of compression bits for each seismic sample point and allocating a compressed seismic data buffer; determining the number of computing threads involved in compression, initializing a synchronous concurrent bounded queue and several running bounded queues, and starting the computing thread; wherein the seismic data includes multiple seismic data tracks, each seismic data track includes a seismic track header and multiple seismic samples, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to compress a preset number of data segments in a seismic data track; A fidelity calculation module, used to calculate the fidelity of the seismic data before and after compression according to the number of compression bits of each seismic sample point, until the fidelity meets a preset fidelity threshold; A first seismic data track length calculation module, used to calculate the length of the compressed seismic data track according to the number of compressed bits of each seismic sample point; The seismic data segment compression module is used to utilize synchronous concurrent bounded queues and run bounded queue control to coordinate computing threads to convert the numerical type of seismic sample points into a form with fewer bits according to a preset first rule to compress the data segments of seismic data; it is also used to block the corresponding computing thread after a seismic trace is compressed, waiting for other computing threads to complete the compression of the remaining data traces, and put the compressed seismic data into the compressed seismic data buffer for the main thread to obtain.

12. A method for decompressing seismic data. It is characterized in that The following steps are involved: The main thread initializes resources, including at least obtaining information on the number of compressed bits and sample points for each seismic sample point, calculating the number of segments of the compressed seismic data channel, and allocating a decompressed seismic data buffer; determining the number of computing threads involved in decompression; initializing a synchronous concurrent bounded queue and several running bounded queues, and starting the computing thread; wherein the decompressed seismic data includes multiple seismic data channels, each of which includes a seismic channel header and compressed sample value data, the sample value data consists of multiple data segments, each of which includes multiple compressed seismic sample points, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to decompress a preset number of data segments in a seismic data channel; Calculate the length of the decompressed seismic data trace according to the number of compressed bits of each seismic sample point; Using a synchronous concurrent bounded queue and running a bounded queue to control and coordinate the computing thread, the numerical type of the compressed seismic sample point is converted into a floating point value according to a preset second rule; When the decompression of a seismic trace is completed, the corresponding computing thread is blocked, waiting for other computing threads to complete the decompression of the remaining data traces, and put the decompressed seismic data into the decompressed seismic data buffer for the main thread to obtain.

13. A seismic data decompression device, It is characterized in that It includes a second initialization module, a second seismic data track length calculation module, and a seismic data segment decompression module, wherein: The second initialization module is used to initialize resources, including at least calculating the number of segments of the seismic data channels to be decompressed that enter the original seismic data channel buffer, allocating the decompressed seismic data buffer, obtaining the number of compression bits for each seismic sample point, determining the number of computing threads involved in decompression, initializing a synchronous concurrent bounded queue Q, a plurality of running bounded queues QS, and starting the computing thread; wherein the seismic data includes a plurality of seismic data channels, each of which includes a seismic channel header and a plurality of seismic sample points, the running bounded queues correspond to the computing threads one by one, and each computing thread is used to decompress a preset number of data segments in a seismic data channel; A second seismic data track length calculation module, used for calculating the length of the compressed seismic data track according to the number of compression bits of each seismic sample point; The seismic data segment decompression module is used to utilize synchronous concurrent bounded queues and run bounded queue control to coordinate computing threads to convert the numerical type of compressed seismic sample points into floating point form according to a preset first rule to decompress the data segments of the seismic data; it is also used to block the corresponding computing thread after a seismic channel is decompressed, waiting for other computing threads to complete the decompression of the remaining data channels, and put the decompressed seismic data into the decompressed seismic data buffer for the main thread to obtain.

14. A computer-readable storage medium, wherein instructions are stored in the computer-readable storage medium, and when the instructions are executed on a terminal, the terminal executes the seismic data compression method according to any one of claims 1 to 10.

15. A computer-readable storage medium storing instructions, which, when executed on a terminal, enable the terminal to execute the seismic data decompression method according to claim 12.

Citation Information

Patent Citations

  • Seismic exploration data compression method and device and compression storage structure

    CN109581502A

  • Massive seismic source data SEG D segmentation classification mixed compression method

    CN114371501A

  • Compression of data exhibiting mixed compressibility

    CN114503439A

  • Data compression and decompression method and device, storage medium and electronic equipment

    CN115149959A

  • Rapid decompression analysis method of Steim1 compression technology and application thereof

    CN115964342A

Cited By

  • Seismic data processing method and device

    CN120908877A