CN111726117A - 数字岩心数据并行压缩编码方法及并行解压解码方法 - Google Patents

数字岩心数据并行压缩编码方法及并行解压解码方法 Download PDF

Info

Publication number
CN111726117A
CN111726117A CN201910213514.8A CN201910213514A CN111726117A CN 111726117 A CN111726117 A CN 111726117A CN 201910213514 A CN201910213514 A CN 201910213514A CN 111726117 A CN111726117 A CN 111726117A
Authority
CN
China
Prior art keywords
data
data sequence
sub
digital core
sequences
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
Application number
CN201910213514.8A
Other languages
English (en)
Inventor
苟斐斐
孙建芳
秦学杰
蒲军
方文超
刘海龙
顾浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Petroleum and Chemical Corp
Sinopec Exploration and Production Research Institute
Original Assignee
China Petroleum and Chemical Corp
Sinopec Exploration and Production Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Petroleum and Chemical Corp, Sinopec Exploration and Production Research Institute filed Critical China Petroleum and Chemical Corp
Priority to CN201910213514.8A priority Critical patent/CN111726117A/zh
Publication of CN111726117A publication Critical patent/CN111726117A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种数字岩心数据体并行压缩编码方法、一种数字岩心数据编码的存储方法、以及一种数字岩心数据并行解压解码方法。本发明不仅可以大大降低数字岩心数据体的体积,而且可以有效提高数字岩心数据体的写入速度和读取速度。此外,本发明还能够使存储的数字岩心数据更加全面,而且在打开文件时可以正常解析数字岩心数据,具有很好的应用前景。

Description

