用深度图像表示三维物体的节点结构的制作方法

文档序号:6605525阅读:807来源:国知局
专利名称:用深度图像表示三维物体的节点结构的制作方法
技术领域
本发明涉及到一种表示基于三维(3D)物体的深度图像的节点结构,具体地说,涉及一种通过具有深度信息的图像表示物体的节点结构。
背景技术
自从研究三维(3D)图形开始以来,研究者的根本目的是象实际图像一样合成实际图形景色。因此,在传统着色技术的研究中已经利用多边形模型,结果是,建模和着色技术的发展已经足以提供非常真实的3D环境。然而,产生复杂模型的过程需要通过专家大量的努力并花费大量时间。同样,现实中复杂的环境需要巨量的信息而导致存储和传输的低效率。
当前,多边形模型通常用来在计算机图形上表示3D物体。利用多组颜色多边形,即利用多组颜色三角形可基本表示一个任意形状。先进的软件算法和图形硬件的开发使得作为实际上静止和运动图像多边形模型的可视复杂物体和景色而变得可能。
然而,可替换的3D表示的探索在近十年中非常活跃。为此,主要原因包括为实物建立多边形模型的困难以及为产生真图片实际景色着色的复杂度和不令人满意的质量。
所需要的应用需用大量的多边形;例如,人体的详细模型包含几百万个三角形,这不容易处理。尽管近来在范围寻找技术中有了发展,如激光范围扫描器,使我们可以获取具有可容忍错误的密集范围数据,但它仍然非常昂贵且很难得到整个物体的无缝的完全多边形模型。另一方面,获得实际图片质量的着色(rendering)算法计算上很复杂,因此远远不能实时着色。

发明内容
本发明的一个方面是利用深度图像为表示三维(3D)物体提供节点结构,对计算机图形和动画,这称为基于深度图像表示(DIBR),它已经被采用到MPEG-4动画结构扩展中(AFX)。
一个方面是基于深度图像的节点结构,它包括一个纹理域和一深度域,纹理域中记录包括每个像素的颜色的彩色图像,深度域中记录每个像素的深度值。
另一个方面是基于深度图像的节点结构,它包括一大小域,一分辨率域,一深度域,和一颜色域,大小域中记录图像平面的大小信息,分辨率域中记录每个像素的深度分辨率,深度域中记录每个像素的深度信息的多片,颜色域中记录每个像素的颜色信息。
还有一个方面是基于深度图像的节点结构,它包括一视点域,一可见域,一投影方法域,一距离域,和一纹理域,视点域中记录图像平面的视点,可见域中记录从视点到图像平面的可视区域,投影方法域中记录从视点到图像平面的的投影方法,距离域中记录从近平面到远平面的距离,纹理域中记录彩色图像。
还有另一个方面是基于深度图像的节点结构,它包括一分辨率域,一八叉树(octree)域,一指数(index)域,和一图像域,分辨率域中记录沿着包围包含物体的立方体的边的八叉树叶的最大值,八叉树域中记录八叉树内部节点的结构,指数域中记录与内部节点相应的参照图像的指数,图像域中记录参照图像。
根据本发明,基于图像模型的着色时间与在参照和输出图像中的像素的数量成正比,但一般来讲,在多边形情况下不与几何复杂度成正比。另外,当基于图像的表示应用到实际物体和景色中时,在没有利用数以百万计的多边形和昂贵计算的情况下,使自然景色的逼真图像的着色变得可能。


参照附图,通过优选实施例的详细描述,本发明的上述目的和优点将变得更加明显,其中图1示出了集成于当前标准软件中的IBR的实例;图2示出了八叉树结构和各子的顺序;图3示出了八叉树压缩率;图4示出了分层深度图像(LDI)的例子的图(a)示出了黑单元(体元)对应于1和白单元对应于0的物体的投影;和(b)示出了在(x,深度)的2D部分;图5示出了在重置它的颜色数据之后的“天使”模型的颜色组件;图6示出了节点出现几率的正交不变性(a)示出了原始当前和父节点,和(b)示出了围绕Y轴旋转90度的当前和父节点;图7、8和9示出了对于最好的基于PPM的方法的几何压缩图;图10示出了将‘天使’点纹理模型的颜色域重新调整成为2D图像的两种方式;图11示出了无损几何和有损颜色压缩的例子(a)和(b)分别是‘天使’模型的原有和压缩的形式,及(c)和(d)分别是‘莫顿256’模型的原有和压缩形式;图12示出了‘天使’的BVO模型和TBVO模型;图13示出了在TBVO中由另外的相机得到的另外的图像;(a)是相机指数图像,(b)是第一另外图像(c)是第二另外图像;图14示出了编写TBVO流的实例(a)示出了TBVO树形结构,灰色为“未定义”的纹理符号,每一种颜色表示相机的指数;(b)示出了八叉树在BVO节点和相机指数中的遍历顺序;(c)示出了所得结果的TBVO流,其中充填的立方体和八叉树立方体分别表示纹理的字节和BVO字节;图15、17、18和19分别示出了‘天使’、‘莫顿’、‘棕榈512’和‘机器人512’的TBVO压缩的结果的图;图16示出了‘天使’和‘莫顿’模型的剥离图像;图20示出了立体纹理图和深度图的例子的图解;图21示出了分层的深度图(LDI)例子的图解(a)示出了物体的投影图,和(b)示出了分层的像素;图22示出了盒子纹理(BT)的实例,其中六个简单的纹理(图像和深度图对)被用于着色表示在中心的模型;图23示出了广义盒子纹理(GBT)(a)示出了‘掌纹’模式的摄像位置,(b)示出了同一模式(使用的21个简单的纹理)的参考图像面板;图24示出了以2D模式表示的八叉树表示的实例(a)示出了“点云”,(b)示出了相关的中图;图25示出了用于写TBVO比特流的伪代码;图26示出了DIBR节点的规格;
图27示出了深度图像的视见体积模型图(a)是透视图,(b)是正交图;图28示出了基于OpenGL的简单纹理的着色的伪代码;图29示出了简单纹理的参照图像压缩的实例(a)示出了初始参照图像,和(b)示出了以JPEG格式的改进的参照图像;图30示出了以不同格式表示“莫顿”模型的着色结果的实例(a)为初始多边形格式,(b)为深度图像格式,和(c)为八叉树图像格式;图31示出了着色实例(a)以深度图像格式示出了扫描的“塔”模型,(b)以八叉树图像格式示出了同一模型(在没有遭受去除的情况下使用扫描数据,从而在模型的上半部有黑点);图32示出了棕榈模型着色的实例图(a)示出了初始多边形格式,和(b)以深度图像格式示出了同一模型;图33示出了以八叉树图像从“龙512”动画中表示框架的着色实例;图34示出了以点纹理格式的“天使512”模型的着色实例;图35A和35B示出了当分别代表具有简单纹理节点和点纹理节点的深度图像的对象时,表示各个节点关系的示意图;和图36示出了当用八叉树节点代表一个物体时的相应八叉树图像的结构图。
具体实施例方式
该申请要求列在下面的美国临时申请的权利,在此全部参照引用。
下面描述在美国临时申请号为60/333167,2001年11月27日申请的名称为“编码基于图像的三维形式的绘图数据的技术及其装置”中描述的本发明。I.ISO/IEC JTC 1/SC 29/WG 11 CODING OF MOVING PICTURES AND AUDIO1.引言在该文章中,基于图像着色的中心试验的结果,报道了AFX A8.3。图像着色技术的中心实现使用深度信息的纹理。而且,根据在第57届MPEG会议之后的试验和10月份的AFX特别成员会议的讨论,提出了节点具体化的少量变化。
1.试验结果
1.1试验模型●静止物体■具有简单纹理的深度图像节点◆狗◆Tirannosaurus Rex(深度图像,利用大约20个相机)◆Terrasque(一个怪物)(深度图像,利用大约20个相机)◆ChumSungDae(深度图像,扫描数据)◆棕榈树(深度图像,20个相机)■具有层状纹理的深度图像节点◆角■具有点纹理的深度图像节点◆角■八叉树图像节点◆生物●动画物体■具有简单纹理的深度图像节点◆龙◆具有场景环境的龙■具有层状纹理的深度图像节点◆未提供■八叉树图像节点◆机器人◆具有场景环境的龙●更多数据(扫描或者模式化的)应当在将来提供。
2.2测试结果●在悉尼提出的所有节点可集成于blaxxun contact4.3标准软件。然而,该源仍未在cvs服务器下载。
●IBR动画格式需要在多幅影像文件之间以这样的方式同步,该方式为从每个影像文件的同一关键框架的图像必须在同一时间给定。然而,当前标准软件不支持这种同步能力,这在MPEG系统是可能的。因此,假定所有动画数据当前已经存在于该文件中时,动画格式可以看到。以AVI格式的影像文件可暂时用于每个动画纹理中。
●在具有层状纹理的一些实验后,我们相信层状纹理节点无效。该节点为层状深度图像而提出。然而,仍然有一些能支持的点纹理节点。因此,我们提出从节点规格中去除层状纹理节点。
3.IBR节点规格的更新对IBR建议的悉尼会议的结论为包含图像和摄像信息的IBR流,且IBR节点将仅有链接(url)给它。然而,在Rennes的AhG会议期间,关于IBR的讨论结果为在IBR节点和流上具有图像和摄像信息。因此,下述为IBR节点更新节点规格。IBR流的要求在解释url域的部分被给定。
解码程序(比特流)-节点规格深度图像{域SFVec3f 位置 0 0 10域SFRotation 方位 0 0 10域SFVec2f fieldOfView 0.785398 0.785398域SFFloat 近平面10域SFFloat 远平面100域SFBool 正交 FALSE域SFNode di纹理NULL域SFString深度图像Url “”}深度图像节点定义一单个IBR纹理。当多个深度图像节点相互联系时,它们可作为一组得到处理,因此,应当置于同一变换节点下。
Di纹理域指定深度的纹理,应当画入到深度图像指定的区域。它将为深度图像纹理(简单纹理或者点纹理)的不同类型之一。
位置和方位区域指定在本地坐标系统中的IBR纹理的视点的相对位置。位置与坐标系统的初始(0,0,0)有关,同时定向规定一旋转与默认定向有关。在默认位置和定向中,取景器在Z轴上俯视具有向右的+X和向上的+Y的-Z轴的原点。然而,移动系统影响视点的最终位置和方位。
fieldOfView区域指定由位置和方位区域定义的摄像机视点的视角。第一个值指出到水平边的角度,第二个值指定到垂直边的角度。默认值为径向45°。然而,当正交区域被设置为TRUE时,fieldOfView区域指出近平面和远平面的宽度和高度。
近平面和远平面区域指定从视点到可视区域的近平面和远平面的距离。纹理和深度数据表明由近平面,远平面和fieldOfView关闭的区域。深度数据被标准化为从近平面到远平面的距离。
正交区域指定IBR纹理的可视类型。当设置为TRUE时,IBR纹理基于正交视图。否则,IBR纹理基于透视图。
深度图像Url区域指定深度图像流的地址,它可以随意包含下述内容。
●位置●方位●fieldOfView●近平面●远平面●正交●diTexture(简单纹理或点纹理)●上述区域的开/关标志的1个字节的头部简单纹理{域SFNode 纹理 NULL域SFNode 深度 NULL}简单纹理节点定义IBR纹理的单个层。
纹理区域指定包含每个像素颜色的低反差图象。它将为纹理节点(图像纹理,影像纹理或像素纹理)的不同类型之一。
深度区域指定在纹理区域中的每个像素的深度。深度图像的尺寸会与在纹理区域中的图像或影像一样大。它就是纹理节点(图像纹理,影像纹理或像素纹理)的不同类型之一。如果深度节点为NULL或者深度区域未指定,则在纹理区域的α通道就用作深度图像。
点纹理{域SFInt32宽度256域SFInt32高度256域MFInt32深度[]域MFColor颜色[]
}点纹理节点定义多层IBR点。
宽度和高度区域以遍历顺序指定在投影平面中的每个点(在标准坐标中)的多个深度,它从左下角开始且在移动到上线之前遍历到右边以实现水平线。对每个点来讲,首先存储深度(像素)的数目,随后是深度值的数目。
颜色区域指定当前像素的颜色。其顺序与深度区域相同,但不包括每个点的深度(像素)数目。
八叉树图像{域 SFInt32 八叉树分辨率256域 SFString 八叉树 “”域 SFNode八叉树图像 []域 SFString 八叉树Url “”}八叉树图像节点定义一八叉树结构和其投影的纹理。整个八叉树的封闭立方体的尺寸为1×1×1,且八叉树立方体的中心将为本地坐标系统的原点(0,0,0)。
八叉树分辨率区域指定沿着封闭的立方体的一边的八叉树叶的最大数目。八叉树的级别可由八叉树分辨率利用如下方程式来决定octreelevel=int(log2(octreeresolution-1))+1)八叉树区域指定一系列的八叉树内部节点。每个内部节点用一个字节来表示。这种字节的第i位中1表示存在于内部节点的第i子的子节点,而0表示子节点不存在。八叉树内部节点的顺序将是八叉树的第一次遍历的宽度顺序。内部节点的八个子的顺序如图2所示。
八叉树图像区域为di纹理区域指定一系列的带有简单纹理的深度图像节点。然而,没有使用深度图像节点的近平面和远平面区域以及简单纹理节点中的深度区域。
八叉树Url区域指定带有下列内容的八叉树图像流的地址。
●标志头●八叉树分辨率●八叉树
●八叉树图像(多深度图像的节点)■未用近平面■未用远平面■di纹理→未有深度值的简单纹理现在叙述在美国临时申请号60/362545中描述过,在2002年3月8日归档,名为“A Techniche for Compression and Straming of Depth Image-basedRepresentation and Its apparatus”的发明。II.ISO/IEC JTC 1/SC 29/WG11 CODING OF MOVING PICTURES AND AUDIO1.引言在本文档中,报道了基于深度图像着色的核心实验的结果,AFX A8.3。该核心实验是为基于深度图像表示的具有深度信息的利用纹理的节点。这些节点在Pattaya会议期间得到接受并包括进委员会草案的建议中。然而,通过八叉树节点的八叉树Url区域和深度图像节点的深度图像Url区域的信息流仍在利用。本文档描述通过这些Url区域链接的流动格式。流动格式包括八叉树图像节点的八叉树区域和点纹理节点的深度/颜色区域的压缩。
2.八叉树Url的流格式2.1流格式八叉树节点包括八叉树Url区域,它指定八叉树图像流的地址。该流可选择地包括下列内容。
●标志头●八叉树分辨率●八叉树●八叉树图像(多深度图像的节点)■未用的近平面■未用的远平面■diTexture→未有深度值的简单纹理八叉树区域指定一系列的八叉树内部节点。每个内部节点用一个字节表示。这种字节的第i位中1表示存在于内部节点的第i子的子节点,而0表示不存在子节点。八叉树内部节点的顺序将是八叉树的第一次遍历的宽度顺序。内部节点的八个子的顺序如图2所示。
八叉树图像节点的八叉树区域是一种压缩格式。然而,为了具有有效流,该区域可进一步压缩。下面将部分描述八叉树图像节点的八叉树区域的压缩方案。
2.2八叉树区域的压缩方案在DIBR的八叉树表示中,数据由表示几何分量的八叉树区域组成。八叉树是一系列在封闭立方体中的点,其完全代表物体表面。
从压缩表示的几何的非恒等的重建导致高度显著的人为影像。然而,几何必须在没有丢失信息前提下压缩。
2.2.1八叉树压缩为了在深度第一次遍历八叉树形式中表示八叉树区域的压缩,我们开发了一种利用PPM(通过部分匹配的预测)方法[1,2]的一些观念的无损失压缩方法。我们使用的主题观念是通过称为“上下文”的几个以前符号的“预测”(即可能性估计)。对每个上下文,存在一可能平面,包含在该上下文中的每个符号出现的可估计的可能性。这与称为范围编码器[3,4]的算法编码器一起使用。
该方法的两个主要特征为1.利用父节点作为子节点的上下文;2.利用“正交不变”假设以减少上下文的数目;第二个想法主要是基于“父-子”节点的“蜕变概率”在正交变换下保持不变(旋转和对称)的观察。这种假设在附件1中图示。这个假设允许我们在利用体积和速度中获得更好的结果,因为使用上下文越多,概率估计越准确,因此代码压缩越多。
编码是根据上下文模型构建和更新概率表的过程。在建议的方法中,上下文在八叉树结构中作为父-子层次被建模。首先,我们将符号定义为一个字节节点,它的位表示在内部细分之后子立方体的占有率。因此,在八叉树中的每个节点可以是一个符号且其数值是0-255。概率表(PT)包含256个整数。第i个变量除以所有变量之和等于第i个符号出现的频率(频率估计)。概率上下文表(PCT)是一系列的PT。一个符号的频率由一个且仅PTs之一决定。特殊PT的数目取决于上下文。PCT的例子如表1所示。表1.概率上下文表(PCT)的组成


