一种八叉树三维模型等级归并数据压缩方法

文档序号:7522767阅读:658来源:国知局
专利名称:一种八叉树三维模型等级归并数据压缩方法
技术领域
本发明涉及一种在三维模型构建过程中,通过八叉树等级归并实现八叉树三维模型构建的数据压缩方法,属于地理信息系统三维建模领域。
背景技术
八叉树法是地理信息系统三维建模常用的方法,是将指定的三维空间区域均分为 8个象限,且在树上的每个非叶子结点处存储8个数据元素(体素),当象限中所有体素都为均质体时,该类型值存入相应的结点数据元素中,否则对非均质象限进行象限细分,该结点中的相应数据元素指向树中的下一个结点,如此循环直至每个结点所代表的区域都为均质体或达到所要求的体素分辨率为止。但在对非均质体进行均分时,每分一次,则相应的增加存储量,导致在整个三维模型构建过程中产生了海量的数据存储。

发明内容
本发明的目的是针对现有技术的不足,提出一种八叉树等级归并数据压缩方法, 通过八叉树等级归并减少实结点的数目,以实现在三维模型构建过程中对数据的压缩存储。为实现这一目的,本发明是在八叉树三维模型构建方法的基础上,通过对八叉树均分,确定每个结点的编号、等级、结点的属性以及结点的方向属性值,然后通过共同面的判定实现实结点的等级归并。具体步骤如下一、八叉树均分首先进行八叉树均分,在均分时需要设定每个结点的编号、等级、结点的属性以及结点的方向属性值。其中结点的编号依次设为0、1、2、3、4、5、6、7,如