数字岩心数据并行压缩编码方法及并行解压解码方法
技术领域
本发明涉及数字岩心数据处理技术领域,尤其涉及一种数字岩心数据并行压缩编码方法及并行解压解码方法。
背景技术
假设在数字岩心中,用二进制数值0表示孔隙,用二进制数值1表示骨架,因此,数字岩心数据可以理解为是一个由0和1组成的三维图像。目前,通常采用以下两种方法对数字岩心数据进行处理并存储,其中,第一种方法是采用二进制raw格式对数字岩心数据进行处理并存储,第二种方法是采用图片格式(例如,tif格式)对数字岩心数据进行处理并存储。
第一种方法的具体过程如下:
(1)将数字岩心在三维方向上的多个像素点按照X方向、Y方向、Z方向的顺序排序成一维数据序列;
(2)将每个像素点值采用8位(1字节)的空间存储,例如,孔隙存储为00000000,骨架存储为00000001;
(3)将数字岩心在三维方向上的所有像素点依次序按照格式连接起来,最终形成数字岩心数据;
(4)存储该数字岩心数据。
第二种方法的具体过程如下(以tif格式为例):
(1)将数字岩心数据的维度信息(即数字岩心在X方向、Y方向、Z方向的像素点的个数)存储在文件头部;
(2)将数字岩心在三维方向上的多个像素点按照X方向、Y方向、Z方向的顺序排序成一维数据序列;
(3)将每个像素点值采用1位的空间存储,例如,孔隙存储为0,骨架存储为1;
(4)将数字岩心数据的维度信息与数字岩心在三维方向上的所有像素点依次序按照格式连接起来,最终形成数字岩心数据;
(5)存储该数字岩心数据。
由此可见,以上两种方法均将数字岩心数据按照一般的图像数据进行处理并存储,但却未考虑到数字岩心数据的特殊性。因此,以上两种方法具有如下缺点:
(1)采用以上两种方法存储的数字岩心数据的体积过大,并且在存储数字岩心数据的过程中,数字岩心数据的读取和写入速度较慢。以一个像素为10000*10000*1的数字岩心为例,采用第一种方法存储的数字岩心数据的体积可达9.31GB,采用第二种方法存储的数字岩心数据的体积也需要1.16GB。
(2)以上两种方法均仅记录了数字岩心的像素信息,却忽略了数字岩心的像素大小、来源等附加信息。因此,采用以上两种方法存储的数字岩心数据并不全面。
(3)采用第一种方法存储的数字岩心数据并未记录数字岩心数据的维度信息,因此,在打开文件时,如果不知道数字岩心数据的维度信息,会导致数字岩心数据无法正常解析。
为了解决上述技术问题,本发明提供了一种数字岩心数据并行压缩编码方法及并行解压解码方法。
发明内容
在现有技术中,通常将数字岩心数据按照一般的图像数据进行处理并存储,但却未考虑到数字岩心数据的特殊性。因此,现有方法具有如下缺点:
(1)采用现有方法存储的数字岩心数据的体积过大,并且在存储数字岩心数据的过程中,数字岩心数据的读取和写入速度较慢。
(2)采用现有方法存储的数字岩心数据并不全面。
(3)采用现有方法存储的数字岩心数据并未记录数字岩心数据的维度信息,因此,在打开文件时,如果不知道数字岩心数据的维度信息,会导致数字岩心数据无法正常解析。
为了解决上述技术问题,本发明提供了一种数字岩心数据并行压缩编码方法及并行解压解码方法,尤其提供一种数字岩心数据体并行压缩编码方法、数字岩心数据编码的存储方法、以及数字岩心数据并行解压解码方法。
根据本发明的一个方面,提供了一种数字岩心数据体并行压缩编码方法,包括:
使用0表示孔隙元素,使用1表示岩石骨架元素,将数字岩心在三维方向上的多个像素点按照X方向、Y方向、Z方向的顺序进行排列,得到一维数据序列;
根据所述一维数据序列包含的所有元素的总数和孔隙元素的个数,对所述一维数据序列包含的所有元素进行分组,得到多组子数据序列;
对所述多组子数据序列中的每一组并行执行压缩操作,得到压缩后的各组子数据序列;
将所述压缩后的各组子数据序列包含的所有元素按照组号依次进行合并,得到第一数据序列;
根据所述压缩后的各组子数据序列包含的所有元素和第一预设规则,对所述第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码。
在本发明一优选实施例中,根据所述一维数据序列包含的所有元素的总数和孔隙元素的个数,对所述一维数据序列包含的所有元素进行分组,得到多组子数据序列,包括:
根据所述一维数据序列包含的所有元素的总数和孔隙元素的个数,得到数字岩心孔隙度;
根据所述一维数据序列包含的所有元素的总数和所述数字岩心孔隙度,得到所述一维数据序列被划分为子数据序列的组数;
根据所述一维数据序列包含的所有元素的总数和所述一维数据序列被划分为子数据序列的组数,得到每组子数据序列包含的元素的个数;
根据所述一维数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对所述一维数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到多组子数据序列。
在本发明一优选实施例中,对所述多组子数据序列中的每一组并行执行压缩操作,得到压缩后的各组子数据序列,包括:
针对每组子数据序列,并行执行以下操作:
在该组子数据序列包含的首位元素之前和末位元素之后分别添加1,得到第二数据序列;
根据第二数据序列包含的所有元素中数值为1的元素在该第二数据序列中的编号,得到第三数据序列;
对第三数据序列包含的所有元素进行差分运算,得到第四数据序列;
从第四数据序列包含的所有元素中选出数值不为1的元素,得到第五数据序列;
将第五数据序列包含的每个元素均减1,得到第六数据序列;
判断该组子数据序列包含的首位元素是否为1,并根据判断结果,确定第七数据序列包含的元素;
对该组子数据序列包含的所有元素进行取反运算,得到第八数据序列;
在第八数据序列包含的首位元素之前和末位元素之后分别添加1,得到第九数据序列;
根据第九数据序列包含的所有元素中数值为1的元素在该第九数据序列中的编号,得到第十数据序列;
对第十数据序列包含的所有元素进行差分运算,得到第十一数据序列;
从第十一数据序列包含的所有元素中选出数值不为1的元素,得到第十二数据序列;
将第十二数据序列包含的每个元素均减1,得到第十三数据序列;
判断该组子数据序列包含的末位元素是否为0,并根据判断结果,确定第十四数据序列包含的元素;
根据第二预设规则对第七数据序列和第十四数据序列包含的所有元素进行合并,得到压缩后的该组子数据序列。
在本发明一优选实施例中,根据所述压缩后的各组子数据序列包含的所有元素和第一预设规则,对所述第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码,包括:
根据所述压缩后的各组子数据序列包含的所有元素,得到所述压缩后的各组子数据序列包含的所有元素中的最大值;
根据所述最大值和第一预设规则,得到对所述第一数据序列包含的所有元素进行编码的二进制位数;
根据所述二进制位数,对所述第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码。
在本发明一优选实施例中,判断该组子数据序列包含的首位元素是否为1,并根据判断结果,确定第七数据序列包含的元素,包括:
判断该组子数据序列包含的首位元素是否为1;
若该组子数据序列包含的首位元素为1,则将第七数据序列包含的元素确定为在第六数据序列包含的首位元素之前添加0后得到的元素;
若该组子数据序列包含的首位元素不为1,则将第七数据序列包含的元素确定为第六数据序列包含的元素。
在本发明一优选实施例中,判断该组子数据序列包含的末位元素是否为0,并根据判断结果,确定第十四数据序列包含的元素,包括:
判断该组子数据序列包含的末位元素是否为0;
若该组子数据序列包含的末位元素为0,则将第十四数据序列包含的元素确定为在第十三数据序列包含的末位元素之后添加0后得到的元素;
若该组子数据序列包含的末位元素不为0,则将第十四数据序列包含的元素确定为第十三数据序列包含的元素。
根据本发明的另一个方面,提供了一种数字岩心数据编码的存储方法,包括:
将数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码、以及根据上述方法得到的数字岩心数据体编码依次连接,得到数字岩心数据编码;
存储所述数字岩心数据编码。
在本发明一优选实施例中,
所述数字岩心数据的维度信息编码是以第一预设编码方式和第一预设编码位数对数字岩心在X方向、Y方向、Z方向的像素点的个数进行编码而得到的;
所述数字岩心数据的尺寸信息编码是以第二预设编码方式和第二预设编码位数对每个像素点在X方向、Y方向、Z方向的实际尺寸进行编码而得到的;
所述数字岩心数据的说明信息编码是以第三预设编码方式和第三预设编码位数对数字岩心的附加信息进行编码而得到的;
所述数字岩心数据的数据头编码是以第四预设编码方式和第四预设编码位数对二进制位数进行编码而得到的,所述二进制位数是根据压缩后的各组子数据序列包含的所有元素和第一预设规则而得到的。
根据本发明的再一个方面,提供了一种数字岩心数据并行解压解码方法,用于解析根据上述方法得到的数字岩心数据编码,包括:
根据第一至第四预设编码方式和第一至第四预设编码位数,对所述数字岩心数据编码进行解码操作,得到数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码和数字岩心数据体编码;
根据所述数据头编码和所述数字岩心数据体编码,得到第一数据序列;
根据所述第一数据序列包含的所有元素的总数和计算设备配置情况,对所述第一数据序列包含的所有元素进行分组,得到多组子数据序列;
对所述多组子数据序列中的每一组并行执行解压解码操作,得到解压解码后的各组子数据序列;
将所述解压解码后的各组子数据序列包含的所有元素按照组号依次进行合并,得到一维数据序列;
根据所述数字岩心数据的维度信息编码,按照X方向、Y方向、Z方向的顺序对所述一维数据序列包含的所有元素进行排列,得到数字岩心数据体。
在本发明一优选实施例中,根据所述第一数据序列包含的所有元素的总数和计算设备配置情况,对所述第一数据序列包含的所有元素进行分组,得到多组子数据序列,包括:
根据计算设备配置情况,确定所述第一数据序列被划分为子数据序列的组数;
根据所述第一数据序列包含的所有元素的总数和所述第一数据序列被划分为子数据序列的组数,得到每组子数据序列包含的元素的个数;
根据所述第一数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对所述第一数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到多组子数据序列。
在本发明一优选实施例中,对所述多组子数据序列中的每一组并行执行解压解码操作,得到解压解码后的各组子数据序列,包括:
针对每组子数据序列,并行执行以下操作:
对该组子数据序列包含的每个元素进行累加运算,得到第十五数据序列;
根据第十五数据序列包含的末位元素,创建第十六数据序列,所述第十六数据序列包含的所有元素均为0,且所述第十六数据序列包含的元素的个数为第十五数据序列包含的末位元素;
根据第十五数据序列包含的所有元素和第三预设规则,对所述第十六数据序列包含的元素进行处理,得到解压解码后的该组子数据序列。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
(1)本发明实施例提供的数字岩心数据体并行压缩编码方法,是对数字岩心的多组子数据序列中的每一组并行执行压缩操作,不仅可以有效提高数字岩心数据体的计算速度,而且可以大大降低数字岩心数据体的体积,从而为后续数字岩心数据的存储奠定良好基础。
(2)本发明实施例提供的数字岩心数据编码的存储方法,能够存储数字岩心的维度信息、尺寸信息、说明信息、数据头和数据体,因此,应用本发明的方法存储的数字岩心数据更加全面,而且在打开文件时可以正常解析数字岩心数据。
此外,由于其存储的数据体是采用并行压缩编码方法得到的数字岩心数据体,因此,其存储的数字岩心数据的体积大大降低,存储数字岩心数据的速度大大提高。
(3)本发明实施例提供的数字岩心数据并行解压解码方法,是对数字岩心数据体的多组子数据序列的每一组并行执行解压解码操作,可以有效提高数字岩心数据的读取速度,具有很好的应用前景。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例一的数字岩心数据体并行压缩编码方法的具体流程示意图;
图2为图1中步骤S102的具体流程示意图;
图3为图1中步骤S103的具体流程示意图;
图4为图1中步骤S105的具体流程示意图;
图5为本发明实施例二的数字岩心数据编码的存储方法的具体流程示意图;
图6为本发明实施例二的数字岩心数据编码的具体格式的示意图;
图7为本发明实施例三的数字岩心数据并行解压解码方法的具体流程示意图;
图8为图7中的步骤S303的具体流程示意图;
图9为图7中的步骤S304的具体流程示意图;
图10为应用示例一的数字岩心数据体图像。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
在现有技术中,通常将数字岩心数据按照一般的图像数据进行处理并存储,但却未考虑到数字岩心数据的特殊性。因此,现有方法具有如下缺点:
(1)采用现有方法存储的数字岩心数据的体积过大,并且在存储数字岩心数据的过程中,数字岩心数据的读取和写入速度较慢。
(2)采用现有方法存储的数字岩心数据并不全面。
(3)采用现有方法存储的数字岩心数据并未记录数字岩心数据的维度信息,因此,在打开文件时,如果不知道数字岩心数据的维度信息,会导致数字岩心数据无法正常解析。
为了解决上述技术问题,本发明提供了一种数字岩心数据并行压缩编码方法及并行解压解码方法,尤其提供一种数字岩心数据体并行压缩编码方法、数字岩心数据编码的存储方法、以及数字岩心数据并行解压解码方法。
实施例一
岩石的特点是孔隙和岩石骨架相对连续分布,而不是毫无规律的随机离散分布,这使得数字岩心数据体的0、1数据具有连续一段0、再接连续的一段1这样的分布特点。基于数字岩心的这个特点,本实施例使用奇数位置记录连续为孔隙的像素点的个数,使用偶数位置记录连续为骨架的像素点的个数。如果对整个数字岩心数据体进行计算,一是会出现很大的一个连续为0或1的区域,形成一个很大的整数,浪费存储空间;二是计算速度慢。
为了克服上述问题,本实施例提供了一种数字岩心数据体并行压缩编码方法,其核心思想是将数字岩心在三维方向上的多个像素点的0、1数据转换为0、1的数量。
图1为本发明实施例一的数字岩心数据体并行压缩编码方法的具体流程示意图。
如图1所示,本实施例的数字岩心数据体并行压缩编码方法,主要包括以下步骤S101至步骤S105。
在步骤S101中,使用0表示孔隙元素,使用1表示岩石骨架元素,将数字岩心在三维方向上的多个像素点按照X方向、Y方向、Z方向的顺序进行排列,得到一维数据序列{an}。
在步骤S102中,根据一维数据序列包含的所有元素的总数和孔隙元素的个数,对一维数据序列包含的所有元素进行分组,得到多组子数据序列。其中,一维数据序列包含的所有元素包括所有孔隙元素和所有骨架元素。其具体过程如图2所示。
在步骤S1021中,根据一维数据序列包含的所有元素的总数和孔隙元素的个数,得到数字岩心孔隙度。
优选地,根据以下表达式(1)得到数字岩心孔隙度:
Figure BDA0002001289700000091
其中,φ为数字岩心孔隙度,K为一维数据序列包含的孔隙元素的个数,N为一维数据序列包含的所有元素的总数。
需要说明的是,数字岩心孔隙度一般小于0.5。
在步骤S1022中,根据一维数据序列包含的所有元素的总数和数字岩心孔隙度,得到一维数据序列被划分为子数据序列的组数。
优选地,根据以下表达式(2)得到一维数据序列被划分为子数据序列的组数:
m=[Nφ/ln(N)] (2)
其中,m为一维数据序列被划分为子数据序列的组数,N为一维数据序列包含的所有元素的总数,φ为数字岩心孔隙度,[]表示对Nφ/ln(N)所得的商取整。
在步骤S1023中,根据一维数据序列包含的所有元素的总数和一维数据序列被划分为子数据序列的组数,得到每组子数据序列包含的元素的个数。
优选地,根据以下表达式(3)得到每组子数据序列包含的元素的个数:
P1=[N/(m-1)] (3)
其中,P1为前(m-1)组子数据序列包含的元素的个数,N为一维数据序列包含的所有元素的总数,m为一维数据序列被划分为子数据序列的组数,[]表示对N/(m-1)所得的商取整,第m组子数据序列包含的元素的个数P2为N/P1所得的余数。
在步骤S1024中,根据一维数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对一维数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到多组子数据序列。
在步骤S103中,对多组子数据序列中的每一组并行执行压缩操作,得到压缩后的各组子数据序列。其具体过程如图3所示。
针对每组子数据序列,并行执行以下操作:
需要说明的是,为了能够更加容易地理解本发明,下面通过举例方式对本步骤的具体操作过程进行详细描述。这里,以第k组子数据序列
Figure BDA0002001289700000101
为例进行说明。
在步骤S1031中,在该组子数据序列包含的首位元素之前和末位元素之后分别添加1,得到第二数据序列
Figure BDA0002001289700000102
在步骤S1032中,根据第二数据序列包含的所有元素中数值为1的元素在该第二数据序列中的编号,得到第三数据序列
Figure BDA0002001289700000103
在步骤S1033中,对第三数据序列包含的所有元素进行差分运算,得到第四数据序列
Figure BDA0002001289700000104
优选地,根据以下表达式(4)得到第四数据序列包含的所有元素:
Figure BDA0002001289700000105
其中,
Figure BDA0002001289700000111
表示第k组子数据序列中的第四数据序列的第n个元素,
Figure BDA0002001289700000112
表示第k组子数据序列中的第三数据序列的第n+1个元素,
Figure BDA0002001289700000113
表示第k组子数据序列中的第三数据序列的第n个元素,n为正整数。
在步骤S1034中,从第四数据序列包含的所有元素中选出数值不为1的元素,得到第五数据序列
Figure BDA0002001289700000114
在步骤S1035中,将第五数据序列包含的每个元素均减1,得到第六数据序列
Figure BDA0002001289700000115
优选地,根据以下表达式(5)得到第六数据序列包含的所有元素:
Figure BDA0002001289700000116
其中,
Figure BDA0002001289700000117
表示第k组子数据序列中的第六数据序列的第n个元素,
Figure BDA0002001289700000118
表示第k组子数据序列中的第五数据序列的第n个元素,n为正整数。
在步骤S1036中,判断该组子数据序列包含的首位元素是否为1,并根据判断结果,确定第七数据序列包含的元素。
具体地,判断该组子数据序列包含的首位元素是否为1。
若该组子数据序列包含的首位元素为1,则将第七数据序列包含的元素确定为在第六数据序列包含的首位元素之前添加0后得到的元素,即
Figure BDA0002001289700000119
其中,
Figure BDA00020012897000001110
表示第k组子数据序列中的第七数据序列的第n个元素,
Figure BDA00020012897000001111
表示第k组子数据序列中的第六数据序列的第n个元素,n为正整数。
若该组子数据序列包含的首位元素不为1,则将第七数据序列包含的元素确定为第六数据序列包含的元素,即
Figure BDA00020012897000001112
这里,由于第k组子数据序列
Figure BDA00020012897000001113
包含的首位元素
Figure BDA00020012897000001114
为0,因此,将第七数据序列包含的元素确定为第六数据序列包含的元素,即
Figure BDA00020012897000001115
在步骤S1037中,对该组子数据序列包含的所有元素进行取反运算,得到第八数据序列,即
Figure BDA00020012897000001116
其中,
Figure BDA00020012897000001117
表示第k组子数据序列中的第八数据序列的第n个元素,
Figure BDA00020012897000001118
表示第k组子数据序列中的第n个元素,n为正整数。在本示例中,
Figure BDA0002001289700000121
在步骤S1038中,在第八数据序列包含的首位元素之前和末位元素之后分别添加1,得到第九数据序列
Figure BDA0002001289700000122
在步骤S1039中,根据第九数据序列包含的所有元素中数值为1的元素在该第九数据序列中的编号,得到第十数据序列
Figure BDA0002001289700000123
在步骤S1040中,根据以上表达式(4),对第十数据序列包含的所有元素进行差分运算,得到第十一数据序列
Figure BDA0002001289700000124
在步骤S1041中,从第十一数据序列包含的所有元素中选出数值不为1的元素,得到第十二数据序列
Figure BDA0002001289700000125
在步骤S1042中,根据以上表达式(5),将第十二数据序列包含的每个元素均减1,得到第十三数据序列
Figure BDA0002001289700000126
在步骤S1043中,判断该组子数据序列包含的末位元素是否为0,并根据判断结果,确定第十四数据序列包含的元素。
具体地,判断该组子数据序列包含的末位元素是否为0。
若该组子数据序列包含的末位元素为0,则将第十四数据序列包含的元素确定为在第十三数据序列包含的末位元素之后添加0后得到的元素,即
Figure BDA0002001289700000127
其中,
Figure BDA0002001289700000128
表示第k组子数据序列中的第十四数据序列的第n个元素,
Figure BDA0002001289700000129
表示第k组子数据序列中的第十三数据序列的第n个元素,n为正整数。
若该组子数据序列包含的末位元素不为0,则将第十四数据序列包含的元素确定为第十三数据序列包含的元素,即
Figure BDA00020012897000001210
这里,由于第k组子数据序列
Figure BDA00020012897000001211
包含的末位元素
Figure BDA00020012897000001212
为1,因此,将第十四数据序列包含的元素确定为第十三数据序列包含的元素,即
Figure BDA00020012897000001213
在步骤S1044中,根据第二预设规则(即以下表达式(6)和(7))对第七数据序列和第十四数据序列包含的所有元素进行合并,得到压缩后的该组子数据序列。
优选地,根据以下表达式(6)和(7)得到压缩后的该组子数据序列包含的所有元素:
Figure BDA0002001289700000131
Figure BDA0002001289700000132
其中,
Figure BDA0002001289700000133
表示压缩后的第k组子数据序列包含的第2n-1个元素,
Figure BDA0002001289700000134
表示第k组子数据序列中的第七数据序列的第n个元素,
Figure BDA0002001289700000135
表示压缩后的第k组子数据序列包含的第2n个元素,
Figure BDA0002001289700000136
表示第k组子数据序列中的第十四数据序列的第n个元素,n为正整数。
在本示例中,根据以上表达式(6)和(7),可以得到:压缩后的该组子数据序列为
Figure BDA0002001289700000137
在步骤S104中,将压缩后的各组子数据序列包含的所有元素按照组号依次进行合并,得到第一数据序列。
在步骤S105中,根据压缩后的各组子数据序列包含的所有元素和第一预设规则,对第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码。其具体过程如图4所示。
在步骤S1051中,根据压缩后的各组子数据序列包含的所有元素,得到压缩后的各组子数据序列包含的所有元素中的最大值。
在步骤S1052中,根据该最大值和第一预设规则(即以下表达式(8)和(9)),得到对第一数据序列包含的所有元素进行编码的二进制位数。
优选地,根据以下表达式(8)和(9)得到对第一数据序列包含的所有元素进行编码的二进制位数:
2q-1≥tmax (8)
2q-1-1<tmax (9)
其中,q表示对第一数据序列包含的所有元素进行编码的二进制位数,tmax表示压缩后的各组子数据序列包含的所有元素中的最大值。
在步骤S1053中,根据二进制位数,对第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码。
应用本发明实施例提供的数字岩心数据体并行压缩编码方法,由于对数字岩心的多组子数据序列中的每一组并行执行压缩操作,不仅可以有效提高数字岩心数据体的计算速度,而且可以大大降低数字岩心数据体的体积,从而为后续数字岩心数据的存储奠定良好基础。
实施例二
本实施例提供了一种数字岩心数据编码的存储方法。
图5为本发明实施例二的数字岩心数据编码的存储方法的具体流程示意图。
如图5所示,本实施例的数字岩心数据编码的存储方法,主要包括以下步骤S201至步骤S202。
在步骤S201中,将数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码、以及根据实施例一所述的方法得到的数字岩心数据体编码依次连接,得到数字岩心数据编码。数字岩心数据编码的具体格式如图6所示。
其中,数字岩心数据的维度信息编码、尺寸信息编码和说明信息编码作为数字岩心的摘要和属性信息,用于快速获取数字岩心的基本信息。
具体地,数字岩心数据的维度信息编码是以第一预设编码方式和第一预设编码位数对数字岩心在X方向、Y方向、Z方向的像素点的个数进行编码而得到的。数字岩心数据的维度信息编码最大允许记录4294967296个像素点的数据。
优选地,第一预设编码方式为二进制无符号整数编码,第一预设编码位数为:数字岩心在X方向、Y方向和Z方向中的每一个方向的像素点的个数采用32位(4字节)进行编码。
数字岩心数据的尺寸信息编码是以第二预设编码方式和第二预设编码位数对每个像素点在X方向、Y方向、Z方向的实际尺寸(即数字岩心分辨率,单位为nm)进行编码而得到的。
优选地,第二预设编码方式为二进制无符号整数编码,第二预设编码位数为:每个像素点在X方向、Y方向和Z方向中的每一个方向的实际尺寸采用20位进行编码。
数字岩心数据的尺寸信息编码最低可表示1048576nm(约1mm)精度的分辨率,最高可表示1nm精度的分辨率。
数字岩心数据的说明信息编码是以第三预设编码方式和第三预设编码位数对数字岩心的附加信息进行编码而得到的。其中,附加信息包括数字岩心的取心、扫描设备、处理方法等信息。
优选地,第三预设编码方式为UTF编码,可记录任意文字、符号,无固定长度。通常,在说明信息编码结尾添加一个空字符(UTF代码:U+0000)。第三预设编码位数为:每个字符采用32位进行编码。
数字岩心数据的数据头编码是以第四预设编码方式和第四预设编码位数对二进制位数进行编码而得到的。该二进制位数是根据压缩后的各组子数据序列包含的所有元素和第一预设规则(即以上表达式(8)和(9))而得到的。该二进制位数表示数字岩心数据体包含的每个元素所占的位数。
优选地,第四预设编码方式为二进制无符号整数编码,第四预设编码位数为8位。数字岩心数据体包含的每个元素最大允许占256位。
数字岩心数据体编码用于记录数字岩心的孔隙和骨架信息,即表示数字岩心中的每一个坐标位置是孔隙还是骨架。
在步骤S202中,存储该数字岩心数据编码。
应用本发明实施例提供的数字岩心数据编码的存储方法,由于其存储了数字岩心的维度信息、尺寸信息、说明信息、数据头和数据体,因此,其存储的数字岩心数据更加全面,而且在打开文件时可以正常解析数字岩心数据。
此外,由于本发明实施例提供的数字岩心数据编码的存储方法,其存储的数据体是采用实施例一所述的方法得到的数字岩心数据体,因此,其存储的数字岩心数据的体积大大降低,存储数字岩心数据的速度大大提高。
有关试验数据表明:采用本发明实施例提供的方法存储像素为10000*10000*1的数字岩心,其存储的数字岩心数据的体积仅为0.1GB,是采用现有技术中的第一种方法存储的数字岩心数据的体积的1%,是采用现有技术中的第二种方法存储的数字岩心数据的体积的10%。
实施例三
本实施例提供了一种数字岩心数据并行解压解码方法,用于解析根据实施例二所述的方法得到的数字岩心数据编码。
图7为本发明实施例三的数字岩心数据并行解压解码方法的具体流程示意图。
如图7所示,本实施例的数字岩心数据并行解压解码方法,主要包括以下步骤S301至步骤S306。
在步骤S301中,根据实施例二中的第一至第四预设编码方式和第一至第四预设编码位数,对数字岩心数据编码进行解码操作,得到数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码和数字岩心数据体编码。其具体过程如下:
从数字岩心数据编码的第一位开始,以第一预设编码方式和第一预设编码位数对数字岩心数据编码进行解码操作,得到数字岩心数据的维度信息编码。
从数字岩心数据的维度信息编码的下一位开始,以第二预设编码方式和第二预设编码位数对数字岩心数据编码进行解码操作,得到数字岩心数据的尺寸信息编码。
从数字岩心数据的尺寸信息编码的下一位开始,以第三预设编码方式和第三预设编码位数对数字岩心数据编码进行解码操作,得到数字岩心数据的说明信息编码。
从数字岩心数据的说明信息编码的下一位开始,以第四预设编码方式和第四预设编码位数对数字岩心数据编码进行解码操作,得到数字岩心数据的数据头编码,从而得到对数字岩心数据体包含的每个元素进行编码的二进制位数。
从数字岩心数据的数据头编码的下一位开始至数字岩心数据编码的末位为止,即为数字岩心数据体编码。
在步骤S302中,根据数据头编码和数字岩心数据体编码,得到第一数据序列。
在步骤S303中,根据第一数据序列包含的所有元素的总数和计算设备配置情况,对第一数据序列包含的所有元素进行分组,得到多组子数据序列。其具体过程如图8所示。
在步骤S3031中,根据计算设备配置情况,确定第一数据序列被划分为子数据序列的组数。
优选地,根据计算设备的CPU核数来确定第一数据序列被划分为子数据序列的组数。
在步骤S3032中,根据第一数据序列包含的所有元素的总数和第一数据序列被划分为子数据序列的组数,得到每组子数据序列包含的元素的个数。
优选地,根据以下表达式(10)和(11)得到每组子数据序列包含的元素的个数:
P3=[(M/m)+1] (10)
P4=M-(m-1)·P3 (11)
其中,P3为前(m-1)组子数据序列包含的元素的个数,M为第一数据序列包含的所有元素的总数,m为第一数据序列被划分为子数据序列的组数,[]表示对(M/m)+1所得的和取整,P4表示第m组子数据序列包含的元素的个数。
需要说明的是,若P3为奇数,则前(m-1)组子数据序列包含的元素的个数为P3-1。
在步骤S3033中,根据第一数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对第一数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到多组子数据序列。
在步骤S304中,对多组子数据序列中的每一组并行执行解压解码操作,得到解压解码后的各组子数据序列。其具体过程如图9所示。
针对每组子数据序列,并行执行以下操作:
需要说明的是,为了能够更加容易地理解本发明,下面通过举例方式对本步骤的具体操作过程进行详细描述。这里,以实施例一中压缩后的第k组子数据序列
Figure BDA0002001289700000171
为例进行说明。
在步骤S3041中,对该组子数据序列包含的每个元素进行累加运算,得到第十五数据序列。
优选地,根据以下表达式(12)得到第十五数据序列包含的所有元素:
Figure BDA0002001289700000172
其中,
Figure BDA0002001289700000173
表示第k组子数据序列中的第十五数据序列包含的第n个元素,
Figure BDA0002001289700000174
表示压缩后的第k组子数据序列包含的第j个元素,n为正整数。
在本示例中,根据以上表达式(12),可以得到:第十五数据序列为
Figure BDA0002001289700000181
在步骤S3042中,根据第十五数据序列包含的末位元素,创建第十六数据序列。其中,第十六数据序列包含的所有元素均为0,且第十六数据序列包含的元素的个数为第十五数据序列包含的末位元素。
在本示例中,由于第十五数据序列包含的末位元素为8,因此,第十六数据序列为
Figure BDA0002001289700000182
在步骤S3043中,根据第十五数据序列包含的所有元素和第三预设规则,对第十六数据序列包含的元素进行处理,得到解压解码后的该组子数据序列。
其中,第三预设规则为:
Figure BDA0002001289700000183
则对第k组子数据序列中的第十六数据序列包含的第
Figure BDA0002001289700000184
到第
Figure BDA0002001289700000185
个元素进行取反操作,即将0变为1。
Figure BDA0002001289700000186
则保持第k组子数据序列中的第十六数据序列包含的第
Figure BDA0002001289700000187
到第
Figure BDA0002001289700000188
个元素为0。
其中,
Figure BDA0002001289700000189
表示第k组子数据序列中的第十五数据序列包含的第2n-1个元素,
Figure BDA00020012897000001810
表示第k组子数据序列中的第十五数据序列包含的第2n个元素,n为正整数。
在本示例中,当n=1时,
Figure BDA00020012897000001811
由于2<4,因此,对第k组子数据序列中的第十六数据序列包含的第2到第4个元素进行取反操作,即将0变为1。
当n=2时,
Figure BDA00020012897000001812
由于7<8,因此,对第k组子数据序列中的第十六数据序列包含的第7到第8个元素进行取反操作,即将0变为1。
因此,得到解压解码后的第k组子数据序列为
Figure BDA00020012897000001813
在步骤S305中,将解压解码后的各组子数据序列包含的所有元素按照组号依次进行合并,得到一维数据序列。
在步骤S306中,根据数字岩心数据的维度信息编码,按照X方向、Y方向、Z方向的顺序对一维数据序列包含的所有元素进行排列,得到数字岩心数据体。
应用本发明实施例提供的数字岩心数据并行解压解码方法,由于对数字岩心数据体的多组子数据序列的每一组并行执行解压解码操作,可以有效提高数字岩心数据的读取速度,具有很好的应用前景。
下面通过具体应用示例对本发明进行详细描述。
应用示例一
本应用示例一描述了数字岩心数据体并行压缩编码方法和数字岩心数据编码的存储方法。
图10为本应用示例一的数字岩心数据体图像。
在本应用示例中,数字岩心数据体像素为10*10*1,该数字岩心的每个像素点的精度为1nm。
数字岩心在X方向具有10个像素点,在Y方向具有10个像素点,在Z方向具有1个像素点,数字岩心在各个方向的像素点数目采用32位二进制无符号整数编码方式进行编码。由于10的32位二进制无符号整数编码为00000000000000000000000000001010,1的32位二进制无符号整数编码为00000000000000000000000000000001,因此,数字岩心数据的维度信息编码为:000000000000000000000000000010100000000000000000000000000000101000000000000000000000000000000001。
数字岩心的每个像素点的精度采用20位二进制无符号整数编码方式进行编码。由于数字岩心的每个像素点在各个方向的精度为1nm,1的20位二进制无符号整数编码为00000000000000000001,因此,数字岩心数据的尺寸信息编码为:000000000000000000010000000000000000000100000000000000000001。
数字岩心的说明信息为“这是一个示例”,该字符对应的Unicode代码如下表1所示:
表1数字岩心的说明信息编码
Figure BDA0002001289700000191
Figure BDA0002001289700000201
因此,数字岩心数据的说明信息编码为:00000000000000001000111111011001000000000000000001100110001011110000000000000000010011100000000000000000000000000100111000101010000000000000000001111001001110100000000000000000010011111000101100000000000000000000000000000000。
下面通过实施例一中所述的方法得到数字岩心的数据头编码和数字岩心数据体编码,具体过程如下:
在步骤S101中,使用0表示孔隙元素,使用1表示岩石骨架元素,将数字岩心在三维方向上的多个像素点按照X方向、Y方向、Z方向的顺序进行排列,得到一维数据序列{an}。数字岩心数据的形式如下表2所示。
表2数字岩心数据的形式
Y/X 1 2 3 4 5 6 7 8 9 10
1 1 1 1 1 1 1 1 1 1 1
2 1 1 0 0 0 1 1 0 1 1
3 1 0 0 0 0 1 1 1 1 1
4 1 0 0 0 0 1 1 1 1 1
5 1 1 0 0 0 1 0 0 0 1
6 1 1 1 0 1 0 0 0 0 1
7 1 1 0 0 1 0 0 0 0 1
8 1 0 0 0 0 1 1 1 1 1
9 1 1 0 0 1 1 1 1 1 1
10 1 1 1 1 1 1 1 1 1 1
因此,一维数据序列{an}为:1111111111110001101110000111111000011111110001000111101000011100100001100001111111001111111111111111。
在步骤S102中,根据一维数据序列包含的所有元素的总数和孔隙元素的个数,对一维数据序列包含的所有元素进行分组,得到多组子数据序列。其中,一维数据序列包含的所有元素包括所有孔隙元素和所有骨架元素。其具体过程如下。
在步骤S1021中,由表2可见,一维数据序列包含的所有元素的总数为100,孔隙元素的个数(即表2中0的数目)为35,根据以上表达式(1),可以得到:数字岩心孔隙度为0.35。
在步骤S1022中,由于一维数据序列包含的所有元素的总数为100,数字岩心孔隙度为0.35,根据以上表达式(2),可以得到:一维数据序列被划分为子数据序列的组数为7。
在步骤S1023中,由于一维数据序列包含的所有元素的总数为100,一维数据序列被划分为子数据序列的组数为7,根据以上表达式(3),可以得到:前6组子数据序列包含的元素的个数为16,第7组子数据序列包含的元素的个数为4。
在步骤S1024中,根据一维数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对一维数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到7组子数据序列
Figure BDA0002001289700000211
Figure BDA0002001289700000212
在步骤S103中,对7组子数据序列中的每一组并行执行压缩操作,得到压缩后的各组子数据序列。其具体过程如下。
针对每组子数据序列,并行执行以下操作:
这里,为了简便,以第1组子数据序列
Figure BDA0002001289700000213
为例进行说明。
在步骤S1031中,在该组子数据序列包含的首位元素之前和末位元素之后分别添加1,得到第二数据序列
Figure BDA0002001289700000214
在步骤S1032中,根据第二数据序列包含的所有元素中数值为1的元素在该第二数据序列中的编号,得到第三数据序列
Figure BDA0002001289700000215
在步骤S1033中,根据以上表达式(4),对第三数据序列包含的所有元素进行差分运算,得到第四数据序列
Figure BDA0002001289700000221
在步骤S1034中,从第四数据序列包含的所有元素中选出数值不为1的元素,得到第五数据序列
Figure BDA0002001289700000222
在步骤S1035中,根据以上表达式(5),将第五数据序列包含的每个元素均减1,得到第六数据序列
Figure BDA0002001289700000223
在步骤S1036中,判断该组子数据序列包含的首位元素是否为1,并根据判断结果,确定第七数据序列包含的元素。
在本示例中,由于第1组子数据序列
Figure BDA0002001289700000224
包含的首位元素
Figure BDA0002001289700000225
为1,因此,第七数据序列
Figure BDA0002001289700000226
在步骤S1037中,对该组子数据序列包含的所有元素进行取反运算,得到第八数据序列
Figure BDA0002001289700000227
在步骤S1038中,在第八数据序列包含的首位元素之前和末位元素之后分别添加1,得到第九数据序列
Figure BDA0002001289700000228
在步骤S1039中,根据第九数据序列包含的所有元素中数值为1的元素在该第九数据序列中的编号,得到第十数据序列
Figure BDA0002001289700000229
在步骤S1040中,根据以上表达式(4),对第十数据序列包含的所有元素进行差分运算,得到第十一数据序列
Figure BDA00020012897000002210
在步骤S1041中,从第十一数据序列包含的所有元素中选出数值不为1的元素,得到第十二数据序列
Figure BDA00020012897000002211
在步骤S1042中,根据以上表达式(5),将第十二数据序列包含的每个元素均减1,得到第十三数据序列
Figure BDA00020012897000002212
在步骤S1043中,判断该组子数据序列包含的末位元素是否为0,并根据判断结果,确定第十四数据序列包含的元素。
在本示例中,由于第1组子数据序列
Figure BDA00020012897000002213
包含的末位元素
Figure BDA00020012897000002214
为1,因此,第十四数据序列
Figure BDA0002001289700000231
在步骤S1044中,根据第二预设规则(即以上表达式(6)和(7))对第七数据序列和第十四数据序列包含的所有元素进行合并,得到压缩后的该组子数据序列
Figure BDA0002001289700000232
并行执行上述7组子数据序列,得到压缩后的各组子数据序列,如下表3所示。
表3压缩后的各组子数据序列
Figure BDA0002001289700000233
在步骤S104中,将压缩后的各组子数据序列包含的所有元素按照组号依次进行合并,得到第一数据序列
Figure BDA0002001289700000234
在步骤S105中,根据压缩后的各组子数据序列包含的所有元素和第一预设规则,对第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码。其具体过程如下。
在步骤S1051中,根据压缩后的各组子数据序列包含的所有元素,得到压缩后的各组子数据序列包含的所有元素中的最大值。
在本示例中,由表3可见,压缩后的各组子数据序列包含的所有元素中的最大值tmax=12。
在步骤S1052中,根据该最大值和第一预设规则(即以上表达式(8)和(9)),得到对第一数据序列包含的所有元素进行编码的二进制位数q=4。
此外,由于数字岩心数据的数据头编码采用8位二进制无符号整数编码方式进行编码,又由于4的8位二进制无符号整数编码为00000100,因此,可以得到:数字岩心数据的数据头编码为00000100。
在步骤S1053中,根据二进制位数,对第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码为00001100001100010000000100010011010001100001000000110111001100010010000000010100000100010100001100100000000000010100001001000101000000100010110000000100。
在步骤S201中,将数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码、以及数字岩心数据体编码依次连接,得到数字岩心数据编码为000000000000000000000000000010100000000000000000000000000000101000000000000000000000000000000001000000000000000000010000000000000000000100000000000000000001000000000000000010001111110110010000000000000000011001100010111100000000000000000100111000000000000000000000000001001110001010100000000000000000011110010011101000000000000000000100111110001011000000000000000000000000000000000000010000001100001100010000000100010011010001100001000000110111001100010010000000010100000100010100001100100000000000010100001001000101000000100010110000000100。
在步骤S202中,存储该数字岩心数据编码。
应用示例二
本应用示例二描述了数字岩心数据并行解压解码方法,用于解析根据应用示例一所述的方法得到的数字岩心数据编码。
在步骤S301中,根据应用示例一中的数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码和数字岩心数据体编码的编码方式和编码位数,对数字岩心数据编码进行解码操作,得到数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码和数字岩心数据体编码。其具体过程如下:
从数字岩心数据编码的第1位开始,根据应用示例一中的数字岩心数据的维度信息编码的编码方式和编码位数,读取数字岩心数据编码的第1-96位,得到数字岩心数据的维度信息编码为:000000000000000000000000000010100000000000000000000000000000101000000000000000000000000000000001。对上述编码每隔32位进行解析,可以得到数字岩心数据的维度信息,如下表4所示。
表4数字岩心数据的维度信息编码解析结果
维度 维度信息编码 维度信息编码解析结果
X 00000000000000000000000000001010 10
Y 00000000000000000000000000001010 10
Z 00000000000000000000000000000001 1
从数字岩心数据编码的第97位开始,根据应用示例一中的数字岩心数据的尺寸信息编码的编码方式和编码位数,读取数字岩心数据编码的第97-156位,得到数字岩心数据的尺寸信息编码为:000000000000000000010000000000000000000100000000000000000001。对上述编码每隔20位进行解析,可以得到数字岩心数据的尺寸信息,如下表5所示。
表5数字岩心数据的尺寸信息编码解析结果
维度 尺寸信息编码 尺寸信息编码解析结果
X 00000000000000000001 1nm
Y 00000000000000000001 1nm
Z 00000000000000000001 1nm
根据应用示例一中的数字岩心数据的说明信息编码的编码方式和编码位数,从数字岩心数据编码的第157位开始读取,每隔32位解析为一个字符,直到读取到一个空字符结束,得到数字岩心数据的说明信息,如下表6所示。
表6数字岩心数据的说明信息编码解析结果
Figure BDA0002001289700000251
Figure BDA0002001289700000261
通过检测空字符,确定数字岩心数据的说明信息共占224位(从第157位到第380位),解析得到的数字岩心数据的说明信息为“这是一个示例”。
从数字岩心数据编码的第381位开始,根据应用示例一中的数字岩心数据的数据头编码的编码方式和编码位数,读取数字岩心数据编码的第381-388位,得到数字岩心数据的数据头编码为:00000100,从而得到对数字岩心数据体包含的每个元素进行编码的二进制位数q=4。
从数字岩心数据编码的第389位开始,根据应用示例一中的数字岩心数据体编码的编码方式和编码位数,读取数字岩心数据编码的第389位到数字岩心数据编码的末位,得到数字岩心数据体编码。
在步骤S302中,根据数据头编码和数字岩心数据体编码,得到第一数据序列,如下表7所示。
表7数字岩心数据体编码解析结果
Figure BDA0002001289700000262
Figure BDA0002001289700000271
在步骤S303中,根据第一数据序列包含的所有元素的总数和计算设备配置情况,对第一数据序列包含的所有元素进行分组,得到多组子数据序列。其具体过程如下。
在步骤S3031中,根据计算设备的CPU核数,确定第一数据序列被划分为子数据序列的组数为4。
在步骤S3032中,根据第一数据序列包含的所有元素的总数和第一数据序列被划分为子数据序列的组数,结合以上表达式(10)和(11),可以得到:前3组子数据序列包含的元素的个数为10,第4组子数据序列包含的元素的个数为8。
在步骤S3033中,根据第一数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对第一数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到4组子数据序列,如下表8所示。
表8解压解码前的各组子数据序列
组号 解压解码前的子数据序列
1 0,12,3,1,0,1,1,3,4,6
2 1,0,3,7,3,1,2,0,1,4
3 1,1,4,3,2,0,0,1,4,2
4 4,5,0,2,2,12,0,4
在步骤S304中,对以上4组子数据序列中的每一组并行执行解压解码操作,得到解压解码后的各组子数据序列。其具体过程如下:
针对每组子数据序列,并行执行以下操作:
这里,为了简便,以第3组子数据序列
Figure BDA0002001289700000281
为例进行说明。
在步骤S3041中,根据以上表达式(12),对该组子数据序列包含的每个元素进行累加运算,得到第十五数据序列
Figure BDA0002001289700000282
在步骤S3042中,根据第十五数据序列包含的末位元素,创建第十六数据序列。
在本示例中,由于第十五数据序列包含的末位元素为18,因此,第十六数据序列为
Figure BDA0002001289700000283
在步骤S3043中,根据第十五数据序列包含的所有元素和第三预设规则,对第十六数据序列包含的元素进行处理,得到解压解码后的该组子数据序列。
其中,第三预设规则为:
Figure BDA0002001289700000291
则对第k组子数据序列中的第十六数据序列包含的第
Figure BDA0002001289700000292
到第
Figure BDA0002001289700000293
个元素进行取反操作,即将0变为1。
Figure BDA0002001289700000294
则保持第k组子数据序列中的第十六数据序列包含的第
Figure BDA0002001289700000295
到第
Figure BDA0002001289700000296
个元素为0。
其中,
Figure BDA0002001289700000297
表示第k组子数据序列中的第十五数据序列包含的第2n-1个元素,
Figure BDA0002001289700000298
表示第k组子数据序列中的第十五数据序列包含的第2n个元素,n为正整数。
在本示例中,当n=1时,
Figure BDA0002001289700000299
由于2=2,因此,对第3组子数据序列中的第十六数据序列包含的第2个元素进行取反操作,即将0变为1。
当n=2时,
Figure BDA00020012897000002910
由于7<9,因此,对第3组子数据序列中的第十六数据序列包含的第7到第9个元素进行取反操作,即将0变为1。
当n=3时,
Figure BDA00020012897000002911
由于12>11,因此,保持第3组子数据序列中的第十六数据序列包含的第11到第12个元素为0。
当n=4时,
Figure BDA00020012897000002912
由于12=12,因此,对第3组子数据序列中的第十六数据序列包含的第12个元素进行取反操作,即将0变为1。
当n=5时,
Figure BDA00020012897000002913
由于17<18,因此,对第3组子数据序列中的第十六数据序列包含的第17到第18个元素进行取反操作,即将0变为1。
因此,得到解压解码后的第3组子数据序列为
Figure BDA00020012897000002914
并行执行第1组子数据序列到第4组子数据序列,得到解压解码后的各组子数据序列,如下表9所示。
表9解压解码后的各组子数据序列
Figure BDA0002001289700000301
在步骤S305中,将解压解码后的各组子数据序列包含的所有元素按照组号依次进行合并,得到一维数据序列为:1111111111110001101110000111111000011111110001000111101000011100100001100001111111001111111111111111。由此可见,该一维数据序列与应用示例一中的一维数据序列相同。
在步骤S306中,根据数字岩心数据的维度信息编码,按照X方向、Y方向、Z方向的顺序对一维数据序列包含的所有元素进行排列,得到数字岩心数据体,即如上表2所示。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (11)

