对三维对象数据进行编码和解码的方法及装置的制作方法

文档序号:6420688阅读:134来源:国知局
专利名称:对三维对象数据进行编码和解码的方法及装置的制作方法
技术领域
本发明涉及一种用于对数据进行编码和解码的方法及装置,并且更具体地,涉及一种用于对三维对象数据进行编码和解码的方法及装置,其中所述三维对象数据由点纹理数据、体元数据以及八叉树数据组成。
背景技术
研究三维图形的一种最基本的目标就是生成尽可能生成象实际图像一样多的逼真图形。因此,一直都采用多边模型进行着色技术的研究,结果是,开发出了多种能够表示非常逼真的三维环境的建模以及着色技术。但是,已经建立复杂的三维图形模型一直需要很大的努力以及相当多的时间。另外,要表示非常逼真以及复杂的环境也需要大量的数据,这可能以非常低的数据存储以及传输效率而告终。
近来,一般都在计算机图形中采用多边模型来表示三维对象。在所述技术中,可以用一组各种颜色的多边形,例如一组三角形来大致地表示任意的形状。在软件算法以及图形硬件中最近的显著进展就是可以实时的将复杂的对象或场景显示为非常逼真的,静止的(或者运动的)多边模型。
对于刚过去的几年,研究工作主要针对于表示三维对象的技术,这主要是由于为现实世界中的各种对象构造多边模型的难度,传统着色技术的复杂性,以及在尽可能实际地表示图像中的限制。
应用程序需要相当多的多边形来表示三维对象。例如,用于表示人体细节的模型需要几百万的三角形,这么大的数量是很难处理的。即使近来的三维测量技术的发展,例如三维扫描使得获得误差位于可接受范围之内的复杂三维数据成为可能,但是要获得与对象完全匹配的多边模式仍是非常困难的,并且花费很高。另外,用于提供象照片一样逼真的图像表示的着色算法也由于过于复杂而无法支持实时着色。
同时,还有相对比较新的表示方法或着色具有复杂几何结构,也就是基于图像深度表示(DIBR)的对象的方法,其中所述DIBR已经在MPEG-4动画框架扩展(AFX)中被采用。虽然在计算机图形中一般采用多边形网格来表示对象,可是也采用了一组覆盖三维对象的可视表面的基准图像来表示DIBR中的三维对象。每个基准图像都用深度图表示,并且所述深度图表示在图像平面上的像素与三维对象的表面之间的不同距离阵列。DIBR最大的优点就是只需要使用基准图像而不需使用多边形模型就能进行高质量的表示。还有,着色DIBR视图的复杂程度是单独地根据构成DIBR视图的像素数量(也就是DIBR视图的分辨率)来确定的,而与场景的复杂程度无关。DIBR包括简单纹理(Simple Texture)、点纹理(Point Texure)、以及八叉树图像。点纹理表示从预定的照相机位置看到的具有点纹理像素的对象。每个点纹理像素都使用它的颜色与深度(在每个点纹理像素与预定照相机位置之间的距离)以及帮助点纹理着色的其它特性来表示的。可以沿着视线提供多个像素。点纹理图像一般由多个层所构成。图1说明了一维点纹理图像的简单例子。点纹理要求大量的数据以逼真地表示对象。一般地,图像越逼真,采样密度越高则需要处理的数据也越多。因此,非常需要对点纹理图像进行有效的压缩。图2说明了点纹理的节点说明。在图2中,需要对“深度”以及“颜色”域进行压缩。
直至现在,并不是很多研究都是针对点纹理进行的,因此只有少数几种传统的基于点纹理的方法。其中一种传统的基于点纹理的方法就是分层深度图像(LDI)压缩方法,所述方法已经在2003年3月IEEE Trans.图像处理,第12卷第3期,第365-372页中由Dual以及Li所著的“分层深度图像的压缩”一文中公布。
在现有技术中,已经采用了JPEG-LS算法对深度信息进行压缩。另一方面,使用现有的编码标准对颜色信息进行压缩。可是如此JPEG-LS算法并不支持渐进式数据压缩以及渐进式数据传输。
同时,在2002年IEEE Trans.图像处理,第11卷第8期,第932-943页中由C.S.Kim以及S.U.Lee所著的“Compact Encoding of 3D Voxel SurfaceBased on Pattern Code Representation”一文中已经公开了一种采用模式代码表示(PCR)来压缩三维像素表面模型的方法。可是,所述方法并没有使用分层八叉树形结构并且不能利用渐进式压缩方案。还有,已经为MPEG-4 AFX开发出了基于八叉树的数据压缩方法[ISO/IEC JTC1/SC29/WG11 14496-162003,Information Technology-Coding of Audio-Visual Objects-Part 16Animation Framework extension]。可是,所述方法和上述的传统方法一样也不能提供渐进式位流。

