大规模三维数据集的表示方法

文档序号:6649921阅读:683来源:国知局
专利名称:大规模三维数据集的表示方法
技术领域
本发明涉及一种表示大规模三维数据集的方法,该方法表示的大规模三维数据集排列有序、规范,支持高效存取和访问,支持多种几何形态的映射。
背景技术
近年来,体元图形学技术已成为计算机图形学和科学计算可视化的研究热点;它不仅被普遍地应用于医学成像,流体动力学模拟,而且还用于机械零件的表示和零件加工的模拟。体元图形学技术是以体元为核心描述三维形体的技术,其研究内容包括数据的输入,存储,构造,建模,分析,处理,显示和空间对象的动画;其中,基于体元的几何模型表示方法是研究的难点之一。
体元是构成三维形体的单位,通常用来描述大规模三维数据集,其数据表示通常考虑3个因素●紧凑排列因为体元模型数据的三维数据集,其规模一般都比较大,常常一个数据集就有几个GB,所以应该尽量选取紧凑的数据格式以节省计算机的存储空间;●高效访问数据的表达一定要便于在计算时进行数据的检索,并尽量减少访问数据带来的时间消耗;●简洁映射一方面,数据的表示方法应能使其方便地映射为面元图形元素,只有这样才能保证数据快速、交互地输出到显示设备上;另一方面,还应该考虑各类型数据表示方法易于转化为这种表示方法,否则转化数据的预处理过程会很复杂。
目前,现有的通过体元描述三维形体表示大规模三维数据集的方法主要有三种,分别是使用六面体、四面体、三棱柱作为体元表示●六面体体元这是最简单,也是最常用的体元表示法,医学图像中使用的都是这种结构,在机械CAD中也大都使用的这种结构。体元是通过空间中相邻的八个点定义的。其存储结构采用的是顺序存储结构,也就是将空间的数据按照一个大数组进行存储。这样做的好处是,体空间中点的相邻关系很好定义。缺点是在空间密度很大的时候,需要的系统开销和很大,并且效率很低。
●四面体体元四面体体元表示法,是平面离散点三角化的三维实现。而针对的对象已经不是二维中平面,也不是三维中的曲面,而是三维中的实体。二维中三角形是最小的区域表示单位,在三维空间中,四面体是最小的实体单位。所以四面体体元在空间形态的表示上具有很大的灵活性,其可塑性很强。但是四面体体元也有缺点。在存储方面,因为它要表示空间中点的相邻关系,四面体体元的存储是按点或者是四面体的构造进行存储的。在点集很大,很密集的情况下,四面体体元表示法,所带来的额外存储比六面体体元表示法还要多。在数据的操作方面,比如找到两个点之间的联系关系,四面体表示方法的搜索范围会变得很大,删除一个点的数据,就需要重新构造相应一部分的四面体体元。
●三棱柱体元是四面体体元的一个变形,但是如果其某个方向上按坐标轴方向进行划分的,则也可以看作是六面体体元的一次分解。如果在六面体体元的构造中使用空间点的六邻接域作为其邻接域,而其他两个方向上的距离间隔取为非均匀的,内容上就与三棱柱表示方法相同了。在三维地质建模的研究中已经有尝试使用三棱柱表示法表示三维地质属性体了。
综上所述,六面体体元在空间中点的相邻关系很好定义,但在空间密度很大的时候,需要的系统开销很大,并且效率很低;四面体体元信息表达方便,易于管理,便于存储,体元之间关系明确,但在点集数据量大,很密集的情况下,其带来的额外存储比六面体体元要多;三棱柱体元基于四面体和六面体之间,但应用较少。
随着计算机硬件技术的不断发展,外存空间(紧凑排列)已不再成为问题;而高效访问和简洁映射性成为首要考虑的因素。特别是针对大规模三维数据集,减少数据访问时间,方便快速地映射各种几何形态,有效控制额外存储空间成为技术的难点和趋势所在。