1.一种数字岩心数据体并行压缩编码方法,其特征在于,包括:
使用0表示孔隙元素,使用1表示岩石骨架元素,将数字岩心在三维方向上的多个像素点按照X方向、Y方向、Z方向的顺序进行排列,得到一维数据序列;
根据所述一维数据序列包含的所有元素的总数和孔隙元素的个数,对所述一维数据序列包含的所有元素进行分组,得到多组子数据序列;
对所述多组子数据序列中的每一组并行执行压缩操作,得到压缩后的各组子数据序列;
将所述压缩后的各组子数据序列包含的所有元素按照组号依次进行合并,得到第一数据序列;
根据所述压缩后的各组子数据序列包含的所有元素和第一预设规则,对所述第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码。
2.根据权利要求1所述的数字岩心数据体并行压缩编码方法,其特征在于,根据所述一维数据序列包含的所有元素的总数和孔隙元素的个数,对所述一维数据序列包含的所有元素进行分组,得到多组子数据序列,包括:
根据所述一维数据序列包含的所有元素的总数和孔隙元素的个数,得到数字岩心孔隙度;
根据所述一维数据序列包含的所有元素的总数和所述数字岩心孔隙度,得到所述一维数据序列被划分为子数据序列的组数;
根据所述一维数据序列包含的所有元素的总数和所述一维数据序列被划分为子数据序列的组数,得到每组子数据序列包含的元素的个数;
根据所述一维数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对所述一维数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到多组子数据序列。
3.根据权利要求1所述的数字岩心数据体并行压缩编码方法,其特征在于,对所述多组子数据序列中的每一组并行执行压缩操作,得到压缩后的各组子数据序列,包括:
针对每组子数据序列,并行执行以下操作:
在该组子数据序列包含的首位元素之前和末位元素之后分别添加1,得到第二数据序列;
根据第二数据序列包含的所有元素中数值为1的元素在该第二数据序列中的编号,得到第三数据序列;
对第三数据序列包含的所有元素进行差分运算,得到第四数据序列;
从第四数据序列包含的所有元素中选出数值不为1的元素,得到第五数据序列;
将第五数据序列包含的每个元素均减1,得到第六数据序列;
判断该组子数据序列包含的首位元素是否为1,并根据判断结果,确定第七数据序列包含的元素;
对该组子数据序列包含的所有元素进行取反运算,得到第八数据序列;
在第八数据序列包含的首位元素之前和末位元素之后分别添加1,得到第九数据序列;
根据第九数据序列包含的所有元素中数值为1的元素在该第九数据序列中的编号,得到第十数据序列;
对第十数据序列包含的所有元素进行差分运算,得到第十一数据序列;
从第十一数据序列包含的所有元素中选出数值不为1的元素,得到第十二数据序列;
将第十二数据序列包含的每个元素均减1,得到第十三数据序列;
判断该组子数据序列包含的末位元素是否为0,并根据判断结果,确定第十四数据序列包含的元素;
根据第二预设规则对第七数据序列和第十四数据序列包含的所有元素进行合并,得到压缩后的该组子数据序列。
4.根据权利要求3所述的数字岩心数据体并行压缩编码方法,其特征在于,根据所述压缩后的各组子数据序列包含的所有元素和第一预设规则,对所述第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码,包括:
根据所述压缩后的各组子数据序列包含的所有元素,得到所述压缩后的各组子数据序列包含的所有元素中的最大值;
根据所述最大值和第一预设规则,得到对所述第一数据序列包含的所有元素进行编码的二进制位数;
根据所述二进制位数,对所述第一数据序列包含的所有元素进行编码,得到数字岩心数据体编码。
5.根据权利要求3所述的数字岩心数据体并行压缩编码方法,其特征在于,判断该组子数据序列包含的首位元素是否为1,并根据判断结果,确定第七数据序列包含的元素,包括:
判断该组子数据序列包含的首位元素是否为1;
若该组子数据序列包含的首位元素为1,则将第七数据序列包含的元素确定为在第六数据序列包含的首位元素之前添加0后得到的元素;
若该组子数据序列包含的首位元素不为1,则将第七数据序列包含的元素确定为第六数据序列包含的元素。
6.根据权利要求3所述的数字岩心数据体并行压缩编码方法,其特征在于,判断该组子数据序列包含的末位元素是否为0,并根据判断结果,确定第十四数据序列包含的元素,包括:
判断该组子数据序列包含的末位元素是否为0;
若该组子数据序列包含的末位元素为0,则将第十四数据序列包含的元素确定为在第十三数据序列包含的末位元素之后添加0后得到的元素;
若该组子数据序列包含的末位元素不为0,则将第十四数据序列包含的元素确定为第十三数据序列包含的元素。
7.一种数字岩心数据编码的存储方法,其特征在于,包括:
将数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码、以及根据权利要求1至6中任一项所述的方法得到的数字岩心数据体编码依次连接,得到数字岩心数据编码;
存储所述数字岩心数据编码。
8.根据权利要求7所述的数字岩心数据编码的存储方法,其特征在于,
所述数字岩心数据的维度信息编码是以第一预设编码方式和第一预设编码位数对数字岩心在X方向、Y方向、Z方向的像素点的个数进行编码而得到的;
所述数字岩心数据的尺寸信息编码是以第二预设编码方式和第二预设编码位数对每个像素点在X方向、Y方向、Z方向的实际尺寸进行编码而得到的;
所述数字岩心数据的说明信息编码是以第三预设编码方式和第三预设编码位数对数字岩心的附加信息进行编码而得到的;
所述数字岩心数据的数据头编码是以第四预设编码方式和第四预设编码位数对二进制位数进行编码而得到的,所述二进制位数是根据压缩后的各组子数据序列包含的所有元素和第一预设规则而得到的。
9.一种数字岩心数据并行解压解码方法,用于解析根据权利要求7或8所述的方法得到的数字岩心数据编码,其特征在于,包括:
根据第一至第四预设编码方式和第一至第四预设编码位数,对所述数字岩心数据编码进行解码操作,得到数字岩心数据的维度信息编码、尺寸信息编码、说明信息编码、数据头编码和数字岩心数据体编码;
根据所述数据头编码和所述数字岩心数据体编码,得到第一数据序列;
根据所述第一数据序列包含的所有元素的总数和计算设备配置情况,对所述第一数据序列包含的所有元素进行分组,得到多组子数据序列;
对所述多组子数据序列中的每一组并行执行解压解码操作,得到解压解码后的各组子数据序列;
将所述解压解码后的各组子数据序列包含的所有元素按照组号依次进行合并,得到一维数据序列;
根据所述数字岩心数据的维度信息编码,按照X方向、Y方向、Z方向的顺序对所述一维数据序列包含的所有元素进行排列,得到数字岩心数据体。
10.根据权利要求9所述的数字岩心数据并行解压解码方法,其特征在于,根据所述第一数据序列包含的所有元素的总数和计算设备配置情况,对所述第一数据序列包含的所有元素进行分组,得到多组子数据序列,包括:
根据计算设备配置情况,确定所述第一数据序列被划分为子数据序列的组数;
根据所述第一数据序列包含的所有元素的总数和所述第一数据序列被划分为子数据序列的组数,得到每组子数据序列包含的元素的个数;
根据所述第一数据序列被划分为子数据序列的组数、以及每组子数据序列包含的元素的个数,对所述第一数据序列包含的所有元素进行分组,得到每组子数据序列包含的元素,从而得到多组子数据序列。
11.根据权利要求9所述的数字岩心数据并行解压解码方法,其特征在于,对所述多组子数据序列中的每一组并行执行解压解码操作,得到解压解码后的各组子数据序列,包括:
针对每组子数据序列,并行执行以下操作:
对该组子数据序列包含的每个元素进行累加运算,得到第十五数据序列;
根据第十五数据序列包含的末位元素,创建第十六数据序列,所述第十六数据序列包含的所有元素均为0,且所述第十六数据序列包含的元素的个数为第十五数据序列包含的末位元素;
根据第十五数据序列包含的所有元素和第三预设规则,对所述第十六数据序列包含的元素进行处理,得到解压解码后的该组子数据序列。
CN201910213514.8A 2019-03-20 2019-03-20 数字岩心数据并行压缩编码方法及并行解压解码方法 Pending CN111726117A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910213514.8A CN111726117A (zh) 2019-03-20 2019-03-20 数字岩心数据并行压缩编码方法及并行解压解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910213514.8A CN111726117A (zh) 2019-03-20 2019-03-20 数字岩心数据并行压缩编码方法及并行解压解码方法

