用于基于深度图像表述的数据的模式和样式表的制作方法

文档序号:6624942阅读:187来源:国知局
专利名称:用于基于深度图像表述的数据的模式和样式表的制作方法
技术领域
本发明涉及一种可扩展的MPEG-4文本格式(XMT)模式和样式表,更特别地涉及用于基于深度图像(depthimage)表述(depth image-based representation,DIBR)数据的模式,和通过使用该模式分析包括DIBR数据的输入XMT文件来创建输入文件的样式表。
背景技术
XMT格式的3D内容可以使用各种多媒体,例如MPEG-4播放器、VRML播放器、SMIL播放器等显象。使用模式和样式表可以创建XMT格式的3D内容。特别地,本发明涉及用于DIBR数据的XMT模式和样式表。
通过MPEG-4标准化组已经推动了简单内容编辑方法的标准化。当编辑3D内容时,需要控制3D数据的表述、处理和压缩的各种因素的简单方法。为此,需要由元表述(XMEG-4 SMT)进行表述、处理和压缩3D数据的机制。特别地,需要一种方法,它允许编辑着轻松地表述、处理和压缩基于深度图像表述(DIBR)数据。

发明内容
本发明提供一种用于基于深度图像表述(DIBR)数据的模式。
本发明提供一种用于DIBR数据的样式表。
根据本发明的一个方面,提供一种用于DIBR数据的XMT(可扩展MPEG-4文本格式)模式,其包括用于图形数据压缩的BitWrapper节点模式;和DepthImage节点模式,它用于基于depthimage的模型着色着色(rendering),包括具有深度信息的camera信息和texture(texture)信息,将diTexture定义为元素,而该元素包括作为模型组的SFDepthTextureNode,其中,BitWrapper节点模式包括节点元素,其包含包括将被压缩的数据的图形数据并且将SFWorldNode作为子元素;BitWrapperEncodingParameter元素;和分别具有名称——类型、url和缓冲器以及类型——SFInt32、MFUrl、和SFString的三个属性,并且depthimage节点模式的camera信息将位置(position)、方向(orientation)、视野(fieldOfView)、nearPlane、farPlane和正交(orthographic)中的至少一个定义为属性名称,而且camera信息中所定义的属性类型分别包括SFVec3f、SFRotation、SFVec2f、SFFloat、SFFloat、和SFBool。
在depthimage节点模式中的diTexture元素可以将包括PointTexture(点texture)和SimpleTexture的SFDepthTextureNode节点模式定义为元素。用于SimpleTexture的节点模式可以接收用于DIBR模型的3维着色的彩色图像和深度图像,该节点模式包括作为图像的包含深度信息的深度元素和作为图像的包含彩色信息的texture元素,其中这两个图像定义在SFTextualNodeType元素中。
用于PointTexturetexture的节点模式可以将宽度、高度、depthNbBits、深度、和颜色中的至少一个定义为属性名称,而节点模式中定义的属性类型可以包括SFInt32、SFInt32、SFInt32、MFInt32和MFColor。
用于DIBR数据的XMT模式图示可以进一步包括八叉树图像(octreeimage)节点模式,其将octree(八叉树)、octreeResolution(八叉树分辨率)和voxelImagelndex中的一个定义为属性名称,并且将图像定义为包括作为节点群的SFDepthImageNode类型的图像,其中,在八叉树图像节点模式中定义的属性类型分别包括SFInt32、MFInt32和MFInt32。
当BitWrapper节点模式是使用url字段的输出带(out-band)时,用于DIBR数据的XMT模式进一步包括解码信息模式,其包含AFXConfig模式和DecoderConfigDescriptor模式,其中,DecoderConfigDescriptor模式在DecoderConfigDescriptor节点的decSpecificlnfo节点中将元素名称定义为AFXconfig,其中DecoderConfigDescriptor节点包括解码所需的信息,并且AFXConfig模式将OctreeImageDecoderSpecific信息和PointTextureCompDecoderSpecific信息定义为元素名称,其中OctreeImageDecoderSpecific信息与用于解码的八叉树图像解码器的使用有关,而PointTextureCompDecoderSpecific信息与用于解码的点texture解码器的使用有关。
XMT模式可以进一步包括压缩参数模式,其包含用于点texture的压缩比率,其中,压缩参数模式包含在用BitWrapperEncodingParameter作为元素名称的节点中,包括作为元素名称的PointTextureEncodingParameter、作为属性名称的configPercent和作为属性类型的codingPercentType,其中,codingPercentType用SimpleType作为类型并用codingPercentType作为名称。
codingPercentType可以具有作为限制基础的int(integer)。解码信息模式可以进一步包括BitWrapperEncodingHints,其用于定义脚本文件(mux file,多工文件)中Muxinfo所需的信息,其中,BitWrapperEncodingHints包括作为子元素的BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints,并且每个子元素都包括作为子元素的sourceFormat和targetFormat中的至少一个。
在脚本文件(多工文件)中Muxinfo所需的信息可以包括压缩DIBR比特流的压缩格式和文件名称。
XMT模式可以进一步包括CompressedImageFormat模式,其中,当涉及DIBR的节点包括JPEG、PNG、MPEG4视频或者VTC格式的压缩图像或运动画面时,CompressedImageFormat模式提供了解码压缩信息所需的解码信息,它包括压缩比特流的压缩结构和文件名称,并且CompressedImageFormat模式包括作为元素名称的CompressedImageFormat和作为子元素名称的JPEG、PNG、MPEG4-Video和VTC,其中,每个子元素包括包含用于存储文件名称的参数(param)的sourceFormat或targetFormat。根据本发明的另一个方面,提供一种样式表,它利用DIBR数据的模式来分析包括DIBR数据的输入XMT文件,该样式表包括为DIBR数据产生情景文件的XMT2BIFS样式表;和为DIBR数据产生多工文件的XMT2MUX样式表。
当执行调用BitWrapper模板的指令并且通过分析在XMT文件中发现BITWrapper时,XMT2BIFS样式表可以将′BitWrapper{′输出到情景文件,当通过分析发现节点时,XMT2BIFS样式表调用预定节点模板,当通过分析发现PointTextureEncodingParameter,XMT2BIFS样式表时调用预定的PointTextureEncodingParameter模板,其中PointTextureEncodingParameter是用于将被压缩的节点的DIBR编码参数中的一个,当通过分析发现类型、缓冲和url时,类型、缓冲及其值输出到情景文件;并且将}输出到情景文件。
当通过分析发现节点时,预定节点模板可以把节点输出到屏幕文件,当通过分析发现PointTexture时,预定节点模板调用预定PointTexture模板,并且当通过分析发现Octreeimage时,预定节点模板调用预定OctreeImage模板。当通过分析发现PointTexture时,预定PointTexture模板可以把′PointTexture{′输出到情景文件,当通过分析发现宽度(width)、高度(height)、depthNbBits、深度(depth)[]和颜色(color)[]时,预定PointTexture模板把宽度(width)、高度(height)、depthNbBits、深度(depth)[]、和颜色(color)[]及其值输出到情景文件,并且把}输出到情景文件。
样式表可以进一步包括simpleTexture模板,其当通过分析发现SimpleTexture时把′SimpleTexture{′输出到情景文件,当通过分析发现深度(depth)时,simpleTexture模板调用预定深度(depth)模板,当通过分析发现texture时,simpleTexture模板调用预定texture模板,并且将}输出到情景文件。
当通过分析发现深度(depth)时,预定深度(depth)模板可以把深度(depth)输出到情景文件,当通过分析发现CompositeTexture2D时,预定深度(depth)模板调用预定CompositeTexture2D模板,当通过分析发现CompositTexutre3D时,预定深度(depth)模板调用CompositTexutre3D模板,当通过分析发现ImageTexture时,预定深度(depth)模板调用预定ImageTexture模板,当通过分析发现MovieTexture时,预定深度(depth)模板调用预定MovieTexture模板,当通过分析发现PixelTexture时,预定深度(depth)模板调用预定PixelTexture模板,并且当通过分析发现ProtoInstance时,预定深度(depth)模板调用预定ProtoInstance模板。
样式表可以进一步包括DepthImage模板,当通过分析发现DepthImage时,DepthImage模板将′DepthImage{′输出到情景,当通过分析发现diTexture时,DepthImage模板将diTexture输出到情景文件,并且调用预定diTexture模板,当通过分析发现fieldOfView、nearPlane、farPlane、orientation(方向)、position(位置)和orthographic(正交)时,将fieldOfView、nearPlane、farPlane、orientation(方向)、position(位置)和orthographic(正交)及其值输出到情景文件。
样式表可以进一步包括diTexture模板,当发现diTexture之后通过分析发现SimpleTexture时,diTexture模板调用预定SimpleTexture模板,并且当通过分析发现PointTexture时,diTexture模板调用预定PointTexture。
当通过分析发现OctreeImage时,预定OctreeImage模板可以把′OctreeImage{′输出到情景文件,当通过分析发现OctreeResolution、octree、和voxelImageIndex时,预定OctreeImage模板把OctreeResolution、octree[]、和voxelImagelndex[]及其值输出到情景文件,并调用预定图像模板,同时将}输出到情景文件。
当通过分析发现图像时,预定图像模板可以调用预定DepthImage模板。
当通过分析发现PointTextureEncodingParameter时,PointTextureEncodingParameter模板可以将′PointTextureEncodingParameter{′输出到情景文件,当通过分析发现codingPercent时,PointTextureEncodingParameter模板将codingPercent及其值输出到情景文件,并且将}输出到情景文件。当通过分析在XMT文件中发现/并随后发现Body/*时,XMT2BIFS样式表可以调用Body lower模板,并且在通过分析发现Header/*时,XMT2BIFS样式表调用Headerlower的模板。
当通过分析在XMT中发现ObjectDescriptorUpdate时,XMT2BIFS样式表可以将UPDATE OD[输出到情景文件,当通过分析发现OD和ObjectDescriptor时,XMT2BIFS样式表调用预定ObjectDescriptor模板,当通过分析发现InitialObjectDescriptor时,XMT2BIFS样式表调用预定InitialObjectDescriptor模板,并且将]输出到情景文件。
当通过分析发现ObjectDescriptor时,预定ObjectDescriptor模板可以将ObjectDescriptor{输出到情景文件,当通过分析发现属性名称objectDescriptorlD时,预定ObjectDescriptor模板将objectDescriptorlD输出到情景文件,当通过分析发现属性名称binarylD时,预定ObjectDescriptor模板将属性名称binarylD的值输出,当通过分析发现Descr时,预定ObjectDescriptor模板调用预定Descr模板,并且将}输出到情景文件。
当通过分析发现InitialObjectDescriptor和Profiles时,预定InitialObjectDescriptor模板可以调用预定Profiles模板,并且通过分析发现Descr时,预定InitialObjectDescriptor模板调用预定Descr模板。当通过分析发现Descr和esDescr时,预定Descr模板可以调用预定esDescr模板,并且当通过分析发现ipmpDescrPtr时,预定DescrPtr模板调用预定ipmpDescr模板。
当通过分析发现esDescr和ES_Descriptor时,预定esDescr模板可以调用预定ES_Descriptor模板。当通过分析发现ipmpDescrPtr和IPMP_Descriptor时,预定ipmpDescrPtr模板可以调用预定IPMPDescriptor模板,并且通过分析发现IPMP_DescriptorPointer时,预定ipmpDescrPtr模板调用预定IPMP_DescriptorPointer模板。
通过分析发现ES_Descriptor和URL时,预定ES_Descriptor模板可以调用预定URL模板,当通过分析发现StreamSourcer时,预定ES_Descriptor模板调用预定StreamSourcer模板,当通过分析发现decConfigDescr时,预定ES_Descriptor模板调用预定decConfigDescr模板,当通过分析发现sIConfigDescr模板时,预定ES_Descriptor模板调用预定sIConfigDescr模板,当通过分析发现ipiPtr时,预定ES_Descriptor模板调用预定ipiPtr模板,当通过分析发现ipIDs时,预定ES_Descriptor模板调用预定ipIDs模板,当通过分析发现ipmpDescrPtr时,预定ES_Descriptor模板调用预定ipmpDescrPtr模板,当通过分析发现langDescr时,预定ES_Descriptor模板调用预定langDescr模板,当通过分析发现regDescr时,预定ES_Descriptor模板调用预定regDescr模板,当通过分析发现qosDescr时,预定ES_Descriptor模板调用预定qosDescr模板。
当通过分析在XMT文件中发现StreamSource时,XMT2BIFS样式表可以调用StreamSourcel模板,其中当通过分析发现CompressedImageFormat时,StreamSourcel模板将多工文件的扩展、muxSrcipt和文件名称输出到情景,并且当通过分析发现BitWrapperEncodingHints时,StreamSourcel模板将多工文件的扩展、muxScript和文件名称输出到情景文件。
当/并随后通过分析在XMT文件中发现Body/*时,XMT2MUX样式表可以调用Body lower的模板,并且通过分析发现Header/*时,XMT2MUX样式表调用Header lower的模板。当通过分析在XMT文件中发现ObjectDescriptorUpdate或InitialObjectDescriptor时,XMT2MUX样式表可以使用ODids作为模板名称并使用objectDescriptorlD作为模板名称的值,同时调用ObjectDescriptorUpdate模板或InitialObjectDescriptor模板。
当通过分析在XMT文件中发现ObjectDescriptorUpdate时,ObjectDescriptorUpdate模板可以调用OD模板,并且当在OD模板中发现OD时,OD模板调用ObjectDescriptor模板。
XMT2MUX样式表可以包括decConfigDescr模板和sIConfigDescr模板,当在预定upper模板中发现decConfigDescr时,调用decConfigDescr模板,当在预定upper模板中发现sIConfigDescr时,调用sIConfigDescr模板,其中当通过分析发现decConfigDescr时,decConfigDescr模板将decConfigDescrDecoderConfigDescriptor{输出到多工文件,调用DecoderConfigDescriptor模板,并且将}输出到多工文件,当通过分析发现sIConfigDescr时,sIConfigDescr模板将sIConfigDescr SLConfigDescriptoi{输出到多工文件,调用SLConfigDescriptor模板,并且将}输出到多工文件。
XMT2MUX样式表可以包括解码信息样式表,该解码信息样式表包含AFXConfig模板和DecoderConfigDescriptor模板,其中,DecoderConfigDescriptor模板在DecoderConfigDescriptor节点的decSpecificInfo节点中将元素名称定义为AFXconfig,其中此DecoderConfigDescriptor节点包括解码所需的信息,并且当通过分析发现decSpecificInfo和AFXConfig时,DecoderConfigDescriptor模板调用AFXConfig模板。
当通过分析发现AFXConfig时,AFXConfig模板可以将decSpecificInfoAFXConfig{输出到多工文件,当通过分析发现OctreeImageDecoderSpecific时,AFXConfig模板调用OctreeImageDecoderSpecrfic模板,并且当通过分析发现PointTextureCompDecoderSpecific时,AFXConfig模板调用PointTextureCompDecoderSpecific模板,并将}输出到多工文件。当通过分析发现OctreeImageDecoderSpecific时,OctreeImageDecoderSpecific模板可以将OctreeImageDecoderSpecific{}输出到多工文件。当通过分析发现PointTextureCompDecoderSpecific时,PointTextureCompDecoderSpecific模板可以将PointTextureCompDecoderSpecific{}输出到多工文件。
当通过分析在XMT文件中发现StreamSource时,XMT2MUX样式表可以输出muxinfo Muxinfo{文件名,当通过分析发现url时,XMT2MUX样式表将url的值输出到多工文件,当通过分析没有发现url但发现EncodingHints、BIFSEncodingHints、FBAEncodingHints、BitWrapperEncodingHints和CompressedImageFormat中的一个时,XMT2MUX样式表调用EncodingHints模板、BIFSEncodingHints模板、FBAEncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板中对应的一个,其中,所发现的不是EncodingHints、BitWrapperEncodingHints或CompressedImageFormat,当通过分析发现}时,输出streamFormat BIFS,并且将}输出到多工文件。
当通过分析发现CompressedImageFormat以及JPEG、PNG、MPEG4-Video、和VTC中的一个时,CompressedImageFormat模板可以调用JPEG模板、PNG模板、MPEG4-Video和VTC模板中的对应一个。
当JPEG模板被调用并且通过分析发现JPEG时,JPEG模板调用sourceFormat模板或targetFormat模板,并输出streamFormat JPEG,当PNG模板被调用并且通过分析发现PNG时,PNG模板调用sourceFormat模板或targetFormat模板,并输出streamFormat PNG,当MPEG4视频模板被调用并且通过分析发现MEPG4-Video时,MPEG4-Video模板调用sourceFormat模板或targetFormat模板,并输出streamFormat MPEG4-Video,当VTC模板被调用并且通过分析发现VTC时,VTC模板调用sourceFormat模板或者targetFormat模板被调用,并输出streamFormat VTC,其中,sourceFormat模板和targetFormat模板调用param模板,并且param模板输出文件名的值。
当通过分析发现BitWrapperEncodingHints和BitWrapperOctreeImageEncodingHints时,BitWrapperEncodingHints模板调用BitWrapperOctreeImageEncodingHints模板,并且当通过分析发现BitWrapperPointTextureEncodingHints时,BitWrapperEncodingHints模板调用BitWrapperPointTextureEncodingHints模板。
当通过分析发现BitWrapperOctreeImageEncodingHints和sourceFormat时,BitWrapperOctreeImageEncodingHints模板调用sourceFormat模板,当通过分析发现targetFormat时,调用targetFormat模板,并将streamFormatOctreeImageCompression输出到多工文件,并且当通过分析发现BitWrapperPointTextureEncodingHints和sourceFormat时,BitWrapperPointTextureEncodingHints模板调用sourceFormat模板,当通过分析发现targetFormat时,BitWrapperPointTextureEncodingHints模板调用targetFormat模板,并且将streamFormatPointTextureCompression输出到多工文件。当通过分析发现param时,sourceFormat模板和targetFormat调用param模板,并且param模板输出文件名的值。
根据本发明的另一个方面,提供一种计算机可读介质,其中在此介质上面有包含上述模式和样式表中一个的计算机程序。


参照附图,通过详细描述其典型具体实施方式
,本发明的上述和其它特征和优点将变得更加明显,其中图1示出利用用于DIBR数据压缩的元表述,用于产生输入文件的系统结构;图2示出终端用户和安装在系统中的程序之间的XMT模式的运行;和图3示出用文本语法和MPEG-4节点,允许产生内容的编辑框架。
具体实施例方式
参照附图,下面将描述根据本发明的用于基于depthimage表述(DIBR)数据的模式和样式表。
下面将描述MPEG-4节点的概要。MPEG-4节点总共由180个节点组成。根据节点数据的属性,节点被区分为53个群节点,例如SF2DNodeType、SF3DNodeType、SFAppearanceNodeType、SFAudioNodeType、SFBAPNodeType、SFDepthImageNodeType、SFDepthTextureNodeType、SFGeometryNodeType、SFWorldNodeType等。
与DIBR数据压缩相关的BitWrapper节点属于群节点、SF2DNodeType、SF3DNodeType、SFGeometryNodeType和SFWorldNodeType。
与DIBR相关的节点包括SimpleTexture、PointTexture、OctreeImage和DepthImage。DepthImage节点属于群结点,SF3DNodeType和SFDepthImageNodeType。SimpleTexture节点属于群结点,SFDepthTextureNodeType和SFWorldNodeType。PointTexture节点属于群结点,SFDepthTextureNodeType和SFWorldNodeType。OctreeImage节点属于群结点,SF3DnodeType和SFWorldNodeType。DepthImage节点包括camesal信息,其中此信息包括作为属性的position(位置)、orientation(方向)、fieldOfView、nearPlane、farPlane和orthographic(正交)。PointTexture和SimpleTexture节点用于SFDepthTextureNode字段。OctreeImage节点包括为Octree归档的数据,并且SimpleTexure节点被用texture信息,即MFDepthImageNode类型的图像。
将简要描述XML。XML是一种元语言。XML是标准通用标注语言(SGML)的子集或轮廓。XML是能用在环球网(web)上的SGML。不能被用于环球网的SGML在XML中被省略。XML包括超链接模式的规格。超链接模式的规格被称为可扩展链接语言(XLL),并且被提供作为辨别语言。XML包括样式语言、可扩展式样单语言(XSL)的规格。XML与描述的信息有关。XML是用于结构化并且描述数据的标准语言,其中此数据能够被另一应用所识别。XML具有逻辑结构,并因此指示是否创建文件或者文件的内容。
将简要描述XML模式。XML模式表现为通用词汇,并且允许使用传送由用户定义的规则的机器。XML模式定义XML文件的主体、结构和内容。
XML模式由组件组而组成。下面将描述XML模式的基本的、重要的组件。
存在定义组件的类型,simpleType和complexType。simpleType组件是一组约束,它限制将要被编码或者编码信息的值的字串,并且被用于属性信息项或不含子信息(chilren)的元素信息项的范式化值。大部分simpleType用于属性。
complexType组件是一组属性声明和内容类型,并且被用于元素信息项的子信息和属性。内容类型组件需要包括不含元素和符号信息项的空的子信息,包括特殊简单类型字串的子信息,或者包括一系列与特定模式群一致的元素信息项(例如群)的子信息。
元素声明具有作为名称的类型定义。并且元素声明是简单(或复杂)与约束的组合。
<!ELEMENT A...>
<!ATTLIST A...>
属性声明是属性名称、simpleType定义、事件信息和默认值的组合。
注解由<annotation>~</annotation>定义。
存在Data type组件和Derivation组件。序列组件定义元素序列。Choice组件定义从元素中选择的一个元素。组件minOccurs和maxOccurs分别指定所发生元素的最小数和所发生元素的最大数。Group组件用于具有特定功能的group元素,并且能够被其它元素引用。MaxInclusive组件定义了所定义的基本类型的最大值。MinInclusive组件定义了所定义基本类型的最小值。
实例如下。
simpleType的实例<simpleType name=″bit4″>
<restriction base=″unsignedByte″>
<maxInclusive value=″15″/>
</restriction>
</simpleType>
complexType的实例<element name=″par″>
<complexType>
<choice minOccurs=″0″maxOccurs=″unbounded″>
<element ref=″xmtapar″minOccurs=″0″/>
<group ref=″xmtaBIFSCommandsGroup″/>
<element ref=″xmtaAnimationFrame″/>
<group ref=″xmtaOtherCommands″/>
</choice>
<attribute name=″begin″type=″xmtaSFTime″use=″optional″default=″0″/>
<attribute name=″atES_ID″type=″IDREF″use=″optional″/>
</complexType>
</element>
在简单类型元素的上述实例中,定义了bit4。名称属性被定义为bit4,并且bit4属性由限制元素指定。限制元素将基本属性定义为unsignedByte和unsignedByte的maxInclusive值,它是一个值属性,比如15。换句话说,simpleType元素定义bit4为unsignedByte类型并具有从0至15的值。
标准(par)元素包括complexType元素。complexType元素由2个子元素、2个子组和2个属性组成。使用选择元素来选择四个子元素和子组中的一个。在选择的元素中定义minOccurs=″0″maxOccurs=″unbounded″,它表示选择元素的最小数是零,并且选择元素的最大数是无穷大。子元素和子组利用上述定义的元素。
关于属性,将属性名称定义为开始,并且将属性种类定义为SFTime。此属性的使用是任选的,并且属性具有默认值0。将下一个属性名称定义为atES_ID,并且将此属性的类型定义为IDREF。还规定,此属性的使用是任选的属性的详细说明如下。
<xscomplexType>
<xsattribute ref=″xmllang″use=″required″/>
<xsattribute ref=″xmlspace″default=″preserve″/>
<xsattribute name=″version″type=″xsnumber″fixed=″1.0″/>
</xscomplexType>
必需同时使用′use′和′default′两者吗?仅仅使用′default=100′而不定义′use=optional′来指定一个属性可能的吗?仅仅使用″default=100″而不使用″use=optional″是可能的。′use′和′default′用于指定属性的出现和值。′use′可以被定义为″optional″或″required″。此外,可以专门使用′default′和′fixed′。可以同时或者单独使用′use′和′default/fixed′。″optional″意思是该属性不是必需的。″required″意思是该属性是必需的。′default′允许定义默认值,并且′fixed′意味着仅仅可以使用一固定值。
本发明涉及XMT模式和样式表,它们用于利用与DIBR数据压缩相关的元表述来产生输入文件。图1示出用于利用DIBR数据压缩的元表述来产生输入文件的系统的结构。附图标记100表示XMT模式和样式表。
将简要描述XMT模式。XMT模式描述了XMT文件的结构并且指定其中的内容。根据MPEG-4XMT标准的XMT模式包括XMT-A、XMT-O和XMT-C。XMT模式将具有控制编辑、表述、处理和压缩数据所需要的各种因素的简单方法,提供给使用安装在系统中的程序的终端用户。XMT-O用于以抽象形式将由终端用户要求的各种因素,表述给编辑(表述/处理/压缩)数据。使用基于方便的用户接口而易于理解的语法和语义,XMT-O定义用户要求的因素。然而,XMT-O中所定义的值不能直接提供给系统中的程序。所以,使用XMT-A将以用户易于理解的形式所表述的因素传送给系统中的程序。XMT-A定义由终端用户要求并且从XMT-O传来的因素,以便由系统中的程序读取并且执行映射。XMT-A定义了系统中的程序所需的因素,该程序用于用于压缩、传输、处理和情景构造。XMT-C定义了XMT-o和XMT-A中经常使用的模块。图2表示终端用户和在系统中的程序之间的XMT模式的功能。
下面将描述样式表。首先,下面将描述XMT样式表。通常,当接收到遵照XML模式规则产生的输入文件时,样式表把输入数据的格式转化为新的格式,即形成输出格式。即使仅定义了一个模式时,根据如何定义样式表,输入数据可以以各种格式输出,就如同使用翻译机把所定义的标准语言转换为韩语、英语、日语、汉语、西班牙语等。换句话说,样式表像语言转换机器那样运行。
下面将描述MPEG-4样式表。MPEG-4样式表把输入的XMT文件转换为另一种格式,例如,将文件的IM1文本格式输入给在图3的本发明中的MPEG-4播放器。
图3是利用文本语法和MPEG-4节点,允许产生内容的编辑框架。
下面将描述根据本发明的XMT-A模式和样式表。下面将描述XMT-A模式的语法和语义。根据功能,将XMT-A模式分类为xmt-a、xmta-bifs、xmta-o、和xmta-encoding。xmt-a.xsd是主要的模式,它用于定义在MPEG-4节点字段中所使用的类型。xmta-bifs.xsd是用于定义MPEG-4节点、节点字段和XMT文件结构(标题部分和本体)的BIFS模式。xmta-o.xsd用于指定Object Descriptor。xmta-encoding.xsd用于指定特殊节点,例如与压缩有关的。换言之,指定压缩参数、当解码时解码器所必需的信息,等等。
各种节点的XMA-A模式语法和语义如下。当将MPEG-4节点定义为对应模式的元素时,将具有单一值或者多个值的字段节点定义为属性,而将具有字段值的其它节点定义为子元素。将字段名定义为元素名称或属性名称。
特别地,DIBR节点的XMT-A模式语法和语义如下。
1.DepthImage节点(Xmta-bifs.xsd)下面是DepthImage节点的模式语法。<complexType name=″DepthImageType″>
<all>
<element ref=″xmtaIS″minOccurs=″0″/>
<element name=″diTexture″form=″qualified″minOccurs=″0″>
<complexType>
<group ref=″xmtaSFDepthTextureNodeType″minOccurs=″0″/>
</complexType>
</element>
</all>
<attribute name=″farPlane″type=″x=mtaSFFloat″use=″optional″default=″100″/>
<attribute name=″fieldOfview″type=″xmtaSFVec2f″use=″optional″default=″0.785398 0.785398″/>
<attribute name=″nearPlane″type=″xmtaSFFloat″use=″optional″default=″10″/>
<attribute name=″orientation″type=″xmtaSFRotation″use=″optional″default=″0010″/>
<attribute name=″orthographic″type=″xmtaSFBool″use=″optional″default=″true″/>
<attribute name=″position″type=″xmtaSFVec3f″use=″optional″default=″0010″/>
<attributeGroup ref=″xmtaDefUseGroup″/></complexType>
<element name=″DepthImage″type=″xmtaDepthImageType″/><group name=″SFDepthTextureNodeType″>
<choice>
<element ref=″xmtaPointTexture″/>
<element ref=″xmtaSimpleTexture″/>…</choice></group>
上述模式语法将DepthImage节点定义为模式,并且用于基于depthimage的模型着色。包括camera信息和具有texture的深度(depth-having-texture)的信息。由于由多个子元素和属性组成,所以complextype名称被定义为″DepthImageType″。由于3个子元素都是必需的,所以用开始标记<all>和结束标记</all>界定子元素。在第一元素中,涉及名称为″IS″的元素。此外,此元素可以不出现,将minOccurs定义为″0″。将第二元素的名称定义为″diTexture″。此元素具有作为子元素的′group′。group的名称是″SFDepthTextureNodeType″,并且涉及SFDepthTextureNode节点模式。SFDepthTextureNode节点模式被用于DepthImage节点的″diTexture″,并且包括作为较低元素的PointTexture和SimpleTexture。SFDepthTextureNode节点模式的使用是任选的。由于子元素包括上述的group,所以被定义为″complextype″。由于子元素可以不包括group,所以声明OccurminOccurs=0。如果需要,group就出现一次。
使用7个属性表示camera信息,例如属性position、orientation、fieldOfView、nearPlane、farPlane和orthographic。DepthImage节点至少将7个属性中的一个定义为属性名称。
具有名称″farPlane″的属性是″SFFIoat type″,其使用是任选的,并且其默认值是100。具有名称″fieldOfView″的属性是″SFVec2f type″,其使用是任选的,并且其默认值是0.785398 0.785398。具有名称″nearPlane″的属性是″SFFIoat type″,其使用是任选的,并且其默认值是10。具有名称″orientation″的属性是″SFRotationtype″,其使用是任选的,并且其默认值是0010。具有名称″orthographic″的属性是″SFBool type″,其使用是任选的,并且其默认值是″true″。具有名称″position″的属性是″SFVec3f type″,其使用是任选的,并且其默认值是0010。认为″DefUseGroup″是属性group。
2.SimpleTexture节点(xmta-bifs.xsd)下面是SimpleTexture节点的模式语法。
<complexType name=″SimpleTextureType″>
<all>
<element ref=″xmtaIS″minOccurs=″0″/>
<element name=″depth″form=″qualified″minOccurs=″0″>
<complexType>
<group ref=″xmtaSFTextureNodeType″minOccurs=″0″/>
</complexType>
</element>
<element name=″texture″form=″qualified″minOccurs=″0″>
<complexType>
<group ref=″xmtaSFTextureNodeType″minOccurs=″0″>
</complexType>
</element>
</all>
<attributeGroup ref=″xmtaDefUseGroup″/>
</complexType>
<element name=″SimpleTexture″type=″xmtaSimpleTextureType″/>
当使用输入深度图像和彩色图像着色三维DIBR模型时,使用SimpleTexture节点的上述模式语法。由于SimpleTexture节点的模式包括多个子元素,那么将complextype名称定义为″SimpleTextureType″。由于由三个子元素组成,所以定义″complextype″。可以将SimpleTexture节点用于定义新节点的原节点(protonode),其中SimpleTexture节点可用作IS节点,并且涉及IS元素。在SimpleTexture节点中的depth元素包括图像形式的深度(depth)信息,并且其中的texture元素包括图像形式的色彩(color)信息。将图像定义在SFTextureNodeType节点中。可将″Def″或″Use″用于名称定义和SimpleTexture节点的使用。通过将attributeGroup作为DefUseGroup来实现。
3.PointTexture节点(xmta-bifs.xsd)下面是PointTexture节点的模式语法。
<complexType name=″PointTextureType″>
<attribute name=″color″type=″xmtaMFColor″use=″optional″/>
<attribute name=″depth″type=″xmtaMFInt32″use=″optional″/>
<attribute name=″depthNbBits″type=″xmtaSFInt32″use=″optional″default=″7″/>
<attribute name=″height″type=″xmtaSFInt32″use=″optional″default=″256″/>
<attribute name=″width″type=″xmtaSFInt32″use=″optional″default=″256″/>
<attributeGroup ref=″xmtaDefUseGroup″/>
</complexType>
<element name=″PointTexture″type=″xmtaPointTextureType″/>
上述模式语法将PointTexture节点定义为模式。由于PointTexture节点的模式包括多个属性,所以将complextype名称定义为″PointTextureType″。由于由6种属性组成,所以定义″complextype″。
PointTexture节点模式定义至少定义width、height、depthNbBits、depth和color中的至少一个作为属性名称。
具有名称″color″的属性是″MFColor type″,其使用是任选的。具有名称″depth″的属性是″MFInt32 type″,其使用是任选的。类型名称中的″MF″意味着属性具有阵列值。具有名称″depthNbBits″的属性是″SFInt32 type″,其使用是任选的,并且其默认值是7。具有名称″height″的属性是″SFInt32 type″,其使用是任选的,并且其默认值是256。具有名称″width″的属性是″SFInt32 type″,其使用是任选的,并且其默认值是256。认为″DefUseGroup″是属性group。
4.OctreeIamge节点(xmta-bifs.xsd)下面是OctreeIamge节点的模式语法。
<complexType name=″OctreeImageType″>
<all>
<element ref=″xmtaIS″minOccurs=″0″/>
<element name=″images″form=″qualified″minOccurs=″0″>
<complexType>
<group ref=″xmtaSFDepthImageNodeType″minOccurs=″0″maxOccurs=″unbounded″/>
</complexType>
</element>
</all>
<attribute name=″octree″type=″xmtaMFInt32″use=″optional′/>
<attribute name=″octreeResolution″type=″xmtaSFInt32″use=″optional″default=″256″/>
<attribute name=″voxelImagelndex″type=″xmtaMFIht32″use=″optional″/>
<attributeGroup ref=″xmtaDefUseGroup″/>
</complexType>
<element name=″OctreeImage″type=″xmtaOctreeImageType″/>
上述模式语法将OctreeIamge节点定义为模式。由于OctreeIamge节点的模式包括多个属性,所以将complextype名称定义为″OctreeImageType″。由于由2个子元素和4个属性组成,所以定义″complextype″。由于所有子元素都是必需的,所以用<all>和</all>界定子元素。在第一元素中,涉及具有名称″IS″的元素,并且将minOccur定义为″0″,表示该元素可以不出现。一旦如果需要,该元素就可以出现。在具有名称″images″的第二个元素中,将minOccurs定义为″0″,表示元素可以不出现。认为Group元素″SFDepthImageNodeType″是子元素,其中将minOccurs定义为″0″,并且将maxOccurs定义为″unbounded″。将第二元素定义为″complextype″。
OctreeIamge节点模式将Octree、OctreeResolution和voxelImagelndex中的至少一个定义为属性名称。具有名称″octree″的属性是″MFInt32 type″,其使用是任选的。具有名称″octreeResolution″的属性是″SFInt32 type″,其使用是任选的,并且其默认值是256。具有名称″voxelImagelndex″的属性是″MFInt32 type″,其使用是任选的。认为″DefUseGroup″是属性group。
5.BitWrapper节点(xmta-bifs.xsd)下面是BitWrapper节点的模式语法。
<complexType name=″BitWrapperType″>
<all>
<element ref=″xmtaIS″minOccurs=″0″/>
<element name=″node″form=″qualified″minOccurs=″0″/>
<complexType>
<group ref=″xmtaSFWorldNodeType″minOccurs=″0″/>
</compiexType>
</element>
<element ref=″xmtaBitWrapperEncodingParameter″/>
</all>
<attribute name=″type″type=″xmtaSFInt32″use=″optional″default=″0″/>
<attribute name=″url″type=″xmtaMFUrl″use=″optional″/>
<attribute name=″buffer″type=″xmtaSFString″use=″optional″default=″""″/>
<attributeGroup ref=″xmtaDefUseGroup″/>
</complexType>
<element name=″BitWrapper″type=″xmtaBitWrapperType″/>
BitWrapper节点压缩在所存档的节点中的数据,并且使用内带或频带来传输比特流。url字段传输外带比特流,并且所存档的缓冲器将内带比特流与BIFS比特流一起传输。
当编辑者希望使用BitWrapper方式来传输所压缩的数据时,必需允许编辑者控制用于产生比特流的参数。可以利用XMT-A模式语法实现。
BitWrapper节点模式用于压缩图形数据。
BitWrapper节点模式包括作为较低元素的″BitWrapperEncodingParameter″和″node″,并且包括三个属性。这三个属性分别具有名称″type″、″uri″、和″buffer″,并且分别具有类型″SFInt32″、″MFUrl″和″SFString″。
节点元素指定了包括将被压缩的数据的图形数据,并且将SFWorldNode作为子元素。这意味着节点中的SFWorldNode能够被所有子元素使用。
下面将描述压缩参数BitWrapperEncodingParameter。压缩参数模式定义了pointtexture的压缩率,并且被包括在具有名称″BitWrapperEncodingParameter″的节点元素中。具有名称″PointTextureEncodingParameter″的元素包括名称为″configPercent″和类型为″codingPercentType″的属性。codingPercentType的类型为simpleType,其限制基础是整数。
下面是BitWrapperEncodingParameter的模式语法。
<element name=″BitWrapperEncodingParameter″>
<complexType>
<choice>
<element name=″CoordinateInterpolatorEncodingParameter″minOccurs=″0″maxOccurs=″1″>
…</element>
<element name=″IndexedFaceSetEncodingParameter″minOccurs=″0″maxOccurs=″1″>
…</element>
<element name=″OrientationInterpolatorEncodingParameter″minOecurs=″0″maxOccurs=″1″>
…</element>
<element name=″PositionInterpolatorEncodingParameter″minOccurs=″0″maxOccurs=″1″>
</element>
<element name=″MeshGridEncodingParameter″minOccurs=″0″maxOccurs=″1″>
…</element>
<element name=″PointTextureEncodingParameter″minOccurs=″0″maxOccurs=″1″>
<complexType>
<attribute name=″codingPercent″type=″xmtacodingPercentType″use=″optional″default=″100″/>
</complexType>
</element>
</choice>
</complexType>
</element>
BitWrapperEncodingParameter的模式语法将PointTexture的encodingparameter定义为元素。此元素具有名称″PointTextureEncodingParameter″。关于此元素,将minOccurs定义为″0″,并且将maxOccurs定义为″1″。由于此元素包括属性,将它定义为″complextype″。该属性具有名称″codingPercent″和类型″codingPercentType″,其使用是任选的,并且其默认值是100。
下面将描述PointTextureEncodingParameter。PointTextureEncodingParameter包括用于压缩PointTexture的编码参数″codingPercent″。编码参数″codingPercent″确定了用于PointTexture的color值和depth值的压缩度。
参照XMT-A语法,下面将详细描述PointTextureEncodingParameter。将用于PointTexture的压缩的编码参数定义为具有名称″PointTextureEncodingParameter″的元素。PointTextureEncodingParameter元素可以不出现(minOccurs=0)或者可以在最大值处出现一次(maxOccurs=1)。此元素包括属性并且由<complexType>界定。该属性具有名称″codingPercent″和类型″codingPercentType″,其使用是任选的,并且其默认值是100。
在描述xmta-encoding.xsd中的BitWrapperEncodingParameter的语法中,定义PointTextureEncodingParameter的模式语法。
下面将描述压缩(解码)所必需的编码参数。
PointTexture的编码参数的模式语法如下。
<annotation>
<documentation>
************************************************************declaration of basic types for PointTexture***********************************************************</documentation>
</annotation>
<simpleType name=″codingPercentType″>
<restriction base=″int″>
<minInclusive value=″1″/>
<maxInclusive value=″100″/>
</restriction>
</simpleType>
在上述模式语法中,″declaration of basic types for PointTexture″定义了用于PointTexture压缩的具有名称″codingPercent″的编码参数的种类。特别地,将PointTexture定义为″simpleType″,并且具有名称″codingPercentType″。″codingPercentType″具有从0(最小包含值)到100(最大包含值)范围的整数值(整数类型),其中在定义了Bone-Based Animation的基本类型之后,在xmt-a.xsd模式中定义该整数值。
模式语法定义了用于PointTexture的编码参数元素中的属性类型″codingPercentType″。编码参数元素是″SimpleType″,并且具有名称″codingPercentType″。将限制基准定义为″Integer type″,并且其值的范围从1(最小包含值)到100(最大包含值)。
其次,将描述编码和解码所需的BitWrapperEncodingHints。当BItWrapper节点是使用url字段的外带,并且包括sourceFornat和targetFormat中的至少一个作为较低元素时,使用BitWrapperEncodingHints定义脚本文件中的Muxinfo所需的信息,。在脚本文件中Muxinfo所需的信息包括DIBR压缩比特流文件名称和比特流压缩格式。
在本发明中,提出了用于OtreeImage的编码提示的BitWrapperOctreeImageEncodingHints和用于PointTexture的编码提示的BitWrapperPointTextureEncodingHints。
将编码和解码所需的BitWrapperEncodingHints定义在xmta-encoding.xsd模式中。下面是OtreeImage和PointTexture的BitWrapperEncodingHints的语法。
<element name=″BitWrapperEncodingHints″><complexType>
<choice>
<element name=″BitWrapper3DMCEncodingHints″>
<complexType>
<sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
</sequence></complexType></element><element name=″BitWrapperICEncodingHints″><complexType>
<sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
</sequence></complexType></element><element name=″BitWrapperMeshGridEncodingHints″></element><element name=″BitWrapperOctreeImageEncodingHints″>
<complexType>
<sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetFomat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element></sequence></complexType></element><element name=″OthersEncodingHints″><complexType><sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
</sequence>
</complexType></element><element name=″BitWrapperPointTextureEncodingHints″>
<complexType>
<sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetPormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
</sequence>
</complexType></element><element name=″BitWrapperWaveletSubdivisionSurfaceEncodingHints″></element></choice>
</complexType></element>
下面将描述模式的语义。当BItWrapper节点是使用″url″字段的外带时,将BitWrapperEncodingHints用于指定在脚本(.mux)文件中的″Muxinfo description″,并且用于传输包含在DIBR相关节点中的压缩图像或运动图像(CompressedImageFormatJPEG、PNG、MPEG4-Video、VTC等)。因此,输入XMT文件代表包括DIBR相关对象的内容。当输入XMT文件时,根据以前所定义的模式,调用BitWrapperEncodinghints的样式表,以便输出到符合MPEG-4二进制文本格式的多工文件。在Muxinfo说明中,在用于传输的sourceFormat/targetFormat元素中的param元素中定义压缩文件名称。
下面将描述模式的语法。将BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints定义为BitWrapperEncodingHints中的子元素。每一个子元素包括作为子元素的sourceFormat和targetFormat。因此,将BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints定义为″compexType″。可以使用sourceFormat和targetFormat中的两个或者仅使用一个。当使用sourceFormat和targetFormat两者时,sourceFormat在targetFormat之前。将sourceFormat和targetFormat中每一个都定义为″complexType″,因为它们包括多个具有文件名的param元素。多个param元素的顺序通过序列来表示。
随后,将描述解码所需的″decodingspecific info″。当BitWrapper节点是使用url字段的外带时,需要解码信息模式。解码码信息模式包括AFXConfig模式和decoderConfigDescriptor模式。DecoderConfigDescriptor模式在包括解码所需信息的DecoderConfigDescriptor节点中的decSpecificlnfo节点中定义元素名称为AFXconfig。
AFXConfig元素包括关于解码器的信息,其中此解码器能够用于解码比特流。换句话说,AFXConfig元素包括关于解码器的信息,其中可以使用此解码器能够解码使用OctreeImage压缩和PointTexture压缩进行压缩的比特流。
下面将描述AFXConfig中的OctreeImageDecoderSpecific和PointTextureCompDecoderSpecific的语法含义。是″complexType″的AFXConfig包括多个元素,其中可以选择使用一个元素(<choice>~</choice>)。在关于多个解码器的多条信息中,将关于OctreeImage解码器的使用的OctreeImageDecoderSpecific信息定义在一个元素中,该OctreeImage解码器用于解码由OctreeImage压缩编码的比特流,并且将关于PointTexture解码器的使用的PointTextureCompDecoderSpecific信息定义在一个元素中,其中此PointTexture解码器用于解码由PointTexture压缩编码的比特流。
AFXConfig模式将OctreeImageDecoderSpecific和PointTextureCompDecoderSpecific定义为元素名称,其中OctreeImageDecoderSpecific是关于用于解码的OctreeImage解码器的使用的信息,PointTextureCompDecoderSpecific是关于用于解码的PointTexture解码器的使用的信息。
将AFXConfig定义在xmta-od.xsd中的DecoderConfigDescriptor元素之后。将OctreeImageDecoderSpecific信息提供给由OctreeImage压缩编码的比特流,并且将PointTextureCompDecoderSpecific信息提供给由PointTexture压缩编码的比特流。将OctreeImageDecoderSpecific元素定义在WMDecoderSpecific元素之后,并且将PointTextureCompDecoderSpecific元素被定义在BBADecoderSpecific元素之后。
<element name=″DecoderConfigDescriptor″>
<complexType>
<sequence>
<element name=″decSpecificInfo″form=″qualified″minOccurs=″0″>
<complexType>
<choice minOccurs=″0″>
<element name=″BIFSConfig″type=″xmtaBIFSConfigType″/>
<element name=″BIFSv2Config″type=″xmtaBIFSv2ConfigType″/>
<element name=″AFXConfig″type=″xmtaAFXConfigType″/>
<element ref=″xmtaDecoderSpecificInfo″/>
</choice>
</complexType>
</element>
<element name=″profileLevelIndicationIndexDescr″form=″qualified″minOccurs=″0″>
<complexType>
<sequence>
<element ref=″xmtaExtensionProfileLevelDescriptor″minOccurs=″0″maxOccurs=″unbounded″/>
</seouence>
</complexType>
</element>
</sequence>
<attribute name=″objectTypeIndication″type=″xmtaobjectTypeIndicationType″use=″required″/>
<attribute name=″streamType″type=″xmtastreamTypeType″use=″required″/>
<attribute name=″upStream″type=″boolean″use=″optional″default=″false″/>
<attribute name=″bufferSizeDB″type=″xmtabit24a″use=″optional″default=″auto″/>
<attribute name=″maxBitrate″type=″xmtabit32a″use=″optional″default=″auto″/>
<attribute name=″avgBitrate″type=″xmtabit32a″use=″optional″default=″auto″/>
</complexType>
</element>
<complexType name=″AFXConfigType″>
<choice>
<element name=″A3DMCDecoderSpecific″/>
<element name=″CoordInterpCompDecoderSpecific″/>
<element name=″OriInterpCompDecoderSpecific″/>
<element name=″PosInterpCompDecoderSpecific″/>
<element ref=″xmtaMeshGridDecoderSpecific″/>
<element ref=″xmtaWMDecoderSpecific″/>
<element name=″OctreeImageDecoderSpecific″/>
<element name=″BBADecoderSpecific″/>
<element name=″PointTextureCompDecoderSpecific″/>
</choice>
</complexType>
下面将描述CompressedImageFormat模式。包括压缩图像或运动图像文件的DIBR数据(内容)可以使用多种多媒体(各种应用程序,例如播放器)显现。为了将图像或运动图像显现给用户,压缩图像或运动图像文件中的DIBR数据必须作为texture被包含。为了由各种多媒体再现,压缩数据文件需要由解码器解码,并且与显现的其它信息结合并且同步。在解码过程中,需要压缩图像或运动图像的文件名和比特流格式的信息。CompressedImageFormat模式用于向解码器提供此信息。
将CompressedImageFormat模式用于提供包含在DIBR相关节点中的信息(压缩文件名和流格式),其中此信息是解码压缩数据所需的,此压缩数据例如是JPEG、PNG、MPEG4-Video或VTC格式的压缩图像或者运动图像。CompressedImageFormat模式包括名称为″CompressedImageFormat″的元素和名称为″JPEG″、″PNG″、″MPEG4-Video″和″VTC″的子元素,其中每个子元素都包括SourceFormat或targetFormat。sourceFormat或targetFormat包括param,并且文件名被存储在param中。
下面是CompressedImageFormat模式的语法。
<element name=″CompressedImageFormat″>
<complexType>
<choice>
<element name=″JPEG″>
<complexType>
<sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetFormat″>
<complexType>
<sequence>
<element ref=″xmtapgram″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element><element name=″PNG″><complexType><sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element></sequence></complexType></element><element name=″MPEG4-Video″><complexType><sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
</sequence>
</complexType></element><element name=″VTC″>
<complexType>
<sequence>
<element name=″sourceFormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
<element name=″targetPormat″>
<complexType>
<sequence>
<element ref=″xmtaparam″minOccurs=″0″maxOccurs=″unbounded″/>
</sequence>
</complexType>
</element>
</sequence>
</complexType></element></choice></complexType></element>
下面将详细描述根据本发明的DIBR数据的样式表。MPEG-4样式表把输入的XMT文件转换为另一种格式,例如MPEG-4播放器的输入文件的IM1文本格式。
根据本发明的DIBR数据样式表包括用于产生DIBR数据的情景文件的XMT2BIFS样式表,和用于产生DIBR数据的多工文件的XMT2MUX样式表。
存在IC、3DMC、BitWrapper、DIBR、BitWrapperEncodingHints和AFXConfig节点的样式表。输入的XMT文件的本体部分,即相关数据的情景,在XMT2BIFS.XSL中处理,并且被输出到情景文件。输入的XMT文件的标题部分,例如objectdescriptor数据,在XMT2MUX.XSL中处理,并且被输出到多工文件。
首先,描述XMT2BIFS.XSL。此样式表将元素和群定义为模板。对于BitWrapper节点,根据模式中的BitWrapper,分析XMT文件中的BitWrapper节点的内容。为了获得与IM1文本格式兼容的情景输出文件,必需声明能够使得发现BitWrapper的geometry group。XMT2BIFS样式表定义了geometry模板的应用模板中的BitWrapper。换句话说,在geometry模板中声明将被调用的BitWrapper模板。
<xsltemplate match=″xmtgeometry″>
geometry<xsliftest=″@DEF″>DEF<xslvalue-of select=″@DEP″/><xsltext>
</xsltext></xslif>
<xslapply-templates select=″xmtText|xmtBitmap|xmtBox|xmtCircl|xmtCone|xmtCurve2D|xmtCylinder|xmtElevationGrid|xmtExtrusion|xmtHierarchical3DMesh|xmtIndexedFaceSet|xmtIndexedFaceSet2D|xmtIndexedLineSet|xmtIndexedLineSet2D|xmtPointSet|xmtPointSet2D|xmtRectangle|xmtSphere|xmtBitWrapper|xmtProtoInstance|xmtMeshGrid″/>
</xsltemplate>
根据模式中的BitWrapper,分析XMT文件中的BitWrapper节点的内容,并且将XMT文件转换为与IM1文本格式兼容的情景输出文件。
当通过分析在XMT文件中发现BItWrapper时,XMT2BIFS样式表可以将′BitWrapper{′输出给情景文件,当通过分析发现″node″时,XMT2BIFS样式表调用预定节点模板,当通过分析发现压缩节点的DIBR编码参数中的PointTextureEncodingParameter时,XMT2BIFS样式表调用预定PointTextureEncodingParameter模板,当通过分析发现″type″、″buffer″和″url″时,XMT2BIFS样式表将类型、缓冲器、和url及其值输出到情景文件,并且将}输出到情景文件。下面是XMT2BIFS样式表的一个实例。
<xsltemplate match=xmtBitWrapper>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-ofselect=″@DEF″/></xslif>BitWrapper{<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
<xslapply-templates select=″xmtnode″/xsltext>
</xsltext>
<xslapply-templates select=″xmtPositionInterpolatorEncodingParameter|xmtOrientationInterpolatorEncodingParameter|xmtCoordinateInterpolatorEncodingParameter|xmtIndexedFaceSetEncodingParameter|xmtMeshGridEncodingParameter|xmtPointTextureEncodingParameter″/><xsltext>
</xsltext>
<xslif test=″@type″>type<xslvalue-of select=″@type″/><xsltext>
</xsltext>
</xslif>
<xsliftest=″@buffer″>buffer″<xslvalue-of select=″@buffer″/>″<xsltext>
</xsltext>
</xslif>
<xsliftest=″@url″>url<xslvalue-of select=″@url″/><xsltext>
</xsltext>
</xslif>
}</xslotherwise></xslchoose></xsltemplate>
″节点″声明如下。
<xsltemplate mateh=″xmtnode″>
node<xslapply-templates select=″xmtCoordinateInterpolator
|xmtOrientationInterpolator|xmtPositionInterpolator|xmtIndexedFaceSet|xmtIndexedFaceSet2D|xmtIndexedLineSet|xmtIndexedLineSet2D|xmtCone|xmtCurve2D|xmtCylinder|xmtElevationGrid|xmtExtrusion|xmtHierarchical3DMesh|xmtRectangle|xmtSphere|xmtOctreeImage|xmtMeshGrid|xmtPointTexture″/>
</xsltemplate>
当通过分析发现″node″时,节点模板将″node″输出到情景文件,当通过分析发现PointTexture时,节点模板调用预定的PointTexture模板,当通过分析发现OctreeImage时,节点模板调用预定的OctreeImage模板。
DIBR节点包括PointTexture节点和OctreeImage节点。根据模式中的DIBR,分析XMT文件中的DIBR节点的内容,并且将XMT文件转换为与IM1文本格式兼容的情景输出文件。
当通过分析发现PointTexture时,PointTexture模板把′PointTexture{′输出到情景文件,当通过分析发现″width″、″height″、″depthNbBits″、″depth″、和″color″时,PointTexture模板把width、height、depthNbBits、depth[]和color[]及其值输出到情景文件,并且将}输出到情景文件。下面是用于PointTexture模板的样式表的一个实例。
<xsltemplate match=″xmtPointTexture″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
PointTexture{<xsltext>
</xsltext>
<xslif test=″@width″>width<xslvalue-of select=″@width″/><xsltext>
</xsltext></xslif>
<xslif test=″@height″>height<xslvalue-of select=″@height″/><xsltext>
</xsltext></xslif>
<xslif test=″@depthNbBits″>depthNbBits<xslvalue-of select=″@depthNbBits″/>
<xsltext>
</xsltextX/xslif>
<xslif test=″@depth″>depth[<xslvalue-of select=″@depth″/>]<xsltext>
</xsltext></xsl;it>
<xslif test=″@color″>color[<xslvalue-of select=″@color″/>]<xsltext>
</xsltextX/xslif>
}</xslotherwise>
</xslchoose>
<xslapply-templates/>
</xsltemplate>
当通过分析发现″depth″时,深度模板把″depth″输出到情景文件,当通过分析发现CompositeTexture2D时,深度模板调用预定的CompositeTexture2D,当通过分析发现CompositTexutre3D时,深度模板调用预定的CompositTexutre3D模板,当通过分析发现ImageTexture时,深度模板调用预定的ImageTexture模板,当通过分析发现MovieTexture时,深度模板调用预定MovieTexture模板,当通过分析发现PiexlTexture时,深度模板调用预定PiexlTexture模板,并且当通过分析发现ProtoInstance时,深度模板调用预定ProtoInstance模板。下面是用于深度模板的样式表的一个实例。
<xsltemplate match=″xmtdepth″>
depth<xslapply-templates select=″xmtCompositeTexture2D|xmtComposite Texture3D|xmtImageTexture|xmtMovieTexture|xmtPixelTexture|xmtProtoInstance″/>
</xsltemplate>
<xsltemplate match=″xmttexture″>
texture<xslapply-templates select=″xmtCompositeTexture2D|xmtCompositeTexture3D|xmtImageTexture|xmtMovieTexture|xmtPixelTexture|xmtProtoInstance″/>
</xsltemplate>
当通过分析发现SimpleTexture时,SimpleTexture模板输出′SimpleTexture{′到情景文件,当通过分析发现″depth″时,SimpleTexture模板调用预定的深度模板,当通过分析发现″texture″时,SimpleTexture模板调用预定的texture模板,并且将}输出到情景文件。下面是SimpleTexture模板的样式表的一个实例。
<xsltemplate match=″xmtSimpleTexture″>
<xsLchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
SimpleTexture{<xslapply-templates select=″xmtdepth|xmttexture″/>
}</xslotherwise>
</xslchoose>
</xsltemplate>
当通过分析发现diTexture时,diTexture模板调用预定的SimpleTexture模板,当通过分析发现″SimpleTexture″时,diTexture模板调用预定的SimpleTexture模板,并且当通过分析发现PointTexture时,diTexture模板调用预定的PointTexture模板。下面是diTexture模板的样式表的一个实例。
<xsltemplate match=″xmtdiTexture″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
</xslotherwise>
</xslchoose>
<xslchoose>
<xslwhen test=″xmtSimpleTexture″><xslapply-templatesselect=″xmtSimpleTexture″/></xslwhen>
<xslotherwise><xslif test=″xmtPointTexture″><xslapply-templatesselect=″xmtPointTexture″/></xslif></xslotherwise>
</xslchoose>
</xsltemplate>
当通过分析发现DepthImage时,DepthImage模板将′DepthImage{′输出到情景文件,当通过分析发现″diTexture″时,DepthImage模板将″diTexture″输出到情景文件,DepthImage模板调用预定的diTexture模板,当通过分析发现″fieldOfView″、″nearPlane″、″farPlane″、″orientation″、″position″和″orthographic″时,DepthImage模板将fieldOfView、nearPlane、farPlane、orientation、position和orthographic及其值输出到情景文件,并且输出}到情景文件。下面是DepthTexture模板的样式表的一个实例。
<xsltemplate match=″xmtDepthImage″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-ofselect=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
<xslif test=″xmtIS″><xslcall-template name=″IS″></></xslif>
DepthImage{<xsltext>
</xsltext>
<xslif test=″xmtdiTexture″>diTexture<xslapply-templatesselect=″xmtdiTexture″/></xslif><xsltext>
</xsltext>
<xslif test=″@fieldOfView″>fieldOfView<xslvalue-ofselect=″@fieldOfView″/>
<xsltext>
</xsltext></xslif>
<xslif test=″@nearPlane″>nearPlane<xslvalue-of select=″@nearPlane″/><xsltext>
</xsltextX/xslif>
<xslif test=″@farPlane″>farPlane<xslvalue-of select=″@farPlane″/><xsltext>
</xsltext></xslif>
<xslif test=″@orientation″>orientation<xslvalue-of select=″@orientation″/><xsltext>
</xsltext></xslif>
<xslif test=″@position″>position<xslvalue-of select=″@position″/><xsltext>
</xsltext></xslif>
<xslif test=″@orthographic″>orthographic<xslvalue-of select=″@orthographic″/>
<xsltext>
</xsltext></xslif>
}
</xslotherwise>
</xslchoose>
</xsltemplate>
当通过分析发现images时,图像模板调用预定的DepthImage模板。下面是图像模板的样式表的一个实例。
<xsltemplate match=″xmtimages″>
<xslapply-templates select=″xmtDepthImage″/>
</xsltemplate>
当通过分析发现OCtreeImage时,OctreeImage模板把′OctreeImage{′输出到情景文件,当通过分析发现″octreeResolution″、″octree″、和″voxelImagelndex″时,OctreeImage模板把octreeResolution、octree[]和voxelImagelndex[]及其值输出到情景文件,当发现″images″时,OctreeImage模板输出image[]到情景文件,调用预定的图像模板,并且将}输出到情景文件。下面是OctreeImage模板的样式表的一个实例。
<xsltemplate match=″xmtOctreeImage″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
OctreeImage{<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
<xslif test=″@octreeResolution″>octreeResolution<xslvalue-ofselect=″@octreeResolution″/><xsltext>
</xsltext></xslif>
<xslif test=″@octree″>octree[<xslvalue-of select=″@octree″/>]<xsltext>
</xsltext></xslif>
<xslif test=″@voxelImagelndex″>voxelImagelndex[<xslvalue-ofselect=″@voxelImagelndex″/>]<xsltext>
</xsltext></xslif>
<xslif test=″xmtimages″>
images[<xslapply-templates select=″xmtimages″/>
]</xslif>
}</xslotherwise>
</xslchoose>
</xsltemplate>
关于3DMC节点和Interpolator节点(CoordinateInterpolator、PositionInterpolator和OrientationInterpolator),根据模式中与其相关的定义,分析XMT文件中的Indexedfaceset节点和Interpolator节点的内容,并且把XMT文件转换为与IM1文本格式兼容的情景输出文件。
<xsltemplate match=″xmtOrientationInterpolator″>
<xslchoose>
<xslwhen test=″@USE>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
OrientationInterpolator{<xslif test=″xmtIS″><xslcall-template name=″IS″></xslif><xslif test=″xmtPredictive″><xslcall-template name=″Predictive″/></xslif><xsliftest=″@key″>key[<xslvalue-of select=″@key″/>]<xsltext></xsltext></xslif><xslif test=″@keyValue″>keyValue[<xslvalue-of select=″@keyValue″/>]<xsltext></xsltext></xslif>
}</xslotherwise></xslchoose></xsltemplate>
<xsltemplate match=″xmtPositionInterpolator″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>PositionInterpolator{<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
<xslif test=″xmtPredictive″><xslcall-template name=″Predictive″/></xslif>
<xslif test=″@key″>key[<xslvalue-ofselect=″@key″/>]<xsltext>
</xsltext>
</xslif>
<xsliftest=″@keyValue″>keyValue[<xslvalue-of select=″@keyValue″/>]<xsltext>
</xsltext>
</xslif>
}</xslotherwise></xslchoose></xsltemplate>
<xsltemplate match=″xmtCoordinateInterpolator″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xsliftest=″@DEF″>DEF<xslvalue-ofselect=″@DEF″/></xslif>CoordinateInterpolator{<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
<xslif test=″xmtPredictive″><xslcall-template name=″Predictive″/></xslif>
<xslif test=″@key″>key[<xslvalue-ofselect=″@key″/>]<xsltext>
</xsltext>
</xslif>
<xslif test=″@keyValue″>keyValue[<xslvalue-of select=″@keyValue″/>]<xsltext>
</xsltext>
</xslif>}</xslotherwise></xslchoose/xsltemplate><xsltemplate match=″xmtIndexedFaceSet″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF7></xslif>IndexedFaceSet{
<xslif test=″xmtIS″><xslcall-template name=″IS″/></xslif>
<xslif test=″@ccw″>ccw<xslvalue-of select=″@ccw″/><xsltext>
</xsltext>
</xslif>
<xslif test=″@colorIndex″>colorIndex[<xslvalue-ofselect=″@colorlndex″/>]<xsltext>
</xsltext>
</xslif>
<xslif test=″@colorPerVertex″>colorPerVertex<xslvalue-ofselect=″@colorPerVertex″/><xsltext>
</xsltext>
</xslif>
<xslif test=″@convex″>convex<xslvalue-of select=″@convex″/><xsltext>
</xsltext>
</xslif>
<xslif test=″@coordIndex″>coordlndex[<xslvalue-of select=″@coordIndex″/>]<xsltext>
</xsltext>
</xslif>
<xslif test=″@creaseAngle″>creaseAngle<xslvalue-ofselect=″@creaseAngle″/><xsltext>
</xsltext>
</xslif>
<xslif test=″@normalIndex″>normalIndex[<xslvalue-of select=″@normalIndex″/>]<xsltext>
</xsltext>
</xslif><xslif test=″@normalPerVertex″>normalPerVertex<xslvalue-ofselect=@normalPerVertex″/><xsltext>
</xsltext>
</xslif>
<xslif test=″@solid″>solid<xslvalue-of select=″@solid″/><xsltext>
</xsltext>
</xslif>
<xslif test=″@texCoordIndex″>texCoordIndex[<xslvalue-ofselect=″@texCoordIndex″/>]<xsltext>
</xsltext>
</xslif><xslapply-templates/>
}</xslotherwise></xslchoose></xsltemplate>
<xsltemplate match=″xmtcoord″>
coord<xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/><xsltext>
</xsltextX/xslif>
<xslapply-templares select=″xmtCoordinate|xmtCoordinate2D|xmtProtolnstance″/>
</xsltemplate>
根据模式中的IndexedFaceSetEncodingParameter元素,通过分析发现XMT文件中的IndexedFaceSetEncodingParameter,并将XMT文件转换为与IM1文本格式兼容的情景输出文件。
<xsltemplate mateh=″xmtIndexedFaceSetEncodingParameter″>IndexedFaceSetEncodingParameter{<xsliftest=″@coordQBits″>coordQBits<xslvalue-of select=″@coordQBits″/><xsltext></xsltext</xslif><xslif test=″@normalQBits″>normalQBits<xslvalue-ofselect=″@normalQBits″/><xsltext></xsltext></xslif><xslif test=″@colorQBits″>colorQBits<xslvalue-of select=@colorQBits″/><xsltext></xsltext></xslif><xsliftest=″@texCoordQBits″>texCoordQBits<xslvalue-ofselect=″@texCoordQBits″/><xsltext></xsltext></xslif><xslif test=″@coordPredMode″>coordPredMode<xslvalue-ofselect=″@coordPredMode″/><xsltext></xsltext></xslif><xslif test=″@normalPredMode″>normalPredMode<xslvalue-ofselect=″@normalPredMode″/><xsltext></xsltext></xslif><xslif test=″@colorPredMode″>colorPredMode<xslvalue-ofselect=″@colorPredMode″/><xsltext></xsltext></xslif><xslif test=″@texCoordPredMode″>texCoordPredMode<xslvalue-ofselect=″@texCoordPredMode″/><xsltext></xsltext></xslif><xsliftest=″@errorResilience″>errorResilience<xslvalue-ofselect=″@errorResilience″/><xsltext></xsltext></xslif><xslif test=″@bitsPerPacket″>bitsPerPacket<xslvalue-ofselect=″@bitsPerPacket″/><xsltext></xsltext></xslif><xsliftest=″@boundaryPrediction″>boundaryPrediction<xslvalue-ofselect=″@boundaryPrediction″/></xslif>}</xsltemplate>
根据模式中的CoordinateInterpolatorEncodingParameter元素,通过分析发现XMT文件中的CoordinateInterpolatorEncodingParameter,并将XMT文件转换为与IM1文本格式兼容的情景输出文件。
<xsltemplate match=″xmtCoordinateInterpolatorEncodingParameter″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xsl;iftest=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
CoordinateInterpolatorEncodingParameter{<xslif test=″@keyQBits″>keyQBits<xslvalue-of select=″@keyQBits″/><xsltext>
</xsltext></xslif>
<xslif test=″@keyValueQBits″>keyValueQBits<xslvalue-ofselect=″@keyValueQBits″/><xsltext>
</xsltext></xslif>
<xsliftest=″@transpose″>transpose<xslvalue-of select=″@transpose″/><xsltext>
</xsltext></xslif>
<xsliftest=″@linearKeycoder″>linearKeycoder<xslvalue-ofselect=″@linearKeycoder″/><xsltext>
</xsltext></xslif>}</xslotherwise>
</xslchoose>
</xsltemplate>
根据模式中的OrientationInterpolatorEncodingParameter元素,通过分析发现XMT文件中的OrientationInterpolatorEncodingParameter,并将XMT文件转换为与IM1文本格式兼容的情景输出文件。
<xsltemplate match=″xmtOrientationInterpolatorEncodingParameter″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
OrientationInterpolatorEncodingParameter{<xslif test=″@keyQBits″>keyQBits<xslvalue-of select=″@keyQBits″/><xsltext>
</xsltext></xslif>
<xsliftest=″@keyValueQBits″>keyValueQBits<xslvalue-ofselect=″@keyValueQBits″/><xsltext>
</xsltext></xslif>
<xslif test=″@preservingMode″>preservingMode<xslvalue-ofselect=″@preservingMode″/><xsltext>
</xsltext></xslit>
<xslif test=″@dpcmMode″>dpcmMode<xslvalue-ofselect=″@dpcmMode″/><xsltext></xsltext></xslif><xslif test=″@aacMode_X″>aacMode_X<xslvalue-ofselect=″@aacMode_X″/><xsltext></xsltext></xslif><xslif test=″@aacMode_Y″>aacMode_Y<xslvalue-of select=″@aacMode_Y″/><xsltext></xsltext></xslif><xslif test=″@aacMode_Z″>aacMode_Z<xslvalue-of select=″@aacMode_Z″/><xsltext></xsltext></xslif><xsliftest=″@linearKeycoder″>linearKeycoder<xslvalue ofselect=″@linearKeycoder″/><xsltext></xsltext></xslif>}</xslotherwise></xslchoose>
</xsltemplate>
根据模式中的PositionInterpolatorEncodingParameter元素,通过分析发现XMT文件中的PositionInterpolatorEncodingParameter,并将XMT文件转换为与IM1文本格式兼容的情景输出文件。
<xsltemplate match=″xmtPositionInterpolatorEncodingParameter″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xsliftest=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
PositionInterpolatorEncodingParameter{<xslif test=″@keyQBits″>keyQBits<xslvalue-of select=″@keyQBits″/><xsltext>
</xsltext></xslif>
<xslif test=″@keyValueQBits″>keyValueQBits<xslvalue-ofselect=″@keyValueQBits″/><xsltext>
</xsltext></xslit>
<xslif test=″@preservingMode″>preservingMode<xslvalue-ofselect=″@preservingMode″/><xsltext>
</xsltext></xslif>
<xslif test=″@dpcmMode_X″>dpcmMode_X<xslvalue-ofselect=″@dpcmMode_X″/><xsltext>
</xsltext></xslif>
<xsliftest=″@dpcmMode_Y″>dpcmMode_Y<xslvalue-ofselect=″@dpcmMode_Y″/><xsltext>
</xsltext></xslif>
<xslif test=″@dpcmMode_Z″>dpcmMode_Z<xslvalue-ofselect=″@dpcmMode_Z″/><xsltext>
</xsltext></xslif>
<xslif test=″@aacMode_X″>aacMode_X<xslvalue-ofselect=″@aacMode_X″/><xsltext>
</xsltext></xslif>
<xslif test=″@aacMode_Y″>aacMode_Y<xslvalue-ofselect=″@aacMode_Y″/><xsltext>
</xsltext></xslif>
<xslif test=″@aacMode_Z″>aacMode_Z<xslvalue-ofselect=″@aacMode_Z″/><xsltext>
</xsltext></xslif>
<xslif test=″@linearkeycoder″>linearkeycoder<xslvalue-ofselect=″@linearKeycoder″/><xsltext>
</xsltext></xslif>
<xsliftest=″@intra_X″>intra_X<xslvalue-ofselect=″@intra_X″/><xsltext>
</xsltext></xslif>
<xslif test=″@intra_Y″>intra_Y<xslvalue-of select=″@ntra_Y″/><xsltext>
</xsltext></xslif>
<xslif test=″@intra_Z″>intra_Z<xslvalue-of select=″@intra_Z″/><xsltext>
</xsltext></xslif>
}</xslotherwise>
</xslchoose>
</xsltemplate>
根据模式中的PointTextureEncodingParameter元素,通过分析发现XMT文件中的PointTextureEncodingParameter,并将XMT文件转换为与IM 1文本格式兼容的情景输出文件。
当通过分析发现PointTextureEncodingParameter时,PointTextureEncodingParameter模板将PointTextureEncodingParameter{输出到情景文件,当通过分析发现″codingPercent″时,PointTextureEncodingParameter模板将″codingPercent″及其值输出到情景文件,并且将}输出到情景文件。下面是PointTextureEncodingParameter模板的样式表的一个实例。<xsltemplate match=″xmtPointTextureEncodingParameter″>
<xslchoose>
<xslwhen test=″@USE″>USE<xslvalue-of select=″@USE″/></xslwhen>
<xslotherwise><xslif test=″@DEF″>DEF<xslvalue-of select=″@DEF″/></xslif>
PointTextureEncodingParameter{<xslif test=″@codingPercent″>codingPercent<xslvalue-ofselect=″@codingPercent″/><xsltext>
</xsltext></xslif>
}</xslotherwise>
</xslchoose>
</xsltemplate>
XMT2BIFS定义了输入XMT文件中所必需的信息。最初仅仅允许使用本体信息。然而,根据XMT标准规定,输出IM1文本格式的文件也需要标题信息。因此,为了使用XMT2BIFS样式表中的标题信息,将其定义如下。<xsltemplate match=″/″>
<xslapply-templates select=″xmtXMT-A/xmtBody/*″/>
<xslapply-templates select=″xmtXMT-A/xmtHeader/*″/>
</xsltemplate>
当/并随后通过分析在XMT文件中发现发现Body/*时,XMT2BIFS样式表调用本体的lower模板,并且通过分析发现Header/*时,调用标题的lower的模板。
ObjectDescriptorUpdate应该与IM1文本格式兼容。当通过分析在XMT中发现ObjectDescriptorUpdate时,XMT2BIFS样式表将UPDATE OD[输出到情景文件,当通过分析发现OD并随后发现ObjectDescriptor时,XMT2BIFS样式表调用ObjectDescriptor模板,当通过分析发现InitialObjectDescriptor时,XMT2BIFS样式表调用InitialObjectDescriptor模板,当通过分析发现ObjectDescriptor时,XMT2BIFS样式表调用预定的ObjectDescriptor模板,当通过分析发现InitialObjectDescriptor时,XMT2BIFS样式表调用预定的InitialObjectDescriptor模板,并且将]输出到情景文件。
<xsltemplate match=″xmtObjectDescriptorUpdate″>UPDATE OD[<xslfor-each select=″xmtOD″><xslapply-templatesselect=″xmtObjectDescriptor|xmtInitialObjectDescriptor″/></xslfor-each>
]</xsltemplate>
从XMT2MUX中检索到必需的部分。为了获得与IM1文本格式兼容的情景文件,需要XMT2MUX的以下部分。
当通过分析发现ObjectDescriptor时,ObjectDescriptor模板将ObjectDescriptor{输出到情景文件,当通过分析发现名称为″objectDescriptorlD″的属性时,ObjectDescriptor模板将objectDescriptorlD输出到情景文件,当通过分析发现属性时,ObjectDescriptor模板输出名称为″binarylD″的属性的值,当通过分析发现Descr时,ObjectDescriptor模板调用预定的Descr模板,并且将}输出到情景文件。<xsltemplate match=″xmtObjectDescriptor″>ObjectDescriptor{<xslif test=″@objectDescriptorID″>objectDescriptorID<xslvalue-ofselect=″@binaryID″/><xsltext>
</xsltext></xslif>
<xslapply-templates select=″xmtDescr″/>}</xsltemplate>
当通过分析发现InitialObjectDescriptor并随后发现Profiles时,InitialObjectDescriptor模板调用预定Profiles模板,并且通过分析发现Descr时,调用预定的Descr模板。
<xsltemplate match=″xmtInitialObjectDescriptor″>
<xslapply-templates select=″xmtProfiles|xmtDescr″/>
</xsltemplate>
<xsltemplate match=″xmtProfiles″>
<xslif test=″@ODProfileLevelIndication″>ODProfileLevelIndication<xslvalue-ofselect=″@ODProfileLevelIndication″/><xsltext>
</xsltext></xslif>
<xslif test=″@sceneProfileLevelIndication″>sceneProfileLevelIndication<xslvalue-ofselect=″@sceneProfileLevelIndication″/><xsltext>
</xsltext></xslif>
<xslif test=″@audioProfileLevelIndication″>audioProfileLevelIndication<xslvalue-ofselect=″@audioProfileLevelIndication″/><xsltext>
</xsltext></xslif>
<xsliftest=″@visualProfileLevelIndication″>visualProfileLevelIndication<xslvalue-ofselect=″@visualProfileLevelIndication″/><xsltext>
</xsltext></xslif>
<xslif test=″@graphicsProfileLevelIndication″>graphicsProfileLevelIndication<xslvalue-of select=″@graphicsProfileLevelIndication″/><xsltext>
</xsltext></xslif>
<xsliftest=″@includeInlineProfileLevelFlag″>includeInlineProfileLevelFlag<xslvalue-ofselect=″@includeInlineProfileLevelFlag″/><xsltext>
</xsltext></xslif>
</xsltemplate>
当通过分析发现esDescr时,Descr模板调用预定的esDescr模板,并且通过分析发现ipmpDescrPtr时,调用预定的ipmpDescr模板。
<xsltemplate match=″xmtDescr″>
<xsLapply-templates select=″xmtesDescr|xmtociDescr|xmtipmpDescrPtr″/>
</xsltemplate>
当通过分析发现esDescr并随后发现ES_Descriptor时,esDescr模板调用预定的ES_Descriptor模板。
<xsltemplate match=″xmtesDescr″>
<xslapply-templates select=″xmtES_Descriptor″/>
</xsltemplate>
<xsltemplate match=″xmtociDescr″>
<xslapply-templates select=″xmtContentClassificationDescriptor|xmtKeyWordDeacnptor|xmtRatingDescriptor|xmtLanguageDescriptor|xmtShortTextualDescriptor|xmtExpandedTextualDescriptor|xmtContentCreatorNameDescriptor|xmtContentCreationDateDescriptor|xmtOCICreatorNameDescriptor|xmtOCICreationDateDescriptor|xmtSMPTECameraPositionDescriptor″/>
</xsltemplate>
当通过分析发现ipmpDescrPtr并随后发现IPMP_Descriptor时,ipmpDescrPtr模板调用预定的IPMPDescriptor模板,并通过分析发现IPMP_DescriptorPointer时,调用预定的IPMP_pescriptorPointer模板。<xsltemplate match=″xmtipmpDescrPtr″>
<xslapply-templates select=″xmtIPMP_Descriptor|xmtIPMP_DescriptorPointer″/></xsltemplate>
通过分析发现ES_Descriptor和随后发现URL时,ES_Descriptor模板调用预定的URL模板,当通过分析发现StreamSourcer时,ES_Descriptor模板调用预定的StreamSourcer模板,当通过分析发现decConfigDescr时,ES_Descriptor模板调用预定的decConfigDescr模板,当通过分析发现slConfigDescr模板时,ES_Descriptor模板调用预定的slConfigDescr模板,当通过分析发现ipiPtr时,ES_Descriptor模板调用预定的ipiPtr模板,当通过分析发现ipIDs时,ES_Descriptor模板调用预定的ipIDs模板,当通过分析发现ipmpDescrPtr时,ES_Descriptor模板调用预定的ipmpDescrPtr模板,当通过分析发现langDescr时,ES_Descriptor模板调用预定的langDescr模板,当通过分析发现regDescr时,ES_Descriptor模板调用预定的regDescr模板,当通过分析发现qosDescr时,ES_Descriptor模板调用预定的qosDescr模板。decConfigDescr模板包括DecoderConfigDescriptor。<xsltemplate match=″xmtES_pescriptor″>
<xslif test=″@ES_ID″></xslif>
<xslif test=″@streamPriority″></xslif>
<xslif test=″@OCR_ES_ID″></xslif>
<xslif test=″@dependsOn_ES_ID″></xslif>
<xslapply-templates select=″xmtURL″/>
<xslapply-templates select=″xmtStreamSource|xmtdecConfigDescr|xmtslConfigDescr|xmtipiPtr|xmtipIDs|xmtipmpDescrPtr|xmtlangDescr|xmtregDescr|xmtqosDescr″/>
</xsltemplate>
<xsltemplate match=″xmtdecConfigDescr″></xsltemplate>
<xsltemplate match=″xmtslConfigDescr″></xsltemplate>
<xsltemplate match=″xmtipiPtr″></xsltemplate>
<xsltemplate match=″xmtipIDs″></xsltemplate>
<xsltemplate match=″xmtipmpDescrPtr″></xsltemplate>
<xsltemplate match=″xmtlangDescr″></xsltemplate>
<xsltemplate match=″xmtregDescr″></xsltemplate>
<xsltemplate match=″xmtqosDescr″></xsltemplate>
为了获得与IM1文本格式兼容的情景文件,需要XMT2MUX样式表中的streamSource。
当在XMT文件中发现StreamSource时,XMT2BIFS样式表调用StreamSourcel模板。当通过分析发现CompressedImageFormat时,StreamSourcel模板将多工文件的扩展、muxSrcipt和文件名输出到情景文件,并且当通过分析发现BitWrapperEncodingHints时,StreamSourcel模板将多工文件的扩展、muxScript、和文件名输出到情景文件。
<xsltemplate match=″xmtStreamSource″>
<xslcall-template name=″StreamSourcel″></xslcall-template>
</xsltemplate>
<xsltemplate name=″StreamSourcel″>
<xslparam name=″first″select=″substring-before(@url,′.′)″/>
<xslif test=″@url″>
<xslchoose>
<xslwhen test=″contains(@url,′.od′)″>
<!--muxScript<xslvalue-of select=″$first″/>.mux-->
</xslwhen>
<xslwhen test=″contains(@url,′.bif′)″>
<!--muxScript<xslvalue-of select=″$first″/>.mux-->
</xslwhen>
<xslotherwise></xslotherwise>
</xslchoose>
</xslif>
<xslif test=″xmtCompressedImageFormat″>muxScript<xslvalue-ofselect=″$first″/>.mux</xslif>
<xslif test=″xmtBitWrapperEncodingHints″>muxScript<xslvalue-ofselect=″$first″/>.mux</xslif>
</xsltemplate>
下面将描述根据本发明的XMT2MUX样式表。为了把根据模式中的Odids而分析的输入XMT转换为多工文件,其中此多工文件与IM1文本格式兼容,定义下列内容。通常,当发现ObjectDescriptor或InitialObjectDescriptor时,可以将objectDescriptorlD的值用于Odids。但不能够获得与IM1文本格式兼容的输出文件。然而,通过改变ObjectDescriptorUpdate而不是ObjectDescriptor,就可以获得与IM1文本格式兼容的输出文件。换句话说,XMT2MUX样式表将模板名称定义为ODids,并将objectDescriptorlD定义为ODids的值,并且调用ObjectDescriptorUpdate模板或InitialObjectDescriptor模板。
<xslkey name=″ODids″match=″xmtObjectDescriptorUpdate|xmtInitialObjectDescriptor″use=″@objectDescriptorID″/>
XMT2MUX样式表应当包括定义输入XMT文件中所必需的信息的部分。最初仅允许使用标题信息。然而,为了根据XMT标准规范,获得IM1文本格式的输出格式,也需要本体信息。因此,为了使用本体信息,而定义它。当通过分析发现/并随后发现Body/*时,XMT2MUX样式表调用Body的lower模板,并且当通过分析发现Header/*时,调用Header的lower模板。<xsltemplate match=″/″>
<xslapply-templates select=″xmtXMT-A/xmtHeader/*″/>
<xslapply-templates select=″xmtXMT-A/xmtBody/*″/>
</xsltemplate>
为了通过参考模式分析输入到XMT2MUX样式表的XMT文件,从而把输入XMT文件转换为与IM1文本格式兼容的多工文件,将ObjectDescriptorUpdate模板定义如下。
当通过分析在XMT中发现ObjectDescriptorUpdate时,ObjectDescriptorUpdate模板调用OD模板。当在OD模板中发现OD时,OD模板调用ObjectDescriptor模板。
<xsltemplate match=″xmtObjectDescriptorUpdate″>
<xslapply-templates select=″xmtOD″/>
</xsltemplate>
<xsltemplate match=″xmtOD″><xslapply-templates select=″xmtObjectDescriptor″/></xsltemplate>
通常,DecConfigDescr和slConfigDescr不能用于输出与IM1文本格式兼容的多工文件。然而,根据本发明,使用DecConfigDescr和sIConfigDescr,可以获得与IM1文本格式兼容的多工文件。
ES_Descriptor模板包括decConfigDescr、sIConfigdescr和StreamSource,并且当发现decConfigDescr、sIConfigDescr和StreamSource时,可以分别调用decConfigDescr模板、sIConfigDescr模板和StreamSource模板。
当通过分析发现decConfigDescr时,decConfigDescr模板将′decConfigDescrDecoderConfigDescriptor{′输出到多工文件,调用DecoderConfigDescriptor模板,并且将}输出到多工文件。
当发现sIConfigDescr时,sIConfigDescr模板将sIConfigDescrSLConfigDescriptor{输出到多工文件,调用SLConfigDescriptor模板,并且将}输出到多工文件。
XMT2MUX样式表可以进一步包括包含AFXConfig模板和DecoderConfigDescriptor模板的解码信息样式表。
在DecoderConfigDescriptor节点的decSpecificInfo节点中DecoderConfigDescriptor模板将元素名称定义为SFXconfig,其中此DecoderConfigDescriptor节点包括解码所需的信息,并且当通过分析发现decSpecificInfo并随后发现AFXConfig时,DecoderConfigDescriptor模板调用AFXConfig模板。
<xsltemplate match=″xmtdecConfigDescr″>
decConfigDescr DecoderConfigDescriptor{<xslapply-templates select=″xmtDecoderConfigDescriptor″/>
}</xsltemplate>
<xsltemplate match=″xmtsIConfigDescr″>
slConfigDescr SLConfigDescriptor{<xslapply-templates select=″xmtSLConfigDescriptor″/>
}</xsltemplate>
将DecoderConfigDescriptor的样式表定义如下。
<xsltemplate match=″xmtDecoderConfigDescriptor″><xslif test=″@streamType″>streamType<xslvalue-ofselect=″@streamType″/><xsltext>
</xsltext></xslif>
<xslif test=″@objectTypeIndication″>objectTypeIndication<xslvalue-ofselect=″@objectTypeIndication″/><xsltext>
</xsltext></xslif>
<xslif test=″@upStream″>upstream<xsLvalue-ofselect=″@upStream″/><xsltext>
</xsltext></xslif>
<xslif test=″@bufferSizeDB″>bufferSizeDB<xslvalue-ofselect=″@bufferSizeDB″/><xsltext>
</xsltext></xslif>
<xslif test=″@maxBitrate″>maxBitrate<xslvalue-ofselect=″@maxBitrate″/><xsltext>
</xsltext></xslif>
<xslif test=″@avgBitrate″>avgBitrate<xslvalue-ofselect=″@avgBitrate″/><xsltext>
</xsltext></xslif>
<xslapply-templates select=″xmtdecSpecificInfo|xmtprofileLevelIndicationIndexDescr″/>
</xsltemplate>
定义AFXConfig来输出与IM1文本格式兼容的多工文件。<xsltemplate match=″xmtdecSpecificInfo″><xslapply-templates select=″xmtBIFSConfig|xmtBIFSv2Config|xmtDecoderSpecificInfo|xmtAFXConfig″/>
</xsltemplate>
定义与IM1文本格式兼容的param。
<xslvalue-of select=″@name″/><xsltext>″</xsltext><xslvalue-ofselect=″@value″/>″<xsltext>
</xsltext>
</xsltemplate>
为了使用解码器解码压缩的比特流,需要与关于解码器的信息相关的AFXConfig模板。使用AFXConfig模板可以输出与IM1文本格式兼容的多工文件。
当发现AFXConfig时,AFXConfig模板将′decSpecificInfo AFXConfig{′输出到多工文件,当通过分析发现OctreeImageDecoderSpecific时,AFXConfig模板调用OctreeImageDecoderSpecrfic模板,当通过分析发现PointTextureCompDecoderSpecific时,AFXConfig模板调用PointTextureCompDecoderSpecific模板,并将}输出到多工文件。
<xsltemplate match=″xmtAFXConfig″>decSpecificInfo AFXConfig{afxext<xslapply-templates select=″xmtA3DMCDecoderSpecific|xmtCoordInterpCompDecoderSpecifjc|xmtPosInterpCompDecoderSpecific|xmtOriInterpCompDecoderSpecific|xmtMeshGridDecoderSpecific|xmtWMDecoderSpecific|xmtOctreeImageDecoderSpecific|xmtBBADecoderSpecific|xmtPointTextureCompDecoderSpecific″/>
}</xsltemplate>
<xsltemplate match=″xmtA3DMCDecoderSpecific″>A3DMCDecoderSpecific{}</xsltemplate>
<xsltemplate match=″xmtCoordInterpCompDecoderSpecific″>
CoordInterpCompDecoderSpecific{}</xsltemplate>
<xsltemplate match=″xmtPosInterpCompDecoderSpecific″>PosInterpCompDecoderSpecific{}</xsltemplate>
<xsltemplate match=″xmtOriInterpCompDecoderSpecitic″>OriInterpCompDecoderSpecific{}</xsltemplate>
当发现OctreeImageDecoderSpecific时,OctreeImageDecoderSpecific模板将′OctreeImageDecoderSpecific{}′输出到多工文件。
<xsltemplate match=″xmtOctreeImageDecoderSpecific″>OctreeImageDecoderSpecific{}</xsltemplate>
当发现PointTextureCompDecoderSpecific时,PointTextureCompDecoderSpecific模板将′PointTextureCompDecoderSpecific{}′输出到多工文件。
<xsltemplate match=″xmtPointTextureCompDecoderSpecific″>
PointTextureCompDecoderSpecific{}</xsltemplate>
为了获得与IM1文本格式兼容的多工文件,OctreeImage和PointTexture的CompressedImageFormat和BitWrapperEncodingHints应该在streamSource的Muxinof中。
因此,为了在StreamSource中使用,应当声明用于OctreeImage和PointTexture的CompressedImageFormat和BitWrapperEncodingHints。
当在XMT文件中发现StreamSource时,XMT2MUX样式表调用StreamSource模板。StreamSource模板输出’muxInfo MuxInfo{fileName′,当发现′url′时,StreamSource模板将′url′的值输出到多工文件,并且当通过分析没有发现′url′而发现了EncodingHints、BIFSEncodingHints、FBAEncodingHints、BitWrapperEncodingHints和CompressedImageFormat中的一个时,StreamSource模板调用EncodingHints模板、BIFSEncodingHints模板、FBAEncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板中相对应的一个。当所调用的模板不是EncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板时,XMT2MUX样式表输出streamFormat BIFS并且当通过分析发现}时,将}到输出多工文件。下面是StreamSource模板的样式表的一个实例。
xsltemplate match=″xmtStreamSource″>muxInfo MuxInfo{
fileName<xslvalue-of select=″@url″/><xsltext>
</xsltext>
<!--what to do for rurls?-->
<xslapply-templates select=″xmtEncodingHints|xmtBIFSEncodingHints|xmtFBAEncodingHints|xmtBitWrapperEncodingHints|xmtCompressedImageFormat″/>
<xslif test=″not(xmtEncodingHints|xmtBitWrapperEncodingHints|xmtCompressedImageFormat)″>streamFormat BIFS<xsltext>
</xsltext></xslif>
<xsliftest=″xmtBitWrapperEncodingHints″><xsltext>
</xsltext></xslif>
<xslapply-templates select=″xmtBitWrapper3DMCEncodingHints|xmtBitWrapperICEncodingHints|xmtBitWrapperOctreeImageEncodingHints|xmtOthersEncodingHints|xmtBitWrapperPointTextureEncodingHints|xmtBitWrapperMeshGridEncodingHints|xmtBitWrapperWaveletSubdivisionSurfaceEncoding Hints″/>
<xsliftest=″xmtCompressedImageFormat″></xslif>
<xslapply-templatesselect=″xmtJPEG|xmtPNG|xmtMPEG4-Video|xmtVTC″/>
</xsltemplate>
传统的BitWrapperEncodingHints包括与例如3DMC、InterpolatorCompression等相关的encodinghints,而不包括与OctreeImage和PointTexture相关的encodinghints,这样不能传输和再现包括在DIBR节点中的压缩图像文件。因此,不能输出与IM1文本格式兼容的多工文件。然而,在本发明中,将BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints合并成BitWrapperEncodingHints,并且定义了CompressedImageFormat,其中CompressedImageFormat允许传输包括在DIBR节点中的压缩图像文件(没有被BitWrapper压缩)的名称和文件的格式和文件的再现,这样就能够输出与IM1文本格式兼容的文件。
当通过分析发现BitWrapperEncodingHints并随后发现BitWrapperOctreeImageEncodingHints时,BitWrapperEncodingHints模板调用BitWrapperOctreeImageEncodingHints模板,并且当通过分析发现BitWrapperPointTextureEncodingHints时,BitWrapperEncodingHints模板调用BitWrapperPointTextureEncodingHints模板。
当通过分析发现BitWrapperOctreeImageEncodingHints并且随后发现sourceFormat时,BitWrapperOctreeImageEncodingHints模板调用sourceFormat模板,当通过分析发现targetFormat时,BitWrapperOctreeImageEncodingHints模板调用targetFomnat模板,并且将streamFormatOctreeImageCompression输出到多工文件。
当通过分析发现BitWrapperPointTextureEncodingHints并随后发现sourceFormat时,BitWrapperPointTextureEncodingHints模板调用sourceFormat模板,当通过分析发现targetFormat时,BitWrapperPointTextureEncodingHints模板调用targetFormat模板,并且将streamFormatPointTextureCompression输出到多工文件。
当通过分析发现param时,sourceFormat模板和targetFormat调用param模板,并且param模板输出文件名的值。
<xsltemplate match=″xmtBitWrapperEncodingHints″>
<xslapply-templates select=″xmtBitWrapper3DMCEncodingHints|xmtBitWrapperICEncodingHints|xmtBitWrapperOctreeImageEncodingHints|xmtOthersEncodingHints|xmtBitWrapperPointTextureEncodingHints|xmtBitWrapperMeshGridEncodingHints|xmtBitWrapperWaveletSubdivisionSurfaceEncodingHints″/>
<xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>
</xsltemplate>
<xsltemplate match=″xmtBitWrapper3DMCEncodingHints″>
<xslapply-templates select=″xmtsourceFormat|xmttargetPormat″/>
streamFormat 3DMC</xsltemplate>
<xsltemplate match=″xmtBitWrapperICEncodingHints″>
<xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>
streamFormat InterpolatorCompression</xsltemplate>
<!--add BitWrapperDIBREncodingHints in the BitWrapperEncodingHints for DIBR Nodes-->
<xsltemplate match=″xmtBitWrapperOctreeImageEncodingHints″>
<xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>
streamFormat OctreeImageCompression</xsltemplate>
<xsltemplate match=″xmtBitWrapperPointTextureEncodingHints″>
<xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>
streamFormat PointTextureCompression</xsltemplate>
<xsltemplate match=″xmtOthersEncodingHints″>
<xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>
</xsltemplate>
当通过分析发现CompressedImageFormat并随后发现JPEG、PNG、MPEG4-Video或VTC中的一个时,XMT2MUX样式表调用JPEG模板、PNG模板、MPEG4-Video和VTC模板中的对应一个。当调用JPEG模板时,JPEG模板调用sourceFormat模板或targetFormat模板,并且输出streamFormat JPEG。当调用PNG模板时,PNG模板调用sourceFormat模板或targetFormat模板,并且输出streamFormat PNG。当调用MPEG4-Video模板时,MPEG4-Video模板调用sourceFormat模板或targetFormat模板,并且输出MPEG4-Video。当调用VTC模板时,VTC模板调用sourceFormat模板或targetFormat模板,并且输出streamFormatVTC。
sourceFormat模板和targetFormat调用param模板,并且param模板输出文件名的值。
<!--CompressedImageFormatJPEG,PNG,MPEG4-Video,VTC for DIBR Nodes-->
<xsltemplate match=″xmtCompressedImageFormat″>
<xslapply-templates select=″xmtJPEG xmtPNG|xmtMPEG4-Video|xmtVTC″/><xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/></xsltemplate><xsltemplate match=″xmtJPEG″><xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>streamFormat JPEG</xsltemplate><xsltemplate match=″xmtPNG″><xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>streamFormat PNG</xsltemplate><xsltemplate match=″xmtMPEG4-Video″><xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>streamFormat MPEG4-Video</xsltemplate><xsltemplate match=″xmtVTC″><xslapply-templates select=″xmtsourceFormat|xmttargetFormat″/>streamFormat VTC</xsltemplate><xsltemplate match=″xmtsourceFormat″><xslapply-templates select=″xmtparam″/></xsltemplate><xsltemplate match=″xmttargetFormat″><xslapply-templates select=″xmtparam″/></xsltemplate><xsltemplate match=″xmtparam″><xslvalue-of select=″@name″/><xsltext>″</xsltext><xslvalue-ofselect=″@value″/>″<xsltext></xsltext></xsltemplate>
可以将本发明记录在计算机可读介质中。可以本发明实现为计算机(包括任何信息处理装置)可读程序代码。计算机可读介质的实例包括存储计算机可读数据的任何种类的记录装置,例如ROM、RAM、CD-ROM、磁带、软盘和光学可读介质。
当编辑3D内容时,根据本发明的用于DIBR数据的模式和样式表允许编辑者轻松地控制DIBR的表述和压缩,并且允许部件者容易地产生MPEG-4编码器的输入文件。由于当编辑内容时编辑者可以亲自压缩3D图形数据,所以即使在窄带网络中,也可以实现DIBR数据的实时显像和实时动画。
虽然已经参考其典型实施例对本发明进行了特别地说明和描述,但是,只要不违背由权利要求定义的本发明的精神和范围的条件下,本领域普通技术人员应当理解可以在形式和细节上进行各种改变。
权利要求
1.一种用于DIBR数据的XMT模式,即可扩展MPEG-4文本格式模式,其包括用于图形数据压缩的BitWrapper节点模式;和DepthImage节点模式,其用于基于depthimage的模型着色,包括具有depth信息的camera信息和texture信息,将diTexture定义为元素,该元素包括作为模型群的SFDepthTextureNode,其中,所述BitWrapper节点模式包括节点元素,其包含包括被压缩数据的图形数据,并且将SFWorldNode作为子元素;BitWrapperEncodingParameter元素;和三个属性,其名称为type、url和buffer,其类型分别为SFInt32、MFUrl、和SFString,并且所述depthimage节点模式的camera信息将position、orientation、fieldOfView、nearPlane、farPlane和orthographic中的至少一个定义为属性名称,并且定义在camera信息中的属性类型分别包括SFVec3f、SFRotation、SFVec2f、SFFloat、SFFloat和SFBool。
2.根据权利要求1所述的XMT模式,其中,在所述depthimage节点模式中的diTexture元素定义了一个SFDepthTextureNode节点模式,该SFDepthTextureNode节点模式包括作为元素的PointTexture和SimpleTexture。
3.根据权利要求2所述的XMT模式,其中,所述SimpleTexture的节点模式接收用于DIBR模型的3维着色的color图像和depth图像,包括作为图像的包含depth信息的depth元素和作为图像的包含color信息的texture元素,其中,将这两个图像定义在SFTextualNodeType元素中。
4.根据权利要求2所述的XMT模式,其中所述PointTexture的节点模式将width、height、depthNbBits、depth和color中的至少一个定义为属性名称,并且该节点模式定义的属性类型包括SFInt32、SFInt32、SFInt32、MFInt32和MFColor。
5.根据权利要求1至4中任何一项所述的XMT模式,进一步包括octreeimage节点模式,它将octree、octreeResolution和voxelImageIndex中的至少一个定义为属性名称,并且将图像定义为元素,此元素包括作为节点群的SFDepthImageNodeType,其中,在所述octreeimage节点模式中定义的属性类型分别包括SFInt32、MFInt32和MFInt32。
6.根据权利要求1所述的XMT模式,进一步包括解码信息模式,当所述BitWrapper节点模式是使用url字段的外带时,所述解码信息模式包含AFXConfig模式和DecoderConfigDescriptor模式,其中,所述DecoderConfigDescriptor模式在DecoderConfigDescriptor节点的decSpecificInfo节点中将元素名称定义为AFXconfig,其中此DecoderConfigDescriptor节点包括解码所需的信息,并且AFXConfig模式将OctreeImageDecoderSpecific信息和PointTextureCompDecoderSpecific信息定义为元素名称,其中OctreeImageDecoderSpecific信息与用于解码的OctreeImage解码器的使用有关,并且PointTextureCompDecoderSpecific信息与用于解码的PointTexture解码器的使用有关。
7.根据权利要求6所述的XMT模式,进一步包括包含point texture的压缩比率的压缩参数模式,其中将所述压缩参数模式包括在一个节点中,该节点包含作为元素名称的BitWrapperEncodingParameter,所述压缩参数模式包括作为元素名称的PointTextureEncodingParameter、作为属性名称的configPercent和作为属性类型的codingPercentType,其中所述codingPercentType具有作为类型的SimpleType和作为名称的codingPercentType。
8.根据权利要求7所述的XMT模式,其中所述codingPercentType以int,即整数作为限制基准。
9.根据权利要求6所述的XMT模式,其中所述解码信息模式进一步包括BitWrapperEncondingHints,其用于定义在脚本文件,即多工文件,中的Muxinfo所需的信息,其中,所述BitWrapperEncodingHints包括作为子元素的BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints,并且每一个子元素都包括作为子元素的sourceFormat和targetFormat中的至少一个。
10.根据权利要求9所述的XMT模式,其中所述脚本文件,即多工文件,中的所述Muxinfo所需的信息包括压缩的DIBR比特流的压缩格式和文件名称。
11.根据权利要求1至4中任何一项所述的XMT模式,进一步包括一个CompressedImageFormat模式,其中,当DIBR相关节点包括JPEG、PNG、MPEG4-Video或者VTC格式的运动图像或压缩图像时,CompressedImageFormat模式提供解码信息,其包括解码被压缩信息所必需的压缩比特流的压缩格式和文件名称,并且CompressedImageFormat模式包括作为元素名称的CompressedImageFormat和作为子元素名称的JPEG、PNG、MPEG4-Video和VTC,其中每个子元素都包括sourceFormat或targetFormat,该sourceFormat或targetFormat包含用于存储文件名称的param。
12.一种样式表,其用于利用DIBR数据的模式,分析包括基于深度图像表述的,即DIBR的,数据的输入XMT文件,即可扩展MPEG-4文本格式文件,所述样式表包括XMT2BIFS样式表,其用于产生DIBR数据的情景文件;和XMT2MUX样式表,其用于产生DIBR数据的多工文件。
13.根据权利要求12所述的样式表,其中,当执行调用BitWrapper模板的语句并且通过分析在所述XMT文件中发现BitWrapper时,XMT2BIFS样式表将′BitWrapper{′输出给情景文件,当通过分析发现节点时,XMT2BIFS样式表调用预定的节点模板,当通过分析发现PointTextureEncodingParameter时,其中该PointTextureEncodingParameter是将被压缩节点的DIBR编码参数中之一,XMT2BIFS样式表调用预定的PointTextureEncodingParameter模板,当通过分析发现type、buffer和url时,XMT2BIFS样式表将type、buffer和url及其值输出到情景文件;并且将}输出到情景文件。
14.根据权利要求13所述的样式表,其中,当通过分析发现节点时,预定的节点模板把节点输出到屏幕文件,当通过分析发现PointTexture时,预定的节点模板调用预定的PointTexture模板,并且当通过分析发现OctreeImage时,预定节点模板调用预定OctreeImage模板。
15.根据权利要求14所述的样式表,其中,当通过分析发现PointTexture时,预定的PointTexture模板把′PointTexture{′输出到情景文件,当通过分析发现width、height、depthNbBits、depth和color时,预定的PointTexture模板把width、height、depthNbBits、depth[]和color[]及其值输出到情景文件,并且把}输出到情景文件。
16.根据权利要求12所述的样式表,进一步包括simpleTexture模板,当通过分析发现simpleTexture时,simpleTexture模板将′SimpleTexture{′输出到情景文件,当通过分析发现depth时,simpleTexture模板调用预定的深度模板,当通过分析发现texture时,simpleTexture模板调用预定的texture模板,并且将}输出到情景文件。
17.根据权利要求16所述的样式表,其中,当通过分析发现depth时,预定深度模板把depth输出到情景文件,当通过分析发现CompositeTexture2D时,预定深度模板调用预定的CompositeTexture2D模板,当通过分析发现CompositTexutre3D时,预定深度模板调用预定的CompositTexutre3D模板,当通过分析发现ImageTexture时,预定深度模板调用预定的ImageTexture模板,当通过分析发现MovieTexture时,预定深度模板调用预定的MovieTexture模板,当通过分析发现PixelTexture时,预定深度模板调用预定的PixelTexture模板,并且当通过分析发现ProtoInstance时,预定深度模板调用预定ProtoInstance模板。
18.根据权利要求12所述的样式表,进一步包括DepthImage模板,当通过分析发现DepthImage时,DepthImage模板将′DepthImage{′输出到情景,当通过分析发现diTexture时,DepthImage模板将diTexture输出到情景文件并且调用预定的diTexture模板,当通过分析发现fieldOfView、nearPlane、farPlane、orientation、position和orthographic时,DepthImage模板将fieldOfView、nearPlane、farPlane、orientation、position和orthographic及其值输出到情景文件。
19.根据权利要求12所述的样式表,进一步包括diTexture模板,当发现diTexture之后通过分析发现SimpleTexture时,diTexture模板调用预定的SimpleTexture模板,并且当通过分析发现PointTexture时,diTexture模板调用预定的PointTexture。
20.根据权利要求14所述的样式表,其中,当通过分析发现OctreeImage时,所述预定的OctreeImage模板把′OctreeImage{′输出到情景文件,当通过分析发现OctreeResolution、Octree和voxelImagelndex时,所述预定的OctreeImage模板把OctreeResolution、Octree[]和voxelImagelndex[]及其值输出到情景文件,当通过分析发现images时,所述预定的OctreeImage模板将images[]输出到情景文件,并且调用预定的图像模板,并将}输出到情景文件。
21.根据权利要求20所述的样式表,其中,当通过分析发现图像时,所述预定的图像模板调用预定的DepthImage模板。
22.根据权利要求13所述的样式表,其中,当通过分析发现PointTextureEncodingParameter时,所述PointTextureEncodingParameter模板将′PointTextureEncodingParameter{′输出到情景文件,当通过分析发现codingPercent时,所述PointTextureEncodingParameter模板将codingPercent及其值输出到情景文件,并且将}输出到情景文件。
23.根据权利要求12所述的样式表,其中,当通过分析在所述XMT文件中发现/并随后发现Body/*时,所述XMT2BIFS样式表调用Body Lower模板,并且当通过分析发现Header/*时,所述XMT2BIFS样式表调用Header Lower模板。
24.根据权利要求12所述的样式表,其中,当通过分析在XMT中发现ObjectDescriptorUpdate时,所述XMT2BIFS样式表将UPDATE OD[输出到情景文件,当通过分析发现OD和ObjectDescriptor时,所述XMT2BIFS样式表调用预定的ObjectDescriptor模板,当通过分析发现InitialObjectDescriptor时,所述XMT2BIFS样式表调用预定的InitialObjectDescriptor模板,并且将]输出到情景文件。
25.根据权利要求24所述的样式表,其中,当通过分析发现ObjectDescriptor时,所述预定的ObjectDescriptor模板将ObjectDescriptor{输出到情景文件,当通过分析发现属性名称objectDescriptorlD时,所述预定的ObjectDescriptor模板将objectDescriptorlD输出到情景文件,当通过分析发现属性名称binarylD时,所述预定的ObjectDescriptor模板输出属性名称binarylD的值,当通过分析发现Descr时,所述预定的ObjectDescriptor模板调用预定的Descr模板,并且将}输出到情景文件。
26.根据权利要求24所述的样式表,其中,当通过分析发现InitialObjectDescriptor和Profiles时,所述预定的InitialObjectDescriptor模板调用预定的Profiles模板,并且当通过分析发现Descr时,所述预定的InitialObjectDescriptor模板调用预定的Descr模板。
27.根据权利要求26所述的样式表,其中,当通过分析发现Descr和esDescr时,所述预定的Descr模板调用预定的esDescr模板,并且当通过分析发现ipmpDescrPtr时,所述预定Descr模板调用预定ipmpDescr模板。
28.根据权利要求27所述的样式表,其中,当通过分析发现esDescr和ES_Descriptor时,所述预定的esDescr模板调用预定的ES_Descriptor模板。
29.根据权利要求27所述的样式表,其中,当通过分析发现ipmpDescrPtr和IPMP_Descriptor时,所述预定的ipmpDescrPtr模板调用预定的IPMPDescriptor模板,并且当通过分析发现IPMP_DescriptorPointer时,所述预定的ipmpDescrPtr模板调用预定的IPMP_DescriptorPointer模板。
30.根据权利要求28所述的样式表,其中,通过分析发现ES_Descriptor和URL时,所述预定的ES_Descriptor模板调用预定的URL模板,当通过分析发现StreamSourcer时,所述预定的ES_Descriptor模板调用预定的StreamSourcer模板,当通过分析发现decConfigDescr时,所述预定的ES_Descriptor模板调用预定的decConfigDescr模板,当通过分析发现sIConfigDescr时,所述预定的ES_Descriptor模板调用预定的sIConfigDescr模板,当通过分析发现ipiPtr时,所述预定的ES_Descriptor模板调用预定的ipiPtr模板,当通过分析发现iplDs时,所述预定的ES_Descriptor模板调用预定的iplDs模板,当通过分析发现ipmpDescrPtr时,所述预定的ES_Descriptor模板调用预定的ipmpDescrPtr模板,当通过分析发现langDescr时,所述预定的ES_Descriptor模板调用预定的langDescr模板,当通过分析发现regDescr时,所述预定的ES_Descriptor模板调用预定的regDescr模板,当通过分析发现qosDescr时,所述预定的ES_Descriptor模板调用预定的qosDescr模板。
31.根据权利要求12所述的样式表,其中,当通过分析在所述XMT文件中发现StreamSource时,所述XMT2BIFS样式表调用StreamSourcel模板,其中,当通过分析发现CompressedImageFormat时,所述StreamSourcel模板将muxSrcipt、文件名称和多工文件的扩展输出到情景,并且当通过分析发现BitWrapperEncodingHints时,所述StreamSourcel模板将muxScript、文件名称和多工文件的扩展输出情景文件。
32.根据权利要求12所述的样式表,其中,当通过分析在所述XMT文件中发现/并随后发现Body/*时,所述XMT2MUX样式表调用Body Lower模板,并且通过分析发现Header/*时,所述XMT2MUX样式表调用Header Lower模板。
33.根据权利要求12所述的样式表,其中,当通过分析在所述XMT文件中发现ObjectDescriptorUpdate或InitialObjectDescriptor时,所述XMT2MUX样式表将ODids用作模板名称,并且将objectDescriptorlD用作模板名称的值,并且调用ObjectDescriptorUpdate模板或InitialObjectDescriptor模板。
34.根据权利要求33所述的样式表,其中,当通过分析在所述XMT文件中发现ObjectDescriptorUpdate时,所述ObjectDescriptorUpdate模板调用OD模板,并且当在所述OD模板中发现OD时,所述OD模板调用ObjectDescriptor模板。
35.根据权利要求12所述的样式表,其中所述XMT2MUX样式表包括decConfigDescr模板和sIConfigDescr模板,当在预定上级模板中发现decConfigDescr时,调用所述decConfigDescr模板,当在预定上级模板中发现sIConfigDescr时,调用sIConfigDescr模板,其中,当通过分析发现decConfigDescr时,所述decConfigDescr模板将decConfigDescr DecoderConfigDescriptor{输出到多工文件,调用DecoderConfigDescriptor模板,并且将}输出到多工文件,并且当通过分析发现sIConfigDescr时,所述sIConfigDescr模板将sIConfigDescrSLConfigDescriptoi{输出到多工文件,调用SLConfigDescriptor模板,并且将}输出到多工文件。
36.根据权利要求12所述的样式表,其中所述XMT2MUX样式表包括解码信息样式表,该解码信息样式表包括AFXConfig模板和DecoderConfigDescriptor模板,其中,所述DecoderConfigDescriptor模板在DecoderConfigDescriptor节点的decSpecificInfo节点中将元素名称定义为AFXconfig,其中此DecoderConfigDescriptor节点包括解码所必需的信息,并且当通过分析发现decSpecificInfo和AFXConfig时,调用所述AFXConfig模板。
37.根据权利要求36所述的样式表,其中当通过分析发现AFXConfig时,所述AFXConfig模板可以将decSpecificInfo AFXConfig{输出到多工文件,当通过分析发现OctreeImageDecoderSpecific时,所述AFXConfig模板调用OctreeImageDecoderSpecrfic模板,并且当通过分析发现PointTextureCompDecoderSpecific时,所述AFXConfig模板调用PointTextureCompDecoderSpecific模板,并将}输出到多工文件。
38.根据权利要求37所述的样式表,其中当通过分析发现OctreeImageDecoderSpecific时,所述OctreeImageDecoderSpecific模板将OctreeImageDecoderSpecific{ }输出到多工文件。
39.根据权利要求37所述的样式表,其中当通过分析发现PointTextureCompDecoderSpecific时,所述PointTextureCompDecoderSpecific模板将PointTextureCompDecoderSpecific{ }输出到多工文件。
40.根据权利要求12所述的样式表,其中当通过分析在所述XMT文件中发现StreamSource时,所述XMT2MUX样式表输出muxInfo MuxInfo{filename,当通过分析发现url时,所述XMT2MUX样式表将url的值输出到多工文件,当通过分析没有发现url而发现了EncodingHints、BIFSEncodingHints FBAEncodingHints、BitWrapperEncodingHints和CompressedImageFormat中的一个时,所述XMT2MUX样式表调用EncodingHints模板、BIFSEncodingHints模板、FBAEncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板中对应的一个,其中如果所发现那个不是EncodingHints、BitWrapperEncodingHints或CompressedImageFormat,输出streamFormat BIFS,并且当通过分析发现}时,将}输出到多工文件。
41.根据权利要求40所述的样式表,其中,当通过分析发现CompressedImageFormat以及JPEG、PNG、MPEG4-Video和VTC中的一个时,CompressedImageFormat模板调用JPEG模板、PNG模板、MPEG4-Video模板和VTC模板中对应的一个。
42.根据权利要求41所述的样式表,其中,当调用JPEG模板并且通过分析发现JPEG时,所述JPEG模板调用sourceFormat模板或targetFormat模板,并且输出streamFormat JPEG,当调用PNG模板并且通过分析发现PNG时,所述PNG模板调用sourceFormat模板或targetFormat模板,并且输出streamFormat PNG,当调用MPEG4-Video并且通过分析发现MEPG4-Video时,所述MPEG4-Video模板调用sourceFormat模板或targetFormat模板,并且输出streamFormat MPEG4-Video,当调用VTC模板并且通过分析发现VTC时,VTC模板调用sourceFormat模板或者调用targetFormat模板,并且输出streamFormat VTC,其中,sourceFormat模板和targetFormat模板调用param模板,并且param模板输出文件名的值。
43.根据权利要求40所述的样式表,其中,当通过分析发现BitWrapperEncodingHints和BitWrapperOctreeImageEncodingHints时,所述BitWrapperEncodingHints模板调用BitWrapperOctreeImageEncodingHints模板,并且当通过分析发现BitWrapperPointTextureEncodingHints时,所述BitWrapperEncodingHints模板调用BitWrapperPointTextureEncodingHints模板。
44.根据权利要求43所述的样式表,其中,当通过分析发现BitWrapperOctreeImageEncodingHints和sourceFormat时,所述BitWrapperOctreeImageEncodingHints模板调用sourceFormat模板,当通过分析发现targetFormat时,所述BitWrapperOctreeImageEncodingHints模板调用targetFormat模板,并且将streamFormatOctreeImageCompression输出到多工文件,并且当通过分析发现BitWrapperPointTextureEncodingHints和sourceFormat时,所述BitWrapperPointTextureEncodingHints模板调用sourceFormat模板,当通过分析发现targetFormat时,所述BitWrapperPointTextureEncodingHints模板调用targetFormat模板,并且将streamFormatPointTextureCompression输出到多工文件。
45.根据权利要求44所述的样式表,其中,当通过分析发现param时,所述sourceFormat模板和所述targetFormat调用param模板,并且所述param模板输出文件名的值。
46.一种计算机可读介质,其中,在此介质上面包含上述权利要求1至11中的模式和上述权利要求12至44中的样式表之一的计算机程序。
全文摘要
本发明涉及一种用于DIBR数据的模式和样式表。所述模式包括用于图形数据压缩的Bit Wrapper节点模式;和用于基于depthimage的模型着色的DepthImage节点模式,该DepthImage节点模式包括具有depth信息的texture信息和camera信息,该DepthImage节点模式将diTexture定义为包括作为模型群的SFDepthTextureNode的元素,其中,BitWrapper节点模式包括节点元素、BitWrapperEncodingParameter元素和三个属性,该节点元素包含包括将被压缩的数据的图形数据,并且将SFWorldNode作为子元素,该三个属性分别具有名称-类型、url和缓冲器以及类型——SFInt32、MFUrl、和SFString。当编辑3D内容时,模式和样式表允许编辑者轻松地控制DIBR的表述和压缩,并且允许容易地产生用于MPEG-4编码器的输入文件。
文档编号G06T15/10GK1700256SQ20051007836
公开日2005年11月23日 申请日期2005年3月8日 优先权日2004年3月8日
发明者张敬子, 韩万镇, 金道均, 李信俊 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1