编码器的工作如下。首先它使用0-上下文模型(即一所有符号的单个PT,从统一分布开始,且在每个新的编码符号之后更新PT)。以深度优先的顺序遍历树。当获得足够的统计(经验值为512个编码符号)时,编码器切换到1-上下文模型。它有27个上下文,下面对它们进行说明。
设想一组有32个固定的正交变换,它包括关于坐标轴的对称和90度的旋转(见附件2)。然后,我们可根据它们子立方体的充填方式对符号进行分类。在我们的方法中,将有27组符号,这里称为组,并具有如下属性如果它们属于同一组,而且只有它们属于同一组时,则2个符号通过这些固定变换之一连接起来。
在字节的记号中,通过27组数字代表各组(见附件2)。我们假设概率表本身不取决于父节点(其中在有256个表的情况下),但只在父节点属于的组(在表1中以ParentSymbol表示)上(因此27个表)。
在转换时刻,所有上下文的PT’被设置为0-上下文PT的拷贝。然后,当它用于编码时,27个PT的每一个均被更新。
在2048(其它渐近值)个符号以1-上下文模型的方式编码后,我们切换到2-上下文模型,它将各对(ParentSymbol,NodeSymbol)用作上下文。NodeSymbol为在父节点中的当前节点的简单位置。因此,我们用于2-上下文模型的有27*8个上下文。在切换到该模型时刻,每个上下文获得的PT用作该上下文内侧的每个节点,且从该时刻被独立更新。
在一些更详细的技术细节中,1-上下文和2-上下文模型的编码如下进行。对当前符号(即父节点)的上下文来说,其组被确定。这通过查表法(在程序开发阶段执行几何分析)来完成。然后我们应用将我们的上下文变成所属组的“标准”(彻底任意选择)元素的正交转换。同样的转换同样适用于符号本身(这些操作可作为查表法来完成,当然所有可能组合的所有计算事先完成)。实际上,对于包含其上下文的组来讲,这是概率表中当前符号的正确位置的计算。然后相应的概率被送至RangeCoder。
总而言之,假定给出一父符号和子节点位置,在PCT中辨别组ID和PT位置的上下文ID就被确定。在PT和上下文ID中概率的分布被送至范围编码器。编码后,PCT被更新以用于下一次编码。注意到范围编码器是算术编码的变分,它以字符而不是以位的形式重新正规化,因此,比标准算术编码的运行快两倍,而比标准算术编码的压缩率坏0.01%。
解码过程与编码过程基本相反。这是不需要表述的绝对标准过程,因为它精确使用相同的方法决定上下文,更新概率等。
2.3测试结果图3为采用静止和动画模型(纵坐标表示压缩率)的方法的对比表。八叉树压缩率与原来的八叉树尺寸相比大约是1.5-2倍,且优于通用的无损压缩(基于Lempl-Ziv,如像RAR程序)多达30%。
3.深度图像Url的流格式3.1流格式深度图像节点包括深度图像URL域,它指定深度图像流的地址。该流可选择地包含如下内容。
●用于下区域开/关标志的1个字节的头部●位置●方位●视图区域●近平面●远平面●正交●diTexture(简单纹理或点纹理)可用于深度图像节点的diTexture区域的点纹理节点的定义如下。
点纹理{域 SFInt32宽度256域 SFInt32高度256域 MFInt32深度[]域 MFColor颜色[]}点纹理节点定义IBR点的多层。宽度和高度域指定为上下文的宽度和高度。深度域以遍历顺序在投影面上指定每个点(以正规的坐标)的多个深度,该遍历在移动到上线之前先从左下角的点开始遍历到右边以实现水平线。首先存储每个点,深度(像素)的数量,然后存储深度值的数量。颜色域指定当前像素的颜色。顺序应当与深度域一样,但不包括每个点的深度(像素)的数量。
点纹理的深度和颜色域为raw格式,这些域的大小很可能会非常大。因此,为了具有有效的流动,这些域需要压缩。下面的部分对点纹理节点域的压缩方案进行描述。
3.2点纹理的压缩方案3.2.1深度域的压缩点纹理节点的深度域简单地为一系列的在“分散的封闭立方体”中的点。我们假设底面为投影面。给定模型为m*n*l维的栅格,位于这些栅格的单元(在八叉树情况下,我们称其为体元)中心的点,我们可以认为占用的体元为1,空的体元为0。因此产生的系列位(m*n*l位)以字节流的方式组织。这通过深度8的层沿深度方向(与投影面正交)遍历体元和在投影面(如果需要填充,有0的字节的最后层在深度方向上不是8的倍数)中以通常(“列方向”)顺序来完成。因此,我们可考虑到我们的系列点为具有8位灰度级图像(可变换的,16位图像)的栈。体元和位的对应关系如图4(a)所示。
例如,在图4(b)中,黑正方形对应于物体的点。水平平面为投影面。考虑高度为16的“切片”(它的上部边界被表示为粗线)。让我们将“列”理解为字节。也就是,图中标记的点上的列代表2个字节的具有值18和l的栈(或者一个16位的无符号整数274)。如果我们将最好的基于PPM的压缩方法用于由这种方法获得的联合字节中,就可以获得相当好的结果。然而,如果这里直接应用(当然,这里没有正交恒定或者难以理解的上下文可使用)简单的1-上下文方法,这种结果具有稍微低的压缩率。下面我们给出不同类型的LDI几何表示式所需要的体积表BVOC,利用最好的PPM压缩器压缩上述字节数组,并通过我们常用的压缩器(以千字节图示)压缩同样的数组。


3.2.2颜色域压缩点纹理节点的颜色区域为一系列分配给物体点的颜色。不象八叉树的情况,颜色域和深度域是一对一的关系。该想法代表颜色信息为单个图像,它可通过已知有损的技术中的一种技术来压缩。该图像的基数远小于八叉树或深度图像情况下的参照图像,且对这样一种方法来说该基数实际上是最有效的。以这种或那种自然顺序扫描深度点即可获得图像。
对于LDI(点纹理)-‘深度优先’的几何扫描来讲,首先考虑由我们的原有存储格式规定的扫描顺序。多像素按自然顺序在投影面上被扫描,就象它们是简单像素,且在同一多像素的内侧的点沿深度方向扫描。扫描的顺序产生一1D的颜色数组(第一非零多像素,第二非零多像素等)。深度已知时,点的颜色可从这个数组中依次重建。为了使得图像压缩方法实用,我们必须将1-1这样的长字符标到2D数组。这可通过许多方式来完成。
当颜色字符在8*8块中安排,且以列顺序安排那些块(“块扫描”)时,下面在测试中应用的方法为所谓的“块扫描”。结果图像如图5所示。
该图像的压缩通过几种方法来执行,包括标准JPEG。结果至少是颜色扫描的这种类型,要远好于当利用在〔5〕中描述的纹理压缩方法所获得的结果。该方法基于每个8*8块的自适应的本地堆积。它有两个模型;8-和12-倍的压缩(当与每BMP-格式像素的raw真彩色24位相比)。该方法在这种图像中的成功可从其调色板特征精确解释,它让我们去说明局部颜色突然(甚至不象边缘)变化是因前表面和后表面(当在“天使”的情况下,它可变化很大)的‘混合’点引发的。探索优化扫描的目的是尽可能地减少这些变化。
3.3测试结果在原有和压缩格式中模型的例子如附件3所示。一些模型(即“天使”)的质量在压缩后仍然不能令人满意,而其它却非常好(“Grasshopper”)。然而,我们感到这个问题可以通过在正确扫描的帮助下得到解决。甚至可以用12倍的压缩模型,因此完整的压缩依然更快地增加。最后,无损压缩将被改善以致于最好的基于PPM的结果应用到几何压缩中。
这里,我们给出压缩率表。

4.结论在本文档中,报道了基于深度图像表示(AFX A8.3)的核心实验的结果。介绍了DIBR流,它可通过DIBR节点的url域链接。这些流包括DIBR节点中的所有项目和可选的每个项目的标志。而且还探讨了八叉树和点纹理数据的压缩。
5.参考文献[1]Cleary J.G.,Witten I.H.,Data compression using adaptive coding and partialstring matching,IEEE Transactions on Communications,Vol.32(4),pp.396-402,April1984. Rissanen J.J.,Langdon G.G.Universal modeling and coding//IEEETransactions on Information Theory,Vol.27(1),pp.12-23,Jan.1981. Schindler M.,A byte oriented arithmetic coding,Proceedings of DataCompression Conference,1998. Martin G.N.N.,Range encodingan algorithm for removing redundancy from adigitized message,Video & Data Recording Conference,March 1979. Levkovich-Maslyuk L.,Kalyuzhny P.,Zhirkov A.,Texture compression withadaptive block partitions,Proceedings of 8thACM International Conference onMultimedia(Multimedia 2000).
附件1在BVO压缩算法中的上下文正交不变的几何方法(Geometicmeaning of the context orthogonal invariation in BVO compression algorithom)。
正交不变的假定如图6所示。考虑通过绕垂直轴顺时针转动90°。考虑到旋转前(顶部图片)后(底部图片)节点和父节点的任意填充模式。然后,二个不同的图案可作为系统相同的图案处理。
附件2.组和转换1.32固定的正交转换每个转换通过5位字来指定。位的组合是下面的基本变化的组合(即,如果第k位是1,则执行相应的转换)●第1位-交换x和y坐标;●第2位-交换Y和Z坐标;●第3位-在(y-z)平面中对称;●第4位-在(x-z)平面中对称;●第5位-在(x-y)平面中对称;2.27组对每个组来讲,这是组的顺序和在其元素中的非零位的数目组的数目,组的质量和填充位的数目(设置体元)。


