公开/公告号CN105139449A
专利类型发明专利
公开/公告日2015-12-09
原文格式PDF
申请/专利权人 上海卫高网络科技有限公司;
申请/专利号CN201510524490.X
发明设计人 林秀全;
申请日2015-08-24
分类号G06T17/00;G06T9/00;
代理机构浙江永鼎律师事务所;
代理人王梨华
地址 201906 上海市奉贤区青村镇姚家村848号1幢0172室
入库时间 2023-12-18 12:45:22
法律状态公告日
法律状态信息
法律状态
2018-03-20
授权
授权
2018-02-09
专利申请权的转移 IPC(主分类):G06T17/00 登记生效日:20180123 变更前: 变更后: 申请日:20150824
专利申请权、专利权的转移
2016-01-06
实质审查的生效 IPC(主分类):G06T17/00 申请日:20150824
实质审查的生效
2015-12-09
公开
公开
技术领域
本发明涉及计算机图形处理领域,尤其涉及了一种基于三维网格细分和编 码的三维模型压缩方法。
背景技术
随着计算机图形学的发展,实际需要的三维模型越来越大、越来越复杂, 三维模型数据量急剧增加而产生大规模的三维模型。同时,移动互联网的快速 发展,在越来越多的移动终端设备上有强烈的三维使用需求。在当前移动网络 带宽有限情况下,大规模三维模型的巨大数据与有限网络带宽资源间存在一定 矛盾。只有对大规模三维模型进行高效率的压缩以减小传输的数据量,才可能 解决大规模三维模型在使用上的传输带宽限制。
三维模型压缩方法主要有拓扑压缩和几何压缩,实际当中往往两者都结合 使用。拓扑压缩主是关于三维模型的顶点、边、面之间的关联信息的压缩,当 前能达到一定压缩效果,但其压缩和解压的过程计算量非常巨大、对硬件设备 要求过高。几何压缩主要是关于三维模型的顶点位置及一些相关属性参数(如 颜色、纹理坐标、法线等)的压缩,但当前的几何压缩方法效率普遍不高,无 法对大规模三维模型进行有效的高比例压缩。
当前基于拓扑压缩对大规模的三维模型进行拓扑信息计算需要巨大的运算 能力和储存能力,对于有限的移动终端设备是无法提供其所需要的压缩和解压 能力,难以在移动终端等设备上快速运行。而针对三维模型顶点位置及其他属 性的几何压缩方法,采用常规的zip、lzma等压缩算法,仅对数据本身进行压缩, 并未针对三维模型的固有属性进行提取,因此压缩比率有限。因此,如果能有 效降低三维模型数据的占用空间,对于在移动终端上运行的三维软件的运营和 维护,都具有重大意义。
发明内容
本发明针对现有技术中三维模型压缩比率不高等缺点,提供了一种基于三 维网格细分和编码的三维模型压缩方法。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种基于三维网格细分和编码的三维模型压缩方法,包括以下步骤:步骤1、 读取三维模型的顶点坐标数据,对顶点的x,y,z坐标逐个进行比较,计算出三 维模型的最大和最小顶点坐标;通过最大和最小顶点坐标确定轴向包围盒的边 界参数,边界参数包括轴向包围盒在三维坐标系中的最大和最小位置坐标;
步骤2、根据轴向包围盒的边界参数计算出轴向包围盒在x,y,z轴上的长度, 获取三维模型的顶点数量,根据三维模型的顶点数量及轴向包围盒在x,y,z 轴上的长度,计算出轴向包围盒的在x,y,z轴上的等分因子,根据轴向包围 盒的等分因子对轴向包围盒进行三维网格细分,根据轴向包围盒的长度、等分 因子依次对三维细分网格建立唯一索引编码;
步骤3、对三维模型的顶点坐标数据按Z轴优先进行排序,获取经过排序的 顶点坐标,根据顶点坐标、轴向包围盒的最小位置坐标、轴向包围盒在x,y,z 轴的长度在及轴向包围盒在x,y,z轴的等分因子计算出顶点相对应三维细分 网格的索引编码数据;
步骤4、根据步骤2计算的三维细分网格的唯一索引编码,获取轴向包围盒 的最小位置坐标、轴向包围盒在x,y,z轴上的长度及轴向包围盒在x,y,z轴 的等分因子,计算出每个细分网格原点的x,y,z坐标,进行中间存储用于下一 步计算;
步骤5、根据三维细分网格的原点坐标、顶点相对应三维细分网格的索引编 码数据和获取的三维模型顶点坐标,计算三维模型顶点坐标相对于三维细分网 格原点的偏移量,获取三维模型顶点的浮点数精度,并将偏移量除以浮点数精 度进行整数化,获取整数偏移量;
步骤6、对轴向包围盒的边界参数、轴向包围盒的x,y,z轴的等分因子、三 维细分网格的唯一索引编码、三维模型顶点对应三维细分网格的索引编码数据、 三维模型顶点的浮点数精度和三维模型顶点相对于三维细分网格原点的整数偏 移量进行数据熵编码。
作为优选,对步骤6熵编码后的数据采用开源的LZMA压缩算法进行数据压 缩。
作为优选,对步骤5的三维模型顶点坐标相对于三维细分网格原点的整数 偏移量进行交叉系列化:把原来按x1,y1,z1…xn,yn,zn(n为整数)排序的 顶点坐标数据系列化为按x1…xn(n为整数),y1…yn(n为整数),z1…zn(n为整数)进行存储。
作为优选,对交叉系列化的整数偏移量数据进行熵编码,采用开源的LZMA 压缩算法进行数据压缩。
本发明由于采用了以上技术方案,提供了一种全新的三维模型压缩方法, 对三维网格细分,将三维模型顶点采用编码和偏移量记录数据,偏移量占用空 间相对于原顶点坐标数据大大减少,采用整数储存相比小数减少了占用空间, 提高了压缩比率,采用此压缩方法的软件更适合在移动设备上运行和维护。
附图说明
图1是本发明压缩方法流程图;
具体实施方式
下面结合附图与实施例对本发明作进一步详细描述。
实施例1
具体压缩流程如图1所示,一种基于三维网格细分和编码的三维模型压缩 方法,包括以下步骤:
步骤1、读取三维模型的顶点坐标数据,对顶点的x,y,z坐标逐个进行比较, 计算出三维模型的最大和最小顶点坐标;通过最大和最小顶点坐标确定轴向包 围盒的边界参数,边界参数包括轴向包围盒在三维坐标系中的最大和最小位置 坐标,对边界参数进行储存,通过边界参数确认轴向包围盒的范围;包围盒算 法是一种求解离散点集最优包围空间的方法,基本思想是用体积稍大且特性简 单的几何体(称为包围盒)来近似地代替复杂的几何对象。
步骤2、根据轴向包围盒的边界参数计算出轴向包围盒在x,y,z轴上的长度, 获取三维模型的顶点数量,根据三维模型的顶点数量及轴向包围盒在x,y,z 轴上的长度,计算出轴向包围盒的在x,y,z轴上的等分因子,根据轴向包围 盒的等分因子对轴向包围盒进行三维网格细分,根据轴向包围盒的长度、等分 因子依次对三维细分网格建立唯一索引编码,每个三维细分网格都有一个唯一 的索引编码,对轴向包围盒的在x,y,z轴上的长度和等分因子、三维细分网 格的唯一索引编码进行存储,用于下一步使用。
步骤3、对三维模型的顶点坐标数据按Z轴优先进行排序,获取经过排序的 顶点坐标,根据顶点坐标、轴向包围盒的最小位置坐标、轴向包围盒在x,y,z 轴的长度在及轴向包围盒在x,y,z轴的等分因子计算出顶点相对应三维细分 网格的索引编码数据,例如:排序顶点的x轴坐标值减去最小位置的x轴坐标 值,得到x轴差值;x轴长度除以x轴等分因子,得到x轴上三维细分网格的单 个网格长度值;根据x轴差值和单个网格长度值确定排序顶点相对应三维细分 网格的x轴位置,以此类推,确定排序顶点相对应三维细分网格的y轴和z轴 位置,结合x,y,z轴位置确定排序顶点对应哪个三维细分网格的唯一索引编 码,记录排序顶点对应三维细分网格的对应关系,即排序顶点对应三维细分网 格的索引编码数据。
步骤4、根据步骤2计算的三维细分网格的唯一索引编码,获取轴向包围盒 的最小位置坐标、轴向包围盒在x,y,z轴上的长度及轴向包围盒在x,y,z轴 的等分因子,计算出每个细分网格原点的x,y,z坐标,进行中间存储用于下一 步计算;通过轴向包围盒在x,y,z轴的长度及等分因子计算出单个网格在x, y,z轴上的单个网格长度值,根据最小位置坐标和唯一索引编码、单个网格长 度值推算出每个细分网格原点的x,y,z坐标。
步骤5、根据三维细分网格的原点坐标、顶点相对应三维细分网格的索引编 码数据和获取的三维模型顶点坐标,计算三维模型顶点坐标相对于三维细分网 格原点的偏移量,获取三维模型顶点的浮点数精度,并将偏移量除以浮点数精 度进行整数化,获取整数偏移量,根据顶点对应三维细分网格的索引编码数据, 将三维模型顶点坐标与对应的三维细分网格原点坐标相减,得到顶点坐标相对 于三维细分网格原点坐标的偏移量;获取三维模型顶点的浮点数精度,偏移量 除以浮点数精度得到整数偏移量,采用整数偏移量相比浮点数偏移量占用空间 小,对整数偏移量进行储存,用于下一步使用。
步骤6、对轴向包围盒的边界参数、轴向包围盒的x,y,z轴的等分因子、三 维细分网格的唯一索引编码、三维模型顶点对应三维细分网格的索引编码数据、 三维模型顶点的浮点数精度和三维模型顶点相对于三维细分网格原点的整数偏 移量进行数据熵编码,熵编码即编码过程中按熵原理不丢失任何信息的编码。
对步骤6熵编码后的数据采用开源的LZMA压缩算法进行数据压缩。
对步骤5的三维模型顶点坐标相对于三维细分网格原点的整数偏移量进行 交叉系列化:把原来按x1,y1,z1…xn,yn,zn(n为整数)排序的顶点坐标数 据系列化为按x1…xn(n为整数),y1…yn(n为整数),z1…zn(n为整数) 进行存储;在同等数据下,拥有相同数值多的数据具有较高的压缩比率,原来 坐标为x1,y1,z1…xn,yn,zn(n为整数),采用交叉系列化后坐标变成 x1…xn(n为整数)、y1…yn(n为整数)、z1…zn(n为整数), x1…xn,y1…yn,z1…zn相比x1,y1,z1…xn,yn,zn(n为整数)拥有更 多连续重复的数值,具有较高的压缩比率,采用此压缩方法的软件更适合在移 动设备上运行。
对交叉系列化的整数偏移量数据进行熵编码,采用开源的LZMA压缩算法进 行数据压缩。
总之,以上所述仅为发明的较佳实施例,凡依本发明申请专利范围所作的 均等变化与修饰,皆应属本发明专利的涵盖范围。
机译: 三维网格模型的压缩方法,特别是从三维网格模型生成的网格层来考虑,并分类为三角层编码和连接编码
机译: 预测模式选择方法,一种基于主边的方向性来减少预测模式候选的数量的装置,一种使用该方法的运动图像压缩方法,一种包括该装置的运动图像编码器以及一种编码器执行该方法的程序
机译: 基于几何图像的三维网格模型误差保护编码方法