本发明属于三维图像处理,具体的说是基于图像编码的三维模型纹理数据高效压缩方法及系统。
背景技术:
1、随着计算机图形图像处理技术的不断进步,三维模型技术越来越多的应用于互联网领域。浏览三维模型时,需将服务器端的模型文件传输到客户端的浏览器上,渲染生成模型,直接使用高精度模型不便于存储、传输和处理。三维技术在给用户带来真实体验的同时,也带来了庞大的模型及纹理数据量。
2、如授权公告号为cn111402380b的中国专利公开了一种gpu压缩纹理处理方法。它具体包括如下步骤:对gpu压缩纹理资源进一步编码,使用类似矢量量化的方法处理数据块,通过控制均方误差重新计算像素调色盘索引,然后借鉴差分编码思想,去除空间冗余度并生成像素调色盘索引字典,对全部数据块中的像素进行ycocg变换和离散小波压缩,进一步去除数据冗余度,最后基于非对称数字系统的有限状态熵编码方法处理并交织数据流,生成高效压缩纹理资源。该发明的有益效果是:降低压缩纹理资源的存储尺寸;降低数据冗余度并提高解码性能和加载效率;降低显存占用,提高素材资源的加载速度,降低cpu负载;降低存储和网络传输成本,提高素材资源的加载和解码速度,解决存储空间和解码效率矛盾。
3、如授权公告号为cn115409906b的中国专利公开了一种大规模倾斜摄影模型轻量化方法与装置,该方法包括:步骤s1:读取现有数据源中的模型根节点,统计模型的包围盒、根节点数目和模型的瓦片范围,计算模型的优化层级;步骤s2:基于步骤s1中的模型根节点,计算新的模型瓦片范围,建立新的模型索引树;步骤s3:根据步骤s2中构建的索引树,计算新模型根节点;所述计算新模型根节点包括生成模型的几何网格和纹理;步骤s4:根据步骤s3中的新模型根节点,对模型进行压缩;所述压缩包括对几何网格和纹理数据的压缩。该发明基于现有的倾斜模型的组织结构,通过生成更高层次节点及lod信息,并利用几何和纹理数据压缩算法,实现大规模倾斜摄影模型在webgl环境下的高效调度与流畅渲染。
4、以上专利存在的问题:我们获取的大多数纹理样本是低分辨率和局部的,不能直接被用来绘制复杂三维场景,在压缩后再渲染时,渲染的效果很差,无法直接应用。
技术实现思路
1、针对现有技术的不足,本发明提出了基于图像编码的三维模型纹理数据高效压缩方法及系统,获取三维模型表面的纹理数据,对获取的三维模型表面的纹理数据进行预处理,对预处理后的三维模型进行网格化,将三维网格上点与点之间的关系映射到二维参数域上,转换成二维模型,将二维模型分割成均匀的三角网格,以分割得到的三角形网格作为基础的合成单元进行合成,利用图像编码策略,对合成后的三角形网格进行压缩,再将压缩后的数据应用到三维模型上,对压缩后的三维模型纹理数据进行测试,评估质量和压缩效果,并根据实际情况进行调整和优化。
2、为实现上述目的,本发明提供如下技术方案:
3、基于图像编码的三维模型纹理数据高效压缩方法,包括以下具体步骤:
4、步骤s1:获取三维模型表面的纹理数据;
5、步骤s2:对获取的三维模型表面的纹理数据进行预处理;
6、步骤s3:对预处理后的三维模型进行网格化,将三维网格上点与点之间的关系映射到二维参数域上,转换成二维模型;
7、步骤s4:将二维模型分割成均匀的三角网格,以分割得到的三角形网格作为基础的合成单元进行合成;
8、步骤s5:利用图像编码策略,对合成后的三角形网格进行压缩,再将压缩后的数据应用到三维模型上;
9、步骤s6:对压缩后的三维模型纹理数据进行测试,评估质量和压缩效果,并根据实际情况进行调整和优化。
10、具体的,所述步骤s2中的预处理包括:数据清洗,清洗冗余数据和重复数据。
11、具体的,所述步骤s3的具体步骤为:
12、步骤s301:以三维模型中任意一点为原点,建立空间直角坐标系;
13、步骤s302:设定三维模型中的点为三维曲面上的顶点,,且,表示三维模型纹理数据集合,将三维网格上点与点之间的关系映射到二维参数域上,映射公式为:
14、,
15、其中,表示映射符号,表示三维模型纹理映射函数,,表示三维网格上的点映射到二维参数域上对应的点,表示二维参数域横坐标映射函数,表示二维参数域纵坐标映射函数。
16、具体的,所述步骤s4的具体步骤为:
17、步骤s401:将二维模型分割成均匀的三角网格,任意选取一个三角网格s,对三角网格s进行纹理匹配;
18、步骤s402:计算三角网格s与三角网格s相邻的三角网格优先度,选取优先度最高的三角网格进行合成,再计算三角网格与三角网格相邻的三角网格优先度,选取优先度最高的三角网格进行合成;
19、步骤s403:重复步骤s402,直至所有三角网格完成合成;
20、步骤s404:以合成的两个三角网格作为检测模板,计算检测模板在三维模型表面的纹理数据构成的样图中最匹配的块,将匹配块按检测模板三角网格的位置拷贝到检测模板三角网格上;
21、步骤s405:对拷贝后的三角网格与相邻三角网格的边界区域进行处理;
22、步骤s406:重复步骤s404-s405,直至所有三角网格完成处理。
23、具体的,所述步骤s404的具体步骤为:
24、步骤s4041:计算检测模板与三维模型表面的纹理数据构成的样图匹配的误差,计算公式为:
25、,
26、其中,wc表示检测模板与三维模型表面的纹理数据构成的样图匹配的误差,k表示检测模板中含有的像素数量,表示检测模板的特征函数,表示检测模板,表示三维模型表面的纹理数据构成的样图,表示检测模板在三维模型表面的纹理数据构成的样图上的位移量;
27、步骤s4042:选择作为最匹配的块,表示取最小值函数。
28、具体的,所述步骤s5的具体步骤为:
29、步骤s501:随机选取合成后的二维模型中的像素点,分别计算与像素点相邻的2个像素区域内,水平方向、45度方向、垂直方向和135度方向的梯度值,计算公式为:
30、,
31、,
32、,
33、,
34、其中,表示与像素点相邻的2个像素区域内,水平方向的梯度值,表示与像素点相邻的2个像素区域内,45度方向的梯度值,表示与像素点相邻的2个像素区域内,垂直方向的梯度值,表示与像素点相邻的2个像素区域内,135度方向的梯度值;
35、步骤s502:选取最小梯度值方向为最终梯度方向,即,,,,表示最终梯度方向;
36、步骤s503:根据像素点的3个颜色分量r、g和b,去除像素分量之间的冗余数据,计算公式为:
37、,
38、其中,表示和分量的预测值,表示g分量的分量残差,和表示线性模型的系数;
39、步骤s504:根据最终梯度方向,去除二维模型中所有像素分量之间的冗余数据。
40、基于图像编码的三维模型纹理数据高效压缩系统,包括:纹理数据获取模块,纹理数据预处理模块,三维模型降维模块,三角网格合成模块,图像编码压缩模块和调整优化模块;
41、所述纹理数据获取模块,用于获取三维模型表面的纹理数据;
42、所述纹理数据预处理模块,用于对获取的三维模型表面的纹理数据进行预处理;
43、所述三维模型降维模块,用于对预处理后的三维模型进行网格化,将三维网格上点与点之间的关系映射到二维参数域上,转换成二维模型;
44、所述三角网格合成模块,用于将二维模型分割成均匀的三角网格,以分割得到的三角形网格作为基础的合成单元进行合成;
45、所述图像编码压缩模块,用于利用图像编码策略,对合成后的三角形网格进行压缩,再将压缩后的数据应用到三维模型上;
46、所述调整优化模块,用于对压缩后的三维模型纹理数据进行测试,评估质量和压缩效果,并根据实际情况进行调整和优化。
47、具体的,所述三角网格合成模块包括:三角网格分割单元和三角网格合成单元;
48、所述三角网格分割单元,用于将二维模型分割成均匀的三角网格;
49、所述三角网格合成单元,用于将分割后的三角网格进行合成。
50、具体的,所述图像编码压缩模块包括:梯度方向选择单元和冗余数据去除单元;
51、所述梯度方向选择单元,用于计算与像素点相邻的2个像素区域内,水平方向、45度方向、垂直方向和135度方向的梯度值,并选取最终梯度方向;
52、所述冗余数据去除单元,用于去除二维模型中所有像素分量之间的冗余数据。
53、一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于图像编码的三维模型纹理数据高效压缩方法的步骤。
54、一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行基于图像编码的三维模型纹理数据高效压缩方法的步骤。
55、与现有技术相比,本发明的有益效果是:
56、1.本发明提出基于图像编码的三维模型纹理数据高效压缩系统,并进行了架构、运行步骤和流程上的优化改进,系统具备流程简单,投资运行费用低廉,生产工作成本低的优点。
57、2.本发明提出基于图像编码的三维模型纹理数据高效压缩方法,在合成的过程中,保证了纹理本身的连贯性和方向尺度的连续变化,有效的提高了纹理的分辨率,并且能够从局部扩散到全部,从而能够直接被用来绘制复杂的三维场景。
58、3.本发明提出基于图像编码的三维模型纹理数据高效压缩方法,利用图像编码技术,对二维模型图像的梯度进行选择,再将像素分量之间的冗余数据去除,结合选择的最终梯度值,对二维模型中的所有分量之间的冗余数据进行去除,有效地提高了压缩的效率。