CN106846457A - 一种ct切片数据可视化重构的八叉树并行构造方法 - Google Patents

一种ct切片数据可视化重构的八叉树并行构造方法 Download PDF

Info

Publication number
CN106846457A
CN106846457A CN201611062125.2A CN201611062125A CN106846457A CN 106846457 A CN106846457 A CN 106846457A CN 201611062125 A CN201611062125 A CN 201611062125A CN 106846457 A CN106846457 A CN 106846457A
Authority
CN
China
Prior art keywords
node
data
octree
slice
parallel
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.)
Granted
Application number
CN201611062125.2A
Other languages
English (en)
Other versions
CN106846457B (zh
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.)
National Supercomputer Center In Tianjin
Original Assignee
National Supercomputer Center In Tianjin
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 National Supercomputer Center In Tianjin filed Critical National Supercomputer Center In Tianjin
Priority to CN201611062125.2A priority Critical patent/CN106846457B/zh
Publication of CN106846457A publication Critical patent/CN106846457A/zh
Application granted granted Critical
Publication of CN106846457B publication Critical patent/CN106846457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/41Medical

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

本发明涉及并行计算应用技术领域和高性能科学计算领域,特别是涉及一种具备TB级数据处理能力的CT切片数据可视化重构的八叉树并行构造方法。其基于MPI+OpenMP并行编程模型,利用原始体数据网格剖分、八叉树节点数据没有依赖性等特点,基于“按需构造‑Branch on need Octrees,BONOs”方案,根据体数据的实际三维尺寸进行八叉树并行构造,一方面减少构造过程中对计算资源、存储资源的浪费和I/O开销,另一方面通过并行计算的方式实现对TB级CT切片数据的快速八叉树数据结构构造,MPI+OpenMP并行编程技术满足TB级CT切片数据在不同分辨率要求下的八叉树数据结构体快速构造,该方法具备较好的并行加速比和并行效率。

Description