3.符号和转换对于每个符号来讲,这里是属于组的指数(g)和将其变为组的‘标准’元素的转换值(t)。
符号的二进制编码标记到体元的二进制坐标如下数的第i位具有二进制坐标x=i&1,y=i&(1<<1),z=i&(1<<2)。





附件3.图7、8和9给出了用于最好的基于PPM的方法的几何压缩图。
在申请日为2002年5月1日的美国临时申请号为60/376563的申请中描述的发明,名为“A technique for Compression and Streaming of Depth Image-based Representation and its apparatus”现在将叙述。III.Result of Core Experiment on Depth Image-based Representation(AFX A8.3)1.引言在本文档中,报道了基于深度图像表示(DIBR)的核心实验结果(AFXA8.3)。该核心实验是利用具有深度信息的纹理表示基于深度图像的节点。在Pattaya会议期间,该节点已经被接受并被包括进委员会草案的建议中。然而,通过八叉树图像和深度图像节点的这种信息流仍然保持有效。通过这些节点链接的流动格式对本文档进行描述。流动格式包括点纹理的八叉树图像节点和深度/颜色域的压缩。
2.DIBR格式的压缩这里我们描述一种无链接的八叉树数据的有效的无损压缩新技术,在我们的实验中,使这种已经紧凑的体积减少大约1.5-2倍。我们还建议采用几种点纹理格式的无损和有损压缩的技术,结合熵编码和基于块纹理压缩的专门方法[6]利用中间体元表示。
2.1八叉树图像压缩八叉树图像和八叉树图像中的八叉树的域分别被压缩。基于八叉树必须无损压缩而八叉树图像允许有一定程度的可视变形的概念,开发了所描述的方法。通过MPEG-4图像压缩工具(用于静态模型),或者视频压缩工具(用于动画模型)压缩八叉树图像区域。
2.1.1八叉树区压缩八叉树压缩是八叉树图像压缩的最重要的部分,因为它处理已经非常紧凑的无链接二进制树表示的压缩。然而,在我们的实验中,下面描述的方法将该结构的体积减少到大约原有体积的一半。在动画八叉树图像版本中,每个3D帧的八叉树区域被分别被压缩。
2.1.1.1上下文模型通过很好地利用数据几何特性的各种合适算术编码(作为“范围编码器”来进行,[3][4])进行压缩。八叉树为字节流。每个字节代表树的一个节点,其中字节位表示在内部细分后的子立方体的占用率。位的模式被称为节点的填充模式。表述的压缩算法以下面的方式依次处理字节。
●决定当前字节的上下文。
●从与上下文相应的‘概率表’(PT)中重新获得本上下文中当前字节出现的‘可能性’(归一化频率)。
●馈送到范围编码器的概率值。
●通过对当前上下文中的当前字节出现的频率加1来更新当前的PT(如果需要,之后重新归一化,详细见下面所述)。
因此,根据上下文模型,编码是重建和更新PT的过程。在基于上下文自适应算术编码方案(如‘用部分匹配的预测’[1]-[3])中,符号的上下文通常是前面几个符号的一个字符。然而,在本例中,通过使用数据的八叉树结构和几何特性增加了压缩效率。所描述的方法是基于在八叉树压缩问题中非常新的两个思想。
A.对于当前节点来讲,上下文或者是其父节点,或者是对节点{父节点,父节点中的当前节点位置};B.假定给定节点在特定父节点中的特定几何位置处出现的‘可能性’对特定的正交(如旋转或对称)转换来说是不变的。
在图6中示出了该假定‘B’,对于转换R来讲,假定图1中所示的‘B’在x-z屏幕上旋转-90°。‘B’后的基本概念为在特定类型的父节点中的特定类型的子节点出现的可能性应当依赖于它们的相对位置的观察。这种假设通过对概率表的分析在我们的实验中得到确认。它允许我们在没有太多的概率表的情况下去使用更复杂的上下文。反过来说,利用数据大小和速度来帮助我们获得很好的结构。注意到使用的上下文越多,估计的概率越分明,因此代码越紧密。
让我们介绍我们假定概率分布不变的系列转换。为了适用于我们的情况,这样的转换应当保持封闭的立方体。考虑到在欧几里德空间中的正交转换的G,以3个基本转换的任意数目和顺序的所有组合(生成器)m1,m2,m3获得正交转换,它们为m1=010100001,]]>m2=100001010,]]>m3=-110010001]]>其中m1和m2分别为平面x=y和y=z的反射,和m3是平面x=0的反射。通过反射[27]生成的群论的经典结果之一描述了G包含48个明显的正交变换,在某种意义上,这是将立方体放进本身位置(所谓Coxeter组[27])的正交变换的最大组。例如,图6中的旋转R通过生成器表示为R=m3·m2·m1·m2其中‘.’为矩阵乘法。
从G的转换应用到八叉树节点,产生不同的子立方体充填模式的节点。这允许我们根据它们自立方体的充填模式对节点进行分类。利用群论语言,我们假定G起到八叉树的所有充填模式系列的作用。计算表明存在22个明显的类(在群论中还称为轨道),其中通过定义,使两个节点属于同一类,当且仅当它们通过G的转换链接到一起。一个类中的元素数目从1到24,且总是48的除数。
‘B’的实际次序为概率表不仅依赖于父节点本身,而且依赖于父节点所属的类。应注意的是一个基于父节点的上下文有256个表,在以前的情况下,基于位置的父-和-子的上下文有256×8=2048个表,而我们需要基于父级别的上下文的22个表加上后者的22×8=176个表。因此,就可以使上下文的复杂程度相同,同时利用少量的概率表。构建的PT具有表2所示的形式。表2概率表列举

2.1.1.2编码过程为了使概率表的统计更精确,在编码的三个阶段以三种不同的方式收集。
●在第一阶段我们根本不用上下文,接受‘0-上下文模型’,且保留具有256个入口的单个概率表,从统一分布开始;●第一512节点(这是一个经验数)一旦被编码,我们就利用父节点作为上下文切换到‘1-上下文模型’。在切换的瞬间,0-上下文PT被拷贝到所有22个上下文的PT。
●在2048个节点(其它探讨值)编码后,我们切换到‘2-上下文模型’。在这个瞬间,父模式的1-上下文PT被拷贝到在同一父模式中每个位置的PT上。
正交的关键点是当前字节的上下文和概率决定的。这将根据下述方式实施。在每个级别我们固定单个元素,它称为‘标准元素’。我们存储表示级别的级别图表(CMT)到所属的每个可能的256个节点,并表示从G的计算转换,在G处将这个特定的节点变成同级别的标准元素。因此,为了确定当前节点N的概率,我们实施以下步骤●查看当前节点的父节点P;●检索从属于P的CMT的级别,和对将P变成该级别的标准节点的转换T进行检索。将级别数目记作c;●将T用到P上,找到标准节点中子节点位置p,其中当前节点N被绘制;●将T用到N上。然后,新获得的充填模式TN是在级别c的标准节点中的位置p。
●从与级别-位置组合(c,p)相应的概率表的入口TN中检索所需要的概率。
对于1-上下文模型来讲,上述步骤可以用显而易见的方式进行修改。无需说,所有的转换均被预先计算,并将其提供到查找表中。
应注意的是在节点N的解码阶段,父节点P已经被解码,因此,转换T已知。在解码阶段的所有步骤绝对与相应的编码步骤相似。
最后,我们概述一下概率的更新过程。让P作为一些上下文的概率表。在该上下文中,P(N)表示与阶段N出现的概率相应的P的入口。在实施中,P(N)是一个整数,在每个N发生后,P(N)被更新为
P(N)=P(N)+A其中A为不同上下文模型的从1到4的整数增量参数。让S(P)为P中所有入口的和。然后送入到算术编码器(在本例中为范围编码器)的N的‘概率’用P(N)/S(N)来计算。当S(P)一达到阈值216时,所有的入口就被归一化为了避免在P中的零值的出现,等于1的入口留下来保持原状。而其它则被除以2。
2.2点纹理压缩点纹理节点包含要被压缩的两个域,也就是,深度和颜色。点纹理数据的压缩的主要困难是由于下面的需求●几何必须是以无损方式压缩,因为在几何表示的这种类型的扭曲经常被高度重视。
●颜色信息没有自然的2D结构,因此图像压缩技术不能直接应用。
在这一部分我们为点纹理模型压缩建议三种方法●标准节点表示的无损方法。
●更低分辨率节点表示的无损方法。
●更低分辨率节点表示的无损几何和无损颜色压缩这些方法符合于物体描述的三个级别的‘保真度’。第一种方法假设我们必须存储深度信息到最初的32位精确度。但实际上,用很少量的位就可以使深度信息在不损害质量的情况下量化。尤其是当点纹理模型从多边形模型转变过来时,根据原有模型拥有的直观细节的实际大小以及期望的屏幕输出分辨率选择量化分辨率。在这种情况下,8-11位可很好地满足要求,深度值最初存储在更低分辨率格式中。现在,我们的第二种方法处理这种‘更低分辨率’表示的无损压缩。这里最需要观测的是对这样相当小(与标准32比较)数目的位来讲,可使用模型的中间体元表示,且允许我们在没有损失信息的情况下压缩深度域。在整理作为辅助2D图像的颜色数据后,在两种情况下颜色信息被无损压缩并以PNG格式存储。
最后,第三种方法允许我们实现更大的压缩,将无损的几何压缩和有损失的颜色数据相结合。后者通过专门的基于块的纹理压缩技术来执行。下面在三个子部分中,将详细描述该方法。
2.2.1标准节点表示的无损点纹理压缩这是简单的无损编码方法,其工作如下。
●深度域被自适应范围编码器压缩,与在八叉树域压缩使用的相似。对这种格式,我们使用概率表保留到每个1-符号上下文用的版本,且上下文只是以前字节。因此,使用256个PT。深度域被认为是字节流,且几何结构没有被明显地使用。
●颜色域在转换为二维真彩色图像后被压缩。以与深度域中相同的深变值,首先将点纹理模型中的点的颜色写入临时1D数组中。如果该模型中的点的总量为L,则我们计算最小的整数I,从而l·l≥L,并将该颜色值的长‘字符’‘打包’进入边为I的正方形图像(如果需要,通过黑像素填充)中。然后该图像通过MPEG-4的无损图像压缩工具之一压缩。在我们的方法中,我们采用便携网络图形(PNG)格式。以这种方式从‘天使’模型获得的图像如图10(a)所示。
2.2.2对更低分辨率节点表示的无损点纹理压缩在许多情况下,深度信息的16位分辨率非常好。实际上,深度分辨率应当与表示模型的屏幕分辨率对应。在不同点的模型深度的小的变换导致在屏幕中的位移远小于像素尺寸的情况下,在深度中使用更低分辨率是合理的,模型经常以深度值占8-11位的格式表示。这样的模型通常从其它格式中获得,也就是说,多边形模型,通过以合适的空间网格离散深度和颜色值。
这种降低了分辨率的表示本身可被认为是具有32位深度的标准模型的颜色方式。然而,利用静止体元空间,这种模型存在更紧密的表示。实际上,该模型的点可被认为是属于具有由离散步骤决定的间隔的统一网格的节点。我们总是可以假定网格是统一的和正交的,因为在投影模型的情况下我们用参数空间工作。利用这种观察,点纹理的更低分辨率的深度和颜色域如下述方式压缩。
●如以前方法一样,用无损图像压缩技术压缩颜色域;●深度域首先转换成体元表示,然后通过前边子部分描述的范围编码器的变码来压缩。
中间体元模型按如下方式建立。根据该模型的深度分辨率,假定离散体元空间具有宽×高×2s大小(‘宽’和‘高’参数在点纹理说明书上有解释)。为了达到我们的目的,我们总体上不需要用潜在巨大的体元空间来工作,而仅用其‘薄’断面。在投影面中指定(r,c)行-列坐标,使d为深度坐标。我们将‘切片’{c=常数},即,通过‘垂直面’的模型断面,转换为体元表示。沿着平行于投影面的‘列’扫描切片,当存在具有投影到(r,c)的深度值d的模型的点时,我们设置体元(r,c,d)为‘黑色’。该过程如图4所示。
切片一旦建立,就用1-上下文范围编码器压缩,且下一个切片压缩开始。以这种方式,我们避免了用非常大的数组工作。每个新切片的概率表没有初始化。对模型的大范围体元仅有非常小的部分是黑色的,且这允许我们实现相当高的压缩率。通过用与所述操作完全相反的操作就可执行解压缩。
下面将说明通过这种方法和通过八叉树表示的深度域压缩的对比。然而,通过颜色域,模型的整个压缩率得到确定,因为这种不规则的图像不可能在强烈压缩的情况下没有扭曲。在下一个子部分,我们认为是无损几何和有损颜色压缩的组合。
2.2.3低分辨率点纹理表示的无损几何和有损颜色的压缩象以前一样,这种方法转换深度域为体元表示,然后用自适应1-上下文范围编码器来压缩。颜色域同样被绘制到2D图上。然而,我们试图组织绘图从而在接近3D空间中的点绘制在2D平面的附近点。然后专门的纹理压缩方法(自适应块划分,ABP)应用于结果图像。该算法的主要步骤如下。
1.将点纹理模型的四个连续‘垂直平面’的‘切片’转换为体元表示2.扫描获得的宽×4×2s体元数组,通过●沿着平行于投影面的‘列’遍历4×4×4体元子立方体的垂直‘平面’首先是最接近投影面的列,然后为下一个最接近的列等等(即,以通常的2D数组遍历顺序)。
●以与在八叉树图像节点子立方体遍历中使用的类似的顺序,遍历体元内侧的每个4×4×4子立方体。
3.将遍历顺序遇到的模型的点的颜色写入辅助1D数组;4.重新将获得的颜色数组安排到2D图像,因此5.连续64个颜色样本以列的方向被调整为8×8的像素块,下一个64个样本被调整为相邻的8×8的像素块,等等。
6.通过ABP技术压缩获得的图像。
扫描3D数组和将结果绘制到2D图像上的方法从下面的假设中选择。应注意的是,4×4×4子立方体和8×8图像块包含同样数目的样本。如果几个连续扫描的子立方体包含足够的颜色样本去充填8×8块,则很可能该块将比较统一,因此在解压缩后在3D模型中很难注意到扭曲。在局部堆积的帮助下,ABP算法压缩彼此独立的8×8块。在我们的测试中,在最终的3D模型中通过ABP压缩而引起的扭曲远远小于JPEG。选择这种算法的另外一个原因是大的解压缩速度(它最初这样设计)。压缩率可取两个值,8和12。在点纹理压缩算法中,我们固定压缩率为8。
遗憾的是,该算法不能普遍应用。尽管以这种方式从颜色域(图10(b))中获得的图像比‘自然’扫描顺序的更统一,但有时2D8×8块可包含与3D空间中远点对应的颜色样本。在这种情况下,有损ABP方法可从模型的远的部分‘混合’颜色,解压缩后这导致局部明显的扭曲。
然而,对于许多模型来说,算法工作是正常的。在图11中,我们展示了‘坏’的例子(‘天使’模型)和‘好’的例子(‘莫顿256’模型)。在两种情况下模型体积减少约为7倍。
3.实验结果在这一部分我们对比了两种模型,‘天使’和‘莫顿256’以两种不同的格式-八叉树图像和点纹理图像的压缩结果。每个模型的参考图像的尺寸为256×256像素。
3.1点纹理压缩在表3~表5中,给出了不同压缩方法的结果。这种实验模型从具有8位深度域的模型中获得。通过利用量化步骤221+1将深度值扩充到(1,230)的范围,以致使32位深度值中的位分布更统一,从而在一定程度上模拟‘真’的32位值。
本方法不期望取得高压缩率。体积的减小与典型彩色图像的无损压缩为相同的量级。压缩的深度域和颜色域具有非常相近的大小,因为数据的几何特性不会通过本方法捕获。
现在让我们看当在它们的‘真’深度分辨率时有多少相同模型可以被无损压缩。不象原来的情况,深度域无损压缩大约为5-6倍。这是因为使几何数据减小更明显的中间体元表示,实际上,只有体元的小部分为黑色。然而,因为解压缩的模型尺寸小于32位的情况,因此目前颜色域的压缩率决定整个压缩率,它甚至小于32位的情况(尽管输出文件也更小)。因此,希望压缩颜色域至少能和深度域一样好。
为此,我们的第三种方法利用有损压缩技术称为ABP[6]。该方法给出更高的压缩。然而,象所有的有损压缩技术一样,它可导致在一些情况下不合意的假象。这种发生的物体的例子是‘天使’模型。在扫描模型点的处理过程中,空间远的点有时落入同一2D图像块中。在这种模型的远点的颜色变化很大,且如果在一个块中有太多不同的颜色,则局部堆积不能提供精确的近似。另一方面,是局部堆积允许我们精确压缩大多数块,因为在重建的颜色送回到3D位置后由标准JPEG导致的扭曲变得绝对不可忍受。然而,通过同一方法压缩的‘莫顿256’模型的可视质量却非常好,这是在我们实验中大多数模型的一例。表3 32位深度域的无损点纹理压缩(字节)