发明内容
鉴于上述原因,本发明的主要目的是提供一种表示大规模三维数据集的方法,该方法表示的大规模三维数据集排列有序、规范,支持高效存取和访问,支持多种几何形态的映射。
为实现上述目的,本发明采用以下技术方案一种大规模三维数据集的表示方法,其特征在于它包括以下步骤第一步将三维体数据空间区域划分成大小固定的规则子块,该规则子块为边长为n的正方体,其中n为2的自然数次幂;第二步将规则子块按Z、X、Y方向依次递增排列、编号;第三步将表示规则子块体内各种形态元素的数据按三维数组的形式存储在相应的规则子块体文件内;
第四步将三维体数据场信息、依编号顺序排列的各规则子块体文件组成表示大规模三维数据集的三维体体数据文件。
本发明提出的一种大规模三维数据集的表示方法,与其它表示方法相比,具有以下特点1、理论上支持各种领域,任意规模的三维海量数据的处理,具有通用性和广泛性;2、基于规则子块的结构,简单、灵活、存取方便且速度很快,具有高效性;3、支持各种空间几何形态在模型中的映射,具有可映射性;支持各类型三维数据集向此类型的转化;4、规则子块之间在空间上拓扑关系具有连续性,规则子块包含的数据之间具有独立性;5、模型内具有可分解性、可组合性,模型间具有可合并性;针对模型的处理具有并行性。


