三维网格数据的编码、解码方法以及编码、解码装置制造方法

文档序号:7816063阅读:356来源:国知局
三维网格数据的编码、解码方法以及编码、解码装置制造方法
【专利摘要】本发明提供了一种三维网格数据的编码、解码方法以及编码、解码装置。三维网格数据包括一个或者多个多面体网格单元,其中编码方法包括:获取一网格单元的顶点的索引信息以及顶点的坐标信息;对索引信息进行预测压缩,生成拓扑信息;对坐标信息进行预测压缩,生成几何信息;根据拓扑信息以及几何信息,交叉编码生成所述网格单元的网格单元信息;以及输出所述网格单元信息。根据本发明的方法以及装置能够获得较高的压缩率而不损失任何细节信息,减少了对网络带宽的依赖,而且适于流式增量编码,不需要在编码开始时一次性获取全部网格数据,因此能够降低数据传输的开销,避免传输延迟,进而改善互联网传输网格大数据的用户体验。
【专利说明】
三维网格数据的编码、解码方法以及编码、解码装置

【技术领域】
[0001]本发明涉及一种三维网格数据的处理领域,尤其涉及能够获得较高的压缩率,而且适于流式增量编码的三维网格数据的编码、解码方法以及编码、解码装置。

【背景技术】
[0002]目前,互联网应用越来越广泛,基于互联网传输大数据的需求也越来越多。在网络大数据中,例如三维六面体的多面体网格由于其良好的空间描述能力,被广泛应用于计算机图形、有限元建模等诸多领域。随着网格模型的细节越来越丰富,数据量也随之增长,在基于互联网传输网格模型时内存容量和网络带宽成为传输的瓶颈。
[0003]为了提高互联网传输的效率往往需要对网格数据进行简化压缩。如今,已提出了如下的各种各样的三维数据的编解码的技术。
[0004]第200910091152.6号专利提供了一种三维网格编码、解码方法及编码、解码装置。编码方法包括以下步骤:生成原始几何图像、第一法向量纹理图像;根据所述原始几何图像的码流生成第一预测法向量纹理图像;计算第一法向量纹理图像的预测残差;生成所述预测残差的码流,并输出所述原始几何图像的码流和所述预测残差的码流。编码装置包括:生成模块,第一编码模块,第一预测模块,第一计算模块,第二编码模块。其中解码方法和装置分别对应于编码方法和装置。本发明提供的编码、解码方法及编码、解码装置通过几何图像和法向量纹理图像的预测残差重构三维网格,在保证相同码流大小的情况下,提高了三维网格所表现的渲染效果。然而,这种技术仍然存在编码端负载过大,存储开销高的问题。不仅如此,解码端不能实现增量解码,存在互联网传输不便的问题。
[0005]第201080006810.8号专利则提供了 3D网格模型被广泛地用于表示3D对象的各种应用。这些模型由可以基于预测和残差被压缩的顶点和对应的三角形组成。本发明改进了平行四边形预测的精度,特别是在尖锐的特征附近。所提出的3D网格模型编码包括:分析三角形之间的空间角或二面角,将具有类似或者相等的二面角的三角形进行群集,并且为每个群集定义代表性的二面角。然后根据群集将每个群集的三角形相对于具有代表性二面角的各个预测三角形进行编码。另外,预测三角形可以被镜像。将编码模式的指示插入到编码的比特流的每个顶点中。解码器提取编码模式指示,基于相应的代表性二面角重构各个预测三角形并且执行三角形预测和重构。但这种技术的缺点是:编码端负载过大,存储开销高,压缩率较低,数据量过大。
[0006]第201210078435.9还提供了一种基于预测的三维网格编码方法,其在预测法向量纹理图像时,充分考虑了几何图像和法向量纹理图像之间以及法向量纹理图像三个分量之间的相关性,所预测的法向量图像的质量更高,从而使得预测残差更小,更便于编码传输,并且使得解码后的法向量纹理图像的质量得到了极大的提高,重构的三维网格模型的真实感效果提升,使用户得到更好的视觉体验。但该技术仍然具有数据相关性过高、不能无损重建的缺陷。


【发明内容】

[0007]因此,上述技术均不能很好地满足实际使用场景的需求。现有的压缩技术除非损失数据的细节信息,则不能获得较高压缩率。此外,为了使得传输更加通畅,更提倡采用流式增量编解码技术。通过该技术,不需要在编码开始时一次性获取全部网格数据,而在发送端实现对部分数据的编码和发送,与此同时,在接收端实现对部分数据的接收与重构,从而降低数据传输的开销,避免传输延迟。
[0008]本发明鉴于以上课题完成,其目的在于,提供一种三维网格数据的编码、解码方法以及编码、解码装置,能够获得较高的压缩率的同时适用于流式增量编码,其不但不损失任何细节信息,还能减少对网络带宽的依赖,不需要在编码开始时一次性获取全部网格数据,因此能够降低数据传输的开销,避免传输延迟,进而改善互联网传输网格大数据的用户体验。
[0009]本发明的一个实施例提供一种三维网格数据的编码方法,所述三维网格数据包括一个或者多个多面体网格单元,其中包括:获取网格单元的顶点的索引信息以及所述顶点的坐标信息;对所述索引信息进行预测压缩,生成拓扑信息;对所述坐标信息进行预测压缩,生成几何信息;根据所述拓扑信息以及所述几何信息,交叉编码生成所述网格单元的网格单元信息;以及输出所述网格单元信息。
[0010]本发明的实施例还提供一种三维网格数据的解码方法,用于解码通过本发明的编码方法生成的网格单元信息,其中包括:接收所述网格单元信息;对所述网格单元信息中的所述拓扑信息进行解压缩,获得所述网格单元的顶点的索引信息;对所述网格单元信息中的所述几何信息进行解压缩,获得所述网格单元的顶点的坐标信息;以及根据所述索引信息以及所述坐标信息,重构所述网格单元。
[0011]本发明的实施例还提供一种三维网格数据的编码装置,所述三维网格数据包括一个或者多个多面体网格单元,其中包括:网格单元获取模块,配置来获取网格单元的顶点的索引信息以及所述顶点的坐标信息;拓扑信息编码模块,配置来对所述索引信息进行预测压缩,生成拓扑信息;几何信息编码模块,配置来对所述坐标信息进行预测压缩,生成几何信息;网络单元生成模块,配置来根据所述拓扑信息以及所述几何信息,交叉编码生成所述网格单元的网格单元信息;以及输出模块,配置来输出所述网格单元信息。
[0012]本发明的实施例还提供一种解码装置,用于解码通过本发明的编码方法所生成的网格单元信息,其中包括:接收模块,配置来接收所述网格单元信息;索引信息解码模块,配置来对所述网格单元信息中的所述拓扑信息进行解压缩,获得所述网格单元的顶点的索引信息;坐标信息解码模块,配置来对所述网格单元信息中的所述几何信息进行解压缩,获得所述网格单元的顶点的坐标信息;以及重构模块,根据所述索引信息以及所述坐标信息,重构所述网格单元。
[0013]根据本发明的三维网格数据的编码、解码方法以及编码、解码装置,能够获得较高的压缩率而不损失任何细节信息,减少了对网络带宽的依赖,而且适于流式增量编码,不需要在编码开始时一次性获取全部网格数据,因此能够降低数据传输的开销,避免传输延迟,进而改善互联网传输网格大数据的用户体验。