一种CT切片数据可视化重构的八叉树并行构造方法
技术领域
本发明涉及并行计算应用技术领域和高性能科学计算领域,特别是涉及一种具备TB级数据处理规模的CT切片数据可视化重构的八叉树并行构造方法。
背景技术
在图形图像处理应用领域中,三维可视化技术是描绘和理解三维模型的一种重要工具,而八叉树是一种用于描述三维空间的树状数据结构,其数据结构是三维可视化技术广泛应用的重要数据结构之一。科学计算领域中常用的并行编程框架包括MPI(消息传递接口)、OpenMP、CUDA等。MPI主要用于实现多进程协作的并行程序设计。由于不同进程具有独立的地址空间和资源,因此需要采用MPI提供的消息传递接口来实现进程间的相互通信。在使用MPI实现八叉树并行构造算法时,通常会对计算网格进行区域划分,不同的进程负责不同区域的计算,完成计算之后将数据存储至自定义文件中。OpenMP是一种用于共享内存的并行系统的多处理器程序设计的编译处理方案。在OpenMP的程序中,多个线程协同工作来完成计算任务,线程之间共享所在进程的内存空间,因此,线程间不需要额外的通信来交换数据。但是OpenMP不能实现跨节点并行,而且,在线程数目很大的情况下,不能实现良好的并行效率。随着数据处理规模的迅速激增,和处理时效性需求不断增加,三维可视化技术已经越来越多地利用高性能计算应用技术和并行计算应用技术来解决面临的例如单机无法处理,或处理时间无法接受,或处理效果不好等问题和挑战。八叉树构造算法是一个非常重要的应用基础算法,针对其优势和特点,结合目前数据规模逐渐达到TB级、甚至PB级,应用时效性要求高的实际情况,研究八叉树的并行构造方法有重要的实际意义和迫切的应用需求。
发明内容
为了解决现有技术的不足,本发明提供了一种基于MPI+OpenMP并行编程模型的CT切片数据可视化重构的八叉树并行构造方法。该方法利用原始体数据网格剖分、八叉树节点数据没有依赖性等特点,基于“按需构造-Branch on need Octrees,BONOs”方案,根据体数据的实际三维尺寸进行八叉树并行构造,一方面减少构造过程中对计算资源、存储资源的浪费和I/O开销,另一方面通过并行计算的方式实现对TB级CT切片数据的快速八叉树数据结构构造,MPI+OpenMP并行编程技术满足TB级CT切片数据在不同分辨率要求下的八叉树数据结构体快速构造,该方法具备较好的并行加速比和并行效率。
本发明的技术方案是:一种CT切片数据可视化重构的八叉树并行构造方法,其具备TB级数据规模处理能力,其包括以下步骤:
(1)根据CT切片数据组合而成的原始体数据尺寸X、Y和Z,将八叉树的叶子节点和中间节点设定尺寸为x、y和z,计算获得X方向、Y方向和Z方向的剖分网格数目NX、NY和NZ,得到体数据的剖分网格数目N=NX*NY*NZ,按照该数目构造一份线性满八叉树的索引列表,剖分网格即代表八叉树的叶子节点;
其中索引列表内包括以下信息:
1)体数据三维尺寸:拟处理体数据的实际三维大小X、Y和Z;
2)节点三维尺寸:BONOs树节点表示的体数据三维大小x、y和z;
3)实际节点数:当前BONOs树的节点个数,包括根节点、中间节点和叶子节点;
4)八叉树深度:当前BONOs树的深度;
5)是否BONO树:标识当前八叉树是否为BONO树;
6)是否压缩:标识当前八叉树存储前是否经过压缩;
7)线性八叉树地址向量,满线性八叉树,包括:
①节点标识:根据BONOs算法,若该树节点实际存在,则为真,否则为假;
②树节点坐标:树节点的三维坐标x,y和z;
③节点Morton编码:节点的Morton编码;
④节点实际内存地址:节点数据所在的实际内存地址;
⑤节点邻域索引:标识出子节点相邻的其余体数据索引下标,包括面邻域、边邻域和角邻域,共27个;
⑥文件存储绝对路径:表示当前节点的文件存储路径。
(2)完成索引列表字段填充,包括八叉树属性字段和节点属性字段,按照“按需构造-BONOs”原则,根据实际存在的体数据进行划分,不保留扩充的“伪数据”:若节点内包含实际存在的体数据,则该节点被标识为存在;若节点只包含扩充的伪数据,则该节点被标识为不存在,减少转换和构造过程中对计算资源、存储资源的浪费和消耗。
(3)根据原始体数据尺寸X、Y和Z,以及拟定的节点尺寸x、y和z,进行数据预取操作,将Z方向的z个CT切片数据文件预取至所有计算节点内存中,减少转换过程中对数据文件的重复数据I/O开销,提高数据复用效果。
1)按照节点尺寸x、y和z,以及切片数据大小,申请动态内存空间,等待数据缓存至内存;
2)按照OZ坐标轴方向将z个切片数据读取至节点内存;
3)根据体数据尺寸Z和节点尺寸z,计算迭代次数K,其中K表示该数据预取过程将持续K次,K=┌Z/z┐。
(4)将预取至内存的体数据子块,即三维尺寸为X、Y和z的体数据子块在XOY平面进行X和Y方向进行等分,X方向划分,Y方向划分,将该体数据块划分为(X/x)*(Y/y)个叶子节点。
1)按照MPI并行规模PN,对本次叶子节点网格数N进行平均划分;
2)每一个进程P,确定拟处理的叶子节点个数和节点编号,确保所有节点能够被处理;
3)根据拟处理叶子节点数目,申请动态内存空间,分配待处理数据缓存区域。
(5)基于MPI+OpenMP编程模型,执行叶子节点数据并行转换操作,由PN个MPI进程将N个叶子节点进行数据转换,每个进程内部启动OpenMP多线程完成数据排列,使得CT切片数据格式快速并行转换为八叉树叶子节点数据格式,并存储为自定义二进制文件,将该过程迭代执行次,完成整个体数据由CT切片数据格式向叶子节点二进制数据格式的转换操作。
1)按照叶子节点尺寸和编码,读取体数据子块的对应区域至缓存区域;
2)依次按照OX、OY和OZ三个方向,将切片数据顺序排列为树节点数据;
3)将完成数据填充的叶子节点存储为自定义二进制文件;
4)如此迭代执行K次,完成整个体数据由CT切片数据格式向八叉树叶子节点二进制数据格式的转换过程,其中。
(6)根据线性满八叉树索引列表属性信息和MPI+OpenMP并行编程模型,从八叉树的叶子节点所在层位开始进行自底向上进行合并构造,逐层向上合并构造树的中间节点,并将构造结果存储为自定义二进制文件,存储路径保存至索引列表中。
a)按照MPI并行规模PN,对当前拟合并的中间节点数目进行平均划分,确保该层所有节点能够被处理;
b)每一个进程P,按照父子节点定位算法,确定拟处理的中间节点的子节点在索引列表中的索引编号范围,线性满八叉树索引列表具备如下特性:
i.设一子节点索引号为ID’,其对应的父节点索引号为ID;
ii.ID’=ID*8+i,i={1,2,3,4,5,6,7,8};
iii.ID’-1=ID*8+i’,i’={0,1,2,3,4,5,6,7};
iv.(ID’-1)/8=(ID*8+i’)/8=ID,i’={0,1,2,3,4,5,6,7};
v.ID=(ID’-1)/8
c)即根据子节点索引编号ID’,可以直接计算得到父节点索引编号ID,同样父节点也能够直接计算获得八个子节点的索引编号,计算时间复杂度为O(1);
d)对上述a)-c)步骤重复迭代执行,直至完成对树的根节点Root数据合并操作。
(7)完成整棵八叉树构造,获得线性满八叉树索引列表和八叉树节点数据文件,满足体数据三维可视化重构目的。
本发明的有益效果是,一种CT切片数据可视化重构的八叉树并行构造方法,相比已有的八叉树构造方案,该并行构造方案有以下方面的突破:
1)设计并实现了线性满八叉树索引列表数据结构,利用线性满八叉树的特性和领域寻找算法,对于八叉树的父子节点、相邻节点定位能够在时间复杂度内完成,提高了八叉树节点编号定位效率;
2)设计并实现了针对TB级CT切片数据自底向上八叉树构造算法,通过MPI+OpenMP并行编程模型,在节点之间采用MPI多进程并行,在节点内部采用OpneMP共享内存并行,完成对TB级规模的CT切片数据进行八叉树数据结构并行构造,使得TB级的CT切片数据能够快速完成八叉树数据结构构造,实现指定分辨率的快速三维可视化重构;
3)以“按需构造-BONOs”思路和自底向上逐层合并算法框架设计实现八叉树并行构造方法,能够根据体数据尺寸和八叉树节点尺寸完成八叉树自底向上按需构造,构造过程中根据节点是否真实存在进行内存申请,无需对不规则体数据进行三维尺寸补全,减少无效数据对内存、磁盘I/O的消耗,提高八叉树结构体的并行处理效率,在可接受时间内满足对TB级CT切片数据的可视化重构需求,一方面实现数据规模越来越大的CT切片数据可视化重构要求,另一方面通过自底向上重构方法,探索获得一种适用于并行计算的八叉树并行构造算法框架。
4)该方法可以实现对TB级CT切片体数据进行快速八叉树并行重构。根据重构之后的八叉树数据结构体,能够快速进行不同设定分辨率下的数据可视化查看,方法具备对TB级数据处理能力,具备良好的并行加速比和并行效率,可靠性、可扩展性良好,能够有效提升三维数据可视化重构的应用水平。
附图说明
图1是本申请索引列表数据结构示意图。
图2是本申请体数据子块中数据预取示意图。
图3是本申请叶子节点网络并行划分示意图。
图4是本申请叶子节点数据转换示意图。
图5是本申请中八叉树中间节点合并构造示意图。
具体实施方式
下面结合附图、附表和具体实施例对本发明作进一步详细说明。
一种CT切片数据可视化重构的八叉树并行构造方法,其具备TB级数据规模处理能力,其包括以下步骤:
(1)根据CT切片数据组合而成的原始体数据尺寸X、Y和Z,将八叉树的叶子节点和中间节点设定尺寸为x、y和z,计算获得X方向、Y方向和Z方向的剖分网格数目NX、NY和NZ,得到体数据的剖分网格数目N=NX*NY*NZ,按照该数目构造一份线性满八叉树的索引列表,剖分网格即代表八叉树的叶子节点;如图1所示,其中索引列表内包括以下信息:
1)体数据三维尺寸:拟处理体数据的实际三维大小X、Y和Z;
2)节点三维尺寸:BONOs树节点表示的体数据三维大小x、y和z;
3)实际节点数:当前BONOs树的节点个数,包括根节点、中间节点和叶子节点;
4)八叉树深度:当前BONOs树的深度;
5)是否BONO树:标识当前八叉树是否为BONO树;
6)是否压缩:标识当前八叉树存储前是否经过压缩;
7)线性八叉树地址向量,满线性八叉树,包括:
①节点标识:根据BONOs算法,若该树节点实际存在,则为真,否则为假;
②树节点坐标:树节点的三维坐标x,y和z;
③节点Morton编码:节点的Morton编码;
④节点实际内存地址:节点数据所在的实际内存地址;
⑤节点邻域索引:标识出子节点相邻的其余体数据索引下标,包括面邻域、边邻域和角邻域,共27个;
⑥文件存储绝对路径:表示当前节点的文件存储路径。
(2)完成索引列表字段填充,包括八叉树属性字段和节点属性字段,按照“按需构造-BONOs”原则,根据实际存在的体数据进行划分,不保留扩充的“伪数据”:若节点内包含实际存在的体数据,则该节点被标识为存在;若节点只包含扩充的伪数据,则该节点被标识为不存在,减少转换和构造过程中对计算资源、存储资源的浪费和消耗。
(3)根据原始体数据尺寸X、Y和Z,以及拟定的节点尺寸x、y和z,进行数据预取操作,将Z方向的z个CT切片数据文件预取至所有计算节点内存中,减少转换过程中对数据文件的重复数据I/O开销,提高数据复用效果。如图2所示:
1)按照节点尺寸x、y和z,以及切片数据大小,申请动态内存空间,等待数据缓存至内存;
2)按照OZ坐标轴方向将z个切片数据读取至节点内存;
3)根据体数据尺寸Z和节点尺寸z,计算迭代次数K,其中K表示该数据预取过程将持续K次,K=┌Z/z┐。
(4)将预取至内存的体数据子块,即三维尺寸为X、Y和z的体数据子块在XOY平面进行X和Y方向进行等分,X方向划分,Y方向划分,将该体数据块划分为(X/x)*(Y/y)个叶子节点,如图3所示:
1)按照MPI并行规模PN,对本次叶子节点网格数N进行平均划分;
2)每一个进程P,确定拟处理的叶子节点个数和节点编号,确保所有节点能够被处理;
3)根据拟处理叶子节点数目,申请动态内存空间,分配待处理数据缓存区域。
(5)基于MPI+OpenMP编程模型,执行叶子节点数据并行转换操作,由PN个MPI进程将N个叶子节点进行数据转换,每个进程内部启动OpenMP多线程完成数据排列,使得CT切片数据格式快速并行转换为八叉树叶子节点数据格式,并存储为自定义二进制文件,将该过程迭代执行次,完成整个体数据由CT切片数据格式向叶子节点二进制数据格式的转换操作,如图4所示:
1)按照叶子节点尺寸和编码,读取体数据子块的对应区域至缓存区域;
2)按依次按照OX、OY和OZ三个方向,将切片数据顺序排列为树节点数据,如图4虚线框部分;
3)将完成数据填充的叶子节点存储为自定义二进制文件;
4)如此迭代执行K次,完成整个体数据由CT切片数据格式向八叉树叶子节点二进制数据格式的转换过程,其中。
(6)根据线性满八叉树索引列表属性信息和MPI+OpenMP并行编程模型,从八叉树的叶子节点所在层位开始进行自底向上进行合并构造,逐层向上合并构造树的中间节点,并将构造结果存储为自定义二进制文件,存储路径保存至索引列表中,如图5所示:按照MPI并行规模PN,对当前拟合并的中间节点数目进行平均划分,确保该层所有节点能够被处理;
a)每一个进程P,按照父子节点定位算法,确定拟处理的中间节点的子节点在索引列表中的索引编号范围,线性满八叉树索引列表具备如下特性:
i.设一子节点索引号为ID’,其对应的父节点索引号为ID;
ii.ID’=ID*8+i,i={1,2,3,4,5,6,7,8};
iii.ID’-1=ID*8+i’,i’={0,1,2,3,4,5,6,7};
iv.(ID’-1)/8=(ID*8+i’)/8=ID,i’={0,1,2,3,4,5,6,7};
v.ID=(ID’-1)/8
b)即根据子节点索引编号ID’,可以直接计算得到父节点索引编号ID,同样父节点也能够直接计算获得八个子节点的索引编号,计算时间复杂度为O(1);
c)对上述a)-c)步骤重复迭代执行,直至完成对树的根节点Root数据合并操作。
(7)完成整棵八叉树构造,获得线性满八叉树索引列表和八叉树节点数据文件,满足体数据三维可视化重构目的。
本发明的测试环境为:TH-1A系统,2CPU/节点,6核/CPU,2.90GHz,24GB内存,网络通信点对点80GB/s,基于Lustre文件系统提供存储。
本发明的测试数据为:
脑切片CT数据,TIFF格式,包括600MB、17GB和1.8TB三种数据规模,其体数据尺寸如表1所示:
表1 体数据尺寸
数据大小 X维度 Y维度 Z维度
600MB 5684 2221 107
17GB 28420 11103 107
1.8TB 28420 11103 14000
本发明的测试方案,根据体数据尺寸设定树节点尺寸为表2所示:
表2 树节点尺寸设定
数据大小 树节点X维度 树节点Y维度 树节点Z维度
600MB 256 128 32
17GB 256 128 14
1.8TB 512 256 64
测试结果包括600MB数据、17GB数据和1.8TB数据的并行执行时间,考虑到数据规模较大、单节点内存配置有限,测试方案没有对传统八叉树构造方案进行时间开销测试统计。600MB数据测试统计表为表3所示:
表3 600MB数据测试统计表
从表3可以看出,2个进程即可在20S内完成对600MB的CT切片数据格式向八叉树结构格式转换。
17GB数据测试统计表为表4所示:
表4 17GB数据测试统计表
从表4可以看出,17GB的CT切片数据在8个进程并行执行下能够在8分钟以内完成格式转换,获得八叉树结构。同时,由4个进程线性增加到8个进程时,加速比为1.51,并行效率为75.7%,具备较好的可扩展性。
1.8TB数据测试统计表如表5所示:
表5 1.8TB数据测试统计表
从表5可以看出,1.8TB的CT切片数据在16进程并行规模下能够在6个小时内完成数据格式转换,快速实现TB级数据可视化重构需求。
测试结果分析:
从上述表可知,600MB数据的2进程并行时间开销在20秒以内,17GB数据的8进程时间开销在8分钟以内,1.8TB数据的16进程时间开销在6小时以内。
本发明方法一方面实现数据规模越来越大的CT切片数据可视化重构要求,另一方面通过自底向上重构方法,探索获得一种新的适用于并行计算的八叉树并行构造算法框架。
以上仅是本申请的优选实施方式,本申请的保护范围并不局限于上述实施例。凡属于本申请思路下的技术方案均属于本申请的保护范围。应当指出,对于本技术领域的普通技术人员来讲,在不脱离本申请的原理前提下的若干改进和润饰,都应视为本申请的保护范围。