发明内容
本发明提供了一种用于对三维对象数据进行编码和解码的方法及装置,其中所述三维对象数据由点纹理数据、体元数据以及八叉树数据组成,其能够在保证更有效的评估编码、更高的数据编码效率、以及更有效的数据损失压缩的情况下对深度图像信息进行压缩。
根据本发明的一个方面,提供了一种对三维对象数据进行编码的方法,其中所述三维对象数据由点纹理数据、体元数据或者八叉树形结构数据组成。所述方法包括生成具有树形结构的三维对象数据,其中在所述树形结构中,节点被加以表示其类型的标记;对三维对象数据的节点进行编码;以及生成其节点被编码成位流的三维对象数据。
优选地,在生成三维对象数据期间,通过使用三维边界体(boundingvolume)将三维对象数据转换为体元数据,并且根据它们是否位于对象所处的位置来对体元加以不同的标记,从而以使得体元彼此之间互不相同。
优选地,在表示三维对象数据的树形结构中,具有子节点的节点被标记为“S”,其体元不包括对象的节点被标记为“W”,其所有体元都包括对象的节点被标记为“B”,以及使用预测部分匹配(PPM)算法对其体元进行编码的节点被标记为“P”。
优选地,对三维对象数据的节点的编码包括对表示当前节点是否是“S”节点或“P”节点的节点信息进行编码;以及如果节点信息表示当前节点为“S”节点,则对“S”节点的详细信息位(DIB)数据进行编码,而如果节点信息表示当前节点为“P”节点,则对“P”节点的DIB数据进行编码。
根据本发明的另一方面,提供了一种对三维对象数据进行编码的方法,其中所述三维对象数据由点纹理数据、体元数据或者八叉树形结构数据组成。所述方法包括(a)生成具有树形结构的三维对象数据,其中在所述树形结构中,节点被加以表示其类型的标记;(b)参照它们的标记对三维对象数据的节点进行合并;(c)对已合并的节点进行编码;(d)生成其合并的节点被编码成位流的三维对象数据;以及(e)重复进行步骤(a)至(d),直到表示三维对象数据的树形结构的最上面的节点被编码为止。
优选地,在步骤(a)中,具有子节点的节点被标记为“S”,其体元不包括对象的节点被标记为“W”,其体元都包括对象的节点被标记为“B”,以及使用PPM算法对其体元进行编码的节点被标记为“P”。
优选地,步骤(b)包括选择其子节点被标记为“W”、“B”和“P”节点的“S”节点作为将要被合并的候选节点;从候选节点中选择一个节点作为最优节点,所述节点能够对在候选节点合并处理之前失真位的数量与在候选节点合并处理之后失真位的数量之间的差值ΔD同在候选位合并处理之前的位的数量与候选位合并处理之后的位的数量之间的差值ΔR的比率进行最小化;对选中的节点“B”进行标记;以及对除了被选作为最优节点的节点以外的所有候选节点进行更新。
优选地,使用在原始模型V与其近似 之间的汉明距离(Hammingdistance)作为失真测量在下面的等式中计算ΔD 其中X×Y×Z表示原始模型的分辨率。
优选地,步骤(C)包括对表示候选节点是否存在于队列中的信息的连续标记进行编码;对表示队列中每个候选节点的位置的节点位置信息进行编码;对表示当前节点是否为“S”节点或“P”节点的节点类型信息进行编码;以及如果节点信息表示当前节点为“S”节点,则对“S”节点的DIB数据进行编码,和如果节点信息表示当前节点为“P”节点,则对“P”节点的DIB数据进行编码。
优选地,对“S”节点的DIB数据进行编码包括对颜色信息的平均值进行编码;以及对当前节点的八个子节点的标记进行编码。
优选地,对“P”节点的DIB数据进行编码包括对深度信息进行编码;以及对颜色信息进行编码。
优选地,在对深度信息进行编码期间,根据光栅扫描顺序对表示三维对象数据的树形结构中的预定节点以下的所有节点进行PPM编码。
优选地,在对颜色信息进行编码期间,通过执行差分脉冲码调制(DPCM)以及自适应算法编码(AAC)来对当前节点的“B”体元的红(R)、绿(G)、蓝(B)值进行编码。
根据本发明的另一方面,提供了一种对三维对象数据进行编码的装置,其中所述三维对象数据由点纹理数据、体元数据或者八叉树形结构数据组成。所述装置包括树形结构生成器,用来生成具有树形结构的三维对象数据,其中在所述树形结构中,节点被加以表示其类型的标记;合并顺序选择器,用于通过参考它们的标记来对三维对象数据的节点进行合并;节点编码器,用来对合并的节点进行编码;以及位流生成器,用来生成其合并节点被编码成位流的三维对象数据。
优选地,所述合并顺序选择器包括候选节点选择器,所述选择器选择其子节点被标记为“W”和“B”的“P”节点和“S”节点作为将要被合并的候选节点;最优节点选择器,用来从候选节点中选择一个节点作为最优节点,所述节点能够对在候选节点合并处理之前失真位的数量与在候选节点合并处理之后失真位的数量之间的差值ΔD同在候选位合并处理之前的位的数量与在候选位合并处理之后的位的数量之间的差值ΔR的比率进行最小化,并且对选中的节点“B”进行标记;以及候选节点更新器,用来对除了被选作为最优节点的节点以外的所有候选节点进行更新。
优选地,所述节点编码器包括连续标记编码器,用来对表示当前节点是否为压缩位流的末尾的信息的连续标记进行编码;节点位置编码器,用来对表示队列中候选节点的每个候选节点的位置的节点位置信息进行编码;节点‘S’-or-‘P’(SOP)选择器,用来对表示当前节点为‘S’节点或‘P’节点的节点类型信息进行编码;S节点编码器,用来如果节点信息表示当前节点为‘S’节点,则对‘S’节点的DIB数据进行编码;以及P节点编码器,用来如果节点信息表示当前节点为‘P’节点,则对P节点的DIB数据进行编码。
根据本发明的另一方面,提供了一种对三维对象数据进行解码的方法。所述方法包括从已编码的三维对象数据的位流中读取连续标记信息,并对所述连续标记信息进行解码;对位流的节点类型信息进行解码;如果节点类型信息表示当前节点为‘S’节点,则对‘S’节点进行解码,和如果节点类型信息表示当前节点为PPM节点,则对PPM节点进行解码;以及恢复其节点被编码成树形结构的三维对象数据。
根据本发明的另一方面,提供了一种对三维对象数据进行解码的方法。所述方法包括对已编码的三维对象数据的位流的节点进行解码;以及恢复其节点被编码成树形结构的三维对象数据。
优选地,对已编码的三维对象数据的位流的节点进行的解码包括从已编码的三维对象数据的位流中读出连续标记信息,并对所述连续标记信息进行解码;读出表示队列中哪个候选节点为当前节点的节点位置信息,并对所述节点位置信息进行解码;对位流的节点类型信息进行解码;如果节点类型信息表示当前节点为“S”节点,则对“S”节点进行解码;以及如果节点类型信息表示当前节点为PPM节点,则对PPM节点进行PPM解码。
优选地,在对“S”节点进行解码时,对当前节点的八个子节点的平均颜色进行解码,来作为DIB数据,和顺序地将八个子节点解码为黑节点(“B”节点)或者白节点(“W”节点)。
优选地,在对PPM节点进行解码时,使用DIB数据位(DIB)数据对当前节点进行PPM解码,并且通过进行反向AAC和反向DPCM来对当前节点的“B”体元的R、G、B值进行解码。
根据本发明的另一方面,提供了一种对已编码的三维对象数据的位流进行解码的装置。所述装置包括位流读取器,用于接收已编码的三维对象数据的位流;节点解码器,用于对位流进行解码;以及树形结构恢复器,用来将已解码的节点恢复成树形结构。
优选地,所述节点解码器包括连续标记解码器,用来对表示当前节点是否为位流的末尾的连续标记进行解码;节点位置信息解码器,用来读出表示队列中哪个候选节点为当前节点的节点位置信息并对所述节点位置信息进行编码;节点类型选择器,用来对位流的节点类型信息进行解码;S节点解码器,用来解码当前节点的八个子节点的平均颜色,来作为DIB数据,并接着顺序地将8个子节点解码成“B”节点或“W”节点;以及P节点解码器,用来对当前节点的DIB数据进行PPM解码,并接着通过进行反向AAC以及反向DPCM对当前节点的“B”体元的R、G、B值进行解码,和如果所述节点类型信息表示当前节点为PPM节点,则对“S”节点进行解码。
根据本发明的另一个方面,提供了一种计算机可读记录介质,在所述计算机可读记录介质上记录有能够执行任何上述方法的程序。