Publications (1)

Publication Number Publication Date
CN111726117A true CN111726117A (zh) 2020-09-29

Family

ID=72562439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910213514.8A Pending CN111726117A (zh) 2019-03-20 2019-03-20 数字岩心数据并行压缩编码方法及并行解压解码方法

Country Status (1)

Country Link
CN (1) CN111726117A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112686001A (zh) * 2021-01-05 2021-04-20 中科三清科技有限公司 气象数据的变换方法、传输方法、服务器及数据传输系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3833900A (en) * 1972-08-18 1974-09-03 Ibm Image compaction system
US4862167A (en) * 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US20030122694A1 (en) * 2001-12-11 2003-07-03 International Business Machines Corporation Variable length encoding and decoding of ascending numerical sequences
CN101129063A (zh) * 2005-11-18 2008-02-20 索尼株式会社 编码设备和方法、解码设备和方法以及传输系统
CN103326730A (zh) * 2013-06-06 2013-09-25 清华大学 数据并行压缩方法
CN105022631A (zh) * 2015-07-08 2015-11-04 西安理工大学 一种面向科学计算的浮点型数据并行无损压缩方法
CN106558084A (zh) * 2016-12-11 2017-04-05 天津君邦科技有限公司 地理信息图像的压缩方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3833900A (en) * 1972-08-18 1974-09-03 Ibm Image compaction system
US4862167A (en) * 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US20030122694A1 (en) * 2001-12-11 2003-07-03 International Business Machines Corporation Variable length encoding and decoding of ascending numerical sequences
CN101129063A (zh) * 2005-11-18 2008-02-20 索尼株式会社 编码设备和方法、解码设备和方法以及传输系统
CN103326730A (zh) * 2013-06-06 2013-09-25 清华大学 数据并行压缩方法
CN105022631A (zh) * 2015-07-08 2015-11-04 西安理工大学 一种面向科学计算的浮点型数据并行无损压缩方法
CN106558084A (zh) * 2016-12-11 2017-04-05 天津君邦科技有限公司 地理信息图像的压缩方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
常子鹏 宋文广 顾宫: "基于深度学习的岩心图像压缩模型研究", 《电脑知识与技术》, pages 173 - 174 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112686001A (zh) * 2021-01-05 2021-04-20 中科三清科技有限公司 气象数据的变换方法、传输方法、服务器及数据传输系统
CN112686001B (zh) * 2021-01-05 2021-12-03 中科三清科技有限公司 气象数据的变换方法、传输方法、服务器及数据传输系统