Claims (6)

1.一种CT切片数据可视化重构的八叉树并行构造方法,其具备TB级数据规模处理能力,其特征在于,该方法包括以下步骤:
A、按照CT切片数据组合而成的原始体数据尺寸X、Y和Z,树节点设定尺寸为x、y和z,计算获得X方向、Y方向和Z方向的剖分网格数目NX、NY和NZ,得到体数据的剖分网格数目N=NX*NY*NZ,按照该数目构造一份线性满八叉树的索引列表,剖分网格即代表八叉树的叶子节点;
B、完成索引列表各个属性字段填充,包括八叉树属性字段和树节点属性字段,按照“按需构造-BONOs”原则,根据实际存在的体数据进行划分:若节点内包含实际存在的体数据,则该节点被标识为存在,若节点只包含扩充的体数据,则该节点被标识为不存在;
C、根据原始体数据尺寸X、Y和Z,以及设定的节点分辨率尺寸x、y和z,进行体数据预取操作,将Z方向的z个CT切片数据文件预取至所有计算节点内存中;
D、将预取至内存的体数据子块,即其三维尺寸为X、Y和z的体数据子块,在XOY平面进行X和Y方向进行等分,X方向划分,Y方向划分,将该体数据块划分为(X/x)*(Y/y)个叶子节点;
E、基于MPI+OpenMP编程模型,执行叶子节点数据并行转换操作,由PN个MPI进程将N个叶子节点进行并行转换,每个进程内部启动OpenMP多线程完成数据重排,使得切片文件数据转换为八叉树叶子节点数据格式,并存储为自定义二进制文件,将该过程迭代执行多次,完成整个体数据由CT切片数据格式向叶子节点二进制数据格式的转换操作;
F、根据线性满八叉树索引列表属性信息和MPI+OpenMP编程模型,从叶子节点所在层位开始进行自底向上八叉树并行构造,逐层向上合并构造中间节点,并将构造结果存储为自定义文件,存储路径保存至索引表中;
G、完成整棵八叉树构造,获得线性满八叉树索引列表和八叉树节点数据文件,满足体数据三维可视化重构目的。
2.根据权利要求1所述的CT切片数据可视化重构的八叉树并行构造方法,其特征在于,索引列表内包括以下信息:
a.体数据三维尺寸,即拟处理体数据的实际三维大小X、Y和Z;
b.节点三维尺寸,是BONOs树节点表示的体数据三维大小x、y和z;
c.实际节点数,是当前BONOs树的节点个数,包括根节点、中间节点和叶子节点;
d.八叉树深度,指当前BONOs树的深度;
e.是否BONO树:标识当前八叉树是否为BONO树;
f.是否压缩:标识当前八叉树存储前是否经过压缩;
g.线性八叉树地址向量,满线性八叉树,包括:
①节点标识:根据BONOs算法,若该树节点实际存在,则为真,否则为假;
②树节点坐标:树节点的三维坐标x,y和z;
③节点Morton编码:节点的Morton编码;
④节点实际内存地址:节点数据所在的实际内存地址;
⑤节点邻域索引:标识出子节点相邻的其余体数据索引下标,包括面邻域、边邻域和角邻域,共27个;
⑥文件存储绝对路径:表示当前节点的文件存储路径。
3.根据权利要求1所述的CT切片数据可视化重构的八叉树并行构造方法,其特征在于,所述步骤C中,体数据子块数据预取操作步骤为:
a.按照节点尺寸x、y和z,以及切片数据大小,申请动态内存空间,等待数据缓存至内存;
b.按照OZ坐标轴方向将z个切片数据读取至节点内存;
c.根据体数据Z方向尺寸Z和树节点Z方向尺寸z,计算迭代次数K,其中K表示该数据预取过程将持续K次,K=┌Z/z┐。
4.根据权利要求1所述的CT切片数据可视化重构的八叉树并行构造方法,其特征在于,所述步骤D中,叶子节点网络并行划分的操作步骤为:
a.按照MPI并行规模PN,对本次叶子节点网格数N进行平均划分;
b.每一个进程P,确定拟处理的叶子节点个数和节点编号,确保所有节点能够被处理;
c.根据拟处理叶子节点数目,申请动态内存空间,分配待处理数据缓存区域。
5.根据权利要求1所述的CT切片数据可视化重构的八叉树并行构造方法,其特征在于,所述步骤E中,叶子节点数据转换的操作步骤为:
a.按照叶子节点尺寸和编码,读取体数据子块的对应区域至缓存区域;
b.依次按照OX、OY和OZ三个方向,将切片数据顺序排列为树节点数据;
c.将完成数据填充的叶子节点存储为自定义二进制文件;
d.如此迭代执行K次,完成整个体数据由CT切片数据格式向八叉树叶子节点二进制数据格式的转换过程,其中。
6.根据权利要求1所述的CT切片数据可视化重构的八叉树并行构造方法,其特征在于,所述步骤F中,叶子节点数据转换的操作步骤为:
a.按照MPI并行规模PN,对当前拟合并的中间节点数目进行平均划分,确保该层所有节点能够被处理;
b.每一个进程P,按照父子节点定位算法,确定拟处理的中间节点的子节点在索引列表中的索引编号范围,线性满八叉树索引列表父子节点定位具备如下特性:
I 设一子节点索引号为ID’,其对应的父节点索引号为ID;
II ID’=ID*8+i,i={1,2,3,4,5,6,7,8};
III ID’-1=ID*8+i’,i’={0,1,2,3,4,5,6,7};
IV(ID’-1)/8=(ID*8+i’)/8=ID,i’={0,1,2,3,4,5,6,7};
V ID=(ID’-1)/8
c.即根据子节点索引编号ID’,可以直接计算得到父节点索引编号ID,同样父节点也能够直接计算获得八个子节点的索引编号,计算时间复杂度为O(1);
d.对上述a-c步骤重复迭代执行,直至完成对树的根节点Root数据合并操作。
CN201611062125.2A 2016-11-25 2016-11-25 一种ct切片数据可视化重构的八叉树并行构造方法 Active CN106846457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611062125.2A CN106846457B (zh) 2016-11-25 2016-11-25 一种ct切片数据可视化重构的八叉树并行构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611062125.2A CN106846457B (zh) 2016-11-25 2016-11-25 一种ct切片数据可视化重构的八叉树并行构造方法

