CN103514017B - 一种三维数据加载方法及装置 - Google Patents
一种三维数据加载方法及装置 Download PDFInfo
- Publication number
- CN103514017B CN103514017B CN201310440135.5A CN201310440135A CN103514017B CN 103514017 B CN103514017 B CN 103514017B CN 201310440135 A CN201310440135 A CN 201310440135A CN 103514017 B CN103514017 B CN 103514017B
- Authority
- CN
- China
- Prior art keywords
- resolution
- loading
- data
- buffer area
- data block
- 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.)
- Expired - Fee Related
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 169
- 230000015654 memory Effects 0.000 claims abstract description 63
- 239000000872 buffer Substances 0.000 claims description 135
- 238000000034 method Methods 0.000 claims description 27
- 238000005070 sampling Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 8
- 239000000284 extract Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种三维数据加载方法及装置,该三维数据加载方法在接收到三维数据加载请求后,直接从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,在设备上展示一个预设分辨率的显示结果,从而实现了三维数据的实时加载。进一步在加载预设分辨率对应的数据块的同时,本申请实施例提供的三维数据加载方法还可以计算内存的第二缓冲区所支持的最大分辨率,将最大分辨率对应的数据块保存到第二缓冲区,并加载第二缓冲区内的数据块替换所加载的第一缓冲区的数据块。由于最大分辨率大于预设分辨率,所以在实现实时加载的同时还可以进一步在设备上展示一个最大分辨率的显示结果,提高显示结果的显示效果。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种三维数据加载方法及装置。
背景技术
随着硬件技术的进步,在地球深部探测等领域中三维数据产生量级的快速增长。虽然用于处理数据的计算机的性能在不断提高,但三维数据的爆炸式增长仍然超越了计算机内存的发展速度。因此对于三维地震数据建立合理的存储格式非常重要。
SEG-Y格式是由SEG(Society of Exploration Geophysicists)提出的标准磁带格式之一。由于其在数据采集时存储方便,且整体存储结构简单,是目前地球深部探测行业曾使用的用来存储三维数据的格式。但是当数据访问量较大时,采用SEG-Y格式存储数据很难将所访问区域内的数据进行完全的内存加载,即使能够进行内存加载由于数据访问量较大难以保证访问的实时性。为此本申请提出了一种三维数据加载方法和装置,以实现对三维数据的实时加载。
发明内容
本申请所要解决的技术问题是提供一种三维数据加载方法及装置,用于实现三维数据的实时加载。技术方案如下:
本申请实施例提供一种三维数据加载方法,包括:
接收三维数据加载请求,其中所述三维数据加载请求携带有数据块对应的分辨率,所述数据块是三维数据的部分数据;
从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,所述第一缓冲区内的数据块常驻内存,所述预设分辨率小于携带的分辨率;
计算内存的第二缓冲区所支持的最大分辨率,其中所述第二缓冲区和所述第一缓冲区构成内存的全部存储区,所述最大分辨率大于所述预设分辨率,所述最大分辨率小于等于所述携带的分辨率;
将所述最大分辨率对应的数据块保存到所述第二缓冲区;
将加载的第一缓冲区内的数据块替换为所述第二缓冲区内的数据块。
优选地,所述方法还包括:
如果当前加载区域的形状与前一次加载区域的形状相同,但加载位置不同,则删除所述第二缓冲区中未包括在所述当前加载区域的数据块,并保存所述当前加载区域包括但未保存在所述第二缓冲区内的数据块。
优选地,所述方法还包括:
如果当前加载区域的形状与前一次加载区域的形状不同,则返回执行计算内存的第二缓冲区所支持的最大分辨率。
优选地,每个分辨率对应的所有数据块作为八叉树的一层节点,且上一层节点的数据块通过隶属于所述上一层节点的子节点的数据块采样得到,其中所述上一层节点的子节点是下一层的八个子节点,最后一层所有节点的数据块包括所述三维数据。
本申请实施例还提供一种三维数据加载装置,包括:
接收单元,用于接收三维数据加载请求,其中所述三维数据加载请求携带有数据块对应的分辨率,所述数据块是三维数据的部分数据;
加载单元,用于从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,所述第一缓冲区内的数据块常驻内存,所述预设分辨率小于携带的分辨率;
计算单元,用于计算内存的第二缓冲区所支持的最大分辨率,其中所述第二缓冲区和所述第一缓冲区构成内存的全部存储区,所述最大分辨率大于所述预设分辨率,所述最大分辨率小于等于所述携带的分辨率;
保存单元,用于将所述最大分辨率对应的数据块保存到所述第二缓冲区;
替换单元,用于将加载的第一缓冲区内的数据块替换为所述第二缓冲区内的数据块。
优选地,所述装置还包括:
删除单元,用于如果当前加载区域的形状与前一次加载区域的形状相同,但加载位置不同,则删除所述第二缓冲区中未包括在所述当前加载区域的数据块;
保存单元,还用于保存所述当前加载区域包括但未保存在所述第二缓冲区内的数据块。
优选地,所述装置还包括:
触发单元,用于如果当前加载区域的形状与前一次加载区域的形状不同,则触发所述计算单元。
优选地,每个分辨率对应的所有数据块作为八叉树的一层节点,且上一层节点的数据块通过隶属于所述上一层节点的子节点的数据块采样得到,其中所述上一层节点的子节点是下一层的八个子节点,最后一层所有节点的数据块包括所述三维数据。
与现有技术相比,本申请包括以下优点:
本申请实施例提供的三维数据加载方法,在接收到三维数据加载请求后,直接从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,在设备上展示一个预设分辨率的显示结果,从而实现了三维数据的实时加载。
进一步在加载预设分辨率对应的数据块的同时,本申请实施例提供的三维数据加载方法还可以计算内存的第二缓冲区所支持的最大分辨率,将最大分辨率对应的数据块保存到第二缓冲区,并加载第二缓冲区内的数据块替换所加载的第一缓冲区的数据块。由于最大分辨率大于预设分辨率,所以在实现实时加载的同时还可以进一步在设备上展示一个最大分辨率的显示结果,提高显示结果的显示效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种三维数据加载请求的一种流程图;
图2是本申请提供的一种八叉树的示意图;
图3是本申请提供的一种数据采集示意图;
图4是本申请提供的另一种数据采集示意图;
图5是本申请提供的一种数据体关系示意图;
图6是本申请提供的一种三维数据加载请求的另一种流程图;
图7是本申请提供的一种三维数据加载请求的一种结构示意图;
图8是本申请提供的一种三维数据加载请求的另一种结构示意图。
具体实施方式
首先对本申请实施例提供的三维数据加载方法进行简单说明,该三维数据加载方法可以包括:
接收三维数据加载请求,其中所述三维数据加载请求携带有数据块对应的分辨率,所述数据块是三维数据的部分数据;
从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,所述第一缓冲区内的数据块常驻内存;
计算内存的第二缓冲区所支持的最大分辨率,其中所述第二缓冲区和所述第一缓冲区构成内存的全部存储区,所述最大分辨率大于所述预设分辨率;
将所述最大分辨率对应的数据块保存到所述第二缓冲区;
将加载的第一缓冲区内的数据块替换为所述第二缓冲区内的数据块。
应用上述技术方案,在接收到三维数据加载请求后,可以直接从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,在设备上展示一个预设分辨率的显示结果,从而实现了三维数据的实时加载。
进一步在加载预设分辨率对应的数据块的同时,本申请实施例提供的三维数据加载方法还可以计算内存的第二缓冲区所支持的最大分辨率,将最大分辨率对应的数据块保存到第二缓冲区,并加载第二缓冲区内的数据块替换所加载的第一缓冲区的数据块。由于最大分辨率大于预设分辨率,所以在实现实时加载的同时还可以进一步在设备上展示一个最大分辨率的显示结果,提高显示结果的显示效果。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,其示出了本申请实施例提供的一种三维数据加载方法的流程图,可以包括以下步骤:
步骤101:接收三维数据加载请求,其中三维数据加载请求携带有数据块对应的分辨率。
在本申请实施例中,数据块是三维数据的部分数据。每个分辨率对应的所有数据块作为八叉树的一层节点,且上一层节点的数据块通过隶属于上一层节点的子节点的数据块采样得到,其中上一层节点的子节点是下一层的八个子节点,最后一层所有节点的数据块包括三维数据。
如图2所示的八叉树,以八叉树结构对三维数据进行分块,分块得到的数据块作为八叉树的叶子节点中的数据,并存储到八叉树文件中。八叉树中同一层节点的数据块的分辨率相同,且上一层节点的数据块通过对下一层节点的数据块采样得到,其中对数据块采样可以参阅图3和图4所示。
其中图3示出了从一个16×16×16的数据块的采样过程,并且在图4中示出了如何从下一层节点的数据块采样得到上一层节点的数据块。需要注意的是:在进行采样时,需要从下一层节点中隶属于上一层节点的子节点的数据块中采样,所谓隶属是指上一层节点是下一层节点中八个节点的父节点,而这八个节点是该父节点的子节点。在图2所示的八叉树中,上下层节点的隶属关系采用箭头标注,如第二层节点的第一个节点,第三层节点中的第一至八个节点是隶属于该节点的子节点,第二层节点的第一个节点从这八个子节点中进行数据块采样,得到第二层第一个节点的数据块。
由于上一层节点是从隶属于其的下一层的八个节点中采样得到数据块,所以上一层节点的数据块的分辨率小于下一层节点的数据块的分辨率。并且最后一层所有节点的数据块包括全部三维数据。
在本申请实施例中,为了使最后一层所有节点的数据块包括全部三维数据,则需要首先确定八叉树的层数,八叉树的层数M为[log2(P/N)]+1,P为所述三维数据的三个体素数中的最大体素数,N为八叉树中节点的数据块的预设体素数。
如三维数据是一个体素数为2001×201×221的数据体,每个体素为一个32位浮点型数据,八叉树节点为64×64×64的数据块,从中可以看出P=2001,N=64,则M=[log2(P/N)]+1=[log2(2001/64)]+1=6,因此得到一个六层的八叉树。由于24<31<25,最后一层所有节点的数据块为体素数2048(32×64)×2048×2048的数据体,能够将体素数为2001×201×221的数据体完全包括,如图5所示。
由于64×3<201<64×4,所以在最后一层的节点总个数为32×4×4,即可以将全部三维数据包括,这样可以避免八叉树中出现过多的空节点,其中空节点是数据块为空的节点。将分辨率分为6个级别1~6,其中1对应最低分辨率,6对应最高分辨率,则第一层节点的分辨率为1,最后一层节点的分辨率为6。
步骤102:从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载。
在数据访问过程中,在内存中构造用于存储预设分辨率对应的数据块的第一缓冲区,并且第一缓冲区内的数据块常驻内存,即无论内存中内容如何更新,第一缓冲区内的数据块不变。
由于操作系统及可视化程序运行过程中需要一定内存开销,所以用于专门存储数据块的第一缓冲区可以由用户按照当前设备的内存大小分配一定的第一缓冲区,在设备中内存不同时,第一缓冲区的大小可以不同。
在接收到三维数据加载请求后,直接从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,在设备上展示一个预设分辨率的显示结果,由于第一缓冲区内的数据块是三维数据的部分数据,所以直接从内存中加载数据块实现了三维数据的实时加载。
其中预设分辨率由第一缓冲区的大小决定,如第一缓冲区的大小是8MB,而第4层节点对应的数据块总量也为8MB,则将第4层节点的数据块存储至第一缓冲区中。由于第4层节点的分辨率是4级,所以第一缓冲区内加载的是4级分辨率的数据块。
步骤103:计算内存的第二缓冲区所支持的最大分辨率,其中第二缓冲区和第一缓冲区构成内存的全部存储区,最大分辨率大于预设分辨率。
由于预设分辨率小于三维数据加载请求中携带的分辨率,所以加载预设分辨率对应的数据块会在设备上展示一个具有低分辨率的显示结果。虽然直接加载预设分辨率的数据块可以实现实时加载,但是降低了显示效果。所以本申请实施例在加载预设分辨率对应的数据块的同时,计算内存的第二缓冲区所支持的最大分辨率,该最大分辨率大于预设分辨率,并且小于等于携带的分辨率。
当然,计算内存的第二缓冲区所支持的最大分辨率还可以在接收到三维数据加载请求后立即执行,以加快后续最大分辨率对应的数据块的加载过程。
步骤104:将最大分辨率对应的数据块保存到第二缓冲区。
步骤105:将加载的第一缓冲区内的数据块替换为第二缓冲区内的数据块。
由于最大分辨率大于预设分辨率,所以将加载的第一缓冲区内的数据块替换为第二缓冲区内的数据块,在实现实时加载的同时还可以进一步在设备上展示一个最大分辨率的显示结果,提高显示结果的显示效果。
下面以一个具体测试为例,介绍本申请实施例提供的三维数据加载方法,测试环境是:处理器:Intel(R)Pentium(R)D CPU 2.80Hz 2.79Hz,内存:4.00GB(3.50GB可用),操作系统:32位win7。不同分辨率下从硬盘到内存的加载时间以及不同分辨率下数据块的数据量如表1所示。
表1测试数据
在内存中分配500MB的缓冲区,其中第一缓冲区为8MB,第二缓冲区则为492MB。从上述表1中可以看出4级分辨率的数据块的数据量为8MB,则将4级分辨率的数据块载入第一缓冲区中。
接收到的三维数据加载请求携带的数据块对应的分辨率为6级,则在接收到三维数据加载请求后,直接记载第一缓冲区内的4级分辨率对应的数据块,在设备上显示一个低于请求携带的分辨率的显示结果。
第二缓冲区的容量为492MB,所请求加载的6级分辨率需要512MB的缓冲区空间,超过第二缓冲区的容量,因此第二缓冲区所支持的最大分辨率为5级,将5级分辨率对应的数据块存储到第二缓冲区并替换之前所加载的第一缓冲区的数据块,在设备中显示一个相对分辨率级别高的显示结果,提高显示效果。
如果三维数据加载请求为空间位置(0,0,0)到(1000,100,100)的三维数据,首先返回常驻第一缓冲区的4级分辨率对应的数据块,在设备上显示一个实时的低分辨率的显示结果。可以算出,请求的子体在6级分辨率的数据量大小为64MB,能够将最高分辨率的数据块加载到第二缓冲区。因此,将最高分辨率中的对应数据块保存到第二缓冲区并在设备上显示一个高分辨率的显示结果。
请参阅图6,其示出了本申请实施例提供的三维数据加载方法的另一种流程图,可以包括以下步骤:
步骤201:接收三维数据加载请求,其中三维数据加载请求携带有数据块对应的分辨率,数据块是三维数据的部分数据。
步骤202:从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,第一缓冲区内的数据块常驻内存。
步骤203:计算内存的第二缓冲区所支持的最大分辨率,其中第二缓冲区和第一缓冲区构成内存的全部存储区,最大分辨率大于预设分辨率。
步骤204:将最大分辨率对应的数据块保存到第二缓冲区。
步骤205:将加载的第一缓冲区内的数据块替换为第二缓冲区内的数据块。
在本申请实施例中,步骤201至步骤205与步骤101至步骤105相同。
步骤206:判断当前加载区域的位置与前一次加载区域的位置是否相同,如果是,结束流程,如果否,执行步骤207。
步骤207:判断当前加载区域的形状与前一次加载区域的形状是否相同,如果是,执行步骤208;如果否,返回执行步骤203,重新记载当前加载区域的最大分辨率。
步骤208:删除所述第二缓冲区中未包括在所述当前加载区域的数据块,并保存所述当前加载区域包括但未保存在所述第二缓冲区内的数据块。
在本申请实施例中,加载区域的位置发生变化表示加载区域整体发生移动,加载区域的形状发生变化则表示加载区域变大或变小,其可以是在原位置处增加加载区域或减小加载区域。
如前一次加载区域为(0,0,0)到(1000,100,100),当前加载区域为(200,0,0)到(1200,100,100),可以看出加载位置发生变化,但加载形状仍为(1000,100,100),形状未变化。此时则需要执行步骤208,删除第二缓冲区中未包括在所述当前加载区域的数据块,并保存所述当前加载区域包括但未保存在所述第二缓冲区内的数据块。
如果当前加载区域为(0,0,0)到(1200,100,100),则说明加载位置和加载形状都发生变化,返回执行步骤203,重新计算内存的第二缓冲区所支持的最大分辨率,继续后续步骤。
与上述方法实施例相对应,本申请实施例提供了一种三维数据加载装置,其结构示意图请参阅图7所示,可以包括:接收单元11、加载单元12、计算单元13、保存单元14和替换单元15。其中,
接收单元11,用于接收三维数据加载请求,其中三维数据加载请求携带有数据块对应的分辨率。
在本申请实施例中,数据块是三维数据的部分数据。每个分辨率对应的所有数据块作为八叉树的一层节点,且上一层节点的数据块通过隶属于上一层节点的子节点的数据块采样得到,其中上一层节点的子节点是下一层的八个子节点,最后一层所有节点的数据块包括三维数据,具体可参阅图2所示八叉树。
加载单元12,用于从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,第一缓冲区内的数据块常驻内存,预设分辨率小于携带的分辨率。
其中,第一缓冲区内的数据块常驻内存,即无论内存中内容如何更新,第一缓冲区内的数据块不变。由于操作系统及可视化程序运行过程中需要一定内存开销,所以用于专门存储数据块的第一缓冲区可以由用户按照当前设备的内存大小分配一定的第一缓冲区,在设备中内存不同时,第一缓冲区的大小可以不同。
在接收到三维数据加载请求后,加载单元12直接从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,在设备上展示一个预设分辨率的显示结果,由于第一缓冲区内的数据块是三维数据的部分数据,所以直接从内存中加载数据块实现了三维数据的实时加载。
其中预设分辨率由第一缓冲区的大小决定,如第一缓冲区的大小是8MB,而第4层节点对应的数据块总量也为8MB,则将第4层节点的数据块存储至第一缓冲区中。由于第4层节点的分辨率是4级,所以第一缓冲区内加载的是4级分辨率的数据块。
计算单元13,用于计算内存的第二缓冲区所支持的最大分辨率,其中第二缓冲区和第一缓冲区构成内存的全部存储区,最大分辨率大于预设分辨率,最大分辨率小于等于携带的分辨率。
由于预设分辨率小于三维数据加载请求中携带的分辨率,所以加载预设分辨率对应的数据块会在设备上展示一个具有低分辨率的显示结果。虽然直接加载预设分辨率的数据块可以实现实时加载,但是降低了显示效果。所以计算单元13在加载预设分辨率对应的数据块的同时,计算内存的第二缓冲区所支持的最大分辨率,该最大分辨率大于预设分辨率,并且小于等于携带的分辨率。
当然,计算单元13还可以在接收到三维数据加载请求后立即执行,以加快后续最大分辨率对应的数据块的加载过程。
保存单元14,用于将最大分辨率对应的数据块保存到第二缓冲区。
替换单元15,用于将加载的第一缓冲区内的数据块替换为第二缓冲区内的数据块。由于最大分辨率大于预设分辨率,所以替换单元15将加载的第一缓冲区内的数据块替换为第二缓冲区内的数据块,在实现实时加载的同时还可以进一步在设备上展示一个最大分辨率的显示结果,提高显示结果的显示效果。
请参阅图8所示,本申请实施例提供了一种三维数据加载装置,在图7基础上,还可以包括:删除单元16和触发单元17。
其中删除单元16,用于如果当前加载区域的形状与前一次加载区域的形状相同,但加载位置不同,则删除第二缓冲区中未包括在当前加载区域的数据块。当删除单元16将第二缓冲区中未包括在当前加载区域的数据块删除后,保存单元14,保存当前加载区域包括但未保存在第二缓冲区内的数据块。
触发单元17,用于如果当前加载区域的形状与前一次加载区域的形状不同,则触发计算单元13,以重新接收到当前加载区域的三维数据加载请求后,计算内存的第二缓冲区所支持的最大分辨率。
在本申请实施例中,加载区域的位置发生变化表示加载区域整体发生移动,加载区域的形状发生变化则表示加载区域变大或变小,其可以是在原位置处增加加载区域或减小加载区域。
如前一次加载区域为(0,0,0)到(1000,100,100),当前加载区域为(200,0,0)到(1200,100,100),可以看出加载位置发生变化,但加载形状仍为(1000,100,100),形状未变化。如果当前加载区域为(0,0,0)到(1200,100,100),则说明加载位置和加载形状都发生变化。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上系统时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种三维数据加载方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种三维数据加载方法,其特征在于,包括:
接收三维数据加载请求,其中所述三维数据加载请求携带有数据块对应的分辨率,所述数据块是三维数据的部分数据;
从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,所述第一缓冲区内的数据块常驻内存,所述预设分辨率小于携带的分辨率;
计算内存的第二缓冲区所支持的最大分辨率,其中所述第二缓冲区和所述第一缓冲区构成内存的全部存储区,所述最大分辨率大于所述预设分辨率,所述最大分辨率小于等于所述携带的分辨率;
将所述最大分辨率对应的数据块保存到所述第二缓冲区;
将加载的第一缓冲区内的数据块替换为所述第二缓冲区内的数据块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果当前加载区域的形状与前一次加载区域的形状相同,但加载位置不同,则删除所述第二缓冲区中未包括在所述当前加载区域的数据块,并保存所述当前加载区域包括但未保存在所述第二缓冲区内的数据块。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果当前加载区域的形状与前一次加载区域的形状不同,则返回执行计算内存的第二缓冲区所支持的最大分辨率。
4.根据权利要求1至3任意一项所述的方法,其特征在于,每个分辨率对应的所有数据块作为八叉树的一层节点,且上一层节点的数据块通过隶属于所述上一层节点的子节点的数据块采样得到,其中所述上一层节点的子节点是下一层的八个子节点,最后一层所有节点的数据块包括所述三维数据。
5.一种三维数据加载装置,其特征在于,包括:
接收单元,用于接收三维数据加载请求,其中所述三维数据加载请求携带有数据块对应的分辨率,所述数据块是三维数据的部分数据;
加载单元,用于从内存的第一缓冲区内提取预设分辨率对应的数据块进行加载,所述第一缓冲区内的数据块常驻内存,所述预设分辨率小于携带的分辨率;
计算单元,用于计算内存的第二缓冲区所支持的最大分辨率,其中所述第二缓冲区和所述第一缓冲区构成内存的全部存储区,所述最大分辨率大于所述预设分辨率,所述最大分辨率小于等于所述携带的分辨率;
保存单元,用于将所述最大分辨率对应的数据块保存到所述第二缓冲区;
替换单元,用于将加载的第一缓冲区内的数据块替换为所述第二缓冲区内的数据块。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
删除单元,用于如果当前加载区域的形状与前一次加载区域的形状相同,但加载位置不同,则删除所述第二缓冲区中未包括在所述当前加载区域的数据块;
保存单元,还用于保存所述当前加载区域包括但未保存在所述第二缓冲区内的数据块。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
触发单元,用于如果当前加载区域的形状与前一次加载区域的形状不同,则触发所述计算单元。
8.根据权利要求5至7任意一项所述的装置,其特征在于,每个分辨率对应的所有数据块作为八叉树的一层节点,且上一层节点的数据块通过隶属于所述上一层节点的子节点的数据块采样得到,其中所述上一层节点的子节点是下一层的八个子节点,最后一层所有节点的数据块包括所述三维数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310440135.5A CN103514017B (zh) | 2013-09-22 | 2013-09-22 | 一种三维数据加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310440135.5A CN103514017B (zh) | 2013-09-22 | 2013-09-22 | 一种三维数据加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514017A CN103514017A (zh) | 2014-01-15 |
CN103514017B true CN103514017B (zh) | 2016-08-17 |
Family
ID=49896792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310440135.5A Expired - Fee Related CN103514017B (zh) | 2013-09-22 | 2013-09-22 | 一种三维数据加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514017B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485789A (zh) * | 2016-09-14 | 2017-03-08 | 乐视控股(北京)有限公司 | 一种3d模型加载方法及其装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597127B (zh) * | 2018-10-29 | 2020-05-26 | 中国科学院计算技术研究所 | 一种地震数据的可视化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807390A (zh) * | 2010-03-25 | 2010-08-18 | 深圳市炬力北方微电子有限公司 | 一种电子设备及图片数据的显示方法和系统 |
CN101908202A (zh) * | 2010-07-09 | 2010-12-08 | 哈尔滨工程大学 | 一种电子海图的快速显示方法 |
EP2339542A1 (en) * | 2009-12-23 | 2011-06-29 | Intrasense | Method, system and computer program for displaying and interactively exploring a tubular object |
-
2013
- 2013-09-22 CN CN201310440135.5A patent/CN103514017B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2339542A1 (en) * | 2009-12-23 | 2011-06-29 | Intrasense | Method, system and computer program for displaying and interactively exploring a tubular object |
CN101807390A (zh) * | 2010-03-25 | 2010-08-18 | 深圳市炬力北方微电子有限公司 | 一种电子设备及图片数据的显示方法和系统 |
CN101908202A (zh) * | 2010-07-09 | 2010-12-08 | 哈尔滨工程大学 | 一种电子海图的快速显示方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485789A (zh) * | 2016-09-14 | 2017-03-08 | 乐视控股(北京)有限公司 | 一种3d模型加载方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103514017A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8525848B2 (en) | Point cloud decimation engine | |
CN111931097B (zh) | 信息展示方法、装置、电子设备以及存储介质 | |
US9245383B2 (en) | Accelerated three-dimensional intersection testing using compressed volumes | |
CN101364310A (zh) | 一种三维模型图形的生成方法和装置 | |
CN107479871B (zh) | 一种海量的矢量数据的访问和渲染方法、电子设备及存储介质 | |
WO2017206484A1 (zh) | 地理数据呈现方法及装置 | |
CN109657172A (zh) | 图片预览方法、装置、设备和存储介质 | |
CN104636464B (zh) | 访问文件的方法和装置 | |
CN103514017B (zh) | 一种三维数据加载方法及装置 | |
CN103310408A (zh) | 适用于超精细影像的图像存储方法 | |
Guo et al. | An efficient tile-pyramids building method for fast visualization of massive geospatial raster datasets | |
CN110635966B (zh) | 一种流量数据的可视化展示系统、方法、介质和电子设备 | |
US9164922B2 (en) | Technique for passive cache compaction using a least recently used cache algorithm | |
CN116993881A (zh) | 一种3d地图渲染方法及系统 | |
Skála et al. | Dynamic hierarchical triangulation of a clustered data stream | |
CN103345495A (zh) | 网络环境下超精图像的极速展示方法 | |
CN112395375A (zh) | 一种地图呈现方法及终端、计算机可读存储介质 | |
Qiao et al. | A rapid visualization method of vector data over 3D terrain | |
CN114020825A (zh) | 基于WebGIS的煤矿井下矿图可视化方法 | |
Kuang et al. | A compact random-access representation for urban modeling and rendering | |
CN110597856B (zh) | 一种流量深度解析数据的快速检索系统和方法 | |
CN110019618B (zh) | 电子地图多图层数据的呈现方法及系统、存储器及设备 | |
CN112669426A (zh) | 基于生成对抗网络的三维地理信息模型渲染方法及系统 | |
Ellul et al. | Preliminary investigations into the potential of improving rendering performance of 3D datasets using 2D generalisation | |
KR101293770B1 (ko) | 자료 표출 시스템 및 자료 표출 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160817 Termination date: 20180922 |