本发明的上述和其它特性及优点将随着下面参照附图对其典型实施例的详细描述而变得更加清楚,其中图1为说明用于分层深度图像的点纹理的一个例子的图;图2为显示点纹理节点标准的图;图3(a)-3(d)为说明用于体数据(volume data)的不同八叉树形结构的图,其中体数据中标记出了每个节点;图4为在使用对三维对象数据进行编码的方法时所获得的位速率失真曲线;图5为说明节点的位流结构的图;图6为说明S节点的位流结构的图;图7为说明P节点的位流结构的图;图8(a)和8(b)为说明在预测部分匹配(PPM)编码中使用的上下文的例子的图;图9为说明了用于测试本发明的性能的测试模型的图;图10(a)和10(b)为将本发明压缩点纹理测试模型的性能与其它商用工具(例如WinZip)压缩点纹理测试模型的性能进行比较的表;图11为根据本发明的优选实施例的用于对三维数据进行编码的装置的方框图;图12为图11的合并次序选择器的详细方框图;图13为说明图12的候选节点选择器的操作的流程图;图14为说明合并次序选择器的操作的流程图;图15为图11的节点编码器的详细方框图;图16为说明节点编码器的操作的流程图;图17为说明图15的S节点编码器的操作的流程图;图18为说明图15的P节点编码器的操作的流程图;图19为根据本发明的优选实施例用于对三维对象数据进行解码的装置的方框图;图20为图19的节点解码器的详细方框图;图21为说明节点解码器的操作的流程图;图22为说明图20的S节点解码器的操作的流程图;以及图23为说明图20的P节点解码器的操作的流程图。
具体实施例方式
在下文中,将参照附图对根据本发明的优选实施例的用于编码和解码三维对象数据的方法和装置进行更为详细的说明,其中所述三维对象数据包括点纹理数据,体元数据、以及树形结构数据。
图11为根据本发明的优选实施例的用于对三维对象数据进行编码的装置的方框图。参看图11,所述装置包括树形结构生成器1100、合并次序选择器1110、节点编码器1120、以及位流生成器1130。
所述树形结构生成器1100接收表示三维对象数据的点纹理数据、体元数据、以及树形结构数据,并生成具有树形结构的三维对象数据,在所述树形结构中每个节点被标记为彼此之间不同的。这里,所述树形结构为八叉树形结构。
在下文中,将详细描述生成八叉树的方法。所述点纹理图像被转换成体数据(volume data),并且所述体数据可以交替地由八叉树来表示。接着,通过使用预测部分匹配(PPM)方法对八叉树的叶节点进行有效的编码。因此,根据本发明的优选实施例对三维对象进行编码及解码的方法等效于对点纹理模型及八叉树模型进行压缩的方法。
为了将三维对象的深度信息转换为体数据,首先要生成边界体(boundingvolume)。所述边界体同点纹理具有相同的分辨率。例如,假设点纹理用分辨率X×Y来表示图像,并且每个像素的深度信息的分辨率为Z,则就会生成分辨率为X×Y×Z的边界体。边界框的原点(origin)位于边界框的左下前角上。右侧体元的值为x,其大于左侧体元的值,上部体元的值为y,其大于下部体元的值,并且尾部体元的值为z,其大于前部体元的值。可以立即将深度信息转换为二进制体数据。体数据的所有体元都被初始化为W(白,‘0’)。此后,如果有的位置是由点纹理的像素所指出的,则体数据的体元被设置为B(黑,‘1’)。黑体元表示三维对象上的点,和白体元表示透明的背景。
所述体数据由八叉树表示,八叉树的节点被分成4个不同的种类。在下面的表1中显示出了分别表示四个不同类别的标记。如果边界体包括一个对象,则根节点被标记为“S”,并且所述边界体被分成8个相同的子体(sub-volume)。如果子体仅仅包括黑体元或者白体元,则相应的节点被标记为“B”或“W”。否则,相应于所述子体的节点被标记为“S”,并且进一步将所述子体分成8个更小的相同部分。这种处理会重复进行下去,直到达到了八叉树的预定深度处的节点为止。如果八叉树的预定深度处的节点同时包括黑体元和白体元,则所述节点被标记为“P”并且可以使用PPM方法对所述节点中包括的体元值进行编码。
表1