Publications (2)

Publication Number Publication Date
CN106846457A true CN106846457A (zh) 2017-06-13
CN106846457B CN106846457B (zh) 2020-05-26

Family

ID=59145464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611062125.2A Active CN106846457B (zh) 2016-11-25 2016-11-25 一种ct切片数据可视化重构的八叉树并行构造方法

Country Status (1)

Country Link
CN (1) CN106846457B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112102467A (zh) * 2020-07-22 2020-12-18 深圳市菲森科技有限公司 一种基于gpu的并行八叉树生成、装置及电子设备
CN112947870A (zh) * 2021-01-21 2021-06-11 西北工业大学 一种3D打印模型的G-code并行生成方法
CN116049924A (zh) * 2023-03-07 2023-05-02 武汉益模科技股份有限公司 一种基于Cuda的三维零件差异分析算法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853484A (zh) * 2010-05-21 2010-10-06 天津大学 一种三维网格非嵌入式健壮水印的构造方法和检测方法
CN102542035A (zh) * 2011-12-20 2012-07-04 南京大学 基于扫描线法的多边形栅格化并行转换方法
CN103019844A (zh) * 2012-12-05 2013-04-03 北京奇虎科技有限公司 一种支持多线程调用mpi函数的方法和装置
US20130086551A1 (en) * 2010-05-27 2013-04-04 International Business Machines Corporation Providing A User With A Graphics Based IDE For Developing Software For Distributed Computing Systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853484A (zh) * 2010-05-21 2010-10-06 天津大学 一种三维网格非嵌入式健壮水印的构造方法和检测方法
US20130086551A1 (en) * 2010-05-27 2013-04-04 International Business Machines Corporation Providing A User With A Graphics Based IDE For Developing Software For Distributed Computing Systems
CN102542035A (zh) * 2011-12-20 2012-07-04 南京大学 基于扫描线法的多边形栅格化并行转换方法
CN103019844A (zh) * 2012-12-05 2013-04-03 北京奇虎科技有限公司 一种支持多线程调用mpi函数的方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KANOK HOURNKUMNUARD等: "Parallel Simulation of Magnetic Targeting of Nano-Carriers in Capillary using OpenMP and MPI", 《2013 INTERNATIONAL COMPUTER SCIENCE AND ENGINEERING CONFERENCE(ICSEC):ICSEC 2013 ENGLISH TRACK FULL PAPERS》 *
彭宝云等: "大规模流场矢量线可视化的数据预取方法", 《计算机辅助设计与图形学学报》 *
黄进东: "基于GPU的医学图像体绘制研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112102467A (zh) * 2020-07-22 2020-12-18 深圳市菲森科技有限公司 一种基于gpu的并行八叉树生成、装置及电子设备
CN112102467B (zh) * 2020-07-22 2024-05-24 深圳市菲森科技有限公司 一种基于gpu的并行八叉树生成、装置及电子设备
CN112947870A (zh) * 2021-01-21 2021-06-11 西北工业大学 一种3D打印模型的G-code并行生成方法
CN112947870B (zh) * 2021-01-21 2022-12-30 西北工业大学 一种3D打印模型的G-code并行生成方法
CN116049924A (zh) * 2023-03-07 2023-05-02 武汉益模科技股份有限公司 一种基于Cuda的三维零件差异分析算法