Similar Documents

Publication Publication Date Title
US20230188736A1 (en) Methods and apparatuses for hierarchically encoding and decoding a bytestream
US7039241B1 (en) Method and apparatus for compression and decompression of color data
EP2410489A2 (en) Scalable coding of 3d meshes and cross-references
JP7127137B2 (ja) 符号化方法、復号方法、および装置
CN102640498A (zh) 纹理图案自适应分区块变换
CN109840585B (zh) 一种面向稀疏二维卷积的运算方法和系统
CN115208414B (zh) 数据压缩方法、数据压缩装置、计算机设备及存储介质
CN114222129A (zh) 图像压缩编码方法、装置、计算机设备和存储介质
CN111726117A (zh) 数字岩心数据并行压缩编码方法及并行解压解码方法
CN104125475A (zh) 一种多维量子数据压缩、解压缩方法及装置
US7460722B2 (en) Encoding of digital data with determination of sample path
TWI463438B (zh) 特徵點描述壓縮方法及特徵點描述壓縮裝置
CN111654696B (zh) 一种帧内的多参考行预测方法、装置、存储介质及终端
JP6457558B2 (ja) データ圧縮装置およびデータ圧縮方法
CN112052228A (zh) 一种基于标准欧几里德空间与平面空间投影互为映射的二进制编码方法
US9948928B2 (en) Method and apparatus for encoding an image
JP5036643B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN114501011A (zh) 图像压缩方法、图像解压缩方法及装置
US8554773B2 (en) Method for indexing images and for reading an index of an image
CN110956670A (zh) 一种基于深度偏移的多模式自适应z值压缩算法
CN102238381B (zh) 加速游程长度编码的影像编码方法与影像编码装置
CN107172425B (zh) 缩略图生成方法、装置及终端设备
CN111291240A (zh) 处理数据的方法和数据处理装置
Kamal et al. Iteration free fractal compression using genetic algorithm for still colour images
CN109831209B (zh) 一种声波数据记录方法及装置

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