表4 更低分辨率节点表示的无损点纹理压缩(字节)

表5 更低分辨率点纹理的无损几何和有损颜色压缩(字节)

3.2八叉树压缩表6表示了我们两个测试模型的压缩和解压缩的八叉树分量的大小。我们看到该域的减小大约为1.6-1.9倍。
然而,通过对比解压缩点纹理模型,即使是8-位深度域,八叉树图像也是更紧密的。表7表示了压缩率7.2和11.2。在没有转换为八叉树图像的情况下它大于点纹理压缩(分别为6.7和6.8倍)。然而,就我们已经提到的,八叉树图像包含不完整的颜色信息,例子为‘天使’模型,在这种情况下使用颜色的3D插值。
总之,我们可以推断上述实验证明了开发出的压缩工具是有效的。对于给定模型来讲,最好工具的选择依赖于其几何复杂度,颜色扭曲的特征,着色的期望速度和其它因素。
表6由4.1.2描述的方法对八叉树图像模型及其分量(文件大小到千字节)给定的压缩率。

表7解压缩点纹理(8位深度域),相同模型的压缩八叉树表示(文件尺寸到千比特)

4.参考文献 J.Cleary and I.Witten,“Data compression using adaptive coding andpartial string matching,”IEEE Trans.on Communications,vol.32,no.4,pp.
396-402,April 1984. J.Rissanen and G.Langdon,“Universal modeling and coding,”IEEETrans.on Information Theory,vol.27,no.1,pp.12-23,January 1981. M.Schindler,“A byte oriented arithmetic coding”,Proc.of DataCompression Conference,March 1998. G.Martin,“Range encodingan algorithm for removing redundancy from adigitized message,”Video & Data Recording Conference,March 1979. H.Coxeter and W.Moser,Generators and relations for discrete groups,3rdedition,Springer-Verlag,1972.
L.Levkovich-Maslyuk,P.Kalyuzhny,and A.Zhirkov,“Texture compressionwith adaptive block partitions.”Proc.of 8th ACM International Conference onMultimedia,pp.401-403,October,2000.
5.ISO/IEC 14496-1/PDAM4(N4627)的研究注释在将下面的修订本用到ISO/IEC 14496-1/PDAM4(N4627)研究后,修订后的ISO/IEC 14496-1/PDAM4(N4627)的研究应当合并入ISO/IEC 14496-1/FPDAM4中。
条款6.5.3.1.1,技术问题正交的默认值应当为最常用的值。
解决方法从“FALSE”到“TRUE”替换正交域的默认值如下。
建议修改fieldSFBoolorthographic TRUE条款6.5.3.1.1,技术问题DIBR的流动将用AFX统一的流动方法完成。
解决方法从深度图像节点中移去depthImageUrl域。
建议修改深度图像{域SFVec3f位置 0010
域SFRotation 取向 0010域SFVec2f 可视域 0.785398 0.785398域SFFloat 近平面 10域SFFloat 远平面 100域SFBool 正交 TRUE域SFNode diTexture NULL}条款6.5.3.1.2,编辑问题当在当前上下文中应用到深度域时,术语‘归一化’使人误解。
解决方法在第5段,改变‘归一化’为‘换算’。
建议修改近平面和远平面域指定从视点到可视区域的近平面和远平面的距离。纹理和深度数据表示通过近平面、远平面和可视域的接近区域。深度数据被换算为从近平面到远平面的距离。
条款6.5.3.1.2,技术问题DIBR的流动将用AFX统一的流动方法完成。
解决方法去除depthImageUrl域的解释(第七段及以后)。
建议修改条款6.5.3.2.2,编辑问题深度域的语义未完全指定。
解决方法在第三段改变深度域的说明如下。
建议修改深度域指定在纹理区域中的每个像素的深度。深度图像的尺寸将与在纹理区域中的图像或影像一样大。深度域将为纹理节点(图像纹理,影像纹理或像素纹理)的不同类型之一,这里只有允许代表灰度级图像的节点。如果深度域未指定,则在纹理区域的α通道将用作深度图像。如果深度图像未通过深度域或α通道指定,则结果也未定义。
深度域允许我们计算模型的3D点到通过视点且平行于近平面和远平面的平面的实际距离dist=nearPlane+(1-d-1dmax-1)(farPlane-nearPlane)]]>其中d为深度值,dmax为最大允许深度值。对于模型的各点来讲,假设d>0其中d=1对应于远平面,d=dmax对应于近平面。
该公式对透视和正交情况都有效,因为d是点和面之间的距离。dmax是可以用每个像素的位代表的最大d值(1)如果通过深度域指定深度,则深度值等于灰度级。
(2)如果通过纹理域定义的图像中的α通道指定深度,则深度值d等于α通道值。
深度值也用于表示属于模型的点仅为非0的d点属于该模型。
对基于深度图像的动态模型来讲,仅使用作为di纹理的具有简单纹理深度图像。
每个简单纹理均可以用下面方式的一个产生动作(1)深度域仍然为满足上述条件的图像,纹理域为任意影像纹理。
(2)深度域为在深度域上满足上述条件的任意影像纹理,纹理域仍然为图像。
(3)深度和纹理都是影像纹理,且深度域满足上述条件。
(4)不使用深度域,且深度信息从使纹理域动画的影像纹理的α通道中搜索到。
条款6.5.3.3.2,编辑问题深度域的语义未完全指定。
解决方法用建议的修改替换深度域的说明(第三段)。
建议修改深度值的几何意义和适于对采用简单纹理解释的所有约定,在这里应用得很好。
深度域指定投影平面中的每个点的多个深度,以遍历顺序假定它是远平面(见上)的,它从左下角的点开始且在移动到上线之前遍历到右边以实现水平线。对于每个点来讲,首先存储深度(像素)的数目,然后存储深度值的数目。
条款6.5.3.4.1,H.1,技术问题用于八叉树域的文件类型SFString可能导致矛盾值。
解决方法将八叉树域的域类型改变成MFInt32。
建议修改在条款6.5.3.4.1中域MFInt32octree “”在条款H.1中,八叉树表改变八叉树列表如下

条款6.5.3.4.1,技术问题DIBR的流动将用AFX统一的流动方法完成。
解决方法从深度图像节点中去除octreeUrl域。
建议修改八叉树图像{域SFInt32八叉树分辨率 256域MFInt32八叉树 “”域MFNode 八叉树图像 []}条款6.5.3.4.2,编辑问题八叉树分辨率域定义(第2段)允许曲解。
解决方法通过加‘允许的’词修改描述。
建议修改八叉树分辨率区域指定沿着封闭的立方体的一边的八叉树叶的最大允许数目。八叉树的级别可由八叉树分辨率利用如下方程式来决定八叉树级别=int(log2(八叉树分辨率-1)+1)
条款6.5.3.4.2,技术问题DIBR的流动将用AFX统一的流动方法完成。
解决方法去除octreeUrl域的解释(第5段及以下)。
建议修改条款6.5.3.4.2,编辑问题八叉树图像的动画描述不完整。
解决方法在描述八叉树图像动画的条款6.5.3.4.2后面增加一段落。
建议修改八叉树图像的动画可以通过与上述基于深度图像的前三种方式一样的方法来播放,利用八叉树域而不是深度域时仅有一点差异。
条款H.1,技术问题在点纹理的节点中,深度数据范围也许在以后的应用中太小了。许多绘图工具可以将24位或36位深度给它们的Z-缓冲器。然而,在点纹理中,深度域的范围是
,它是16字节的。
解决方法在条款H.1中,用于点纹理的表,把深度列的范围改做所建议的值。建议修定