Also Published As

Publication number Publication date
CN106846457B (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
CN102930597B (zh) 一种外存三维模型的处理方法
CN106709067A (zh) 一种基于Oracle数据库的多源异构空间数据流转方法
CN111708752B (zh) 一种输电设备三维标准模型库管理系统
CN112231961B (zh) 大规模有限元网格数据存储索引方法
CN106846457A (zh) 一种ct切片数据可视化重构的八叉树并行构造方法
JP2022533704A (ja) 機械学習ベースの符号化を使用した電子回路レイアウト内のパターンの分類
Fellegara et al. Efficient computation and simplification of discrete morse decompositions on triangulated terrains
CN106204748B (zh) 一种基于特征的cad体网格模型编辑、优化方法
Carr et al. Scalable contour tree computation by data parallel peak pruning
CN115601523A (zh) 建筑信息模型轻量化处理方法、系统、设备及存储介质
CN116187200A (zh) 基于图卷积网络的轻量化三维cad模型分类与检索的方法
CN104462414A (zh) 一种基于拓扑结构的流程图相似性方法
CN106815320B (zh) 基于拓展三维直方图的调研大数据可视化建模方法及系统
CN106780747A (zh) 一种快速分割cfd计算网格的方法
Gao et al. A multi-level parallel tie-dye algorithm for auto-CFD
CN204557477U (zh) 基于数据仓库和olap技术的聚类挖掘系统
Lizier et al. Comparing techniques for tetrahedral mesh generation
Shen Visualization of large scale time-varying scientific data
CN105426626A (zh) 基于相似数据样式聚类的多点地质统计学建模方法
Li et al. Improved YOLOV3 surveillance device object detection method based on federated learning
Luo et al. Zmesh: theories and methods to exploring application characteristics to improve lossy compression ratio for adaptive mesh refinement
CN114119874B (zh) 基于gan的单图重建高清3d面部纹理的方法
CN118485998A (zh) 基于点云数据序列化技术的状态空间模型
Pokhariya et al. Discretization-Agnostic Deep Self-Supervised 3D Surface Parameterization
Yang et al. Geospatial data organization method based on GeoSOT model

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
GR01 Patent grant
GR01 Patent grant