图3(a)-3(d)为说明了用于体数据的不同八叉树形结构的图,其中体数据中标记出了每个节点。在图3(a)-3(d)中,说明了二维二进制图像以及它们各自的四叉树表示。更具体地说,图3(a)说明了四叉树形结构中的父-子关系,和图3(b)说明了相应于二进制图像的四叉树,其中二进制图像的深度信息被设置为2。通过使用用于四叉树以及3个P节点的PPM编码的数据可以恢复所述二进制图像,而不会有任何数据损失。
图12为图11的合并次序选择器1110的详细方框图。所述合并次序选择器1110参照节点的标记将由树形结构表示的三维对象数据的节点进行合并。如图12所示,合并次序选择器1110包括候选节点选择器1200、最优节点选择器1210、以及候选节点更新器1220。所述候选节点选择器1200选择标记为“P”的节点和标记为“S”的节点,来作为将要被合并的候选者。这里,其子节点都为白节点(以后称为‘W’节点)或黑节点(以后称为‘B’节点)的S节点,或者‘W’以及‘B’节点都可以被选择作为要被合并的候选者。所述最优节点选择器1210选择了一个节点作为最优节点,对于所述节点来说,在节点合并处理之前失真位的数量与节点合并处理之后失真位的数量之间的差值ΔD同在节点合并处理之前所有位的数量与节点合并处理之后所有位的数量之间的差值ΔR的比率达到了最小值。之后,最优节点选择器1210标记被选中的节点‘B’。所述候选节点更新器1220对除了被选作最优节点的节点以外的所有候选节点进行更新。
接下来,将参照图3(a)-3(d)、13、14对树合并方法进行更充分的说明。图3说明了标记的八叉树表示以及树合并。一直重复地将初始树的节点合并以便于使得原始深度信息接近到几个精致级别(refinement level)。这里,可以合并的节点是用P标记的节点或者其子节点都为B节点或者W节点的节点。例如,在图3(b)的树中有四个粗线圆圈标记的可合并节点。我们可以假设,在这四个可合并节点中,对应于由二进制图像上的正方形标记的区域的节点被合并为B节点。在图3(c)中说明了合成的二进制图像以及合成的树。现在,如图3(c)所示,剩下了3个可合并的节点。接着,这三个可合并节点中的一个(也就是图3(c)中所示树的最左侧的P节点)被合并为B节点。接着,对应于图3(d)的近似模型的左上象限(quadrant)并且其子节点都为“B”节点或“W”节点的节点就变成了可合并的。这种树合并处理会一直进行下去,直到所述树的所有节点都被一起合并到一个根节点之下。
图1 3为说明候选节点选择器1200的操作的流程图。假设“i”表示每个节点的序号,“count”表示候选节点的数量,在步骤1300中将“i”和“count”都初始化为0。如果在步骤1310中节点被标记为“S”或“P”,则在步骤1330中选择所述节点作为候选节点,并将其存储在队列中,以及“count”加1。这里,在“S”节点中,只有其子节点都为“W”或“B”节点的节点或者“W”节点以及“B”节点的节点才能被选作为候选节点。如果所述节点既不是“S”节点也不是“P”节点,则在步骤1320中对下一个节点执行步骤1310。重复执行步骤1310至1330,直到“i”表示是最后节点(在步骤1340中)为止。
从一组可合并的节点中选择将要被合并在一起的节点,并且将ΔD对ΔR的比值以预定的速率进行最小化,如以下等式(1)中所示。
-ΔDΔR=-Da-DbRa-Rb---(1)]]>在等式(1)中,ΔR表示节点合并处理之前所有位的数量(Ra)与节点合并处理之后所有位的数量(Rb)之间的差值,和ΔD表示在节点合并处理之前失真位的数量(Da)与节点合并处理之后失真位的数量(Db)之间的差值。在合并节点时,所需要的位速率降低,可是近似模型失真的程度增加了。因此,需要查找能够将近似模型失真的可能性最小化并且一旦它们被合并到一块就能够将所需的位速率中的降低最大化的节点。
为了计算ΔD,使用原始模型V与对的近似之间的汉明距离(Hanmingdistance),来作为失真测量。
X×Y×Z表示模型的分辨率。
为了计算ΔD,需要计算表示八叉树以及它的PPM节点所需要的位的数量(也就是所需的位速率)。可是,计算如此所需的位速率是非常复杂的。因此,通过将典型的树形位以及PPM位应用于几个测试模型来计算所需的位速率。
图14为说明合并次序选择器的操作的流程图。参看图14,在步骤1410中,从由候选节点选择器1200选作候选节点的节点中选择一个可以为其从等式(1)中获得最小值的节点作为最优节点。在步骤1420中,被选中的最优节点被标记为“B”。在步骤1430中,从队列中删除这个被标记为“B”的节点。在步骤1440中,更新队列。重复进行步骤1410至1440,直到所有的节点都被合并在一块(在步骤1450中)为止。
节点编码器1120对合并后的节点进行编码。图15为节点编码器1120的详细方框图。参照图15,所述节点编码器1120包括连续标记编码器1500、节点位置编码器1510、节点S-or-P(SOP)选择器1520、S节点编码器1530、以及P节点编码器1540。
所述连续标记编码器1500对表示当前节点是否为压缩位流的末尾的连续标记进行编码。如果当前节点不是压缩位流的末尾,则将连续标记设置为“真”。否则,将连续标记设置为“假”。节点位置编码器1510包括其中存储由候选节点选择器1200所选择为候选节点的节点的候选节点队列,以及节点位置编码器1510对表示候选节点队列中每个候选节点的位置的节点位置信息进行编码。节点SOP节点选择器1520对表示当前节点为S节点或P节点的节点类型信息进行编码。如果所述节点类型信息表示当前节点为P节点,则所述S节点编码器1530就对P节点的详细信息位(DIB)数据进行编码。
图16为节点编码器1120的操作的流程图。参照图16,在步骤1600中对连续标记进行编码。如上所述,所述连续标记表示当前节点是否为压缩位流的末尾。如果当前节点不是压缩位流的末尾,则将连续标记设置为“真”。否则,将连续标记设置为“假”。在步骤1600中,对节点位置信息进行编码。在步骤1620中,检查所述合并的节点是否为P节点。如果所述合并的节点为P节点,则在步骤1630中进行P-节点编码。否则,进行S-节点编码。重复进行步骤1600至1640,直到已经对所有的节点进行编码为止(在步骤1650中)。
图17为说明S节点编码器1520的操作的流程图。参看图17,在步骤1700中对平均颜色信息进行编码。在步骤1710中,对八个子节点的标记进行编码。
图18为说明P节点编码器1530的操作的流程图。参看图18,在步骤1800中对深度信息进行PPM编码。在步骤1810中,对颜色信息进行差分脉冲码调制(DPCM)编码。
更具体地说,根据使用等式(1)确定的节点的优先级别按照预定的顺序对节点进行合并,同时按照相反的顺序对位流进行编码。换句话说,在对较早合并的节点进行编码之前先对较晚合并的节点进行编码。因此,解码器可以通过对压缩位流进行解析从而从压缩位流中恢复其范围从最粗糙的一个到最精致的一个的三维模型。图4中说明了通过使用上面提到的节点合并方法而获得的位速率失真曲线。
在下文中,可以更详细地对位流的结构进行说明。压缩的位流由八叉树的节点数据组成。如上所述,压缩位流中的节点顺序与节点合并顺序恰好相反。图5为预定节点的压缩位流的结构图。参看图5,节点信息由连续标记、位置数据、SOP数据以及DIB数据组成。
所述连续标记表示预先确定的节点是否为压缩位流的末尾。使用自适应算法编码器(AAC)对构成图5的节点信息的所有数据进行熵编码(entropy-encode)。位置数据表示是否有“B”节点要被分解或者被PPM编码。例如,我们可以假设解码器使用它已经接收到的所有数据来恢复图3(d)中所示的近似模型。图3(d)的八叉树包括4个“B”节点,它们都是将要被合并的候选节点。为了获得如图3(c)所示模型一样精致的模型,由编码器通知解码器在4个“B”节点中,应该对从八叉树的左边起的第二个节点进行PPM编码。如果有多于一个要被合并的候选节点,如图3(d)所示,则每个候选节点,即“B”节点应该被PPM编码的顺序就要被作为位置数据而进行编码。如果只有一个候选节点(“B”节点),则位置数据就不是必须的,而且也就不需要对位置数据进行编码。所述SOP数据表示预定的节点是否应该被分解为8个子节点或者被PPM编码。如果SOP数据表示预定的节点是“S”节点,则所述DIB数据由8个标记组成,每个标记都表示预定节点的平均颜色是什么以及预定节点的子节点是否是“W”节点。非“W”节点就可以被临时认为是B节点,并因此被存储在其中记录有用于下一个位流的候选节点“B”的队列中。图6说明了“S”节点的结构。
如果SOP数据表示所述预定节点是“P”节点,则对预定节点中的“B”体元的深度信息进行PPM编码,并对“B”体元的颜色信息进行DPCM编码。图7中说明了“P”节点的位流的结构。PPM最先由Cleary以及Witten提出来,用于压缩传真数据,而没有任何数据损失。
在下文中,将更详细地对PPM编码进行描述。如上所述,用二进制体元值表示深度信息。“W”体元表示透明背景,和“B”体元表示三维对象。通过使用与二进制体元相邻的体元作为上下文来对“P”节点中的二进制体元进行PPM编码。图8(a)和8(b)说明了上下文的例子。使用13个圆形体元作为上下文来对矩形体元进行编码。根据光栅扫描,“W”体元被设置为“0”,和“B”体元被设置为“1”。这13位,也就是13个圆形体元被用作用于图8(b)中所示的矩形体元的上下文。在这种情况下,用于矩形体元的上下文可以被表示为“0011101000011”,其中上下文的数量为213。可是,213个上下文太多了,是无法计算的。因此,需要降低上下文的数量。通过模拟选择那些即使被清除掉也不会显著地增加熵的体元。首先要清除掉两个体元。之后,另一个体元也被清除掉。在图8(a)中这三个体元被标记为“×”。自适应算法编码器通过使用所述上下文来压缩体元。
对图8(b)中的黑方块进行编码,而图8(a)和8(b)中的黑圆圈被用作上下文。在图8(a)中,被标记为“×”的体元就是被清除的体元。
在对深度信息进行编码之后,根据由光栅扫描确定的预定顺序来对预定节点中的“B”体元的R、G、B颜色值进行DPCM编码。更具体地是,根据前一个“B”体元的R、G、B颜色值来估计“B”体元的R、G、B颜色值。使用算术编码器对估计余项(Estimation residual)进行编码。
位流生成器1130在位流中生成节点编码数据。
在本发明中,使用渐进式编码方法对三维对象数据进行编码。可是,可以使用无损失编码方法或有损失解码方法来对三维对象进行编码。当对整个位流进行编码时,所述编码方式应该为无损失编码。另一方面,当只对位流的一部分进行编码时,则所述编码方式应该为有损失编码,其中所述位流从对应于所述位流的树形结构的根节点开始,直到树形结构的较低层中的预定的节点为止。
在下文中,将更详细地对用于解码三维对象数据的方法和设备进行说明。
图19为根据本发明的优选实施例的用于对三维对象数据进行解码的装置的方框图。参看图19,所述装置包括位流读取器1900、节点解码器1910、以及树形结构恢复器1920。所述位流读取器1900接收三维对象数据的已编码的位流,节点解码器1910对已编码的位流进行解码,以及树形结构恢复器1920将已解码的节点恢复成数形结构。
图20为节点解码器1910的详细方框图。所述节点解码器1910包括连续标记解码器2000、节点位置信息解码器2010、节点类型选择器2020、S节点解码器2030、以及P节点解码器2040。
所述连续标记解码器2000从三维对象数据的已编码的位流中读出连续标记信息并对所述已编码的位流进行解码。节点位置信息解码器2010读取已编码的位流的节点位置信息并将所述读出的节点位置信息解码为表示队列中当前节点所处位置的位置信息。节点类型选择器2020对节点类型信息进行解码。如果所述节点类型信息表示当前节点是S节点,则S节点解码器2030解码八个子节点的平均颜色,来作为DIB数据,并接着顺序地将8个子节点解码成“B”节点或“W”节点。如果所述节点类型信息表示当前节点为PPM节点,则P节点解码器2040对当前节点的DIB数据进行PPM解码。P节点解码器2040通过进行反向AAC以及反向DPCM对当前节点的“B”体元的R、G、B颜色进行解码。
图21为说明节点解码器1910的操作的流程图。参看图21,在步骤2100中对连续标记进行解码。在步骤2110中,对位置数据进行解码。在步骤2120中,检查当前节点是否是“P”节点。如果当前节点是“P”节点,则在步骤2130中采用“P”节点解码方法对当前节点进行解码。否则使用“S”解码方法对当前节点进行解码。重复进行步骤2100至2130,直到对所有的节点进行解码(在步骤2150中)为止。
图22为说明S节点解码器2020的操作的流程图。参看图22,在步骤2200中对平均颜色信息进行解码。在步骤2210中,对当前节点的八个子节点的标记进行解码。
图23为说明P节点解码器2030的操作的流程图。参看图23,在步骤2300中对PPM深度信息进行解码。在步骤2310中,通过执行反向DPCM来对颜色信息进行解码。更具体地说,使用DIB数据对当前节点进行PPM解码,并且通过执行反向AAC以及反向DPCM对当前节点的黑体元的R、G、B值进行解码。
在下文中,将对根据本发明的用于对三维对象数据进行解码的方法进行更详细的说明。根据本发明对三维对象数据进行解码的方法类似于根据本发明对三维对象数据进行解码的方法。解码器读出位流的连续标记并检查当前节点是否为位流的末尾。接着,解码器读出位置数据以及SOP数据,并根据读出的位置数据以及SOP数据确定应该对哪些节点进行分解或者进行PPM解码。如果当前节点为“S”节点,则将当前节点的所有体元的颜色值临时设置为DIB数据中的R、G、B颜色值的平均值。当接收到当前节点的子节点的数据时,对当前节点的体元的颜色值进行更新。如果当前节点为“P”节点,则使用DIB数据无损失地对当前节点的“B”体元的深度以及颜色信息进行恢复。
在本发明中,以渐进的方式对三维对象数据进行解码。在渐进的方式中,按照对图像数据的位流进行解码的预定顺序对节点进行解码。因此,如果图像数据被显示在屏幕上,则解码后的节点按照从最上边节点到最下边节点的次序顺序地显示在屏幕上。因此,由于解码处理达到了表示三维对象数据的树形结构中的较低的节点,所以屏幕上显示的图像就会变得更精致和清晰。在对最后节点进行解码后,所述解码处理就结束了,屏幕上也会显示出最精确和清楚的图像。
如上所述,在本发明中,以渐进的方式对三维对象数据进行解码。可是也可以采用无损失解码方法或有损失解码方法对三维对象进行解码。当对整个位流进行解码之后,则其解码的方式就将是无损失解码。另一方面,仅仅当对从相应于位流的树形结构的根节点到树形结构的较低级别中的预定节点的范围的位流的一部分进行解码时,其解码方式将是有损失解码。
使用如图9(a)至9(h)中所示的测试模型对根据本发明的编码及解码三维对象数据的方法的性能进行评估。如图9(a)-9(e)中所示的测试模型的分辨率为256×256×256,以及如图9(f)至9(h)中所示的测试模型的分辨率为512×512×512。
图10(a)和10(b)为对本发明以及WinZip的数据压缩性能进行比较的表。本发明只需要WinZip处理深度信息所需文件大小的22-59%。本发明只需要WinZip压缩颜色信息所需文件大小的59-81%。可是,在处理“平面”模型方面,由于“平面”模型只包括几个颜色,因此WinZip显示出了比本发明更好的性能,并且作为基于字典编码器的WinZip更适合于处理“平面”模型。本发明只需要WinZip压缩深度信息以及颜色信息所需文件大小的49-75%。
本发明支持渐进的数据传输以及渐进的数据解码,而需要注意的是WinZip却做不到这些。渐进的数据传输以及渐进的数据解码是更可取的,因为它们利于带宽受限的环境中的位流的自适应以及对三维模型进行浏览。
本发明建议一种用于点纹理的渐进的数据压缩方法。在所述渐进的数据压缩方法中,利用颜色矢量以及深度信息,像素之间彼此非常相关。在本发明中,通过对八叉树形结构采用PPM方法,可以很有效地对深度信息和颜色信息进行编码。很多模拟结果显示,本发明提供了比一般的Lempel-ZiV编码器,也就是WinZip更高的压缩比率。
本发明可以用写入到计算机可读记录介质上的计算机可读代码来实现。所述计算机可读记录介质包括所有类型的在其上可以计算机可读方式记录数据的记录装置。例如计算机可读记录介质包括ROM、RAM、CD-ROM、磁带、软盘、光数据存储、以及载波,例如通过互联网的数据传输。所述计算机可读记录介质可以被分成多个彼此之间通过网络相连的计算机系统,在所述情况下,可以分散的方式将数据存储在计算机可读记录介质中。
虽然本发明参照典型的实施例进行了具体的显示和说明,可是对于本领域内的普通技术人员来说可以理解的是,在不脱离由如下权利要求所定义的本发明的精神和范畴的情况下可以在形式和细节上进行各种变化。
权利要求
1.一种对三维对象数据进行编码的方法,其中所述三维对象数据由点纹理数据、体元数据或者八叉树形结构数据组成,所述方法包括生成具有树形结构的三维对象数据,其中在所述树形结构中,节点被加以表示其类型的标记;对三维对象数据的节点进行编码;以及生成其节点被编码成位流的三维对象数据。
2.根据权利要求1的方法,其中在生成三维对象数据期间,通过使用三维边界体将三维对象数据转换为体元数据,并且根据它们是否位于对象所处的位置来对体元加以不同的标记,从而使得体元彼此之间互不相同。
3.根据权利要求2的方法,其中在表示三维对象数据的树形结构中,具有子节点的节点被标记为“S”,其体元不包括对象的节点被标记为“W”,其体元都包括对象的节点被标记为“B”,以及使用预测部分匹配(PPM)算法对其体元进行编码的节点被标记为“P”。
4.根据权利要求1的方法,其中对三维对象数据的节点的编码包括对表示当前节点是否是“S”节点或“P”节点的节点信息进行编码;以及如果节点信息表示当前节点为“S”节点,则对“S”节点的详细信息位(DIB)数据进行编码,和如果节点信息表示当前节点为“P”节点,则对“P”节点的DIB数据进行编码。
5.根据权利要求1的方法,其中在对三维对象数据的节点进行编码过程中,只对三维对象数据的节点中其范围从根节点到预定较低节点的一些节点进行编码。
6.根据权利要求1的方法,其中在对三维对象数据的节点进行编码过程中,对三维对象数据的所有节点进行编码。
7.一种对三维对象数据进行编码的方法,其中所述三维对象数据由点纹理数据、体元数据或者八叉树形结构数据组成,所述方法包括(a)生成具有树形结构的三维对象数据,其中在所述树形结构中,节点被加以表示其类型的标记;(b)通过参照其标记对三维对象数据的节点进行合并;(c)对合并的节点进行编码;(d)生成其合并的节点被编码成位流的三维对象数据;以及(e)重复进行步骤(a)-(d),直到表示三维对象数据的树形结构的最上面的节点被编码为止。
8.根据权利要求7的方法,其中在步骤(a)中,具有子节点的节点被标记为“S”,其体元不包括对象的节点被标记为“W”,其体元都包括对象的节点被标记为“B”,以及使用PPM算法对其体元进行编码的节点被标记为“P”。
9.根据权利要求8的方法,其中步骤(b)包括选择其子节点被标记为“W”和“B”的“P”节点和“S”节点作为将要合并的候选节点;从候选节点中选择节点作为最优节点,所述节点能够对在候选节点合并处理之前失真位的数量与在对候选节点合并处理之后失真位的数量之间的差值ΔD同候选位合并处理之前的位的数量与候选位合并处理之后的位的数量之间的差值ΔR的比率进行最小化;对选中的节点“B”进行标记;以及对除了被选作最优节点的节点以外的所有候选节点进行更新。
10.根据权利要求9的方法,其中使用在原始模型V与其近似V之间的汉明距离作为失真测量来在下面的等式中计算ΔD 其中X×Y×Z表示原始模型的分辨率。
11.根据权利要求8或9的方法,其中步骤(C)包括对表示候选节点是否存在于队列中的信息的连续标记进行编码;对表示队列中每个候选节点的位置的节点位置信息进行编码;对表示当前节点是否为“S”节点或“P”节点的节点类型信息进行编码;以及如果节点信息表示当前节点为“S”节点,则对“S”节点的DIB数据进行编码,和如果节点信息表示当前节点为“P”节点,则对“P”节点的DIB数据进行编码。
12.根据权利要求11的方法,其中对“S”节点的DIB数据进行编码包括对颜色信息的平均值进行编码;以及对当前节点的八个子节点的标记进行编码。
13.根据权利要求11的方法,其中对“P”节点的DIB数据进行编码包括对深度信息进行编码;以及对颜色信息进行编码。
14.根据权利要求13的方法,其中在对深度信息进行编码期间,根据通过使用预定数量的上下文,来根据光栅扫描顺序对表示三维对象数据的树形结构中的预定节点以下的所有节点进行PPM编码。
15.根据权利要求13的方法,其中在对颜色信息进行编码期间,通过执行差分脉冲码调制(DCPM)以及自适应算法编码(AAC)来对当前节点的‘B”体元的颜色信息R(红)、G(绿)、B(蓝)值进行编码。
16.根据权利要求7的方法,其中在步骤(c)中,只对范围从第一个至预定数目的合并节点中的一部分进行编码.
17.根据权利要求7的方法,其中在步骤(c)中,对所有的合并节点进行编码。
18.一种对三维对象数据进行编码的装置,其中所述三维对象数据由点纹理数据、体元数据或者八叉树形结构数据组成,所述装置包括树形结构生成器,用来生成具有树形结构的三维对象数据,其中在所述树形结构中,节点被加上表示其类型的标记;合并顺序选择器,用于通过参考它们的标记来对三维对象数据的节点进行合并;节点编码器,用来对合并的节点进行编码;以及位流生成器,用来生成其合并节点被编码成位流的三维对象数据。
19.根据权利要求18的装置,其中所述合并顺序选择器包括候选节点选择器,用于选择其子节点被标记为“W”和“B”的“P”节点和“S”节点来作为将要被合并的候选节点;最优节点选择器,用来从候选节点中选择节点作为最优节点,所述节点能够对在候选节点合并处理之前失真位的数量与在候选节点合并处理之后失真位的数量之间的差值ΔD同在候选位合并处理之前的位的数量与在候选位合并处理之后的位的数量之间的差值ΔR的比率进行最小化,并且对选中的节点“B”进行标记;以及候选节点更新器,用来对除了被选作最优节点的节点以外的所有候选节点进行更新。
20.根据权利要求18或19的装置,其中所述节点编码器包括连续标记编码器,用来对表示当前节点是否为压缩位流的末尾的信息的连续标记进行编码;节点位置编码器,用来对表示队列中每个候选节点的位置的节点位置信息进行编码;节点“S’-or-‘P’(SOP)选择器,用来对表示当前节点为‘S’节点或‘P’节点的节点类型信息进行编码;S节点编码器,用来如果节点信息表示当前节点为‘S’节点,则对‘S’节点的DIB数据进行编码;以及P节点编码器,用来如果节点信息表示当前节点为‘P’节点时,则对‘P’节点的DIB数据进行编码。
21.根据权利要求18的装置,其中所述节点编码器只对范围从第一个至预定数目的合并节点中的一部分进行编码.
22.根据权利要求18的装置,其中所述节点编码器对所有的合并节点进行编码。
23.一种对三维对象数据进行解码的方法,包括从已编码的三维对象数据的位流中读取连续标记信息,并对所述连续标记信息进行解码;对位流的节点类型信息进行解码;如果节点类型信息表示当前节点为“S”节点,则对“S”节点进行解码,和如果节点类型信息表示当前节点为PPM节点,则对PPM节点进行解码;以及恢复其节点被编码成树形结构的三维对象数据。
24.一种对三维对象数据进行解码的方法,包括对已编码的三维对象数据的位流的节点进行解码;以及恢复其节点被编码成树形结构的三维对象数据。
25.根据权利要求24的方法,其中对已编码的三维对象数据的位流的节点进行解码包括从已编码的三维对象数据的位流中读出连续标记位信息,并对所述连续标记信息进行解码;读出表示队列中的哪个候选节点为当前节点的节点位置信息,并对所述节点位置信息进行解码;对位流的节点类型信息进行解码;如果节点类型信息表示当前节点为“S”节点,则对“S”节点进行解码;以及如果节点类型信息表示当前节点为PPM节点,则对PPM节点进行PPM解码。
26.根据权利要求25的方法,其中在对“S”节点进行解码中,将当前节点的八个子节点的平均颜色解码为DIB数据,并且顺序地将八个子节点解码为黑节点(“B”节点)或者白节点(“W”节点)。
27.根据权利要求26的方法,其中在对PPM节点进行解码中,使用DIB数据位(DIB)数据对当前节点进行PPM解码,并且通过进行反向AAC和反向DPCM来对当前节点的“B”体元的R、G、B值进行解码。
28.一种对已编码的三维对象数据的位流进行解码的装置,所述装置包括位流读取器,用于接收编码三维对象数据的位流;节点解码器,用于对位流进行解码;以及树形结构恢复器,用来将已解码的节点重构成树形结构。
29.用于权利要求27的装置,其中所述节点解码器包括连续标记解码器,用来对表示当前节点是否为位流的末尾的连续标记进行解码,以及对所述节点位置信息进行解码;节点位置信息解码器,用来读出表示队列中的候选节点为当前节点的节点位置信息;节点类型选择器,用来对位流的节点类型信息进行解码;S节点解码器,用来将当前节点的八个子节点的平均颜色解码为DIB数据,并接着顺序地将八个子节点解码成“B”节点或“W”节点;以及P节点解码器,用来对当前节点的DIB数据进行PPM解码,并接着通过进行反向AAC以及反向DPCM对当前节点的“B”体元的R、G、B值进行解码,以及如果所述节点类型信息表示当前节点为PPM节点,则对“S”节点进行解码。
30.一种计算机可读记录介质,在所述介质上记录了能够执行权利要求1至17以及23至27的任何一个的方法的程序。
全文摘要
本发明提供了一种对三维对象数据进行编码和解码的方法及装置,其中三维对象数据由点纹理数据、体元数据、或八叉树数据组成。编码装置及其方法的处理包括生成具有树形结构的三维对象数据,其中在树形结构中,节点被加以表示其类型的标记;对三维对象数据的节点进行编码;和生成其节点被编码成位流的三维对象数据。解码装置及其方法的处理包括从已编码的三维对象数据的位流中读取连续标记信息,并对连续标记信息进行解码;对位流的节点类型信息进行解码;如果节点类型信息表示当前节点为“S”节点,则对“S”节点进行解码,和如果节点类型信息表示当前节点为PPM节点,则对PPM节点进行解码;和恢复其节点被编码成树形结构的三维对象数据。
文档编号G06T15/40GK1549206SQ200310114789
公开日2004年11月24日 申请日期2003年12月5日 优先权日2002年12月5日
发明者朴仁圭, 李信俊, 宋寅昱, 金昌洙, 李商郁 申请人:三星电子株式会社, 财团法人索尔大学校产学协力财团
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1