渐进的3d网格编码方法和设备的制作方法

文档序号:6416918阅读:226来源:国知局
专利名称:渐进的3d网格编码方法和设备的制作方法
技术领域
本发明涉及三维(3D)网格数据的编码,更具体地说是涉及采用对于用在运动图象专家组-4合成和自然混合编码(MPEG-4SNHC)、虚拟现实模型语言(VRML)等的领域中的三维(3D)网格数据的拓扑手术的渐进的编码方法和设备。
在由3D网格数据构成的3D对象的发送中,非常重要的是渐进地恢复发送的数据以及有效地编码3D网格数据。在由于发送通路错误而产生了数据错误的情况下,一种渐进恢复将使发送的数据能够被部分地恢复并使需要再发送的网格数据量达到最小。对于抵抗这种通信通路错误非常有效的渐进恢复方法,可被有效地用于无线通信或低发送速率的通信。
在传统的3D网格数据编码方法中,由于网格数据是连续编码的,几乎不可能在整个比特流被接收之前进行部分恢复。另外,由于发送期间的产生的发送通路错误,即使只有部分的数据受到了损坏,数据的整个比特流也必须被重新接收。例如,IBM公司提出的ISO/IECJTC1/SC29/WG11MPEG98/W2301,“MPEG-4 SNHC验证模型9.0”当前作为MPEG-4 SNHC 3D网格编码技术而得到采用。
在MPEG-4 SNHC中,网格编码是基于VRML设计的。在VRML中,以节点形式对网格进行描述,将其称为IndexedFaceSet。用于编码网格数据的一种主要技术,是IBM公司提出的拓扑手术(topological surgery)。根据这种技术,假定任何给定的网格在拓扑学上都与球相同。随后,该网格被沿着给定的切割边缘切割,以产生具有二叉树结构的一种三角跨越图(triangle spanning graph)。在此,为切割网格而限定的切割边缘是这样配置的,即它连接网格的顶点,即它是以具有环的树结构的形式给出的。这种切割边缘被称为顶点跨越图(vertex spanning graph)。因此,两种树结构,即三角跨越图和顶点跨越图,得到编码/解码,从而无损失地恢复原来的网格。
根据MPEG-4 SNHC,虽然在一个VRML文件中可能有多个IndexedFaceSet,对一个IndexedFaceSet的单元通常进行压缩。然而,单个的IndexedFaceSet可由若干相连的成分形成。换言之,假定能够连接顶点的一组多边形是一个相连的成分,IndexedFaceSet可由若干个相连的成分构成。
一般地,对于快速曲线图处理,必须以三角为单位进行模型化处理。这些三角不是随机形成的,而是较好地被彼此连接成条或扇形。另外,重复代表的符号越多,可压缩性就越好。因此,IBM公司,考虑到快速的曲线图处理和更好的可压缩性,提出了由单个的长三角条形成的网格。