现在叙述在美国临时申请号60/395304中描述的发明,申请日为2002年7月12日,名称为“A Technique for Representation and Compression ofOctreelmage Data in Depth Image-Based Representation and its apparatus”。IV.ISO/IEC JTC 1/SC 29/WG 11 CODING OF MOVING PICTURES AND AUDIO1.引言在本文档中,描述了基于深度图像表示(DIBR)的八叉树图像的改进,AFX A8.3。本八叉树节点在Pattaya会议期间被接受和包括到委员会草案的建议中。然而,因为物体的几何封闭,已经观察到在一些特定情况下着色质量不令人满意。这篇文件描述了改进八叉树节点版本,即纹理二进制体积八叉树(TBVO)和其流动压缩方法。
2.纹理二进制体积八叉树(TBVO)2.1 TVBO概述TVBO的目的是发明一个具有快速可视化图像的更灵活的表示/压缩格式,作为二进制体积八叉树(BVO)的改进。它的实现是通过储存一些额外的基于BVO的信息。基于BVO的表示是由(八叉树纹理+参考图象的设置)组成,而基于TBVO表示由(BVO八叉树+参考图象的设置+相机指数)组成。
BVO主要的可视化问题是在着色期间,我们必须决定相应的每一个体元的相机指数。为此,我们不仅需要投影到相机,而且要作背面的射线造型程序。我们必须至少要确定相机存在,从中可以看到体元。因此,我们必须找所有投影到特定相机的体元。但是,如果我们用强制的方法,这个过程就很慢。因此,我们开发了一种算法,使它对于大多数物体形状执行得更快更精确。然而,对来自任何相机的不可视化的体元仍存在一些麻烦。
一个可行的解决方法就是对每一个体元储存明确的颜色。然而,在这种情况下,我们已经碰到几个在压缩颜色信息的问题。那就是,如果我们组合体元颜色作为一图象格式并压缩它时,相邻体元的校正被破坏以至压缩率达不到满意的效果。
在TBVO中,这个问题通过为每一个体元储存相机(图像)指数来解决。这个指数通常对于体元组是一样的,并且这可以为附件信息的经济存储使用八叉树纹理。应注意的是,平均只有15%的体积增长在我们的模型实验中是可以看到的。它的建模有一点复杂,但有表示任何几何物体的方法更多,也更灵活。
TBVO优于BVO是它的着色比BVO更简单和更快,实际上对物体几何没有附加限制。
2.2 TBVO的例子在这部分,我们给出一个典型例子,用于说明TBVO描述的效果和关键要素。在图12(a)中,给出一个“天使”的BVO模型。使用BVO中普通的6个纹理,身体和翅膀的某些部分从任何相机中都无法观察到,用很多“裂纹”产生着色图象。在同样模型的TBVO描述中,使用总数为8个相机(一个盒子的6个面+2个附加相机)。在图13(a)中,示出了相机指数的图象。不同颜色意味着不同的相机指数。附加的相机被安放在立方体里面,正交地观察前面和后面的部分。附加相机的图象平面分别被表示在图13(b)和(c)中。结果,我们获得了一个无缝和清晰的着色结果,如图12(b)所示。
2.3解压缩的TBVO流描述我们假定255相机就够了,并且为指数指定一个字节。这个TBVO流是符号流。每一个TBVO符号就是BVO符号或是纹理符号。纹理符号表示相机指数,它可以是一个特定的数字或是一个“未定义”的代码,在进一步的描述中使“未定义”的代码为“?”。
TBVO流以宽度第一的顺序被遍历,如果我们有BVO,并且每一叶体元有相机数目,则就让我们描述怎样写TBVO流。这必须在建模阶段完成。它将以宽度优先的顺序遍历所有BVO节点,包括叶节点(它并没有BVO符号)。下面的伪代码将完成编写TBVO流。
<pre listing-type="program-listing"><![CDATA[ If CurNode is not leaf node { Write current BVO-symbol corresponding to this node } if all the children have identical camera index(texture-symbol) {if parent of CurNode has‘?’camera index Write camera index equal for sub-nodes } else { Write‘?’symbol }]]></pre>图3 编写TBVO流的伪代码根据这个程序,对于如图14(a)所示的TBVO树,可获取的符号流如图14(b)所示。在这个例子中,这个纹理符号就是以字节的形式表示。然而,在实际流中,每一个纹理符号只要2个字节,因为我们只需要描述3个值(2个相机和未定义代码)。
2.4.TBVO压缩在八叉树图像节点中,八叉树图像和八叉树域被分别压缩。基于这种必须使八叉树域受到无损压缩而又允许八叉树图像在视觉方面有一定程度的可接受的扭曲的想法,开发了描述的这种方法。
2.4.1.八叉树图像域的压缩八叉树图像域利用MPEG-4图像压缩(静态模型)或利用MPEG-4中允许的视频压缩工具(动画模型)压缩。在我们的方法中,我们对于八叉树图像使用的是JPEG格式(在我们称它为JPEG图像的归一化的一些预处理后,保留的每一条纹理,只有那些以3D可视的点是必要的;也就是说,那部分在3D着色阶段不被使用的给定纹理,我们可以随意将其压缩)。
2.4.2八叉树域压缩八叉树压缩是八叉树图像压缩中最重要的部分,因为它使用的压缩表示出已经非常紧凑链接的二元树形。不管怎样,在我们的实验中,表明此方法可以将这种结构的体积减少至原始体积的一半以下。在动态八叉树图像版本中,八叉树文件中的每个3D帧受到单独压缩。
2.4.2.1.上下文模型通过确切使用数据几何特性的算术编码(作为“范围编码器”来进行,[3][4])的自适应变化进行压缩。八叉树为字节流。每个字节代表树的一个节点(子立方体),其中其各位表示在内部细分后的子立方体的占用率。位的模式被称为节点的填充模式。所述的压缩算法以下面的方式依次处理字节。
●决定当前字节的上下文。
●从与上下文相应的‘概率表’(PT)中重新获得本上下文中当前字节出现的‘可能性’(归一化频率)。
●概率值被送到范围编码器。
●通过对在当前上下文中的当前字节出现的频率加1更新当前PT(如果需要,之后重新归一化,见下面细节)。
因此,根据上下文模型,编码是重建和更新PT的过程。在基于上下文自适应算术编码方案(如‘具有部分匹配的预测’[1]-[3])中,符号的上下文通常是前面几个符号的一个字符串。然而,在本例中,通过使用数据的八叉树结构和几何特性增加了压缩效率。所述方法基于两种在八叉树压缩问题中非常新的思想。
A.对于当前节点来讲,上下文或者是父节点,或者是节点对{父节点,父节点中的当前节点位置};B.假定在特定父节点中的特定几何位置,给定节点出现的‘可能性’对特定的正交(如旋转或对称)转换来说是不变的。
对于转换R来讲,在图6中示出了假定‘B’,它在x-z屏幕上旋转-90°。‘B’后的基本概念是注意特定类型的父节点中出现特定类型的子节点的可能性只会依赖于它们的相对位置。这种假设通过对概率表的分析在我们的实验中得到确认。它使我们在没有太多的概率表的情况下去使用更复杂的上下文。反之,它利用数据大小和速度帮助我们获得很好的结果。注意到使用的上下文越多,估计的概率越分明,因此代码越紧密。
让我们介绍我们假定概率分布不变的系列转换。为了在我们这种情况下进行应用,这样的转换应当保持封闭的立方体。考虑到欧几里德空间中的一系列正交转换G,通过以3个基本转换的数目和顺序的所有组合(生成器)m1,m2,m3获得,它们为m1=010100001,]]>m2=100001010,]]>m3=-110010001]]>其中m1和m2分别为平面x=y和y=z的反射,和m3是平面x=0的反射。通过反射生成的群论的经典结果之一描述了G包含48个明显的正交变换,从某种意义上来讲,这是自身引入(所谓Coxeter组)立方体的最大正交变换组。例如,图6中的旋转R通过生成器表示为R=m3·m2·m1·m2,其中‘.’为矩阵乘法。
应用到八叉树节点的G的转换产生不同的子立方体充填模式的节点。这使我们根据它们的子立方体的充填模式对节点进行分类。利用群论语言[5],我们假定G扮演着八叉树的所有充填模式系列的角色。计算表明存在22个不同的类(在群论中也称为轨道),其中,通过定义,如果当且仅如果它们通过G的转换链接到一起时,则两个节点就属于同一类。一个类中元素的数目从1变到24,且总是48的除数。
假定‘B’的实际次序为概率表不仅依赖于父节点本身,而且还依赖于父节点所属的类。应注意的是,一个基于父节点的上下文有256个表,在以前情况下基于父-和-子的位置的上下文有256×8=2048个表,而在后一种情况下,我们仅需要基于父级别的上下文的22个表加22×8=176个表。因此,就可以利用少量概率表,使上下文的复杂性相同。构建的PT具有表8所示的形式。
表8概率表列举