图1为本发明三维数据场的规则子块数据组织结构示意2为本发明基于规则子块结构的体数据文件存储方式示意3为本发明对于规则子块的体数据文件读取速度实验示意4为本发明对于规则子块的冗余率实验示意5为本发明三维数据场模型的任意分界与合并示意6为本发明三维数据场模型的任意重新组合示意7为本发明三维数据场模型内部规则子块状态表示和数据局部显示示意8为本发明抽象逻辑数据层表示结构示意9为本发明SEG-Y文件数据格式示意10为本发明从SEG-Y文件格式到规则子块结构的转化过程示意11为本发明基于点的转化方法示意12为本发明基于平面的转化方法示意13为本发明基于规则子块的转化方法示意14为本发明各种转换算法的转化时间对比示意图具体实施方式
由于需要表示的对象是描述三维形体的大规模三维数据集,因而,首先需要有效地刻画三维体数据空间,故,如图1所示,本发明公开的大规模三维数据集的表示方法是1、将三维体数据空间区域划分成大小固定的规则子块,该规则子块为边长为n的正方体,其中n为2的自然数次幂;2、将规则子块按Z、X、Y方向依次递增排列、编号;3、将表示规则子块体内不同形态元素的数据按三维数组的形式存储在相应的规则子块体文件内;4、将三维体数据场信息、依编号顺序排列的各规则子块体文件组成表示大规模三维数据集的三维体体数据文件。
如图1所示,本发明用一个个排列有序、规则的子块体表示三维数据空间;同时,将数据空间中的数据存储在相应的规则子块体内,这样规则子块体不仅仅是表示三维形体的最小单位,同时,也是进行数据存取、访问的最小单位。
本方法定义这种表示结构为三维数据场的规则子块数据组织结构,称体数据表示的空间为体空间,以区别大地坐标中的空间概念。
根据上面的设计,基于规则子块结构的体数据文件,其存储方式如图2所示,按照规则子块的编号顺序依次存储。由于在定义的表示结构中需要刻画多种形态的元素,因而,结合图2表示的体数据文件的存储方式,三维体数据场中相关元素的定义和映射关系(文件中的数据和元素之间)为▲空间中的一个点首先建立与体空间的映射关系,再寻找到对应的规则子块,在规则子块中用的相对坐标表示空间中一个点的位置。设一个点的空间坐标为P(x,y,z),则对应数据的映射关系的公式(其中“/”表示取整,“%”表示取余;n为规则子块边长;X、Y、Z三个方向的规则子块体数目分别为a,b,c;sizeof(p)表示P点的数据类型所占存储字节的大小)为■先定位点所在的子块的空间位置(x/n,y/n,z/n),得到该子块在文件中的偏移量,即公式①OffSet_Block=z/n+c*(x/n)+c*a*(y/n)①■然后计算该点在子块中的位置(x%n,y%n,z%n),则该点相对于所在规则子块的相对文件偏移量,即公式②OffSet_File=z%n+n*(x%n)+n*n*(y%n) ②■最后,两个偏移量相加之和乘以点P的数据类型所占存储字节的大小,便得到点在文件中的存储位置,即公式③Store_Position=(OffSet_Block+OffSet_File)*sizeof(p) ③▲空间中的曲线(包括直线)由一系列点构成,映射关系最终通过点的映射关系表示。
▲空间中的曲面(包括平面)由一系列空间曲线构成,体空间中不表示曲面之间的拓扑关系,只表示曲面的空间形态;映射关系最终通过空间曲线的映射关系表示。
▲规则块体(n*n*n正方体)由一系列点构成,大小固定的一个正方体空间区域,映射关系通过计算规则子块在X,Y,Z三个方向上的相对位置来表示。
▲不规则几何块体由一系列点构成,映射关系最终通过点的映射关系或曲面的映射关系表示。
▲三维数据场由一系列空间连续的规则子块组成,表示空间中的数据场,映射文件中的全部数据。
本发明使用这种规则子块体表示大规模三维数据集的益处是很容易地单独提取到部分数据,能够对感兴趣的区域进行细化,为多分辨率的使用提供数据准备;同时也大大加快了外存数据中局部数据的读取速度,并可以有效地显示图像。另外,在访问效率方面,具有的优势。
由于体空间在X,Y,Z三个方向的长度不一定是规则子块体边长的整数倍,这种结构会有一定量的数据冗余。为了尽量减少冗余,且不影响文件的读取速度,需要选择合适的规则子块体尺寸。选择尺寸有两个明显的两个评价尺度实际数据测量的冗余率和文件的读取速度(由于剖面图像是经常需要访问的数据,因而这里的文件读取速度指定为剖面图像访问的速度),以确定规则子块的尺寸。
冗余率的计算公式为④、⑤实际数据量=规则子块数目*sizeof(Block)+const ④冗余率%=(实际数据量-SEGY文件大小)/实际数据量*100% ⑤其中,sizeof(Block)表示单个规则子块所占存储字节的大小,const表示存储三维体数据场信息所用的存储字节数目。
显然,规则子块越大,冗余率越大;规则子块越小,冗余率越小。
针对文件的读取速度,本发明采用随机的方式,选择了大小为42MB,258MB,424MB的3个三维数据集文件,针对5种规则子块的尺寸8*8*8,16*16*16,32*32*32,64*64*64,128*128*128分别进行测试。从如图3所示的实验结果可以看出当规则子块的大小为32*32*32时,文件的读取速度最快,而比此更大(系统栈空间大小不足,只得开辟堆空间)或者更小的尺寸(频繁地换入换出)均会导致读取时间增加。
针对实际数据测量的冗余率,本发明采用随机的方式,选择了大小为117.9MB,103.0MB,60.3MB的3个三维数据集文件,针对6种规则子块的尺寸8*8*8,16*16*16,32*32*32,64*64*64,128*128*128,256*256*256分别进行了测试。如图4所示。
综合这两个评价尺度进行选择,本发明最终确定最佳的规则子块的尺寸为32*32*32,其冗余率平均为13.6%左右。
基于这种表示方法表示的大规模三维数据集,具有以下特点1、支持各种科学和工业领域的大规模海量数据的处理和运算。
2、提供对各种空间形态点、直线、平面、曲线、曲面、规则/不规则几何体的高效存取访问。
3、支持多个三维数据场模型的合并(图5),支持单个三维数据场模型的任意分解(图5)和任意重新组合(图6),支持可逆化过程。
图5中实线箭头表示分解过程,虚线箭头表示合并过程,分界与合并为互逆过程。图6中的左图表示由27块规则子块集合表示的大模型,右图表示由8块规则子块集合表示的小模型,右图小模型是由左图大模型中的部分规则子块集合构成的。
4、支持模型内部规则子块的状态表示可用状态位屏蔽/激活指定序号的规则子块(图7),可进行局部化访问控制(不同级别和需求访问不同的局部)和处理数据(图7)。
图7左图中浅色块体处于“激活”状态,深色块体处于“屏蔽”状态,沿箭头方向的二维图像显示为右图,其中被屏蔽的块体对应的数据区也被封闭,其它部分可见。
5、提供统一的抽象逻辑数据层(图8),可统一化、并行化操作和管理。
图8为抽象逻辑数据层表示结构。图8中的左图用一组二维表格记录了一个三维数据场内部各个规则子块的状态信息,右图用一个二维矩阵记录了一个整体的三维数据场划分为m*n个子数据场的信息。
最后,其它类型的数据表示方法可以简洁地向本发明这种表示方法转化。由于空间中的任何元素都是通过点来表示的,所以,一切三维数据集的表示方法,采用点对应的方式,都可以转化为本方法的表示方式。
此外,由于原始数据集的表示方法各异,因而向本方法进行转化的方法也就不同;为了可以使转化的效率提升,一种行之有效的方法可以是将转化的过程基于逐个规则子块的形成而设计,这样,转化需要进行的程序循环次数会相对减少,一次转化的数据量会相对较多。
下面,本发明以SEG-Y格式数据为例,介绍如何将SEG-Y格式的数据转化成本发明公开的表示方法。
SEG-Y数据格式作为很多地质地震系统的原始参数采用的输出格式,在地球物理和地质学上都有极为广泛的应用,它在地震数据采集的过程中形成;由于以前的磁记录介质多数为磁带,所以SEG-Y格式有很多关于磁带本身的信息记录。
如图9所示,SEGY数据格式包括3个部分●第1部分是3200字节的EBCDIC卡片图像头,包含40个卡片,即40行每行80个字符的文本,相当于文本数据以描述这个磁带;●第2部分是400字节的二进制Reel文件头,包含磁带卷的内容信息;●第3部分是一系列实际的地震道,每道由240字节的道头和本道的数据记录组成。
可以看出,SEG-Y数据实际上是采用顺序存储方法,这种方法的优点在于在一个道上,能一次性地读出道上的所有数据。在进行地震资料的解释过程中,道是可单独进行计算的基本单位,这也是SEG-Y数据采用顺序结构的主要原因。SEG-Y数据在地球物理学中是非常重要的数据,因为它能体现地下的构造趋势,并能粗略地确定对应地质构造层的位置。此外,由于SEG-Y数据的规范化,它也成为其他参数输出的载体。
但是,在三维数据场中如果采用这种结构,也会出现很多问题1、不利于对局部数据进行提取。由于要求对三维工区进行块体提取,如果使用这种结构就必须搜索空间每一个点的位置,无疑系统将频繁地访问外存空间,从而加重系统负担。
2、不适合图像显示的需要。作为三维场数据显示的一种手段,剖面图像是显示体数据场的一种方式,而这种结构在显示任意方向的剖面时,存在数据的频繁查找问题。
3、可扩展性较差。如果要对局部的模型进行细化,或者进行全局数据抽样时,这种结构很不方便。
基于上面的考虑,需要将这种SEG-Y格式的表示方法,转换为本发明公开的基于规则子块结构的表示方法。如图10所示,从SEG-Y格式到规则子块结构的转化过程,其中,完整的SEG-Y三维数据在每道的240字节的道头信息中,会有字段表明该道的实际三维坐标(x,y,z)的位置,依据这些信息,可以判断哪些道属于相同Y坐标平面,从而建立起三维空间的概念;SEG-Y数据按照先Z,后X,最后Y方向的顺序依次存入各道。
根据SEG-Y数据格式的特点,实现转化过程有3种方法(设最终形成的三维数据场模型在X、Y、Z方向的规则子块的数目分别为M,N,L,规则子块选择尺寸的大小为32*32*32)它们各自对应的算法描述为●算法1基于“点”的转化算法本算法如图11所示,将SEG-Y数据中的每一道的每一个点对应到三维数据场模型的每一个点P(x,y,z);算法的时间复杂度为O(M*32*N*32*L*32);空间复杂度为O(1)。
●算法2基于“平面”的转化方法本算法如图12所示,将SEG-Y数据中处于相同Y坐标的所有道形成的剖面对应到三维数据场模型中由规则子块形成的32*32子面中去;算法的时间复杂度为O(M*L*N*32);空间复杂度为O(32*32)。
●算法3基于“规则子块”的转化方法本算法如图13所示,将SEG-Y数据中处于相同规则子块的所有道形成的部分数据对应到三维数据场模型中的规则子块中去;算法的时间复杂度为O(M*N*L);空间复杂度为O(32*32*32)。
针对以上3种算法,本文随机选取了5个SEG-Y文件(依次为42MB,258MB,424MB,1.53GB,1.94GB),针对每个文件分别采用上述3种算法实现转化过程,如图14所示。
由于大小为32*32*32的空间可以在内存中使用栈空间分配,所以空间复杂度不是转化过程的主要问题;则时间复杂度是成为评价转化过程的核心尺度。根据上面的实验结果,应选择第3种算法作为最优转化算法。
需要说明的是因为本文提供的算法仅和数据的空间坐标有关,而与数据的值无关;所以,这3种转化算法对于非SEG-Y数据的其它科学或工业领域的数据也同样有效,只是针对不同的数据,需要根据自身的特点,做适当的坐标映射,上述3种算法就同样可以运用。此外,对于空间分布不规则的三维数据体,先将其规则化,再采用上面算法即可。
使用顺序存储的SEG-Y数据时,垂直于Y轴的剖面浏览要比规则子块结果快,垂直于X轴的剖面浏览与规则子块接近;但是,在垂直于Z轴的剖面的显示速度却远远慢于规则子块。这是因为,使用顺序存储结构,进行这种剖面的浏览相当于要遍历整个数据文件进行对应点的查找。实践证明,这种规则子块的数据组织形式是对大容量、高密度体数据的一种有效管理和表示方式。
权利要求
1.一种大规模三维数据集的表示方法,其特征在于它包括以下步骤第一步将三维体数据空间区域划分成大小固定的规则子块,该规则子块为边长为n的正方体,其中n为2的自然数次幂;第二步将规则子块按Z、X、Y方向依次递增排列、编号;第三步将表示规则子块体内各种形态元素的数据按三维数组的形式存储在相应的规则子块体文件内;第四步将三维体数据场信息、依编号顺序排列的各规则子块体文件组成表示大规模三维数据集的三维体体数据文件。
2.根据权利要求1所述的大规模三维数据集的表示方法,其特征在于所述规则子块体内的元素包括点、线、面、体;所述线、面、体都可以通过一个一个的点表示;所述规则子块体内的一个点的表示方法为(1)、先定位点所在的子块的空间位置(x/n,y/n,z/n),得到该子块在文件中的偏移量,即公式①OffSet_Block=z/n+c*(x/n)+c*a*(y/n) ①设一个点的空间坐标为P(x,y,z),其中“/”表示取整,“%”表示取余;n为规则子块边长;X、Y、Z三个方向的规则子块体数目分别为a,b,c;sizeof(p)表示P点的数据类型所占存储字节的大小;(2)、计算该点在子块中的位置(x%n,y%n,z%n),该点相对于所在规则子块的相对文件偏移量,即公式②OffSet_File=z%n+n*(x%n)+n*n*(y%n)②(3)、将两个偏移量相加之和乘以点P的数据类型所占存储字节的大小,便得到点在文件中的存储位置,即公式③Store_Position=(OffSet_Block+OffSet_File)*sizeof(p)③
3.根据权利要求1所述的大规模三维数据集的表示方法,其特征在于在确定所述规则子块体边长时要考虑两个条件实际数据测量的冗余率和文件的读取速度;所述冗余率按下述公式计算实际数据量=规则子块数目*sizeof(Block)+const ④冗余率%=(实际数据量-SEGY文件大小)/实际数据量*100% ⑤其中,sizeof(Block)表示单个规则子块所占存储字节的大小,const表示存储三维体数据场信息所用的存储字节数目。
全文摘要
本发明公开了一种大规模三维数据集的表示方法,即将三维体数据空间区域划分成大小固定的规则子块,该规则子块为边长为n的正方体,其中n为2的自然数次幂;将规则子块按Z、X、Y方向依次递增排列、编号;将表示规则子块体内各种形态元素的数据按三维数组的形式存储在相应的规则子块体文件内;按照三维体数据场信息、依编号顺序排列的规则子块体文件组成三维体体数据文件。本发明提出的一种大规模三维数据集的表示方法,支持各种领域,任意规模的三维海量数据的处理,具有通用性和广泛性;结构,简单、灵活、存取方便且速度很快,具有高效性;支持各种空间几何形态在模型中的映射,具有可映射性;支持各类型三维数据集向此类型的转化。
文档编号G06T17/00GK1956009SQ20051011456
公开日2007年5月2日 申请日期2005年10月26日 优先权日2005年10月26日
发明者马殿富, 朱岩, 赵永望, 潘志华, 胡春阳, 刘旭东 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1