图1A至1F显示了在三角网格的一个例子中传统的用于生成顶点跨越图和三角跨越图的步骤。图1A和1D显示了用于沿着粗线画出的切割边缘切割网格的方法。图1B显示了切割边缘的总体格式。图1E显示了沿着图1B所示的切割边缘进行切割所产生的边缘和顶点的配置。图1C显示了通过连接参照切割点的顶点而形成的顶点跨越图。图1F显示了一种三角跨越图,其中条形是通过沿着顶点跨越图切割网格而形成的一组相连的三角。另外,如果三角跨越图是借助图1A至1F所示的方法产生的,三角跨越图中两个分支行程之间的行程的长度变得比其他的要短很多。
图2A至2D显示了应用于实际网格数据的拓扑手术技术的一个例子。在一种顶,点跨越图中,一个分支可被分成若干个分支。图3显示了具有一个环的顶点跨越图的一个例子,其中一个顶点行程返回到前面的顶点之一的位置。由于网格可由若干相连的组分形成,形成网格的各个相连的成分生成了如图1F所示的一对顶点跨越图和图1C所示的三角跨越图。因此,如果单个的IndexedFaceSet得到编码,就能够获得几对跨越图和顶点跨越图。
用于恢复由上述方法编码的数据的方法如下1.利用一个顶点跨越图生成一种界定环。
2.当在三角跨越树中分出的一个三角的第三个顶点被称为Y顶点时,该Y顶点利用三角跨越树的比特流进行计算。
3.利用三角跨越图的三角推进比特,生成三角或多边形。
利用顶点跨越图和三角跨越图的算术编码的无损失压缩已经由IBM公司提出。然而,根据这种方法,为了重组原来的结构,所有的比特流必须被输入,且产生了以下的问题1.由于所有比特流必须被输入以解码数据,在发生发送错误的情况下,所有的比特流都必须被重新发送。
2.当压缩数据的幅度大时,完全发送数据所需的时间很长,且用户在此时间中必须等待。
为了克服传统技术的缺点,以下功能必须得到满足。
1.即使产生了发送错误,只有发生了发送错误的部分被重新发送,从而减小了网络的负荷和发送时间。
2.允许进行恢复,其中只有一部分数据和恢复的部分的三角或多边形得到处理以被显示在屏幕上。
在保持IBM公司提出的传统方法的基本结构的情况下实施这两种功能,取决于界定环和Y顶点的有效处理,如图4所示。为了在恢复处理中计算Y顶点,必须接收两个分支三角行程中的至少一个。在图1F中,点10、14和18是Y顶点。对于一个三角行程中的三角,各个三角的三个顶点的指标可利用行进比特图案和界定环来确定。然而,为了确定分支三角的第三顶点的Y顶点的指标,必须接收分支三角的下两个三角行程中的所有比特流。因此,直到接收到随后的比特流,不能恢复并显示分支三角之后的三角。这个问题在IBM公司提出的方法中没有产生,该方法是基于这样的假定,即所有比特流都得到了接收。然而,为了按照输入的顺序恢复并显示三角,该问题必须得到解决。
图5是传统MPEG4发送系统中采用的三维(3D)网格信息编码/解码方法的示意框图。在图5中,3D网格数据100被分成连接信息和几何信息并由一个连接编码器102和一个几何编码器103进行编码。在此,顶点结构信息105被从连接编码器102发送至几何编码器103。被连接编码器102和几何编码器103压缩的信息被重新置于受到一个熵编码器104压缩的比特流111中。
压缩的比特流111被输入一个解码部分114。换言之,压缩的比特流111经过一个熵解码器106被分成连接信息和几何信息,并随后分别被一个连接解码器107和一个几何解码器108所解码。象在编码部分101中一样,顶点结构信息109从连接解码器107被发送至几何解码器108。一个解码3D网格110可利用解码的连接信息和几何信息构成。
另外,可选地,诸如颜色、法线或组构坐标的光度信息由一个光度编码器112编码,并随后被一个光度解码器113解码。
如图5所示,3D网格可在通信通路中以压缩比特流的形式得到发送。然而,由于传统的MPEG数据压缩方法采用了熵编码器104,该方法受到通信通路中产生的发送错误的影响。
首先,以下先描述在3D网格数据编码方法中采用的术语定义。
*虚拟现实模型化语言(VRML)VRML是为在因特网上描述和发送虚拟空间而准备的图形标准格式。
*运动图象专家组(MPEG)MPEG是用于执行国际标准化活动以使用于发送诸如视频的各种媒体的压缩格式标准化的组。
*网格网格是由若干多边形构成的对象的一种表示。
*节点节点是顶点跨越图中的一个顶点或VRML中采用的最小描述单位。
*拓扑手术拓扑手术是IBM公司提出的一种网格编码方法,其中网格被沿着一条给定的路径切割,以使网格具有条形。
*顶点跨越图顶点跨越图是用于在拓扑手术中切割网格的路径。
*三角跨越树三角跨越树是沿着顶点跨越图切割网格而产生的三角条,并具有二叉树的结构。
*vlastvlast表示当前的行程是否是最后一个分支。如果当前行程是最后一个分支,vlast的值是1,否则是0。
*vrunvrun是由分支或vleaf连接的一组顶点和端点。
*vleafvleaf表示当前的顶点行程是以一个叶还是分支结束。如果当前的顶点行程以叶结束,vleaf的值是1,否则为0。
*loopstart顶点行程的叶可遇到另一顶点行程而形成一个环,在此情况下,环的起点由loopstart表示。
*loopend在顶点行程的叶形成一个环的情况下,环的结束用loopend表示。
*loopmaploopmap表示loopstart与loopend之间的连接信息,并且是从loopstart至loopend的一组指标连接边缘。
*truntrun是一组相继的三角,且其终点是一个叶三角或一个分支三角。
*tleaftleaf表示三角的行程是以叶三角还是以分支三角结束。如果三角的行程以叶三角结束,tleaf的值为1,否则为0。
*tmarchingtmarching描述三角的行进方面。如果一个条的右边界有一个边缘,tmarching的值是1。如果一个条在其左边界有一个边缘,tmarching的值是0。
*ispolygonedgeispolygonedge表示当前的边缘是从原来的网格模型给出,还是被插入以把多边形表示成一组三角。如果当前的边缘是从原来的网格模型给出的,ispolygonedge的值是1,否则是0。
为了解决上述问题,本发明的一个目的,是提供用于利用拓扑手术渐进编码3D网格信息的方法和设备,借助该方法和设备,通过以网格分量为单位重组比特流,实现了渐进3D网格恢复和3D网格层鉴别,且3D网格信息可利用顶点二叉树和三角二叉树信息,以单个的三角为单位,而得到再现。
为了实现3D网格信息的渐进编码方法,提供了一种渐进三维(3D)网格编码方法,用于3D网格信息的渐进恢复,包括以下步骤(a)构成具有一或多个网格对象层的3D三角网格,(b)把各个网格对象层分成多个网格分量,(c)以网格分量为单位形成比特流并对其进行编码,以及(d)把编码的网格分量组合成压缩比特流并发送该比特流。
另外,根据本发明的一个方面,提供了一种渐进3D网格编码方法,包括以下步骤(a)构成具有一或多个网格对象层的3D三角网格,(b)把各个网格对象层分成多个网格分量,(c)按照各个网格分量的大小信息划分所述多个网格分量,组合具有第一预定大小或更小的网格分量并重组具有大于该第一预定大小的大小的所有网格分量,(d)把各个网格分量中的网格数据分成具有第二预定大小的比特流单元并对其进行编码,以及(e)把编码的网格数据组合成压缩比特流并发送该压缩比特流。
根据本发明的再一个方面,提供了一种渐进3D网格编码方法,包括以下步骤(a)构成具有一或多个网格对象层的3D三角网格,(b)把各个网格对象层分成多个网格分量,(c)把表示具有从三角二叉树的分支三角分支出来的分支的编码顺序的取向信息,插入到各个网格分量中,并对其进行编码,以及(d)把编码的网格数据结合成压缩比特流并发送该压缩比特流。
为了实现用于对3D网格信息进行渐进编码的设备,提供了一种渐进三维(3D)网格编码设备,用于对3D网格信息进行渐进恢复,包括一个3D网格数据分析部分,用于构造具有一或多个网格对象层的3D三角网格并把各个网格对象层分成多个网格分量;多个网格分量编码器,用于形成以网格分量为单位的比特流并对这些比特流进行编码;以及,一个多路复用器,用于把编码的网格分量结合成压缩比特流并发送该压缩比特流。
另外,根据本发明的又一个方面,提供了一种渐进3D网格编码设备,包括一个3D网格数据分割部分,用于构造具有一或多个网格对象层的3D三角网格并把各个网格对象层分成多个网格分量;一个3D网格数据划分和结合部分,用于按照各个网格分量的大小信息划分多个网格分量,把具有小于或等于一个第一预定大小的大小的网格分量结合起来并重组所有网格分量以具有一个第一预定大小;多个网格分量编码器,用于把各个网格分量中的网格数据分成具有一个第二预定大小的比特流单元并对该比特流单元进行编码;以及,一个多路复用器,用于把编码的网格数据结合成压缩比特流并发送该压缩比特流。
根据本发明的再一个方面,提供了一种渐进三维(3D)网格编码设备,用于渐进恢复3D网格信息,包括一个3D网格数据分析部分,用于构造具有一或多个网格对象层的3D三角网格并把各个网格对象层分成多个网格分量;一个3D网格数据划分和结合部分,用于按照各个网格分量的大小信息划分多个网格分量,把具有小于或等于一个第一预定大小的大小的网格分量结合起来并重组所有网格分量以具有一个第一预定大小;一个取向确定部分,用于把三角二叉树信息中表示沿着两个方向分支的一个三角中的编码顺序的取向信息,插入到重组的网格分量中的各个网格分量中的网格数据中;多个网格分量编码器,用于形成以网格分量为单位的比特流并对该比特流进行编码;以及,一个多路复用器,用于把编码的网格分量结合成压缩比特流并发送该压缩比特流。
通过以下结合附图对最佳实施例所进行的详细描述,本发明的上述目的和优点将变得显而易见。在附图中图1A至1F显示了在三角网格的一个例子中产生顶点跨越图和三角跨越图的传统方法;图2A至2D显示了拓扑手术的一个例子;图3显示了具有一个环的顶点跨越图的一个例子;图4显示了界定环的构造方法;图5是传统3D网格信息编码方法的示意框图;图6是根据本发明的渐进3D网格信息编码/解码方法的示意框图;图7是根据本发明的一个实施例的渐进3D网格信息编码设备的框图;图8显示了用于解释图7所示的设备实施的渐进3D网格信息编码方法的一个实施例的句法的一个例子;图9是根据本发明的另一实施例的渐进3D网格信息编码设备的框图;图10A至10F显示了用于解释图9所示的设备实施的渐进3D网格信息编码方法的另一实施例的句法的一个例子;图11至11D显示了用于解释渐进3D网格信息编码方法的另一实施例的句法的一个例子;且图12A和12B显示了用于解释根据本发明的三角二叉树信息的比特流构造方法的句法的一个例子。
首先,为了渐进地处理3D网格,在本发明中提出了一种新的网格结构。一个3D网格对象(MO)可被重组为几个网格对象层(MOL)—它们是分成几层的网格数据。在此各个MOL包含一或多个网格分量MCOM。各个MCOM包含其本身的恢复所需的连接信息、几何信息和光度信息。换言之,MO可被表示为所要编码的3D网格对象的单元并按照图象质量的各种等级和功能被划分成若干层。划分的各层被定义为网格对象层(MOL)。另外,当利用拓扑手术,由若干独立的不相连的网格即相连的分量构成一个3D网格对象时,MCOM被定义为按照所要编码的数据大小或其他特性结合或分割的独立网格。
图6是根据本发明的渐进3D网格对象信息编码/解码方法的示意框图。参见图6,一个编码部分200表示一个3D数据分析器201、多个分量编码器(1至N)202和一个多路复用器(MUX)204。一个解码部分209包括一个去多路复用器(DEMUX)205和多个分量解码器(1至N)206和一个3D数据合成器208。
首先,3D网格对象100被一个3D数据分析器201重组成至少一个网格对象层(MOL)211,且各个MOL被重组成MCOM。MOL或MCOM被输入多个分量编码器202以随后受到其压缩。压缩的比特流通过MUX 204而得到发送。在此用在一个上级分量编码器中的信息203也被用于下级分量编码器中。
被发送至解码部分209的压缩比特流210被去多路复用器(DEMUX)205划分MOL单元,并被分量解码器(1至N)206进一步分成MCOM以随后被解码。在此用在上级分量解码器中的信息207再次被用在下级分量解码器中。被各个分量解码器解码的MCOM被3D数据合成器208恢复成3D网格对象110。
当由若干顶点表示的多边形构成的一个3D网格是具有三个顶点的三角网格时,现在详细描述一种用于把渐进编码功能包含到一种3D网格编码方法中的方法,该3D网格编码方法用于编码相应的顶点和包括几何信息和连接信息的相应三角构造信息。
图7是根据本发明的一个实施例的渐进3D网格对象信息编码设备,其中渐进编码是以MCOM为单位进行的。
一个3D网格数据分析器710接收所要编码的3D网格700并将其分成多个3D网格分量C1至CN-其每一个都具有能够在没有连接信息的情况下独立构成一个3D网格分量的3D二进制网格树(步骤711)。各个分割的网格分量(C1)720具有取决于网格树的深度和节点的数目的不同大小。由各个网格分量单元构成的比特流730是各个网格分量的网格信息,并包括顶点二叉树信息(V1)732和三角二叉树信息(T1)734。在此,构成网格分量(C1)的顶点二叉树和三角二叉树由编码器740和742压缩和编码。随后,编码的网格分量被组合成压缩比特流,并随后通过多路复用器750而得到发送。
图8显示了用于解释根据本发明的渐进3D网格对象信息编码方法的一个实施例的句法的一个例子。除了顶点二叉树的标头信息802,出现在多个网格分量的比特流中首先要被编码的3D网格对象信息中的所有网格分量的总数(nComponent)801,也得到表示。为了恢复构成解码部分中的所有网格分量C1至CN的顶点二叉树732和三角二叉树734,包含顶点和三角树构成信息的标头802和804、以及顶点和三角树比特流803和805,得到了发送。
在以网格分量为单位进行渐进编码的情况下,编码的复杂性可被降低,但编码和恢复效率由于发送错误而被降低。
在把以网格分量为单位进行的渐进编码应用于要求编码效率的各种可应用领域时,当多个小的网格分量构成一个MOL时,标头信息变得大于实际需要编码的信息,因而总体编码效率降低。因此,在3D网格数据分析步骤中,小的网格分量必须被结合成单个的网格分量,以适合于有限的发送通路容量或解码器的存储容量。
图9是根据本发明的另一实施例的渐进3D网格对象信息编码设备的框图,其中渐进编码得到进行以在网格分量中形成具有连接信息的均匀大小的比特流。
参见图9,一个3D网格数据分析器901把输入的3D网格900分成多个3D网格分量902。随后,多个3D网格分量902根据大小信息得到划分(步骤903),且小于一个预定大小的网格分量被结合(步骤904)以得到重组,从而使所有网格分量都具有一个预定的大小。随后,对于重组的网格分量,各个网格分量中的网格数据908和910被分成具有预定大小的比特流单元909和911,并用编码器912和913进行编码。随后,编码的网格分量被结合成压缩比特流以随后通过多路复用器914而得到发送。
在此,网格分量结合904可通过根据根信息直接连接各个网格分量中的树而进行,因为网格分量具有彼此独立的结构而没有彼此连接信息。在以这样的方式重组了各个网格分量从而具有预定的大小之后,考虑到有限的发送通路容量和解码器的存储容量,各个网格分量的3D网格数据被分割以具有一个预定的大小。相应地,具有错误的比特流能够得到有效的发送和恢复。
在本发明中,各个网格分量的3D网格数据利用顶点的基准数目(vertices_per_data)和三角的基准数目(triangle_per_data)得到分割,以具有预定大小。
首先,在网格分量结合步骤904,如果构成网格分量的顶点二叉树中的顶点的总数小于顶点的基准数目(vertices_per_data),该网格分量与下一个将要编码的网格分量相结合。相应地,所要编码的所有网格分量都得到重组,以具有一种顶点二叉树—其中顶点的总数大于顶点的基准数目(vertices_per_data)。
如果以这样的方式进行重组,各个网格分量中构成网格数据的顶点二叉树信息和三角二叉树信息被分成顶点基准数目(vertices_per_data)和三角基准数目(triangle_per_data)单元。在此,分割是沿着相应的树沿着一个恒定的取向(例如逆时针)进行的。
分割的3D网格数据被编码器912和913压缩/编码。发送至解码部分的压缩的比特流在图10A中显示。在网格分量结合步骤904中重组的网格分量C1至CN的总数1010、顶点二叉树(V1)标头至顶点二叉树(VN)标头(1011至1017)、以及三角二叉树(T1)标头至三角二叉树(TN)标头(1014和1020),被构造得与图8所示的相同。在各个网格分量中分割的3D网格数据包括1013、1016、1019和1022。换言之,被分割处理分割成具有一个预定大小的比特流单元的重组的3D网格数据,由多个顶点二叉树V1,1至V1,n1,……以及VN,1至VN,nN和多个三角二叉树T1,1至T1,m1……和TN,1至TN,mN的相应比特流构成。在此,N、m和n是大于0的整数。
另外,为了支持通过以预定大小的单位发送比特流而获得的渐进,用于从三角二叉树信息构成N个三角的比特流,考虑到本地熵编码效率。例如,N个trun数据和一个tleaf数据被从N-1个tmarching数据和N个polygonedge数据分离出来。因此,熵编码效率和提供效果得到了改善。
如上所述,当一个网格分量内的3D网格信息得到分割以具有一个预定大小以随后被编码时,由于解码部分而必须被考虑的信息是必需的。换言之,当解码部分接收并渐进恢复了某些分割的3D网格比特流以进行提供时,由于三角树的恢复顺序是固定的,会遇到问题。即在恢复期间,当同时属于相对于一个三角二叉树内的一个分支点处的三角的左和右三角的一个Y顶点被解码时,不可能在不知道形成右边的三角树的信息的情况下解码Y顶点。因此,直到获得所有未发送的3D网格信息,渐进解码操作的提供就不能进一步进行。换言之,与渐进编码操作相应的渐进解码操作不能得到适当的进行。
因此,为了渐进编码/解码3D网格信息,如图10A中的1012、1015、1018和1021表示的Y顶点信息—它能够提供二叉树的分支点的右边的树的连接信息—必须被形成在将要被发送至解码部分的比特流中。
为了解决这个问题,首先,顶点二叉树和三角二叉树中的Y顶点信息得到产生,如图10B所示。在图10B中,顶点二叉树的Y顶点信息和三角二叉树的Y顶点信息包括出现在相应的重组网格分量中的Y顶点1031和1033的总数的整数,以及出现在由相对于各个Y顶点位于三角二叉树的分支点的右边的一个树中出现的三角的总数所表示的Y顶点1032和1034的几何信息。除了多个顶点二叉树和三角二叉树的比特流之外,该Y顶点信息也得到表示。换言之,在图10A中,由标号1012和1018表示的信息或由标号1015和1021表示的信息被插入到比特流中。
其次,Y顶点信息以比第一实施例中少的位数得到发送。在顶点二叉树中,vrun==1&&vleaf==0表示了一个树的分支点,且vrun==1&&vleaf==1表示了一个端点。参见图10C,当Y-vertex(==1)出现时,vrun被表示为1,vleaf被表示为0,而分支点或端点除外,以利用顶点行程单元的数目提供有关Y顶点产生的信息和几何信息。在此,Y顶点的数目由各个网格分量的整数表示,如1012或1018。因此,顶点二叉树信息中的比特流改变在图10D和10E中显示。
在三角二叉树中,有关Y顶点的顺序的信息是以图10F中显示的二叉树的形式,按照分割的3D网格数据被发送至解码部分的顺序,而产生的。以二叉树的形式表示的二叉树信息,是由一系列的0和1构成的,其中与2*(Y顶点的数目)+1相应的比特得到产生。换言之,在图10F所示的二叉树中,产生了比特“11110011100000”,且如此构成的二叉树信息被编码器压缩/编码,从而提高了编码效率。
即,如图10D所示,出现在各个重组的网格分量中的Y顶点的数目,除了多个顶点树比特流1013和1019之外,还由作为Y顶点信息的标号1012和1018表示。另外,如图10E所示,Y顶点几何信息1047,除了分别表示多个顶点二叉树的各个比特流中的各个顶点二叉树的分支点和端点的符号1045和1046之外,也得到表示。
作为用于三角二叉树的Y顶点信息,表示有关作为二叉树而产生的Y顶点的顺序的信息的Y顶点二叉树信息,除了多个三角二叉树的比特流1016和1022之外,也由标号1015和1021表示。
如上所述,在其中相连分量的3D网格信息被分割以具有一个预定大小且Y顶点的连接信息也被形成以得到编码从而进行着色的渐进编码方法中,编码效率会由于几何信息和Y顶点的顺序的额外信息而恶化。这种问题可由形成只沿着固定方向的树和沿着该固定方向对其编码而造成,并可通过自适应地改变编码方向而得到解决,其中当Y顶点在分割的3D网格信息中得到访问时,连接信息是不需要的或只在最小的程度上需要。
图11A至11D显示了用于解释根据本发明的采用拓扑手术的渐进3D网格对象信息编码方法的另一实施例的句法的一个例子,其中具有均匀大小的比特流被形成在网格分量中。
如图11B所示,当三角二叉树中具有Y顶点的三角被访问时(步骤1111),三角二叉树的编码顺序,根据当连通分量中的三角二叉树被等分成指定大小的单元时采用的triangle_per_data和用于表示右边分支中的三角的数目的triangle_per_right_tree的编码优先级,而依次得到确定。随后,在三角二叉树的比特流中,提供用于表示编码方向的torientation标志1100,如图11A所示。
torientation表示了在解码处理中是左边还是右边的分支三角先得到解码。如果0被给予torientation,则左边先被解码。如果1被给予torientation,则右边先被解码。
例如,如果具有Y顶点的三角被访问(步骤1111),首先,判定triangle_per_right_tree是否小于或等于triangle_per_data(步骤1112)。如果是,torientation被置于1(步骤1113)。如果不是,判定triangle_perleft_tree是否小于或等于triangle_per_data(步骤1114)。如果是,torientation被置于0(步骤1115)。如果不是,判定triangle_per_right_tree是否小于或等于triangle_peR_left_tree(步骤1116)。如果是,torientation被置于1(步骤1117),且如果不是,torientation被置于0(步骤1118)。
在此,如果torientation是0,在其中根处于上方的状态下,在左边分支(即逆时针)中的一个从属三角二叉树首先被编码。如果torientation是1,在其中根位于上方的状态下,在右边分支(即顺时针)中的一个从属三角二叉树被首先编码。另外,即使在其编码取向被确定的从属三角二叉树中的一个具有Y顶点的三角被访问,编码取向也不被表示。
图11C中显示了由上述编码取向确定方法产生作为一种取向标志的torientation的过程的一个例子,其中标号1120和1121表示其取向标志已经被确定的从属三角二叉树中的具有Y顶点的三角。因此,取向标志没有定义。标号1125表示把3D网格信息的压缩比特流发送和提供给解码部分的顺序。
图11D显示了根据本发明的另一实施例的压缩比特流,该比特流具有取向信息。象图10A,该压缩比特流包括nComponent 1130,它表示了重组的网格分量的总数;顶点树标头1131和1135以及三角树标头1133和1137,它们构成了相应的网格分量;被分割成具有预定大小的比特流单元并重组的多个顶点二叉树的顶点树比特流1132和1136;以及,多个三角二叉树的三角树比特流1134和1138。表示三角二叉树中沿着两个方向分支的三角中的编码顺序的torientationi,i(图11A的1100),被进一步地提供在多个三角二叉树的各个比特流Ti,i中。
取向标志的表示信息的存在,通过检查从属三角树中的所有叶三角是否都被恢复,而得到确定。换言之,从属三角二叉树中的叶三角的总数与带有取向标志的三角和不带取向标志和带有Y顶点的三角的数目的总和相同这一特征,被用作判定条件。
在三角树的分量中,定义三角的行进方面的tmarching信息极少被重叠,这导致了低的熵编码效率。因此,在本发明中,为了改善构造单元中的tmarching信息的编码熵,且为了有效地支持预定大小的3D网格数据的比特流构造中的渐进着色,三角二叉树的比特流被这样构成,即使得具有高度重叠的符号与具有低度重叠的符号相分离,从而提高了编码效率。换言之,在构成N个三角时,从(N-M)个tmarching单元和N个polygonedge单元单独地构成了N个trun单元和M个tleaf单元(0≤M≤N)—其中M表示构成三角二叉树的分支和叶的数目,从而改善了tmarching信息和trun信息的低熵编码效率,并进一步地改善了着色效率。
图12A显示了由通常的方法构成的比特流的一个例子,且图12A显示了由本发明提出的方法构成的比特流的一个例子。
在图12B中,只有当trun=1时,即当三角分支时,tleaf在trun之后接着被产生,tmarching只当trun=0即三角没有分支时被产生。另外,ispolygonedge只在有至少一个非三角的多边形时被产生。如果不是,则在比特流中不提供ispolygonedge信息。
如上所述,在采用根据本发明的拓扑手术的3D网格编码方法和设备中,渐进3D网格恢复和3D网格层鉴别得到允许,而不象传统的拓扑手术系统。另外,与其中在没有接收完不带发送错误的所有比特流之前不能开始进行恢复的传统方法相对比,在本发明中,一旦以网格分量为单位的比特流得到发送,3D网格信息就能够通过采用具有连接性的顶点二叉树和三角二叉树信息,而以单个的三角为单位地得到再现。即,在传统方法中直到所有比特流得到发送,存在着总体延迟,而在本发明中总体延迟对应于网格分量的长度。即使在一个网格分量被完全发送之前,在接收到包括顶点二叉树信息的重要信息之后,也能够以三角为单位进行恢复。进一步地,即使产生了发送错误,在其中比特流是以网格分量为单位而形成的状态下,错误也能够被局部化。
权利要求
1.用于渐进恢复3D网格信息的渐进三维(3D)网格编码方法,包括以下步骤(a)构造一或多个网格对象层的3D三角网格;(b)把各个网格对象层分成多个网格分量;(c)以网格分量为单位形成比特流并对其进行编码;以及(d)把编码的网格分量组合成压缩比特流并发送该压缩比特流。
2.根据权利要求1的渐进编码方法,其中以网格分量为单位形成的比特流包括作为各个网格分量中的网格数据的顶点二叉树信息和三角二叉树信息,且除了网格分量的比特流中将要被首先编码的顶点二叉树信息之外,网格分量的总数也得到表示。
3.一种渐进3D网格编码方法,包括以下步骤(a)构成具有一或多个网格对象层的3D三角网格;(b)把各个网格对象层分成多个网格分量;(c)根据各个网格分量的大小信息划分多个网格分量,把具有第一预定尺寸或更小的尺寸的网格分量组合起来并重组所有网格分量以具有大于第一预定尺寸的尺寸;(d)把各个网格分量中的网格数据分成具有第二预定尺寸的比特流单元并对其进行编码;以及(e)把编码的网格数据组合成压缩比特流并发送该压缩比特流。
4.根据权利要求3的渐进3D网格编码方法,其中在步骤(c)中,如果构成网格分量的顶点二叉树中的顶点的总数少于或等于顶点的基准数目,则该网格分量被与下一个将要被编码以得到重组的网格分量相结合,从而使所要编码的网格分量具有这样的顶点二叉树—即其中顶点的总数大于顶点的一个第一预定基准数目。
5.根据权利要求3的渐进3D网格编码方法,其中在步骤(d)中,构成各个网格分量中的网格数据的顶点二叉树信息和三角二叉树信息被分成顶点的第二预定基准数目和一个预定的三角数目。
6.根据权利要求4的渐进3D网格编码方法,其中在步骤(d)中,构成各个网格分量中的网格数据的顶点二叉树信息和三角二叉树信息被分成顶点的一个第二预定基准数目和一个预定的三角数。
7.根据权利要求3的渐进3D网格编码方法,其中压缩比特流包括在步骤(c)中重组的网格分量的总数、构成各个重组的网格分量的顶点树标头和三角树标头、和多个三角二叉树的顶点树比特流和多个三角二叉树的三角树比特流,它们都被分成具有第二预定尺寸的比特流单元并随后得到重组。
8.根据权利要求7的渐进3D网格编码方法,其中压缩比特流进一步包括Y顶点信息和Y顶点的几何信息,其中Y顶点信息提供在一个二叉树的分支点处沿着一个固定方向的连接信息,该Y顶点信息包括出现在各个重组的网格分量中的Y顶点的总数,而Y顶点的几何信息由分别相对于各个Y顶点位于三角二叉树的分支点的右边的一个树中的三角的总数来表示,且除了多个顶点二叉树的各个比特流和多个三角二叉树的比特流之外该Y顶点信息也得到表示。
9.根据权利要求7的渐进3D网格编码方法,其中压缩比特流进一步包括Y顶点信息、Y顶点的几何信息以及Y顶点的二叉树信息,其中Y顶点信息提供在一个二叉树的分支点处沿着一个固定方向的连接信息,该Y顶点信息包括出现在各个重组的网格分量中的Y顶点的总数,而Y顶点的几何信息以一比特的形式与各个顶点二叉树的分支点和端点的符号一起得到表示,顶点二叉树信息表示二叉树形式的有关Y顶点的顺序的信息。
10.一种渐进3D网格编码方法,包括以下步骤(a)构成具有一或多个网格对象层的3D三角网格;(b)把各个网格对象层分成多个网格分量;(c)把表示从三角二叉树的分支三角分出来的分支的编码顺序的取向信息插入各个网格分量,并对其进行编码;以及(d)把编码的网格数据组合成压缩比特流并发送该压缩比特流。
11.根据权利要求10的渐进3D网格编码方法,其中步骤(c)包括以下子步骤(c1)按照各个网格分量的尺寸信息划分多个网格分量,并组合其尺寸小于或等于一个第一预定尺寸的网格分量,从而重组所有的网格分量使它们具有恒定的尺寸;(c2)把重组的网格分量中的各个网格分量中的网格数据分成具有第二预定尺寸的比特流单元;以及(c3)把取向信息插入该比特流并对其进行编码。
12.根据权利要求11的渐进3D网格编码方法,其中压缩比特流包括在步骤(c1)重组的网格分量的总数、构成各个重组的网格分量的顶点树标头和三角树标头、以及多个三角二叉树的顶点树比特流和多个三角二叉树的三角树比特流,它们被分成具有第二预定尺寸的比特流单元并随后在子步骤(c2)中得到重组。
13.根据权利要求11的渐进3D网格编码方法,其中取向信息以这样的方式得到表示,即考虑到包含在于子步骤(c1)中被重组的网格分量的三角二叉树中的分支三角中的两个分支的尺寸和三角的预定基准数目,如果分支的三角的数目大于三角的预定基准数目,则较小的分支首先得到编码。
14.根据权利要求12的渐进3D网格编码方法,其中取向信息以这样的方式得到表示,即考虑到包含在于子步骤(c1)中被重组的网格分量的三角二叉树中的分支三角中的两个分支的尺寸和三角的预定基准数目,如果分支的三角的数目大于三角的预定基准数目,则较小的分支首先得到编码。
15.根据权利要求10的渐进3D网格编码方法,其中在步骤(c)中,当构成各个网格分量的三角二叉树信息时,N个trun单元和M个tleaf单元—其中N是构成三角二叉树的三角的数目且M大于或等于零并小于或等于N-从三角行进信息和多边形边缘信息单独地构成,以提高熵编码效率和着色效率。
16.一种用于3D网格信息的渐进恢复的渐进三维(3D)网格编码设备,包括一个3D网格数据分析部分,用于构成一或多个网格对象层的3D三角网格,并将各个网格对象层分成多个网格分量;多个网格分量编码器,用于形成以网格分量为单位的比特流并对该比特流进行编码;以及一个多路复用器,用于把编码的网格分量组合成压缩比特流并发送该压缩比特流。
17.一种渐进3D网格编码设备,包括一个3D网格数据分割部分,用于构成具有一或多个网格对象层的3D三角网格并把各个网格对象层分成多个网格分量;一个3D网格数据划分和组合部分,用于根据各个网格分量的尺寸信息划分多个网格分量,组合具有小于或等于一个第一预定尺寸的尺寸的网格分量,并重组所有网格分量以具有第一预定尺寸;多个网格分量编码器,用于把各个网格分量中的网格数据分成具有第二预定尺寸的比特流单元并对其进行编码;以及一个多路复用器,用于把编码的网格数据组合成压缩比特流并发送该压缩比特流。
18.根据权利要求17的渐进3D网格编码设备,其中如果构成网格分量的顶点二叉树中的顶点的总数小于顶点的一个第一基准数目,3D网格数据划分和组合部分把该网格分量与下一个将要被编码的网格分量相结合,从而使所有将要被编码的网格分量都得到重组以具有一种顶点二叉树,在该顶点二叉树中顶点的总数大于顶点的第一基准数目。
19.根据权利要求17的渐进3D网格编码设备,其中多个网格分量编码器通过把构成各个网格分量中的网格数据的顶点二叉树信息和三角二叉树信息分别分成顶点的第二基准数目和一个预定的三角数目,而对该顶点二叉树信息和三角二叉树信息进行编码。
20.根据权利要求18的渐进3D网格编码设备,其中多个网格分量编码器通过把构成各个网格分量中的网格数据的顶点二叉树信息和三角二叉树信息分别分成顶点的第二基准数目和一个预定的三角数目,而对该顶点二叉树信息和三角二叉树信息进行编码。
21.一种用于渐进恢复3D网格信息的渐进三维(3D)网格编码设备,包括一个3D网格数据分析部分,用于构成具有一或多个网格对象层的3D三角网格,并将各个网格对象层分成多个网格分量;一个3D网格数据划分和组合部分,用于根据各个网格分量的尺寸信息组合多个网格分量,组合具有小于或等于一个第一预定尺寸的尺寸的网格分量,并重组所有网格分量以具有一个第一预定尺寸;一个取向确定部分,用于在重组的网格分量中的各个网格分量中的网格数据中,插入表示三角二叉树信息中沿着两个方向的三角分支的编码顺序的取向信息;多个网格分量编码器,用于形成以网格分量为单位的比特流并对其进行编码;以及一个多路复用器,用于把编码的网格分量组合成压缩比特流并发送该压缩比特流。
22.根据权利要求21的渐进3D网格编码设备,其中取向确定部分以这样的方式确定取向信息,即在考虑包含在用于重组的网格分量的三角二叉树中的分支三角中的两个分支的尺寸时,较小的分支先被编码。
全文摘要
提供了一种三维(3D)网格数据的渐进编码方法和设备。该方法包括以下步骤:(a)构造一或多个网格对象层的3D三角网格;(b)把各个网格对象层分成多个网格分量;(c)以网格分量为单位形成比特流并对其进行编码;以及,(d)把编码的网格分量组合成压缩比特流并发送该压缩比特流。因而能够进行渐进3D网格恢复,且熵编码效率能够得到提高。
文档编号G06T17/20GK1250289SQ99118159
公开日2000年4月12日 申请日期1999年8月27日 优先权日1998年8月29日
发明者金成珍, 宋文燮, 张义善, 韩万镇, 徐亮锡 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1