图1所示。结点的等级初始化为0。结点的属性按种类设为实结点、空结点或虚结点。空结点是指对非均质体进行均分时,得到的没有包含形体的均质体;实结点是指对非均质体进行均分时,得到的包含整个形体的均质体;虚结点是指对非均质体进行均分时,达到所要求体素分辨率且只包含部分形体的体素。结点的方向属性值按如下设定进行八叉树划分时,可划定6个方向,分别为上U8 = {0,1,2,3},下D8 = {4,5, 6,7},左 L8= {0,1,4,5},右 R8 = {2,3,6,7},前 F8 = {1,3,5,7},后 B8 = {0,2,4,6},则每个实结点按上下左右前后的顺序设定结点方向属性值如表1所示;表1 八叉树均分时对应每个结点的方向属性值
权利要求
1. 一种八叉树三维模型等级归并数据压缩方法,其特征在于具体步骤如下 一、八叉树均分首先进行八叉树均分,在均分时需要设定每个结点的编号、等级、结点的属性以及结点的方向属性值;其中结点的编号依次设为0、1、2、3、4、5、6、7 ;结点的等级初始化为0 ;结点的属性按种类设为实结点、空结点或虚结点;空结点是指对非均质体进行均分时,得到的没有包含形体的均质体;实结点是指对非均质体进行均分时,得到的包含整个形体的均质体; 虚结点是指对非均质体进行均分时,达到所要求体素分辨率且只包含部分形体的体素;结点的方向属性值按如下设定进行八叉树划分时,划定6个方向,分别为上U8= {0,1,2,3},下D8= {4,5,6,7},左 L8 = {0,1,4,5},右 R8 = {2,3,6,7},前 F8 = {1,3,5,7},后 B8 = {0,2,4,6},则每个实结点按上下左右前后的顺序设定结点方向属性值如表1所示; 表1 八叉树均分时对应每个结点的方向属性值
2.等级(1,1)同层同父同等级结点共同面的判定及归并 对编号为0的结点,其共同面的结点编号集合为{2,4}; 对编号为1的结点,其共同面的结点编号集合为{5};对编号为2的结点,其共同面的结点编号集合为{0,6}; 对编号为3的结点,其共同面的结点编号集合为Φ ; 对编号为4的结点,其共同面的结点编号集合为{0,6}; 对编号为5的结点,其共同面的结点编号集合为{1}; 对编号为6的结点,其共同面的结点编号集合为{2,4}; 对编号为7的结点,其共同面的结点编号集合为Φ ;设2个数组numl[m] [η]和num2 [k],numl [m] [η]存储结点编号为0,2,4,6的共同面编号,初始化为 numl[4][2] = {{2,4}, {0,6}, {0,6}, {2,4}} ;num2[k]存储结点编号为 1,5 的共同面编号,初始化为num2[2] = {5,1};其中0彡m彡3,0彡η彡1,0彡k彡1; 等级U,l)结点归并具体步骤如下①判别编号i的结点是否为实结点且等级是否为1,是则转第②步,否则i++,重复步骤 ①;其中0彡i彡4,i乒3,i的初始值为0 ;②判断i为奇数还是偶数,若i为偶数,转到第③步,若为奇数,转到第④步;③依numl[i/2][j]的顺序判断其对应的结点是否为实结点且等级是否为1,若是则对编号为i和numl[i/2] [j]的结点的方向属性值进行按位与运算,若运算结果不为0,则进行归并,结点i的等级加1变2,其方向属性值置为按位与运算的结果,结点numl [i/2] [j]置为空结点;i++,转到步骤①;其中0彡j彡1 ;④依num2[i/4]判断其对应的结点是否为实结点且等级是否为1,若是对编号为i和 num2[i/4]的结点进行归并,结点i的等级加1变2,方向属性值置为i与num[i/4]方向属性值按位与运算的结果,置结点num2[i/4]为空结点;i++,转到步骤①;
3.临层结点共同面的判定及归并通过同层同父同等级结点的归并,对等级为2的结点只可能出现在编号为{0,1,2, 4}的结点中,且其互斥;其中对编号为0的结点,其方向属性可能出现三种情况100000, 001000,000001 ;对编号分别为1,2,4的结点,其方向属性各只存在一种情况,分别为 000010,000100,010000 ;方向属性值为100000时,其父结点编号只能为{4,5,6,7},才能进行归并,且其对应归并结点只能为与其父结点具有相同父结点编号为{0,1,2,3}的结点,其中4^0, 5^1, 6^2, 7^3,下同;方向属性值为OOlOOO时,其父结点编号只能为{2,3,6,7},才能进行等级归并,且其对应归并结点只能为与其父结点具有相同父结点编号为{0,1,4,5}的结点;方向属性值为000001时,其父结点编号只能为{1,3,5,7},才能进行等级归并,且其对应归并结点只能为与其父结点具有相同父结点编号为{0,2,4,6}的结点;方向属性值为000010时,其父结点编号只能为{0,2,4,6},才能进行等级归并,且其对应归并结点只能为与其父结点具有相同父结点编号为{1,3,5,7}的结点;方向属性值为000100时,其父结点编号只能为{0,1,4,5},才能进行等级归并,且其对应归并结点只能为与其父结点具有相同父结点编号为{2,3,6,7}的结点;方向属性值为010000时,其父结点编号只能为{0,1,2,3},才能进行等级归并,且其对应归并结点只能为与其父结点具有相同父结点编号为{4,5,6,7}的结点;对每一个等级为2的结点,只需判断其方向属性值对应父结点的归并结点是否为实结点,等级是否为0即可,是则进行归并,归并结点等级变为3,等级为2的被归并结点置为空结点ο
全文摘要
本发明公开了一种八叉树三维模型等级归并数据压缩方法。以八叉树法为基础,对八叉树进行均分,确定每个结点的编号、等级、结点的属性以及结点的方向属性值,然后通过共同面的判定按次序依次对等级为(0,0),等级为(1,1),等级为(0,2)的实结点进行等级归并,极大地减少了实结点的数目,从而较好的实现了数据压缩。本发明主要适用于三维地理实体以八叉树法进行三维建模时对数据进行压缩存储,结合线性八叉树编码以及三维行程编码它可以极大地的降低数据的存储量,更好的实现对数据的压缩存储。
文档编号H03M7/30GK102437855SQ20111034509
公开日2012年5月2日 申请日期2011年11月2日 优先权日2011年11月2日
发明者傅毓, 刘璇, 李景文, 梁艳艳, 陈俊任 申请人:桂林理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1