2.4.2.2编码过程为了使概率表的统计更精确,在编码的三个阶段以三种不同的方式收集。
●在第一阶段我们根本不用上下文,接受‘0-上下文模型’,且保留具有256个入口的单个概率表,从统一分布开始;●第一512个节点(这是一个经验数)一旦被编码,我们就利用父节点作为上下文切换到‘1-上下文模型’。在切换的瞬间,0-上下文PT被拷贝到所有22个上下文的PT。
●在2048个节点(其它探讨值)编码后,我们切换到‘2-上下文模型’。在这个瞬间,父模式的1-上下文PT被拷贝到同一父模式中的每个位置的PT。
该算法的关键点是确定当前字节的上下文和概率。这将如下实施。在每个级别我们固定单个元素,它称为‘标准元素’。我们将表示级别的级别图表(CMT)存储到所属的每个可能的256个节点,级别图表还表示将这个特定节点到其级别的标准元素的G的预算转换。因此,为了确定当前节点N的概率,我们实施以下步骤●查看当前节点的父节点P;●检索P所属的CMT级别,并检索将P成为该级别的标准节点的转换T。将级别数目记作c;●将T用到到P上,找到标准节点中的子节点位置p,当前节点N被绘制到标准节点上;●将T用到N上。然后,新获得的充填模式TN是在级别c的标准节点中的位置p。
●从与级别位置组合(c,p)相应的概率表的入口TN中检索所需要的的概率。
对于1-上下文模型来讲,上述步骤可以作明显的修改。无需说,所有的转换都被预算和在查找表中预先执行。
应注意的是,在节点N的解码阶段,父节点P已经被解码,因此,转换T已知。在解码阶段的所有步骤与相应的编码步骤绝对相似。
最后,我们概述概率的更新过程。让P作为一些上下文的概率表。在该上下文中,P(N)表示与阶段N出现的概率相应的P的入口。在实施中,P(N)是一个整数,在每个N发生后,P(N)被更新为P(N)=P(N)+A其中A为不同上下文模型的从1到4的整数增量参数。让S(P)为P中所有入口的和。然后送入到算术编码器(在本例中为范围编码器)的N的‘概率’用P(N)/S(P)来计算。当S(P)一达到阈值216时,所有入口就被归一化为了避免在P中出现零值,等于1的入口留下来保持原状,而其它则被除以2。
2.4.2.3‘相机节点’的编码利用其本身的概率表,对确定每个纹理(相机)数目的符号流进行压缩。在上述条款中,它只有一个上下文。PT入口用大于八叉树节点的入口的增量来更新;另外,用节点符号编码没有困难。
2.5 TBVO压缩和着色结果在图15、17、18和19中,我们得到TBVO的压缩结果。图16示出了‘天使’和‘莫顿’模型的剥离图像。压缩大小与压缩的BVO相比在第三列中括弧里的数字为压缩的几何体积,而第一个数字为基于TBVO压缩模型的总体积(即考虑的纹理)。作为可视扭曲的测量,计算PSNR,以便估计LDI→(T)BVO→LDI转换后的色差。压缩的模型大小是所有纹理(作为最小的JPEG存储,见0)的大小加上压缩的几何大小。在TBVO情况下,压缩的几何也包括相机信息。与BVO对比,TBVO的PSNR得到明显改进。
TBVO获得比BVO更快的着色。对“天使”模型来讲,TBVO-12的帧率为10.8fps,而BVO的帧率为7.5fps。对“莫顿”模型来讲,TBVO-12的帧率为3.0fps,而BVO的帧率为2.1fps(在Celeron 850MHz上)。另一方面,可观察到动画TBVO中的着色加速更快。对“龙”模型,TBVO-12的帧率为73fps,而BVO的帧率为29fps(在Pentium4 1.8G上)。
TBVO格式提供大的灵活性。例如,利用12个相机的两个方式如图6所示-TBVO-12和TBVO-(6+6)。TBVO-12利用6个BVO相机(立方体表面)加上从立方体中心获取的6个图像,其平行于表面。(6+6)配置利用6个BVO相机,然后通过这些相机和通过同样6个相机变成可视的照片部分移去(‘剥去’)所有可视体元。这样的图像例子见图16。
应注意的是,BVO和TBVO-6天使模型之间的质量(主观和PSNR值)差异仍很大。尽管利用同样的相机位置,TBVO允许我们对所有的体元指定相机数目,即使从所有相机中不可见也是如此。选择这些数目是为了更好地匹配原有的颜色(即对每个点,不管是否直接可视,在所有‘相机图像’中均选择最好颜色匹配。在天使情况下,它得到了好的结果)。
同样应注意的是,6个和12个相机情况之间的最普通‘几何’(即BVO+相机)体积的差异。实际上,附加相机通常覆盖小区域,因此它们的标识是少有的,它们的纹理是罕见的(和压缩好的)。所有这些不仅应用到‘天使’,而且应用到下面所有模型上。
2.6节点说明八叉树图像{域SFInt32八叉树分辨率256域MFInt32八叉树 []#%q=13,8域MFInt32相机ID []#%q=13,8域MFNode 八叉树图像 []}
该八叉树图像节点限定TBVO结构,其中存在一个相应于照相机指数数列的八叉树结构和一套八叉树图像。
该八叉树图像域为di纹理域指定一套具有单一纹理的深度图像节点;没有使用这些单一纹理节点中的深度域。正交域对深度图像字节来说必须是真实的。对每个单一纹理来说,纹理域存储该物体的颜色信息,或把该物体的一部分(例如通过摄影飞机的横截面)看做通过正交相机获得的,在深度图像的相应域中确定其位置和方向。在模型构造阶段,分配对应于每个摄影机的物体部分。用位置、方向和纹理域的值进行物体分割,以便最小化摄影机的数量(或等于所包含的八叉树图像),同时,还包括所有能从任意选择位置看见的物体部分。该方向域必须满足条件摄影窗口矢量仅具有一个非零分量(例如是垂直于所包围的立方体面中的一个面)。而且,单一纹理图像的边缘必须平行于封闭立方体的相应边。
八叉树域充分描述物体的几何结构。该几何结构由一套给定物体的三维像素来表示。八叉树是类似树的数据结构,其中每个节点通过字节来表示。在该字节的第I位中的1意味着其内部字节的第i个子存在子字节;而0意味着没有。八叉树内部字节的顺序是该八叉树宽度上的第一遍历。内部节点的八个子节点的顺序示在附图14(b)中。整个八叉树的封闭立方体的大小为1×1×1,且该八叉树立方体的中心为原始坐标系统的原点(0,0,0)。
摄影ID域包括赋值为体元的摄像指数数组。在绘制阶段,属于八叉树叶的颜色通过将该树叶正交投影到具有具体指数的八叉树图像中的一个上。该指数以类似八叉树的形式存储如果能够将一个具体的摄影用于所有包含在具体节点中的树叶,则包含该摄影的指数的节点汇入流中;否则,给出包含固定的“进一步细分”编码的节点,这就意味着摄影指数能够分别指定为当前节点(在同一递归形式下)的子节点。如果该摄影ID是空的,则在绘制阶段(在BVO的情况下)确定摄影标引。
该八叉树域沿着封闭立方体的边指定该八叉树叶的最大容许数量。该八叉树的水平可从使用下面等式的八叉树解式中得到八叉树水平=〔log2(八叉树分辨率)〕2.7位流说明2.7.1八叉树压缩2.7.1.1概述基于深度的图像中表示的八叉树节点定义八叉树结构和它们的投影纹理。存储在八叉树数组中的每个纹理,通过具有单一纹理的深度图像节点定义。八叉树节点的其它域可通过八叉树压缩来进行压缩。
2.7.1.2八叉树2.7.1.2.1语法class Octree(){OctreeHeader();aligned bit(32)*next;while(next==0×000001C8){aligned bit(32)octree_frame_stat_code;OctreeFrame(octreeLevel);aligned bit(32)*next;}}2.7.1.2.2语义学该八叉树所压缩的流包括八叉树头和一个或多于一个的八叉树框架,每个前面为octree_frame_start_code。该octree_frame_start_code的值总是为0×000001C8。该值通过该流的先行分析(接下来)来检测。
2.7.1.3八叉树头2.7.1.3.1语法class OctreeHeader(){unsigned int(5)octreeResolutionBits;unsigned int(octreeResolutionBits)octreeResolution;int octreeLevel=ceil(log(octreeResolution)/log(2));unsigned int(3)textureNumBits;unsigned int(textureNumBits)numOfTextures;}2.7.1.3.2语义学该类读取八叉树压缩的头信息。
八叉树解式,其长度通过八叉树解式字节来表示,包括八叉树图像节点的八叉树解式的值。该值用于推倒八叉树级。
作为textureNumBits长度的NumOfTextures,描述用在八叉树图像节点中的纹理(或摄影)的数量。该值用于该八叉树每个节点的摄影ID的算术编码。如果textureNumBits的值为0,则纹理符号不会通过将根节点的当前纹理设置为255而被编码。
2.7.1.4八叉树框架2.7.1.4.1语法<pre listing-type="program-listing"><![CDATA[  class OctreeFrame(int octreeLevel)  {   for(int curLevel=0;curLevel<octreeLevel;curLevel++0   {   for(int nodelndex=0;nodelndex<nNodeslnCurLevel;nodelndex++)   {  int nodeSym=ArithmeticDecodeSymbol(contextID);  if(curTexture==0)  {   curTexture=ArithmeticDecodeSymbol(textureContextID);  }  }  }  for(int nodelndex=0;nodeIndex<nNodesInCurLevel;nodeIndex++)   if(curTexture==0)   curTexture=ArithmeticDecodeSymbol(textureContextID);  }]]></pre>2.7.1.4.2语义学该类读取八叉树在一宽度上的第一遍历顺序的单一框架。从在0级的第一节点开始读取,在读取当前级的每个节点之后,通过计数在每个节点符号中的所有1而得知在下一级的节点的数量。在下一个级中,节点(nNodeInCurLevel)的数量将从流中读取。
为了解码每个节点,就给出一个合适的contextID,这将在2.7.1.6条款中描述。
如果当前节点(curTexture)的纹理(或摄影)ID没有被父节点确定,则纹理ID也从流中读取,使用纹理ID的上下文,通过textureContextID来确定。如果检索到非0值(定义纹理ID),则该值也将被用到下一级的所有子节点中。在解码每个节点之后,将纹理ID赋给尚没有赋给纹理ID值的八叉树的叶节点。
2.7.1.5适配的算术解码在该段中,将描述用在八叉树压缩中的适配的算术编码器,使用C++结构语法来进行描述。aa_decode()是对符号解码的函数,使用通过数组cumul_freq[]限定的模型,PCT是概率上下列表中的一个数组,这将在2.7.1.6中描述。
<pre listing-type="program-listing"><![CDATA[   int ArithmeticDecodeSymbol(int contextID)  {   unsigned int MAXCUM=1<<13;   unsigned int TextureMAXCUM=256;   int*p,allsym,maxcum;   if(contextID!=textureContextID)   {   p=PCT[contextID];   allsym=256;   maxcum=MAXCUM;  }  else  {   p=TexturePCT;   allsym=numOfTextures;   maxcum=TextureMAXCUM;  }   int cumul_freq[allsym];   int cum=0;   for(int i=allsym-1;i>=0;i--)   {cum+=p[i];   cumul_freq[i]=cum;  }  if(cum>maxcum)  {   cum=0;   for(int i=allsym-1;i>=0;i--)  {   PCT[contextID][i]=(PCT[contextID][i]+1)/2;   cum+=PCT[contextID][i];   cumul_freq[i]=cum;  }   }   return aa_decode(cumul_freq);  }]]></pre>2.7.1.6解码过程解码过程的整个结构在条款0中描述(参看上面描述的编码过程)。它示出了如何从位流中获得TBVO节点,该位流由算术编码(压缩)TBVO模型构成。
在每一解码过程步骤中,我们必须更新上下文的数字(例如我们使用的概率列表的指数)和概率表本身。我们调用可能的模型,该模型是所有概率表(整数数组)的结合。第i个概率表的第j个元素除以它的元素的总和,估计第i个上下文中第j个符号出现的概率。
更新概率表的过程如下。开始,初始化概率表,以便所有的输入表都等于1。在解码一符号之前,必须选择上下文数字(ContextID)。ContexTID从在先的解码数据中确定,如用0或0以下表示。当得到ContextID时,使用二进制算术解码器来解码该符号。此后,通过增加适合的步骤到解码符号频率中去,以便更新概率表,如果表元素的总和(累积)变得比累积阈值大,则执行标准化(见2.7.1.5.1)。
2.7.1.6.1纹理符号的上下文建模纹理符号仅使用一个上下文来建模。这意味着仅使用一个概率表。这个表的大小等于numOfTextures加1的数量。在开始时,该表被初始化到所有的1。最大允许输入值设置为256。适配的步骤设置为32。参数值的结合允许适合纹理数量的最高可变流。
2.7.1.6.2节点符号的上下文建模有256种不同的节点符号,每个符号表示一个2×2×2的二进制体元数组。这些数组可以使用3D正交转换,彼此转换相应的符号。
假设一组48个固定的正交变换,也就是说,通过围绕坐标轴旋转90*n(n=0,1,2,3)度,并对称。下面给出它们的矩阵,它们的数字顺序是正交变换48〕={ }有22组符号-称作类,如果且仅如果它们属于同一类,则使其中两个符号通过这样的一个变换来连接,。编码方法按如下所述构成PCT一个符号的纹理ID或是等于其父节点所属类中的数字,或者等于组合数字(父类,在父节点中的当前节点位置)。这允许在上下文的数字中有较大的缩小率,使获得有意义的统计所需要的时间缩短。
在每个类中,确定单一基本符号(见表9),而每个符号中,预算正交变换,这种变换使其成为其类的基本符号(在实际的编码/解码过程中,使用查找表)。在确定符号的上下文ID之后,应用将其父节点带到基元素的倒置(即转置矩阵)的转换。在表10中,给出上下文和每个符号相应的直接变换。
表9每个类的基本符号的例子


上下文模型取决于已经解码符号的数字N当N<512时,仅有一个上下文。概率表初始化到所有为1。在概率表中符号的数量为256。适合的步骤为2。最大累积频率为8192。
当512≤N<2560(=2048+512)时,使用1-context(在context数字是单一参数的句子中,该类的数字)模型。该模型使用22PCT。contextID是该类的数字,其中该解码节点的父节点属于该类。这个数字总是从查找表格(参看表10)中确定,因为父节点比子节点更早被解码。每个22PCT通过来自上一级的PCT来初始化。在每个概率表中的符号的数字是256。适配的步骤是3。最大的累积频率也是8192。在符号被解码之后,使用上面定义的逆向正交变换来进行变换。该正交变换数字可以在表10中找到,该表中具有的节点符号ID等于当前节点符号的父节点。
当解码2560个符号时,解码器转换到2-context(在该句子中context数字是由下面描述的两个参数组成的)。该模型使用176(=22*8,例如8个位置的22个类)PCT。这里的contextID取决于父类和在父节点中的当前节点的位置。初始化这个模型中的概率表是取决于它的上下文,而不是位置所有8个位置的PCT是从在上一级的给定类中获得的PCT的克隆。在每个概率表中的符号的数字是256。适配的步骤是4。最大累积频率也是8192。
在符号被解码之后,当是在上一级模型中时,也使用逆向正交变换(在表III中给定的一个)来进行变换。
使用表10,可以容易地获得每个类的基本元素的几何位置。基本元素实际上是变换ID为0(数字0赋给同一变换)的符号。
表10.连接节点符号的查找表格,它的类数字和使符号为该类中的固定基本元素的正交变换。




3.参考文献[1]J.Cleary and I.Witten,“Data compression using adaptive coding andpartial string matching,”IEEE Trans.on Communications,vol.32,no.4,pp.396-402,April 1984. J.Rissanen and G.Langdon,“Universal modeling and coding,”IEEETrans.on Information Theory,vol.27,no.1,pp.12-23,January 1981. M.Schindler,“A byte oriented arithmetic coding”,Proc.of DataCompression Conference,March 1998. G.Martin,“Range encodingan algorithm for removing redundancy from adigitized message,”Video &amp; Data Recording Conference,March 1979. H.Coxeter and W.Moser,Generators and relations for discrete groups,3rdedition,Springer-Verlag,1972.
下面将详细描述八叉树图像格式的MPEG-4节点说明和压缩技术,它用于本发明的基于深度图像3D表示的装置和方法。
本发明描述一个数据结构族,基于深度图像的表示法(DIBR)提供有效的表示法,主要是根据图像和深度图,全面使用上面描述的优点。简要的特征在于主DIBR格式-简单纹理,点纹理和八叉树纹理。
附图20示出了立体纹理图像和深度图的例子,附图21示出了分层的深度图像(LDI)的例子。(a)示出了该物体的投影,(b)示出了分层的像素。
简单纹理是一种数据结构,该数据结构由图像、相应深度图和摄影描述(它的位置,方向和类型,正交或透视)组成。表示单个简单纹理的方法限定该物体(象建筑物的正面)具有深度图的正面影像在大多数角度范围内可以重新构建正面视图。然而,在参照图像覆盖所有建筑物表面的潜在可见部分的情况下,通过正确定位摄像机而对简单纹理的收集就可表示整个建筑物。当然,这同样适用于树,人图像,车等等。再者,简单纹理的统一为处理3D动画数据提供很自然的方法。在这种情况下,参照图像由参照视频流替代。每个3D框架的深度图可以通过这些视频流的α通道值或者通过离散的灰度级视频流表示。在这种表示中,图像可以被以有损的压缩格式(例如为JPEG格式)来存储。这显著减少了颜色的信息量,特别是在动画的情况下。然而,几何信息(深度图)应当是无损压缩,它使总体存储减少。
对于复杂形状的物体来讲,用合理数量的参考图像来覆盖整个可见表面有时是困难的。这种情况的优选表示方法是使用点纹理。该格式也存储参考图像和深度图,但是在这种情况下二者都是多值的由摄影(正交或透视)提供的每个视线、颜色和距离都被存储在该物体的线的每个交叉点。交叉点的数量可以从线到线变化。几个点纹理的结合即使是对复杂的物体也提供很详细的表示法。但是该格式缺乏单一纹理的2D规律性,因此没有自然的基于图像的压缩格式。同样,它仅用于静态物体。
八叉树图像格式处于“大部分2D”简单纹理和“大部分3D”点纹理之间的中间位置它以八叉树结构容量表示法(封闭立方体的常用二进制子部分的分级组织的体元)存储物体的几何形状,而颜色分量由一组图像来表示。该格式还包括附加的八叉树数据结构,对于每个叶的三维像素来讲,该结构存储包括它的颜色在内的参考图像的指数。在绘制八叉树图像阶段,该叶的三维像素的颜色由在相应参考图像上的正交投影确定。我们研究开发了八叉树图像几何部分的有效压缩方法。这是不同的基于上下文的适配算术编码,构造出的上下文精确使用了数据的几何特征。一起使用该压缩与有损压缩参考图像使八叉树得到非常有效的空间表示方法。类似简单纹理,八叉树图像具有动画版参考视频流取代参考图像,对于每个3D框架来讲,还有两个表示几何形状的八叉树表示几何附加流和体元-到-图像的通讯。八叉树图像格式的很有用的特征是内置中间图形的性能。
DIBR族已开发有新的MPEG-4标准版本,适合包括在MPEG的动画框架扩充设备(AFX)中。AFX对合成MPEG-4环境提供更强的特征,且包括共同使用的工具,为交互动画内容(与存在的MPEG-4相配合)生成重新使用的体系结构。每个AFX工具示出了具有BIFS节点的性能、合成流和视听流。AFX的当前版本由动画(基于动画的骨头和皮肤)的高级说明来构成,它具有增强的透视图(例如,程序性纹理,光场图),紧凑的表示法(即NURBS,立体表示法,细分表面)低位率的动画(即内插压缩)等,及及我们提出的DIBR。
设计DIBR格式是为了结合早期提出的不同方法的优点,给用户提供灵活的工具来适合最特定的任务。例如,非动画简单纹理和点纹理特别适合已知格式的情况,而八叉树图像显然是新的表示方法。但是在MPEG-4上下文中,所有的三个基本DIBR格式可以认为是构件块,且它们通过MPEG-4的组合结构不仅增强了在文献中提出的基于图像的表示法,而且对构造这种新的格式给出了巨大的潜力。
现在将描述基于深度图像的表示法。
考虑到在上面部分中描述的思想以及我们自己的一些研究,我们建议下面的一组基于图像的格式用在MPEG-4 AFX中简单纹理、点纹理、深度图像和八叉树图像。应注意的是简单纹理和八叉树纹理具有动画版本。
简单纹理是单一图像与深度图像的组合。它等同于RT,而点纹理等同于LDI。
根据简单纹理和点纹理作为构件块,我们能使用MPEG-4结构来建立各种表示法。格式说明将在后面给出,并将描述几何结果。
深度图像结构与边界框、空间位置和一些其它信息一起限定简单纹理或点纹理。一组深度图像可以在称为变换节点的单一结构下统一,并且允许各种各样的有用表示的结构。共同使用的大部分是它们中的没有具体MPEG-4名的两个,但是实际上,我们称它们为盒纹理(BT)和广义盒纹理(GBT)。BT是相当于一个物体和景象的边界立方体的六个图像纹理的结合,而GBT是组成3D表示法的任何数量的简单纹理的任意结合。在附图22中给出了BT的例子,这里示出了参考图像、深度图和合成3D物体。BT可用增加的变形算法来绘制,但是我们使用了不同于GBT的方法。GBT表示法的一个例子示在附图23中,这里21个简单纹理被用于表示复杂的物体,棕榈树。
应当注意的是统一机构例如允许使用几个不同摄影来表示相同物体或表示相同物体的部分的几个LDI的使用。因此,象基于图像物体的数据结构、LDI树的单元、基于surfels的树结构的单元,是这个格式的所有具体情况,它们为景象结构在简单纹理和点纹理的适应位置和分辨率方面提供更大的灵活性。
接下来将描述八叉树图像构造二进制容量八叉树(TBVO)。
为了使用具有更具灵活性的表示法和更快绘制的多分辨几何结构及纹理,我们开发了八叉树表示法,它是基于纹理二进制容量八叉树(TBVO)。TBVO的目标的设计一种具有快速高质量形象化的灵活表示/压缩格式。TBVO由三个主要分量构成-表示几何结构的二进制容量八叉树(BVO)、一组参考图像和相当于八叉树节点的图像指数。
BVO形式的几何信息是在普通八叉树方式中以较大单元组合的一组二进制(占用或空的)规则隔开的三维像素。该表示法利用中间“点云”形式能从深度图像数据中方便获得,因为每个具有深度的像素在3D空间中限定唯一的点。该点云向BVO的转换示在附图24中。一个类似的过程可以将多边形模型转换为BVO。BVO的纹理信息可从参考图像中恢复。参参图像是在给定摄影位置和方位的三维像素的纹理。因此,BVO本身和参考图像已经提供了模型表示法。然而,结果是对每个BVO叶存储参考图像指数的附加结构允许更快和更高质量的显影。
主BVO显影的问题是我们在绘制过程中必须确定每个体元的相应摄影指数。为此,我们必须至少确定摄影的存在,从摄影中可见到体元。如果我们使用强力法,则这个过程是很慢的。除了该问题之外,该体元仍然有一些问题是从任何摄影中看不见的,在绘制图像时存在不期望的人工因素。
可行的解决办法是能在每个体元中存储分割的颜色。然而,在这种情况下,在压缩颜色信息时具有一些问题。即,如果该组体元颜色作为图像格式并压缩它,则相邻体元的颜色相关性被破坏,使得该压缩率不能令人满意。
在TBVO中,这个问题通过为每个体元存储摄影(图像)指数而解决。对于大组体元来说,该指数通常是相同的,这使八叉树结构用来经济地存储附加信息。应注意的是,这与仅使用BVO和参考图像的表示法来比较,在使用我们的模型的试验中观测到,平均只有15%体积的增加。它在建模时有点复杂,但是更灵活地表示任何几何结构的物体。
应注意的是,对于利用splats绘制来讲,TBVO是很方便的表示法,因为splat的大小容易从体元大小中计算出来。使用参考图像和体元的图像指数,容易确定体元颜色。
下面将描述纹理二进制容量八叉树的流。
我们假定255个摄影已经足够,并为每个指数赋值直到1比特。TBVO流是符号流。每个TBVO符号是BVO符号和纹理符号。纹理符号表示摄影指数,它是具体数字或“未限定”的代码。
让我们对“未限定的”代码是‘?’作进一步的描述。TBVO流在宽度方向上转换。让我们描述如何写TBVO流,如果我们具有BVO并且每个叶体元具有图像指数。这必须在建模阶段作出。它将转换所有的在宽度方向上包括叶节点的(没有BVO符号)BVO节点。在附图25中,示出了完成写该流的伪代码。
写TBVO位流的例子示出在附图14中。示出在附图14(a)的是TBVO树,根据这个过程可从附图14(c)中获得符号流。在该例子中,纹理符号以字节来表示。然而,在实际流中,每个纹理符号将仅需2个字节,因为我们仅需要表示三个值(两个摄影和未定义的代码)。
下面描述DIBR动画。
动画版本被限定两个DIBR格式深度图像仅包括单一纹理和八叉树图像。数据量是具有3D动画的至关重要的问题之一。我们已经选择这些具体格式,因为视频流能自然地合并进动画版本中,提供实际数据减少。
对深度图像来讲,通过MPEG-4电影纹理,通过取代参考图像执行动画。高质量地有损视频压缩没有严重影响合成的3D物体的外观。深度图可以存储在(在接近无损模型)参考视频流的阿尔法通道中。在绘制阶段,在接收和解压所有的参考图像和深度框架之后,绘制3D框架。
八叉树图像的动画是相似的-通过MPEG-4电影纹理代替参考图像,且出现新的八叉树流。
下面将描述MPEG-4节点说明。
在MPEG-4AFX节点说明4中详细描述DIBR格式。深度图像包括确定简单图像或点图像的可视平截头体(frustum)参数的域。八叉树节点以TBVO限定几何结构和一组参考图像格式的形式来表示物体。取决于景象的信息被存储在DIBR数据结构的特定域中,允许具有剩余景象的DIBR物体的交互校正。DIBR节点的限定示在附图26中。
附图27示出了深度图像的空间布置,其中示出了每个域的含义。应注意的是深度图像节点限定单一的DIBR物体。当多个深度图像节点彼此相联系时,它们作为一个组来进行,因此,应该在同一变换节点下放置。Di纹理说明具有深度(简单纹理或点纹理)的纹理,它将在深度图像节点中限定的区域中映像。
八叉树图像节点限定八叉树结构和它们的投影纹理。八叉树分辨率域沿着封闭立方体的边指定八叉树叶的最大数量,八叉树节域指定一组八叉树内部节点。每个内部节点由一个字节表示。在节点的第i个字节的1表示在第i个内部子节点中存在的子节点。而0表示没有。八叉树内部节点的顺序将是八叉树宽度第一遍历的顺序。附图14(b)中示出了内部节点的8个子节点的顺序。体元图像指数域包括赋予体元图像指数的数组。在绘制阶段,通过在具有具体指数的某一个图像上正交投影树叶,确定分配给八叉树叶的颜色。该指数以八叉树形式存储如果具体的图像被用于包含具体体元的所有树叶,则包含图像指数的体元被分布到流;另外,发布包含固定的‘进一步的细分’代码体元,这意味着每个当前体元(以同样的循环方式)的子节点图像指数将被分别指定。如果体元图像指数为空,则在着色阶段确定图像指数。图像域指定di纹理域的具有简单纹理的系列深度图像节点。但没有使用深度图像节点的近平面和远平面域和在简单纹理节点中的深度域。
DIBR格式的着色方法不是AFX的一部分,有必要解释使DIBR物体实现着色简单,快速和高质量的思想。我们的着色方法是基于splat,用作‘着色图元’的小平面彩色胶片。下面总结的两个方法在两个不同的表示中定位深度图像和八叉树图像。在我们的实施中,OpenGL功能被应用于splatting以加速着色。尽管如此,软件着色同样是可行的,利用深度图像或八叉树图像的简单结构可以优化计算。
我们用于着色深度图像物体的方法非常简单。然而,应当指出的是,它依赖于OpenGL函数,利用硬件加速器时工作更快。在该方法中,我们用将要着色的具有简单纹理和点纹理的深度的所有像素变换为3D点,然后在这些点定位小的多边形(splats),并应用OpenGL的着色函数。图28给出了简单纹理情况下的该过程的伪代码。以同样的方式精确处理点纹理的情况。
Splat的大小必须适应在点和观察者之间的距离。我们使用下面的简单方法。首先,将给定的3D物体的封闭子立方体细分为粗的统一网格。计算每个网格的每个单元的Splat大小,且该值用于单元内部的点。实施的计算如下-利用OpenGL在屏幕上绘制单元-计算投影(在像素中)的最大对角线的长度L。
-估计D(splat直径)为 ,其中N为每个单元的边的点的平均数目,C为经验常数,大约为1.3。
我们需强调的是,通过比较精确的半径计算、更复杂的splat、图形保真改善该方法。然而,即使该简单方法也能提供好的可视质量。
同样的方法用于八叉树图形,在更粗级别之一中的八叉树的节点被用于上面的splat的尺寸计算。然而,对于八叉树图形来讲,颜色信息应当首先被绘制在系列体元上。这非常容易完成,因为每个体元具有相应的参照图像指数。在八叉树流的语法分析期间参照图像的像素位置也知道了。八叉树图像体元的颜色一经确定,就估计splat尺寸,并如上所述使用基于OpenGL的着色。
DIBR格式在几个3D模型中已经被实施和受到测试。模型(“塔”)之一通过扫描实际物体(使用cyberware颜色3D扫描仪)而获得,其它从3DS-MAX演示包中转换过来。在具有OpenGL加速器的intel Pentium4 1.8上进行测试。
在下面的子部分中,我们解释从多边形到DIBR格式转换的方法,然后提供不同DIBR格式的建模,表示和压缩结果。大多数数据用于深度图像和八叉树图像模型;这些格式有动画版本且能被有效压缩。所有提出的模型用正交摄像构成,因为一般来讲,它是表示‘紧密’物体的优选方式。应注意的是,投影摄像大多用来对远环境进行经济的DIBR表示。
DIBR模型生成从获得足够数目的简单纹理开始。对于多边形物体来讲要计算简单纹理,而对于真实世界的物体来讲,从数码相机和扫描装置中获得数据。下一步骤依赖于我们想用的DIBR格式。
深度图像只是获得的简单纹理的组合。尽管深度图可以压缩的格式存储,但因为即使几何的小扭曲也经常是非常显著的,所以只有无损压缩才是可以接受的。
参照图像可以有损压缩形式存储,但在这种情况下需要预处理。当通常接受可以使用如JPEG的流行无损压缩方法时,边界假象在产生的3D物体视窗中变得显著-特别是因为物体和参考图像的背景之间的边界在此处背景颜色似乎是‘spill’进入物体中。我们用来处理问题的方法是利用边界块的平均颜色和强度的快速衰减使边界块的图像延伸到背景里,然后应用JPEG压缩。该作用类似于将扭曲‘挤’进无害的背景,因为背景像素不用来着色。有损压缩的参照图像的内部边界也可以产生假象,但一般看不到。
为了产生八叉树图像模型,我们利用基于中间点的表示(PBR)。组成PBR的一系列点是用相应深度图中指定的距离通过在参照图像中改变像素而获得的颜色点的组合。应当建立原有的简单纹理,从而使结果PBR对物体表面有足够精确的估计。之后,PBR被转换为在图24中勾画的八叉树图像,它用于产生一组全新的参照图像,这些参照图像满足这种格式规定的限制。同时,产生八叉树的附加数据结构voxelImageIndex表示参照图像指数。如果参照图像应当以有损格式存储,则它们首先如前边部分解释的的那样进行预处理。另外,因为TBVO结构明确指定包含每个体元颜色的像素,所以多余的像素被删除,这更进一步减少了以JPEG格式的voxelImageIndex的体积。原有的和以JPEG格式处理过的参照图像的例子如图29所示。
应注意的是,由于有损压缩,所以质量退化对八叉树图像来说是可忽略的,但是有时对深度对象仍然是显著的。
利用在参照平面上物体的投影建立点纹理模型,如部分2.1所述。如果这不产生足够样品(这也许是表面部分几乎与投影矢量相切的情况),则建立附加的简单纹理用来提供更多的样品。然后将获得的一系列点重新组织进点纹理结构中。
现在提出着色速度数据。深度图像“棕榈512”的着色速度大约为2fps(注意这是21个简单纹理),而我们用参照图像边512测试其它静态模型以5-6fps着色。应注意的是,着色速度主要依赖于参照图像的数目和分辨率,但不依赖于景色的复杂度。这优于多边形表示,特别在动画情况下。动画八叉树图像“龙512”以每秒24桢(fps)显现。
“天使256”深度图像模型如图22所示。图30到34表示了其它几个DIBR和多边形模型。图30对比了多边形和深度图像“莫顿”模型的外部特征。深度模型使用JPEG格式的参照图像,通过部分5中描述的最简单的splatting执行着色,但图像质量是可以接受的。图31对比了扫描的“塔”模型的两个版本。模型上半部的黑点是由于输入数据的噪声形成的。图32表示了由21个简单纹理组成的复杂的“棕榈”模型。它也高质量的表示,尽管叶子一般宽于3DS-MAX原来的-这是简单的splatting的结果。
图33介绍了“龙512”八叉树图像动画中3D桢。图34示出了提供高质量模型的点纹理格式的能力。
本发明的基于深度图像节点结构包括简单纹理节点、点纹理节点、深度图像节点和八叉树节点。深度图像节点由深度信息和颜色信息组成。彩色图像从简单纹理节点和点纹理节点中选择。
当从6个视点(前,后,正面图,后面,左和右侧)观看物体时,可通过6对简单纹理节点来代表物体。简单纹理的说明如图26所示。
参照图26,简单纹理节点由纹理域和深度域组成,在纹理域中记录有包含每个像素的色彩的彩色图像,深度域中记录有每个像素的深度。简单纹理节点定义单个IBR纹理。这里,纹理意味着彩色平面图像。
包含形成图像的每个像素的颜色的平面图像是在纹理域中。形成图像的每个像素的深度记录在深度域中。在深度域中的一系列深度组成与在纹理域中平面图像相应的深度图像。根据该深度,深度图像为以灰度级代表的平面图像。在为产生动画物体的视频格式的情况下,深度信息和颜色信息为图像桢的多个顺序。
在纹理域中的平面图像(即彩色图像)和在深度域中的平面图像(即以灰度级表示的图像)组成简单纹理节点。图20表示了在前视点通过简单纹理节点表示的“莫顿”对象。最后,该对象由6个简单纹理节点表示,它为6个视点产生的图像对。图22表示了通过6个简单纹理节点表示的“天使”对象。
彩色图像可由点纹理节点表示。图21表示了通过投影到参照面上产生的点纹理(在这种情况下,平面隔开预定距离以远离物体来面对物体的背面)。
图26也表示了点纹理节点的说明。
参照图26,点纹理节点由大小域、分辨率域、深度域和颜色域组成。图像平面的大小信息存储在大小域中。大小域由宽度和高度域组成,图像平面的宽度和高度分别记录。图像平面的大小被设置为足够大以覆盖整个投影到参照面的对象。
每个像素在深度上的分辨率信息被记录在分辨率域中。例如,当数字“8”记录在分辨率域中时,则物体的深度根据离开参照面的距离表示为256级。
每个像素上的深度信息的多块存储在深度域中。深度信息是投影到图像平面的像素和各个像素深度的数目的顺序。每个像素上的颜色信息被记录在颜色域中。颜色信息为与投影到图像平面的各个像素相应的颜色的顺序。
组成深度图像节点的视点信息包括几个域,如视点、可见度、投影方法、或者距离。
在视点域,记录从图像平面看到的视点。视点域具有记录视点位置和方位的位置域和方位域,在位置域的位置为视点到坐标系统原点(0,0,0)的相对位置。而在方位域中的方位为视点相对于默认方位的旋转量。
在可见域,记录从视点到图像平面的可见区域。在投影方法域,记录从视点到图像平面的投影方法。在本发明中,投影方法包括可见区域由宽和高表示的正交投影方法,以及包括用水平角和垂直角表示可见区域的透视投影方法。当选择正交投影方法时,即,当投影方法设置为真实时,可见区域的宽和高分别对应于图像平面的宽度和高度。当选择透视投影方法时,可见区域的水平和垂直角对应于通过从视点到图像平面看到的形成水平和垂直边的角度。
在距离域,记录从视点到更近边界平面的距离和从视点到更远边界平面的距离。距离域由近平面域和远平面域组成。距离域定义深度信息的区域。
图35A和35B为当以分别具有简单纹理节点和点纹理节点的深度图像表示物体时,表示各自节点的关系的图。
参照图35A,物体可由对应于6个视点的一系列深度节点表示。各自的每个深度节点由视点信息和简单纹理组成。简单纹理由彩色图像和深度图像组成。
参照图35B,物体可通过深度图像节点表示。深度图像节点的说明如上。点纹理节点由在物体投影到平面上的平面信息以及和投影到图像平面的物体的不同点的深度信息和颜色信息组成。
在八叉树图像节点中,物体由组成包含物体和参照图像的体元的内部节点结构表示。八叉树图像节点的说明如图26所示。
参照图26,八叉树图像节点包括八叉树分辨率、八叉树、vexelImageIndex和图像域。
在八叉树分辨率域中,沿着包含物体的封闭立方体的一侧,记录八叉树叶最大数目。在八叉树域,记录内部节点结构。内部节点为在细分包含整个物体的封闭立方体后产生的子立方体的节点。每个子立方体的细分被重复执行以产生8个子立方体直至达到子立方体的预设数目。在反复执行细分3次的情况下,假定在第二次细分重复之后子立方体的节点称为当前节点,则在第一次细分重复后的节点和第三次细分后的子立方体的节点被分别称为父节点和子节点。8个分开的子立方体的顺序以宽度优先的顺序给出。图14示出了分配给子立方体的优先数目的方法。每个内部节点由1个字节表示。组成字节的位流中所记录的节点信息表示属于内部节点的子节点的子节点的存在或不存在。
在指数域,记录与各自内部节点对应的参照图像指数。在图像域,记录与记录在指数域中的指数对应的参照图像。参照图像为前述的深度图像节点和结构。
图36示出了利用八叉树图像节点表示物体中的有关八叉树图像节点的结构。
参照图36,通过位包装封闭八叉树图像节点。每个位包装包括一个八叉树图像节点。当物体以简单纹理节点表示时,八叉树图像节点包括6个深度图像节点,每个深度图像节点包含一个简单纹理节点。另一方面,当物体以点纹理节点表示时,八叉树图像节点包括单个深度图像节点。
本发明可通过计算机的可读代码在计算机可读的记录介质上实施。计算机可读的记录介质包括通过计算机系统读取可读数据的各种类型的记录装置,例子有ROM、RAM、CD-ROM、磁带、软盘、光学数据存储装置或其它传输介质。同样,计算机可读的记录介质分布在连接到网络的计算机系统中,从而计算机的可读代码可通过分布方法来存储和完成。
根据本发明,在基于图像的表示中,因为在彩色3D物体上的理想信息由一系列2D简单图像和为直接采用图像处理和压缩的已有方法解码,所以算法既简单,又在许多方面能得到硬件支持。另外,基于图像模型的着色时间与在参照和输出图像中像素的数目成正比,但通常在多边形情况下不与几何复杂度成正比。另外,当基于图像的表示应用到实际物体和景色中时,在没有利用数以百万计的多边形和昂贵计算的情况下,自然景色的逼真图像的着色变得可能。
上述实现本发明的描述是示例性和说明性的。这里没有穷举,但不将本发明限于公开的具体形式。根据上述教导可对本发明作出各种改进和变型或者可从本发明的实践中获取各种改进和变型。本发明的范围被限定在权利要求及其等同物内。
权利要求
1.一种基于三维物体(3D)的深度图像表示物体的节点结构,该节点结构包括一个用于记录每个像素的包括颜色的彩色图像的纹理域;和一个用于记录每个像素深度值的深度域。
2.根据权利要求1所述的节点结构,其中在以视频格式生成动画物体的情况下,深度信息和颜色信息是多序图像帧。
3.一种基于三维物体的深度图像表示物体的节点结构,该节点结构包括一个用于记录图像平面大小信息的大小域;一个用于记录每个像素的深度分辨率的分辨率域;一个用于记录每个像素的多片深度信息的深度域;和一个用于记录每个像素的颜色信息的深度域。
4.根据权利要求3所述的节点结构,其中该深度信息是投影到像素平面上的多个像素和各个像素深度的序列,且该颜色信息是相当于投影到像素平面上的各个像素的颜色的序列。
5.一种基于三维物体的深度图像表示物体的节点结构,该节点结构包括一个用于记录观察图像平面的观察点的观察点域;一个用于记录从观察点到图像平面的可见区的可见域;一个用于记录从观察点到图像平面的投影方法的投影方法域;一个用于记录在近平面和远平面之间的距离的距离域;和一个用于记录彩色图像的纹理域。
6.根据权利要求5所述的节点结构,其中该观察点域包括一位置域和一方位域,位置域用于记录观察点的位置,方位域用于记录观察点的方向,所述位置是相对于坐标系统原点的相对位置,而所述方位是相对于默认方向的旋转数量。
7.根据权利要求5所述的节点结构,其中所述投影方法包括一正交投影方法和一透视投影方法,其中正交投影方法中的可见区域用宽度和高度来表示,透视投影方法中的可见区域用水平角和垂直角来表示。
8.根据权利要求7所述的节点结构,其中当选择正交投影方法时,该可见区域的宽度和高度分别相当于图像平面的宽度和高度,且当选择透视投影方法时,该可见区域的水平和垂直角相当于通过从观察点到图像平面的视角范围形成的水平边和垂直边。
9.根据权利要求5的所述节点结构,其中在采用视频格式产生动画物体的情况下,深度信息和颜色信息是多序图像帧。
10.根据权利要求5所述的节点结构,其中该颜色信息是单一纹理,该纹理由包含每个像素颜色的平面图像和该像素的深度值构成。
11.根据权利要求5所述的节点结构,其中该颜色图像是点纹理,该点纹理由大小信息、深度分辨率信息、由彩色图像构成的每个像素的多片深度信息和每个像素的颜色信息构成。
12.根据权利要求11所述的节点结构,其中该深度信息是投影到像素平面上的多个像素和各个像素的深度的序列,该颜色信息相当于投影到像素平面上的各个像素的颜色的序列。
13.一种基于三维物体的深度图像表示物体的节点结构,该节点结构包括一分辨率域,用于记录沿着一个包含物体的封入立方体的边的八叉树叶的最大值;一个用于记录该八叉树的内部节点结构的八叉树域;一个用于记录相当于内部节点的参考图像的指数的指数域;一个用于记录该参考图像的图像域。
14.根据权利要求11所述的节点结构,其中内部节点由字节表示,且记录在位流中的节点信息属于内部节点,该位流由字节构成,该字节由子节点的存在和不存在来表示。
15.根据权利要求11所述的节点结构,其中参考图像包括观察点信息的深度图像和相当于观察点信息的颜色图像。
16.根据权利要求11的节点结构,其中观察点信息包括一个用于记录观察图像平面的观察点的观察点域;一个用于记录从观察点到图像平面的可见区域的可见域;和一个用于记录从观察点到图像平面的投影方法的投影方法域,。
17.根据权利要求16的节点结构,其中该观察点域包括一个用于记录观察点的位置的位置域,和一个用于记录观察点的方向的方位域,该位置是相对于坐标系统原点的相对位置,而该方向是相对于默认方位的旋转数量。
18.根据权利要求16所述的节点结构,其中该投影方法是一正交投影方法,其中该可见区域的宽度和高度分别相当于该图像平面的宽度和高度。
19.根据权利要求15所述的节点结构,其中该彩色图像是单一纹理,该单一纹理由包括每个像素颜色和该像素的深度值的平面图像构成。
全文摘要
提供一种使用深度图像来表示三维物体的节点结构族。这些节点结构采用常规多边3D表示法的MPEG-4AFX。该结构族的主要格式是深度图像,点纹理和八叉树图形。深度图像通过参考图像和相应深度图的结合来表示。点纹理以一套通过投影到规则2D网格确定的颜色点参数表示。八叉树图像将相同数据转化为分层的八叉树结构的三维像素模式,一组压缩参考图像和三维图像对应目录树。深度图像和八叉树具有动画版,该参考图像由视频流来代替。DIBR格式对来自3D范围扫描和多源视频数据中的3D模式结构很方便。MPEG-4框架允许主DIBR格式的宽范围表示的结构,为具有3D模式的有效工作提供弹性工具。通过对深度图和参考图像(视频流)使用图像(视频)压缩技术来实现DIBR格式的压缩。
文档编号G06T15/20GK1430183SQ0215959
公开日2003年7月16日 申请日期2002年11月27日 优先权日2001年11月27日
发明者亚历山大·O·齐尔科夫, 利奥尼德·I·利夫科维奇-马斯莱克, 朴仁圭, 亚历克西·V·伊格内藤科, 韩万镇, 尤里·M·贝亚科夫斯基, 安东·科诺钦, 德米特里·A·蒂马索夫 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1