【专利附图】

【附图说明】
[0014]图1是用于说明根据本发明的实施例的三维网格数据的网格单元信息的数据结构的图。
[0015]图2是用于说明根据本发明的实施例的三维网格数据的索引信息的一个示例的图。
[0016]图3是用于说明根据本发明的实施例的三维网格数据的几何编码中需要编码的顶点个数的示意图。
[0017]图4是根据本发明的实施例的三维网格数据的编码方法的流程图。
[0018]图5是根据本发明的实施例的三维网格数据的编码方法中拓扑编码的流程图。
[0019]图6是用于说明根据本发明的实施例的三维网格数据的编码方法中对索引信息进行预测压缩的具体方法的图。
[0020]图7是根据本发明的实施例的三维网格数据的编码方法中几何编码的流程图。
[0021]图8是根据本发明的实施例的三维网格数据的解码方法的流程图。
[0022]图9是根据本发明的实施例的三维网格数据的编码装置的功能框图。
[0023]图10是根据本发明的实施例的三维网格数据的编码装置中拓扑信息编码模块的功能框图。
[0024]图11是根据本发明的实施例的三维网格数据的编码装置中几何信息编码模块的功能框图。
[0025]图12是根据本发明的实施例的三维网格数据的解码装置的功能框图。

【具体实施方式】
[0026]为使本领域的技术人员能够更好地理解本发明的技术方案,下面结合附图详细说明本发明的三维网格数据的处理方法以及处理装置的【具体实施方式】。其中,三维网格数据包括一个或者多个多面体网格单元,该多个多面体网格单元例如可以构成立体图像。为了简单起见,在以下说明中多面体网格单元均以正方体的网格单元为例进行说明。当然,事实上不限于正方体的结构,可以是长方体或者其他六面体、也可以是四面体、八面体、或者更多平面组成的立体单元。应当注意,在本领域普通技术人员不经过创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]【数据结构】
[0028]首先,结合附图来详细说明本发明的三维网格数据的网格单元信息的数据结构。图1是用于说明根据本发明的实施例的三维网格数据的网格单元信息的数据结构的图。如图1所示,每一个网格单元信息均由拓扑信息以及几何信息进行交叉编码而形成。
[0029]拓扑信息用于描述每个网格单元的顶点的索引信息。索引信息可以是每一个顶点的唯一的识别符,识别符例如但不限于用一个整型值来表示。就正方体的网格单元而言,每一个网格单元包括8个顶点,因此例如可以用8个整型值来表示索引信息。本领域技术人员可以理解,如果是其他的多面体结构的网格单元,则可以根据该多面体的顶点的数目来确定索引信息中的整型值的数目。图2是用于说明根据本发明的实施例的三维网格数据的索引信息的一个示例的图。如图2所示,网格I包括8个顶点,其索引信息分别是1、2、3、4、
5、6、7、8。同样地,网格2的8个顶点的索引信息分别是5、6、7、8、9、10、11、12。
[0030]拓扑信息包括索引掩码信息以及索引差值信息。索引掩码信息表示在一个网格单元中每一个顶点的实际的索引信息与预测的索引信息之间的一致或者不一致。由于在本实施例中网格单元为正方体,每一个网格单元具有8个顶点,因此索引掩码信息例如可以由8位二进制比特构成,其中每一个比特对应于该网格单元中的每一个顶点,在比特值为“O”的情况下表示实际的索引信息与预测的索引信息之间一致,在比特值为“I”的情况下表示实际的索引信息与预测的索引信息之间不一致。具体而言,网格单元第3个顶点的实际索引信息与预测出来的索引信息一致时,可以将索引掩码信息的第3位比特值设置为O,而网格单元的第5个顶点的实际索引信息与预测出来的索引信息不一致时,可以将索引掩码信息的第5位比特值设置为I。索引差值信息是当某一个顶点的实际索引信息与预测出来的索引信息不一致时,表示其差值量的信息。典型地,可以通过简单地减法运算来获得索引掩码信息和索引差值信息,即当运算得到的差值量为O时说明两者一致,反之则说明两者不一致并且将该差值量作为索引差值信息。为了节省数据量,优选仅仅在差值量不为0(即实际索引信息与预测出来的索引信息不一致)的情况下生成索引差值信息。此时,数据结构中的索引差值信息的数量等于索引掩码信息中的值为“I”的比特的数目,因此可以通过索引差值信息的生成的顺序来与索引掩码信息进行对应。然而,通过网格单元的非重复等差特性来预测索引信息(具体的预测方法将在后面详细说明),可以保证预测结果在绝大部分情况下是准确的,因此索引掩码信息中值为“I”的比特很少出现,即需要生成索引差值信息的情况很少,进而能够获得较高的数据压缩率。
[0031]这样,通过索引掩码信息能表示网格单元中的哪个顶点的实际索引信息与预测出来的索引信息不一致,然后通过索引差值信息表示每一个不一致的顶点的实际索引信息与预测出来的索引信息相差多少,而其余的预测索引信息与实际的索引信息一致,因此能够通过对索引掩码信息对应的顶点的预测索引信息使用索引差值信息来进行补偿,来获得准确的索引?目息,因此索引掩码?目息和索引差值彳目息包含了完整的索引?目息,而不损失任何细节。
[0032]几何信息用于描述每一个顶点的坐标信息,优选附在拓扑信息之后。在三维网格数据中,每一个顶点的坐标信息例如可以是使用3个浮点值来表示的3个坐标值(X,y, ζ)。
[0033]在本发明中,几何信息包括坐标掩码信息以及坐标差值信息。坐标掩码信息表示一个网格单元中,每一个顶点的每一个坐标值的实际值与预测值之间的一致或者不一致。典型地,由于在本实施例中网格单元为正方体,每一个网格单元具有8个顶点,并且每一个顶点包括3个坐标值,因此坐标掩码信息可以包括24位二进制比特,其中每一个比特对应于该网格单元中的每一个顶点的每一个坐标值。例如,网格单元第3个顶点的X坐标值的实际索引信息与预测出来的索引信息一致时,可以将索引掩码信息中的与第3个顶点的X坐标值对应的比特设置为0,反之,可以将该比特设置为I。坐标差值信息是当某一个顶点的某一个坐标值的实际值与预测值不一致时,表示其差值量的信息。具体而言,可以通过简单地减法运算获得坐标掩码信息和坐标差值信息,即当运算得到的差值量为O时说明两者一致因此将坐标掩码信息中的对应的比特值设置为0,反之则说明两者不一致因此将坐标掩码信息中的对应的比特值设置为I并且将该差值量作为坐标差值信息附到坐标掩码信息的后面。为了节省数据量,优选仅仅在差值量不为0(即实际坐标信息与预测出来的坐标信息不一致)的情况下生成坐标差值信息。此时,坐标差值信息的数量等于坐标掩码信息中的值为“I”的比特的数目,因此可以通过坐标差值信息的生成的顺序来与坐标掩码信息进行对应。然而,采用网格单元的平行六面体法则来预测坐标信息(具体的预测方法将在后面详细说明),可以保证预测结果在绝大部分情况下是准确的,因此坐标掩码信息中值为“I”的比特很少出现,即需要生成坐标差值信息的情况很少,进而能够获得较高的数据压缩率。
[0034]然而,在对多个网格单元进行编码时,由于很多顶点都构成多个网格单元的一部分,因此造成数据冗余度很高。例如,在图2的示例中,对网格I进行编码时,需要对顶点1、
2、3、4、5、6、7、8即共8个顶点进行编码。但接下来对网格2进行编码时,由于顶点5、6、7、8也是网格I的一部分,因此已经进行过编码。如果在对网格2进行编码时也对8个顶点进行编码,顶点5、6、7、8进行了重复编码,构成数据冗余。为了解决这个问题,优选地,可以仅对没有编码过的9、10、11、12即共4个顶点进行编码。图3是用于说明根据本发明的实施例的三维网格数据的几何编码中需要编码的顶点个数的示意图。在图3中,用“?”表示的顶点是已经编码过的顶点。在这种情况下,只要对“〇”表示的顶点进行编码,即可构成一个完整的网格单元。可见,在编码到中间位置时,只需对I个顶点编码就可以定义一个网格单元。事实上,一个立体图像可能包括数百万甚至更多个网格单元,只有立体图像的边缘处的网格单元需要对多个顶点进行编码,其中绝大部分网格单元都只需对I个顶点进行编码,其余7个顶点已被编码到之前的网格单元中。因此,可以按照拓扑信息中出现的顶点的次序,仅对未编码的部分生成的几何信息而附于同一网格单元的拓扑信息之后。通过这种方法,大多数坐标掩码也只需要3位,采用可变长编码对其进行预测压缩,不仅能够大大地减少重复预测,还可以降低数据的冗余度,从而能够获得较高的数据压缩率。
[0035]这样,通过坐标掩码信息能表示网格单元中的哪个顶点的哪个坐标值的实际值与预测值不一致,然后通过坐标差值信息表示每一个不一致的顶点的不一致的坐标值的预测值与实际值之间相差多少,而其余的坐标信息的实际值与预测值一致,可以通过上述预测的方法准确地获得实际值,因此能够通过对坐标掩码信息对应的顶点的坐标值使用坐标差值信息来进行补偿,来获得准确的坐标信息,因此坐标掩码信息和坐标差值信息包含了完整的坐标信息,而不损失任何细节。
[0036]综上所述,拓扑信息描述每个网格单元的顶点的索引信息,因此通过拓扑信息可以知道每一个网格单元都由哪些顶点构成。几何信息描述每一个顶点的坐标信息,因此通过几何信息可以知道每一个顶点的具体位置。可见,拓扑信息结合几何信息能够知道每一个网格单元的每一个顶点的位置,可以构成完整的网格单元信息。在本发明中,将拓扑信息和几何信息编码在统一的网格数据流中,拓扑流和几何流在六面体网格单元粒度上形成交叉编码的混合数据流,这种数据流保持了拓扑索引和顶点几何之间的相对一致性,因此通过在接收端(解码端)进行同样的预测,结合上述网格单元信息,能够没有任何细节损失地重构图像数据。通过依次对三位网格数据的每一个网格单元执行这样的处理,可以在数据传输过程中实现流式增量编码,即数据传输的发送端可以对部分数据进行编码并且进行发送,同时在解码端可以对该部分数据进行接收并且进行解码,从而不需要在编码开始时一次性获取全部网格数据。
[0037]【三维网格数据的编码方法以及解码方法】
[0038](编码方法)
[0039]下面,结合附图来详细说明本发明的三维网格数据的编码方法。图4是根据本发明的实施例的三维网格数据的编码方法的流程图。典型地,编码处理在数据传输的发送端执行。如图4所示,该方法包括以下步骤:
[0040]首先,获取网格单元的顶点的索引信息以及该顶点的坐标信息(步骤S110)。一个立体图像可能包括数百万个甚至更多的网格单元,此时从网格大数据中逐个读取网格单元的索引信息和坐标信息。这些信息是“实际的”索引信息和坐标信息,也就是最原始、最准确的信息。
[0041]接下来,进行拓扑编码,即对索引信息进行预测压缩,生成拓扑信息(步骤S120)。下面,详细说明拓扑编码的详细过程。
[0042]图5是根据本发明的实施例的三维网格数据的编码方法中拓扑编码的流程图。如图5所示,首先,生成索引掩码信息(步骤S121)。正如前面所述,拓扑信息用于描述每个网格单元的顶点的索引信息。就正方体的网格单元而言,每一个网格单元包括8个顶点,因此引掩码信息例如可以是8位,其中每一位对应每一个顶点。
[0043]接下来,对于网格单元的每一个顶点,预测该顶点的索引信息,生成预测索引信息(步骤S122)。图6是用于说明根据本发明的实施例的三维网格数据的编码方法中对索引信息进行预测压缩的具体方法的图。由于多面体具有严格的规律性,可以在网格单元中预先定义一个位置作为规定顶点。具体而言,假设可以将网格I的顶点I对应的位置定义为该网格单元的规定顶点。则网格I的规定顶点为顶点1,网格2的规定顶点为顶点5,如果图2中网格2的右边还存在网格3,则网格3的规定顶点为顶点9。作为一个示例,可以将在步骤SllO中获取的实际的网格X的规定顶点的索引信息为y时,表示为:Index[x] = y,贝丨J Index[l] = UIndex[2] = 5>Index[3] = 9。接下来,对这些顶点的进行预测。预测可以基于拓扑索引的非重复等差特性,采用差分上下文预测的方法,使用索引之差代替索引值作为输入参数来预测下一个索引值。根据图2所示的结构,下一个网格的规定顶点的索引信息与当前的网格的规定顶点的索引信息之差为4。假设第X个网格的规定顶点的预测索引信息表示为PI[x],则根据一个网格单元的规定顶点的实际的索引信息Index[l] = 1,据此能够预测第二个网格单元的规定顶点的索引信息为PI [2] =Index[l]+4 = 50同样地,PI [3] = PI [2]+4 = 9,PI [4] = PI [3]+4 = 13,依次类推,能够生成每一个顶点的预测索引信息。
[0044]接下来,比较网格单元的顶点的索引信息与该顶点的预测索引信息是否一致(步骤S123)。具体而言,例如可以对每一个Index[X]与PI [x]之间的进行减法运算,得到的值为O时说明两者一致,得到的值不为O时说明两者不一致。当判断为两者一致时(步骤S123,是),将索引掩码信息中与该顶点对应的比特设置为O。当判断为两者不一致时(步骤S123,否),将索引掩码信息中与该顶点对应的比特设置为I (步骤S125),并且生成该顶点的索引信息与预测索引信息之间的索引差值信息(步骤S126)。优选地,这个差值信息是在步骤S123中进行减法运算所得出来的值。应当注意,本领域技术人员也可以使用其他的比特值来表示顶点的索引信息与该顶点的预测索引信息一致或者不一致。
[0045]对网格单元的每一个顶点都执行步骤S122至步骤S126后,能够获得完整的索引掩码信息和索引差值信息。最后,根据该索引掩码信息和索引差值信息,生成拓扑信息(步骤S127)。这里,由于多面体的特性规律,能够保证上述预测原则上都是准确的,因此在一般情况下索引掩码信息当中很少由数值为“I”的比特出现。如果仅仅在索引差值信息不为0(即顶点的索引信息与该顶点的预测出来的索引信息不一致)的情况下生成索引差值信息,就能够大幅度地减少索引差值信息的数据数量,从而获得具有较高的压缩率的拓扑信肩、O
[0046]通过上述方法进行拓扑编码后,返回到图4,进行几何编码,即对坐标信息进行预测压缩,生成几何信息(步骤S103)。图7是根据本发明的实施例的三维网格数据的编码方法中几何编码的流程图。如图7所示,首先,生成坐标掩码信息(步骤S131)。正如前面所述,几何信息用于描述每一个顶点的坐标信息。在三维数据中,每一个顶点的坐标信息例如可以是3个坐标值(x,y,z),可以使用3个浮点值来表示。此时,每一个网格单元具有8个顶点,并且每一个顶点包括3个坐标值,因此坐标掩码信息可以包括24位二进制比特,其中每一个比特对应于该网格单元中的每一个顶点的每一个坐标值。但是,正如前面所述,绝大多数网格单元只需对其中I个顶点进行编码,其余7个顶点已经被编码到之前的网格单元中,因此,优选地,在执行几何编码之前,可以先识别该顶点有没有进行过编码,并且仅仅对没有编码过的顶点进行几何编码,并且根据没有编码过的顶点的数目,创建可变长度根据坐标掩码信息。在识别顶点是不是已经被编码过的顶点时,可以利用将顶点的索引信息上设置已编码掩膜的方法进行。通过这样的方法,大多数顶点的坐标掩码信息只需要3位,从而能够大幅度减少数据冗余,进而获得较高的数据压缩率。
[0047]接下来,对于网格单元的每一个顶点的每一个坐标值,预测该顶点的坐标值,生成预测坐标信息(步骤S132)。由于多面体具有严格的规律性,可以基于平行六面体法则,对网格单元的顶点位置进行预测。根据图2所示的结构,假设立方体的边的长度为5,从顶点I至顶点5的方向为X轴正方向,并且网格I的规定顶点(顶点I)的坐标信息Node[l]=(1,1,I)时,网格2的规定顶点(顶点5)的坐标信息的X坐标的坐标值可能是1+5 = 6,而y坐标和ζ坐标的坐标值不变,因此网格2的规定顶点的预测坐标信息PN[2] = (6,I, I),同理,如果网格2的右边还存在网格3时,网格3的规定顶点(顶点9)的坐标信息的X坐标的坐标值可能是6+5 = 11,因此其预测坐标信息PN[3] = (11,I, I),依次类推,能够生成每一个顶点的预测坐标信息。
[0048]接下来,比较网格单元的顶点的坐标信息与该顶点的预测坐标信息是否一致(步骤S133)。具体而言,例如可以将每一个Node [X]的每一个坐标值与PN[x]的每一个坐标值之间的进行减法运算,得到的值为O时说明两者一致,得到的值不为O时说明两者不一致。当判断为两者一致时(步骤S133,是),将坐标掩码信息中与该顶点的该坐标值对应的比特设置为O。当判断为两者不一致时(步骤S133,否),将坐标掩码信息中与该顶点的该坐标值对应的比特设置为I (步骤S135),并且生成顶点的坐标信息中的坐标值与预测坐标信息中的坐标值之间的坐标差值信息(步骤S136)。优选地,这个差值信息是在步骤S133中进行减法运算所得出来的值。应当注意,本领域技术人员也可以使用其他的比特值来表示顶点的坐标信息与该顶点的预测坐标信息一致或者不一致。
[0049]对网格单元的每一个顶点的每一个坐标值都执行步骤S132至步骤S136后,能够获得完整的坐标掩码/[目息和坐标差值/[目息。最后,根据该坐标掩码彳目息和坐标差值/[目息,生成几何信息(步骤S137)。这里,由于多面体的特性规律,能够保证上述预测原则上都是准确的,因此在一般情况下坐标掩码信息当中很少由数值为“I”的比特出现。如果正如上面所述,仅仅在坐标差值信息不为0(即顶点的坐标信息与该顶点的预测出来的坐标信息不一致)的情况下生成坐标差值信息,就能够大幅度地减少坐标差值信息的数据数量,从而获得具有较高的压缩率的几何信息。
[0050]通过上述方法进行几何编码后,返回到图4,根据通过步骤S120以及步骤S130分别获得的拓扑信息以及几何信息,交叉编码生成网格单元的网格单元信息(步骤S140)。
[0051]最后,输出所述网格单元信息(步骤S150),从而完成编码处理。
[0052]通过上述的三维网格数据的编码方法,能够获得较高的压缩率而不损失任何细节信息,减少了对网络带宽的依赖,而且适于流式增量编码,不需要在编码开始时一次性获取全部网格数据,因此能够降低数据传输的开销,避免传输延迟,进而改善互联网传输网格大数据的用户体验。
[0053](解码方法)
[0054]通过本发明的三维网格数据的编码方法编码形成的网格单元信息,还可以解码为索引信息和坐标信息,以重构网格单元。典型地,该解码处理在数据传输的接收端执行。此夕卜,本发明的三维网格数据的编码方法以及解码方法适于流式增量传输,因此每当接收到一个网格单元信息时,即可开始对该网格信息进行解码。下面,结合附图来详细说明解码处理。图8是根据本发明的实施例的三维网格数据的解码方法的流程图。如图8所示:
[0055]首先,接收所述网格单元信息(步骤S210)。正如前面所述,网格单元信息通过拓扑信息和几何信息交叉编码而形成,因此,能够从该网格单元信息解析出拓扑信息和几何信息。
[0056]接下来,进行拓扑解码,即对网格单元信息中的拓扑信息进行解压缩,获得该网格单元的顶点的索引信息(步骤S220)。拓扑信息当中包含了索引掩码信息和索引差值信息。因此可以先按照与编码时相同的方法(例如基于多面体的非重复等差特性)预测索引信息。由于索引掩码信息中的比特与该网格单元的每一个顶点之间一一对应,因此能够根据索引掩码信息,识别预测结果当中哪些顶点的预测索引信息与实际的索引信息之间不一致。在识别出预测索引信息与实际的索引信息之间不一致的顶点时,通过索引差值信息进行补偿。由于编码时和解码时使用完全相同的方法进行预测,因此将预测结果通过索引掩码信息以及索引差值信息校正预测的误差后,能够获得准确的索引信息而不损失任何细节信息。
[0057]接下来,进行几何解码,即对所述网格单元信息中的所述几何信息进行解压缩,获得该网格单元的顶点的坐标信息(步骤S230)。几何信息当中包含了坐标掩码信息和坐标差值信息。因此可以先按照与编码时相同的方法(例如采用平行六面体法则)预测坐标信息。由于坐标掩码信息中的比特与该网格单兀的每一个顶点的每一个坐标值之间对应,因此能够根据坐标掩码信息,能够识别预测结果当中哪些顶点的哪些坐标值与实际的坐标信息之间不一致。在识别出预测坐标信息与实际的坐标信息之间不一致的顶点的坐标值时,通过坐标差值信息进行对该顶点的坐标值进行补偿。由于编码时和解码时使用完全相同的方法进行预测,因此将预测结果通过坐标掩码信息以及坐标差值信息校正预测的误差后,能够获得准确的坐标/[目息而不损失任何细节/[目息。
[0058]最后,根据所述索引信息以及所述坐标信息,重构所述网格单元(步骤S240),从而能够获得没有任何细节损失的网格单元,完成解码处理。
[0059]通过上述的三维网格数据的解码方法,能够获得较高的压缩率而不损失任何细节信息,减少了对网络带宽的依赖,而且适于流式增量编码,不需要在编码开始时一次性获取全部网格数据,因此能够降低数据传输的开销,避免传输延迟,进而改善互联网传输网格大数据的用户体验。
[0060]以上说明了本发明的多个图层的图像的显示方法的多个实施例。显然,本领域技术人员在不脱离本发明的精神和范围内可以对上述实施例作出各种组合、修改或者变形。本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061 ]【三维网格数据的编码装置以及解码装置】
[0062](编码装置)
[0063]下面,结合附图来详细说明本发明的三维网格数据的编码装置。图9是根据本发明的实施例的三维网格数据的编码装置的功能框图。典型地,该处理装置作为数据传输的发送端。如图9所示,处理装置100包括:网格单元获取模块110、拓扑信息编码模块120、几何信息编码模块130、网格单元生成模块140以及输出模块150。
[0064]网格单元获取模块110用于获取网格单元的顶点的索引信息以及该顶点的坐标信息。一个立体图像可能包括数百万个甚至跟多的网格单元,此时从网格大数据中逐个读取网格单兀的索引/[目息和坐标/[目息。这些/[目息是“实际的”索引/[目息和坐标/[目息,也就是最原始、最准确的信息。
[0065]拓扑信息编码模块120用于进行拓扑编码,即对索引信息进行预测压缩,生成拓扑信息。下面,详细说明拓扑编码的详细过程。图10是根据本发明的实施例的三维网格数据的编码装置中拓扑信息编码模块的功能框图。如图10可知,拓扑信息编码模块120包括:索引掩码信息生成模块121、索引差值信息生成模块122以及拓扑信息生成模块123。
[0066]索引掩码信息生成模块121用于生成索引掩码信息。正如前面所述,拓扑信息用于描述每个网格单元的顶点的索引信息。就正方体的网格单元而言,每一个网格单元包括8个顶点,因此索引掩码信息例如可以是8位,其中每一位对应每一个顶点。接下来,对于网格单元的每一个顶点,预测该顶点的索引信息,生成预测索引信息。由于多面体具有严格的规律性,可以在网格单元中预先定义一个位置作为规定顶点。具体而言,假设可以将网格I的顶点I对应的位置定义为该网格单元的规定顶点。贝IJ网格I的规定顶点为顶点1,网格2的规定顶点为顶点5,如果图2中网格2的右边还存在网格3,则网格3的规定顶点为顶点9。作为一个示例,可以将网格单元获取模块110获取的实际的网格X的规定顶点的索引信息为 Y 时,表示为:Index[x] = y,贝丨J Index[l] = UIndex[2] = 5>Index[3] = 9。接下来,对这些顶点的进行预测。预测可以基于拓扑索引的非重复等差特性,采用差分上下文预测的方法,使用索引之差代替索引值作为输入参数来预测下一个索引值。根据图2所示的结构,下一个网格的规定顶点的索引信息与当前的网格的规定顶点的索引信息之差为4。假设第X个网格的规定顶点的预测索引信息表示为PI [X],则根据一个网格单元的规定顶点的实际的索引信息Index[l] = 1,据此能够预测第二个网格单元的规定顶点的索引信息为 PI [2] = Index [I]+4 = 5。同样地,PI [3] = PI [2]+4 = 9,PI [4] = PI [3]+4 = 13,依次类推,能够生成每一个顶点的预测索引信息。接下来,比较网格单元的顶点的索引信息与该顶点的预测索引信息是否一致。具体而言,例如可以对每一个IndeX[X]与PI[x]之间的进行减法运算,得到的值为O时说明两者一致,得到的值不为O时说明两者不一致。索引掩码信息生成模块121当判断为两者一致时,将索引掩码信息中与该顶点对应的比特设置为O。当判断为两者不一致时,将索引掩码信息中与该顶点对应的比特设置为I。
[0067]索引差值信息生成模块122用于生成该顶点的索引信息与预测索引信息之间的索引差值信息。优选地,这个差值信息是在上述进行减法运算所得出来的值。应当注意,本领域技术人员也可以使用其他的比特值来表示顶点的索引信息与该顶点的预测索引信息一致或者不一致。对网格单元的每一个顶点都执行上述处理后,能够获得完整的索引掩码Ih息和索弓I差值息。
[0068]拓扑信息生成模块123用于根据该索引掩码信息和索引差值信息,生成拓扑信息。这里,由于多面体的特性规律,能够保证上述预测原则上都是准确的,因此在一般情况下索引掩码信息当中很少由数值为“I”的比特出现。如果仅仅在索引差值信息不为0(即顶点的索引信息与该顶点的预测出来的索引信息不一致)的情况下生成索引差值信息,就能够大幅度地减少索引差值信息的数据数量,从而获得具有较高的压缩率的拓扑信息。
[0069]几何信息编码模块130用于进行几何编码,即对坐标信息进行预测压缩,生成几何信息。图11是根据本发明的实施例的三维网格数据的编码装置中几何信息编码模块的功能框图。如图11所示,几何信息编码模块130包括:坐标掩码信息生成模块131、坐标差值信息生成模块132以及几何信息生成模块133。
[0070]坐标掩码信息生成模块131用于生成坐标掩码信息。正如前面所述,几何信息用于描述每一个顶点的坐标信息。在三维数据中,每一个顶点的坐标信息例如可以是3个坐标值(X,y, ζ),可以使用3个浮点值来表示。此时,每一个网格单元具有8个顶点,并且每一个顶点包括3个坐标值,因此坐标掩码信息可以包括24位二进制比特,其中每一个比特对应于该网格单元中的每一个顶点的每一个坐标值。但是,正如前面所述,绝大多数网格单元只需对其中I个顶点进行编码,其余7个顶点已经被编码到之前的网格单元中,因此,优选地,在执行几何编码之前,可以先识别该顶点有没有进行过编码,并且仅仅对没有编码过的顶点进行几何编码,并且根据没有编码过的顶点的数目,创建可变长度根据坐标掩码信息。在识别顶点是不是已经被编码过的顶点时,可以利用将顶点的索引信息上设置已编码掩膜的方法进行。通过这样的方法,大多数顶点的坐标掩码信息只需要3位,从而能够大幅度减少数据冗余,进而获得较高的数据压缩率。接下来,对于网格单元的每一个顶点的每一个坐标值,预测该顶点的坐标值,生成预测坐标信息。由于多面体具有严格的规律性,可以基于平行六面体法则,对网格单元的顶点位置进行预测。根据图2所示的结构,假设立方体的边的长度为5,从顶点I至顶点5的方向为X轴正方向,并且网格I的规定顶点(顶点I)的坐标信息Node [I] = (I, I, I)时,网格2的规定顶点(顶点5)的坐标信息的x坐标的坐标值可能是1+5 = 6,而y坐标和ζ坐标的坐标值不变,因此网格2的规定顶点的预测坐标信息PN[2] = (6,1,I),同理,如果网格2的右边还存在网格3时,网格3的规定顶点(顶点9)的坐标信息的X坐标的坐标值可能是6+5 = 11,因此其预测坐标信息PN[3] = (11,I, I),依次类推,能够生成每一个顶点的预测坐标信息。接下来,比较网格单元的顶点的坐标信息与该顶点的预测坐标信息是否一致。具体而言,例如可以将每一个Node[X]的每一个坐标值与PN[x]的每一个坐标值之间的进行减法运算,得到的值为O时说明两者一致,得到的值不为O时说明两者不一致。坐标掩码信息生成模块131当判断为两者一致时,将坐标掩码信息中与该顶点的该坐标值对应的比特设置为O。当判断为两者不一致时,将坐标掩码信息中与该顶点的该坐标值对应的比特设置为I。
[0071]几何差值信息生成模块132用于生成顶点的坐标信息中的坐标值与预测坐标信息中的坐标值之间的坐标差值信息。优选地,这个差值信息是在上述进行减法运算时所得出来的值。应当注意,本领域技术人员也可以使用其他的比特值来表示顶点的坐标信息与该顶点的预测坐标信息一致或者不一致。对网格单元的每一个顶点的每一个坐标值都执行上述处理后,能够获得完整的坐标掩码?目息和坐标差值?目息。
[0072]几何信息生成模块133用于根据该坐标掩码信息和坐标差值信息,生成几何信息。这里,由于多面体的特性规律,能够保证上述预测原则上都是准确的,因此在一般情况下坐标掩码信息当中很少由数值为“I”的比特出现。如果正如上面所述,仅仅在坐标差值信息不为0(即顶点的坐标信息与该顶点的预测出来的坐标信息不一致)的情况下生成坐标差值信息,就能够大幅度地减少坐标差值信息的数据数量,从而获得具有较高的压缩率的几何信息。
[0073]网格单元生成模块140用于根据拓扑信息编码模块120生成的拓扑信息以及几何信息编码模块130生成的几何信息,交叉编码生成网格单元的网格单元信息。
[0074]输出模块150用于输出网格单元生成模块140生成的网格单元信息。
[0075]通过上述的三维网格数据的编码装置,能够获得较高的压缩率而不损失任何细节信息,减少了对网络带宽的依赖,而且适于流式增量编码,不需要在编码开始时一次性获取全部网格数据,因此能够降低数据传输的开销,避免传输延迟,进而改善互联网传输网格大数据的用户体验。
[0076](解码装置)
[0077]通过本发明的三维网格数据的编码装置生成的网格单元信息,还可以通过解码装置解码为索引信息和坐标信息,以重构网格单元。典型地,该解码处理在数据传输的接收端执行。此外,本发明的三维网格数据的处理方法适于流式增量传输,因此每当接收到一个网格单元信息时,即可开始对该网格信息进行解码。下面,结合附图来详细说明解码处理。图12是根据本发明的实施例的三维网格数据的解码装置的功能框图。如图12所示,解码装置200包括:接收模块210、索引信息解码模块220、坐标信息解码模块230以及重构模块240。
[0078]接收模块210用于接收所述网格单元信息。网格单元信息通过本发明的编码装置100拓扑信息和几何信息交叉编码而形成,因此,能够从该网格单元信息解析出拓扑信息和几何信息。
[0079]索引信息解码模块220用于进行拓扑解码,即对网格单元信息中的拓扑信息进行解压缩,获得该网格单元的顶点的索引信息。拓扑信息当中包含了索引掩码信息和索引差值信息。因此可以先按照与编码时相同的方法(例如基于多面体的非重复等差特性)预测索引信息。由于索引掩码信息中的比特与该网格单元的每一个顶点之间一一对应,因此能够根据索引掩码信息,识别预测结果当中哪些顶点的预测索引信息与实际的索引信息之间不一致。在识别出预测索引信息与实际的索引信息之间不一致的顶点时,通过索引差值信息进行补偿。由于编码时和解码时使用完全相同的方法进行预测,因此将预测结果通过索引掩码信息以及索引差值信息校正预测的误差后,能够获得准确的索引信息而不损失任何细节信息。
[0080]坐标信息解码模块230用于进行几何解码,即对所述网格单元信息中的所述几何信息进行解压缩,获得该网格单元的顶点的坐标信息。几何信息当中包含了坐标掩码信息和坐标差值信息。因此可以先按照与编码时相同的方法(例如采用平行六面体法则)预测坐标信息。由于坐标掩码信息中的比特与该网格单元的每一个顶点的每一个坐标值之间一一对应,因此能够根据坐标掩码信息,能够识别预测结果当中哪些顶点的哪些坐标值与实际的坐标信息之间不一致。在识别出预测坐标信息与实际的坐标信息之间不一致的顶点的坐标值时,通过坐标差值信息进行对该顶点的坐标值进行补偿。由于编码时和解码时使用完全相同的方法进行预测,因此将预测结果通过坐标掩码信息以及坐标差值信息校正预测的误差后,能够获得准确的坐标/[目息而不损失任何细节/[目息。
[0081]重构模块240用于根据索引信息解码模块220生成的索引信息以及坐标信息解码模块230生成的坐标信息,重构所述网格单元,从而能够获得没有任何细节损失的网格单
J Li ο
[0082]通过上述的三维网格数据的解码装置,能够获得较高的压缩率而不损失任何细节信息,减少了对网络带宽的依赖,而且适于流式增量编码,不需要在编码开始时一次性获取全部网格数据,因此能够降低数据传输的开销,避免传输延迟,进而改善互联网传输网格大数据的用户体验。
[0083]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明的编码装置以及解码装置可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0084]以上说明了本发明的三维网格数据的处理装置的多个实施例。显然,本领域技术人员在不脱离本发明的精神和范围内可以对上述实施例作出各种组合、修改或者变形。本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
【权利要求】
1.一种三维网格数据的编码方法,所述三维网格数据包括一个或者多个多面体网格单元,其中包括: 获取网格单元的顶点的索引信息以及所述顶点的坐标信息; 对所述索引信息进行预测压缩,生成拓扑信息; 对所述坐标信息进行预测压缩,生成几何信息; 根据所述拓扑信息以及所述几何信息,交叉编码生成所述网格单元的网格单元信息;以及 输出所述网格单元信息。
2.根据权利要求1所述的编码方法,其中, 所述多面体网格单元为六面体网格单元。
3.根据权利要求1所述的编码方法,其中, 所述对所述索引信息进行预测压缩,生成拓扑信息包括: 生成索引掩码信息,所述索引掩码信息的每一个比特分别对应于所述多面体网格单元的每一个顶点; 对于所述网格单元的每一个顶点预测所述顶点的索引信息,生成预测索引信息;当所述网格单元的顶点的索引信息与所述顶点的预测索引信息一致时,将所述索引掩码信息中与所述顶点对应的比特设置为第一数值; 当所述网格单元的顶点的索引信息与所述顶点的预测索引信息不一致时,将所述索引掩码信息中与所述顶点对应的比特设置为第二数值,并且生成所述索引信息与所述预测索引信息之间的索引差值信息;以及 根据所述索引掩码信息和所述索引差值信息,生成拓扑信息。
4.根据权利要求1所述的编码方法,其中, 所述对所述坐标信息进行预测压缩,生成几何信息包括: 生成坐标掩码信息,所述坐标掩码信息中的每一个比特分别对应于所述网格单元中没有编码过的每一个顶点的每一个坐标值; 对于没有编码过的所述网格单元的每一个顶点的每一个坐标值,预测所述顶点的坐标值,生成预测坐标信息; 当所述网格单元的所述顶点的坐标信息与所述顶点的预测坐标信息一致时,将所述坐标掩码信息中与所述顶点的所述坐标值对应的比特设置为第一数值; 当所述网格单元的所述顶点的坐标信息与所述顶点的预测坐标信息不一致时,将所述坐标掩码信息中与所述顶点的所述坐标值对应的比特设置为第二数值,并且生成所述顶点的所述坐标信息中的坐标值与所述预测坐标信息中的坐标值之间的坐标差值信息;以及根据所述坐标掩码信息和所述坐标差值信息,生成几何信息。
5.一种三维网格数据的解码方法,用于解码如权利要求1所述的方法所生成的网格单元信息,其中包括: 接收所述网格单元信息; 对所述网格单元信息中的所述拓扑信息进行解压缩,获得所述网格单元的顶点的索引信息; 对所述网格单元信息中的所述几何信息进行解压缩,获得所述网格单元的顶点的坐标/[目息;以及 根据所述索引信息以及所述坐标信息,重构所述网格单元。
6.一种三维网格数据的编码装置,所述三维网格数据包括一个或者多个多面体网格单元,其中包括: 网格单元获取模块,配置来获取网格单元的顶点的索引信息以及所述顶点的坐标信息; 拓扑信息编码模块,配置来对所述索引信息进行预测压缩,生成拓扑信息; 几何信息编码模块,配置来对所述坐标信息进行预测压缩,生成几何信息; 网络单元生成模块,配置来根据所述拓扑信息以及所述几何信息,交叉编码生成所述网格单元的网格单元信息;以及 输出模块,配置来输出所述网格单元信息。
7.如权利要求6所述的编码装置,其中, 所述多面体网格单元为六面体网格单元。
8.如权利要求6所述的编码装置,其中, 所述拓扑信息编码模块包括: 索引掩码信息生成模块,配置来生成索引掩码信息,所述索引掩码信息的每一个比特分别对应于所述多面体网格单元的每一个顶点; 索引差值信息生成模块,配置来对于所述网格单元的每一个顶点预测所述顶点的索引信息,生成预测索引信息当所述网格单元的顶点的索引信息与所述顶点的预测索引信息一致时,将所述索引掩码信息中与所述顶点的对应的比特设置为第一数值;当所述网格单元的顶点的索引信息与所述顶点的预测索引信息不一致时,将所述索引掩码信息中与所述顶点的对应的比特设置为第二数值,并且生成所述索引信息与所述预测索引信息之间的索引差值?目息,以及 拓扑信息生成模块,配置来根据所述索引掩码信息和所述索引差值信息,生成拓扑信肩、O
9.如权利要求6所述的编码装置,其中, 所述几何信息编码模块包括: 坐标掩码信息生成模块,配置来生成坐标掩码信息,所述坐标掩码信息中的每一个比特分别对应于所述网格单元中没有编码过的每一个顶点的每一个坐标值; 坐标差值信息生成模块,配置来对于没有编码过的所述网格单元的每一个顶点的每一个坐标值,预测所述顶点的坐标值,生成预测坐标信息;当所述网格单元的所述顶点的坐标信息与所述顶点的预测坐标信息一致时,将所述坐标掩码信息中与所述顶点的所述坐标值对应的比特设置为第一数值;当所述网格单元的所述顶点的坐标信息与所述顶点的预测坐标信息不一致时,将所述坐标掩码信息中与所述顶点的所述坐标值对应的比特设置为第二数值,并且生成所述顶点的所述坐标信息中的坐标值与所述预测坐标信息中的坐标值之间的坐标差值/[目息;以及 几何信息生成模块,配置来根据所述坐标掩码信息和所述坐标差值信息,生成几何信肩、O
10.一种解码装置,用于解码如权利要求6所述的编码装置所生成的网格单元信息,其中包括: 接收模块,配置来接收所述网格单元信息; 索引信息解码模块,配置来对所述网格单元信息中的所述拓扑信息进行解压缩,获得所述网格单元的顶点的索引信息; 坐标信息解码模块,配置来对所述网格单元信息中的所述几何信息进行解压缩,获得所述网格单元的顶点的坐标信息;以及 重构模块,根据所述索引信息以及所述坐标信息,重构所述网格单元。
【文档编号】H04N19/184GK104243958SQ201410515909
【公开日】2014年12月24日 申请日期:2014年9月29日 优先权日:2014年9月29日
【发明者】吉亮 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1