数据存储方法和装置、数据读取方法和装置的制造方法_2

文档序号:9396815阅读:来源:国知局
最大绝对值是得不到 的,因此需要两次计算一次存储,或一次计算两次存储。所谓的两次计算的方式是对第一次 的计算结果不进行存储,只统计其中的最大绝大值,到第二次计算时,对输出结果经过8位 体变换公式转换后存储;所谓的两次存储指的是只经过一次计算,计算后存储结果的同时 统计最大绝对值,随着计算完成,第一次存储也完成,然后重新读取前面存储的计算结果经 上述公式转换后进行第二次存储。
[0053] 由于数据体可能很大,生成的计算结果体也可能有多个,算法计算量也可能较大, 因此采用两次计算一次存储的方式计算时间可能会很长,相比32位存储会加大时间开销, 而采用一次计算两次存储的方式,由于计算结果数据量比较大,不能把结果存储在内存中, 需要存储到外部存储介质中,第一次存储32位浮点结果需要临时存储空间的开销,再者, 外部存储速度是计算机系统的速度瓶颈之一,因此二次存储方式对存储空间和输出时间都 增加了开销。
[0054] 进一步的,在数据读取的时候,当读取8位数据体作为输入时,都是读出后直接强 制转换为32位浮点后进入算法使用,这对于有量纲的数据体,例如速度体,3000~6000m/ s的数值,经过上述公式进行8位变换后,得到63~127的值存储起来,这些8位值已经不 能用来定量表征它原本代表的属性,如果读出后直接当作速度值用于算法,得到的结果显 然是不可靠的。
[0055] 同样,对于量级或分布区间有意义的数据,例如分布在[-1,1]区间的32位归一化 数据,存储成8位体读取后直接强制转换为32位浮点值后变成了 [_127,127]区间上的值, 失去了绝对值小于1的特性,可能会给算法带来问题。
[0056] 为此,在本发明实施例中提出了一种数据存储和读取方法,以在保持原有32位存 储效率的同时,提高8位体的精度和数据适应性。对现有的数据转换、输出和读取流程三个 环节都进行了改进,改进后的数据的存储和读取方法可以有效解决现有的32位数据体采 用8位数据体进行存储时所存在的问题,且具有更为广泛的适用性,精度损失也可以降到 最低,且不会牺牲I/O效率。
[0057] 具体的,该数据存储和读取方法,主要包括两个执行过程:
[0058] 1)数据存储
[0059] 如图1所示,该数据存储可以包括:
[0060] 步骤101 :获取一道32位数据体的数据;
[0061 ] 步骤102 :统计该道的所有数据,得到最大值和最小值;
[0062] 步骤103 :当所述最大值与所述最小值不相等时,采用极差变换公式对该道的所 有数据进行从32位数据体到8位数据体的压缩变换;
[0063] 具体地,该极差变换公式可以表示为:
[0065] 其中,Anin表示所述最小值,A _表示所述最大值,A表示变换前的32位数据体的 数据值,round表示四舍五入法取整函数,A'表示变换后的8位数据体的数据值。
[0066] 步骤104 :当所述最大值与所述最小值相等时,将该道的所有数据赋值为0 ;
[0067] 步骤105 :将数据转换后的结果以道为单位进行存储,且将所述最大值和所述最 小值记录在该道的道头数据的预定字段中。
[0068] 重复执行上述步骤101至步骤105,直至计算得到的所有道的结果数据存储完毕, 至此完成32位数据体到8位数据体的转换和存储。
[0069] 2)数据读取
[0070] 如图1所示,该数据读取可以包括:
[0071] 步骤106 :确定待读取的8位数据体的数据道的道位置;
[0072] 在该步骤中,所谓的道位置就是确定该道所在的位置,一般可以由线号和道号共 同确定。
[0073] 步骤107 :从该数据道的道头数据的预定字段中读取该道原始32位数据体的数据 的最大值和最小值;
[0074] 步骤108 :当所述最大值与所述最小值不相等时,采用极差变换还原公式对该道 的所有数据进行从8位数据体到32位数据体的数据还原,将还原后的结果作为该道的数据 值;
[0075] 具体地,该极差变换还原公式可以表示为:
[0077] 其中,Anil^示所述最小值,Aniax表示所述最大值,A'表示还原前的8位数据体的 数据值,A"表示还原后的32位数据体的数据值。
[0078] 步骤109 :当所述最大值与所述最小值相等时,将所述最大值作为该道的所有数 据的取值。
[0079] 重复执行上述步骤106至步骤109,直至读取出所有到的结果数据,至此完成8位 数据体到32位数据体的转换和读取。
[0080] 在上述实施例中,提出了一种数据存取方法,通过极差变换公式进行32位数据体 到8位数据体的压缩变换,并将数据道的最大值和最小值信息存储在道头数据的预定字段 中,然后在进行数据读取时,将8位数据体转换至32位数据体进行数据读取,从而解决了现 有技术中无法同时保证数据精度和减少存储空间的技术问题,达到了在保证数据精度的同 时有效减少存储空间,进一步的,相对于现有的32位到8位的数据转换方法,有更好的数据 适应性,能够恢复样点原本32位数值的量级,如果有量纲还可以恢复样点原本32位数值的 量纲,且最终得到的数据精度有很大的提高。
[0081] 下面结合一个具体实施例对上述数据存储和读取方法的效果进行具体说明,然而 值得注意的是,该具体实施例仅是为了更好地说明本发明,并不构成对本发明的不当限定。
[0082] 在本例中,选取一个原始的32位数据体,其数值分布范围为0. 996699~1. 00333, 该数据的特点是数值全部大于〇,且最大值与最小值非常接近,其剖面形态如图2最上面部 分的附图所示。
[0083] 图2中间部分的附图所示为采用传统方法存储成8位数据体打开后的剖面图,如 图所示,此时8位数据体的所有样点值全都为常量值127,可见数据已完全失真,根本不可 用。
[0084] 图2下面部分的附图所示为采用本例所提供的方式存储成8位数据体打开后的剖 面图,对比图2上面部分和图3下面部分可以发现,二者形态非常接近,在肉眼可见范围内, 分辨不出差别。
[0085] 由此可见,本例所提供的数据存储和读取方法具有更好的数据处理效果,本发明 实施例的数据存储和读取方法,从数据转换、输出和读取三个环节都对现有方式进行了改 进,该方法可以适用于任意区间分布的数据,并且都具有最大的255级分辨率,且在读取8 位数据体的数据时,有一个将8位数据体还原至32位数据体的格式变换操作,从而将其恢 复至原始32位数据的量纲和量级,还原后得到的32位数值大小与对应的原始32位值的绝 对误差不到原始32位数据极差的2%。。因此,相对于传统的8位数据存储方法,本发明提出 的数据存储和读取方法的数据适应性要好得多,分辨率也更高,精度损失最小。
[0086] 进一步的,在I/O效率方面,相对于传统的8位数据体的存储方式,本例所提出的 数据存储方法没有重复计算,也没有二次存储,只是在读取8位数据体时增加了一个还原 到32位数据的环节,但该环节计算量极小。因此,本例所提出的数据存储和读取方法,相较 于传统存取方法的I/O效率要高。需要注意的是,虽然本例中有道头数据的1/0,但是这并 不影响存取效率,因为无论哪种格式数据体的存储与读取,都有道头信息的存取动作。
[0087] 即使是相对于32位数据体的直接存储与读取,本例所提供的数据存储和读取方 法虽然增加了数据变换与反变换操作,但是因为这些变换都是在内存中进行的,因此计算 量也极小,但是I/O的数据量却只有32位数据体的1/4,因此总体I/O时间相较于32位数 据的直接存储和读取基本持平甚至略短。
[0088] 基于同一发明构思,本发明实施例中还提供了一种数据存取系统,该系统包括:数 据存储装置和数据读取装置,如下面的实施例所述。由于数据存储装置、数据读取装置解决 问题的原理与数据存储方法、数据读取方法相似,因此数据存储装置、数据读取装置的实施 可以参见数据存储方法、数据读取方法的实施,重复之处不再赘述。以下所使用的,术语"单 元"或者"模块"可以实现预定功能的软件和/或硬件的组合。尽管以
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1