專利名稱:用于基于深度圖像表述的數(shù)據(jù)的模式和樣式表的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可擴(kuò)展的MPEG-4文本格式(XMT)模式和樣式表,更特別地涉及用于基于深度圖像(depthimage)表述(depth image-based representation,DIBR)數(shù)據(jù)的模式,和通過(guò)使用該模式分析包括DIBR數(shù)據(jù)的輸入XMT文件來(lái)創(chuàng)建輸入文件的樣式表。
背景技術(shù):
XMT格式的3D內(nèi)容可以使用各種多媒體,例如MPEG-4播放器、VRML播放器、SMIL播放器等顯象。使用模式和樣式表可以創(chuàng)建XMT格式的3D內(nèi)容。特別地,本發(fā)明涉及用于DIBR數(shù)據(jù)的XMT模式和樣式表。
通過(guò)MPEG-4標(biāo)準(zhǔn)化組已經(jīng)推動(dòng)了簡(jiǎn)單內(nèi)容編輯方法的標(biāo)準(zhǔn)化。當(dāng)編輯3D內(nèi)容時(shí),需要控制3D數(shù)據(jù)的表述、處理和壓縮的各種因素的簡(jiǎn)單方法。為此,需要由元表述(XMEG-4 SMT)進(jìn)行表述、處理和壓縮3D數(shù)據(jù)的機(jī)制。特別地,需要一種方法,它允許編輯著輕松地表述、處理和壓縮基于深度圖像表述(DIBR)數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明提供一種用于基于深度圖像表述(DIBR)數(shù)據(jù)的模式。
本發(fā)明提供一種用于DIBR數(shù)據(jù)的樣式表。
根據(jù)本發(fā)明的一個(gè)方面,提供一種用于DIBR數(shù)據(jù)的XMT(可擴(kuò)展MPEG-4文本格式)模式,其包括用于圖形數(shù)據(jù)壓縮的BitWrapper節(jié)點(diǎn)模式;和DepthImage節(jié)點(diǎn)模式,它用于基于depthimage的模型著色著色(rendering),包括具有深度信息的camera信息和texture(texture)信息,將diTexture定義為元素,而該元素包括作為模型組的SFDepthTextureNode,其中,BitWrapper節(jié)點(diǎn)模式包括節(jié)點(diǎn)元素,其包含包括將被壓縮的數(shù)據(jù)的圖形數(shù)據(jù)并且將SFWorldNode作為子元素;BitWrapperEncodingParameter元素;和分別具有名稱——類型、url和緩沖器以及類型——SFInt32、MFUrl、和SFString的三個(gè)屬性,并且depthimage節(jié)點(diǎn)模式的camera信息將位置(position)、方向(orientation)、視野(fieldOfView)、nearPlane、farPlane和正交(orthographic)中的至少一個(gè)定義為屬性名稱,而且camera信息中所定義的屬性類型分別包括SFVec3f、SFRotation、SFVec2f、SFFloat、SFFloat、和SFBool。
在depthimage節(jié)點(diǎn)模式中的diTexture元素可以將包括PointTexture(點(diǎn)texture)和SimpleTexture的SFDepthTextureNode節(jié)點(diǎn)模式定義為元素。用于SimpleTexture的節(jié)點(diǎn)模式可以接收用于DIBR模型的3維著色的彩色圖像和深度圖像,該節(jié)點(diǎn)模式包括作為圖像的包含深度信息的深度元素和作為圖像的包含彩色信息的texture元素,其中這兩個(gè)圖像定義在SFTextualNodeType元素中。
用于PointTexturetexture的節(jié)點(diǎn)模式可以將寬度、高度、depthNbBits、深度、和顏色中的至少一個(gè)定義為屬性名稱,而節(jié)點(diǎn)模式中定義的屬性類型可以包括SFInt32、SFInt32、SFInt32、MFInt32和MFColor。
用于DIBR數(shù)據(jù)的XMT模式圖示可以進(jìn)一步包括八叉樹(shù)圖像(octreeimage)節(jié)點(diǎn)模式,其將octree(八叉樹(shù))、octreeResolution(八叉樹(shù)分辨率)和voxelImagelndex中的一個(gè)定義為屬性名稱,并且將圖像定義為包括作為節(jié)點(diǎn)群的SFDepthImageNode類型的圖像,其中,在八叉樹(shù)圖像節(jié)點(diǎn)模式中定義的屬性類型分別包括SFInt32、MFInt32和MFInt32。
當(dāng)BitWrapper節(jié)點(diǎn)模式是使用url字段的輸出帶(out-band)時(shí),用于DIBR數(shù)據(jù)的XMT模式進(jìn)一步包括解碼信息模式,其包含AFXConfig模式和DecoderConfigDescriptor模式,其中,DecoderConfigDescriptor模式在DecoderConfigDescriptor節(jié)點(diǎn)的decSpecificlnfo節(jié)點(diǎn)中將元素名稱定義為AFXconfig,其中DecoderConfigDescriptor節(jié)點(diǎn)包括解碼所需的信息,并且AFXConfig模式將OctreeImageDecoderSpecific信息和PointTextureCompDecoderSpecific信息定義為元素名稱,其中OctreeImageDecoderSpecific信息與用于解碼的八叉樹(shù)圖像解碼器的使用有關(guān),而PointTextureCompDecoderSpecific信息與用于解碼的點(diǎn)texture解碼器的使用有關(guān)。
XMT模式可以進(jìn)一步包括壓縮參數(shù)模式,其包含用于點(diǎn)texture的壓縮比率,其中,壓縮參數(shù)模式包含在用BitWrapperEncodingParameter作為元素名稱的節(jié)點(diǎn)中,包括作為元素名稱的PointTextureEncodingParameter、作為屬性名稱的configPercent和作為屬性類型的codingPercentType,其中,codingPercentType用SimpleType作為類型并用codingPercentType作為名稱。
codingPercentType可以具有作為限制基礎(chǔ)的int(integer)。解碼信息模式可以進(jìn)一步包括BitWrapperEncodingHints,其用于定義腳本文件(mux file,多工文件)中Muxinfo所需的信息,其中,BitWrapperEncodingHints包括作為子元素的BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints,并且每個(gè)子元素都包括作為子元素的sourceFormat和targetFormat中的至少一個(gè)。
在腳本文件(多工文件)中Muxinfo所需的信息可以包括壓縮DIBR比特流的壓縮格式和文件名稱。
XMT模式可以進(jìn)一步包括CompressedImageFormat模式,其中,當(dāng)涉及DIBR的節(jié)點(diǎn)包括JPEG、PNG、MPEG4視頻或者VTC格式的壓縮圖像或運(yùn)動(dòng)畫面時(shí),CompressedImageFormat模式提供了解碼壓縮信息所需的解碼信息,它包括壓縮比特流的壓縮結(jié)構(gòu)和文件名稱,并且CompressedImageFormat模式包括作為元素名稱的CompressedImageFormat和作為子元素名稱的JPEG、PNG、MPEG4-Video和VTC,其中,每個(gè)子元素包括包含用于存儲(chǔ)文件名稱的參數(shù)(param)的sourceFormat或targetFormat。根據(jù)本發(fā)明的另一個(gè)方面,提供一種樣式表,它利用DIBR數(shù)據(jù)的模式來(lái)分析包括DIBR數(shù)據(jù)的輸入XMT文件,該樣式表包括為DIBR數(shù)據(jù)產(chǎn)生情景文件的XMT2BIFS樣式表;和為DIBR數(shù)據(jù)產(chǎn)生多工文件的XMT2MUX樣式表。
當(dāng)執(zhí)行調(diào)用BitWrapper模板的指令并且通過(guò)分析在XMT文件中發(fā)現(xiàn)BITWrapper時(shí),XMT2BIFS樣式表可以將′BitWrapper{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)節(jié)點(diǎn)時(shí),XMT2BIFS樣式表調(diào)用預(yù)定節(jié)點(diǎn)模板,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureEncodingParameter,XMT2BIFS樣式表時(shí)調(diào)用預(yù)定的PointTextureEncodingParameter模板,其中PointTextureEncodingParameter是用于將被壓縮的節(jié)點(diǎn)的DIBR編碼參數(shù)中的一個(gè),當(dāng)通過(guò)分析發(fā)現(xiàn)類型、緩沖和url時(shí),類型、緩沖及其值輸出到情景文件;并且將}輸出到情景文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)節(jié)點(diǎn)時(shí),預(yù)定節(jié)點(diǎn)模板可以把節(jié)點(diǎn)輸出到屏幕文件,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),預(yù)定節(jié)點(diǎn)模板調(diào)用預(yù)定PointTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)Octreeimage時(shí),預(yù)定節(jié)點(diǎn)模板調(diào)用預(yù)定OctreeImage模板。當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),預(yù)定PointTexture模板可以把′PointTexture{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)寬度(width)、高度(height)、depthNbBits、深度(depth)[]和顏色(color)[]時(shí),預(yù)定PointTexture模板把寬度(width)、高度(height)、depthNbBits、深度(depth)[]、和顏色(color)[]及其值輸出到情景文件,并且把}輸出到情景文件。
樣式表可以進(jìn)一步包括simpleTexture模板,其當(dāng)通過(guò)分析發(fā)現(xiàn)SimpleTexture時(shí)把′SimpleTexture{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)深度(depth)時(shí),simpleTexture模板調(diào)用預(yù)定深度(depth)模板,當(dāng)通過(guò)分析發(fā)現(xiàn)texture時(shí),simpleTexture模板調(diào)用預(yù)定texture模板,并且將}輸出到情景文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)深度(depth)時(shí),預(yù)定深度(depth)模板可以把深度(depth)輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)CompositeTexture2D時(shí),預(yù)定深度(depth)模板調(diào)用預(yù)定CompositeTexture2D模板,當(dāng)通過(guò)分析發(fā)現(xiàn)CompositTexutre3D時(shí),預(yù)定深度(depth)模板調(diào)用CompositTexutre3D模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ImageTexture時(shí),預(yù)定深度(depth)模板調(diào)用預(yù)定ImageTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)MovieTexture時(shí),預(yù)定深度(depth)模板調(diào)用預(yù)定MovieTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)PixelTexture時(shí),預(yù)定深度(depth)模板調(diào)用預(yù)定PixelTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)ProtoInstance時(shí),預(yù)定深度(depth)模板調(diào)用預(yù)定ProtoInstance模板。
樣式表可以進(jìn)一步包括DepthImage模板,當(dāng)通過(guò)分析發(fā)現(xiàn)DepthImage時(shí),DepthImage模板將′DepthImage{′輸出到情景,當(dāng)通過(guò)分析發(fā)現(xiàn)diTexture時(shí),DepthImage模板將diTexture輸出到情景文件,并且調(diào)用預(yù)定diTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)fieldOfView、nearPlane、farPlane、orientation(方向)、position(位置)和orthographic(正交)時(shí),將fieldOfView、nearPlane、farPlane、orientation(方向)、position(位置)和orthographic(正交)及其值輸出到情景文件。
樣式表可以進(jìn)一步包括diTexture模板,當(dāng)發(fā)現(xiàn)diTexture之后通過(guò)分析發(fā)現(xiàn)SimpleTexture時(shí),diTexture模板調(diào)用預(yù)定SimpleTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),diTexture模板調(diào)用預(yù)定PointTexture。
當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImage時(shí),預(yù)定OctreeImage模板可以把′OctreeImage{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeResolution、octree、和voxelImageIndex時(shí),預(yù)定OctreeImage模板把OctreeResolution、octree[]、和voxelImagelndex[]及其值輸出到情景文件,并調(diào)用預(yù)定圖像模板,同時(shí)將}輸出到情景文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)圖像時(shí),預(yù)定圖像模板可以調(diào)用預(yù)定DepthImage模板。
當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureEncodingParameter時(shí),PointTextureEncodingParameter模板可以將′PointTextureEncodingParameter{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)codingPercent時(shí),PointTextureEncodingParameter模板將codingPercent及其值輸出到情景文件,并且將}輸出到情景文件。當(dāng)通過(guò)分析在XMT文件中發(fā)現(xiàn)/并隨后發(fā)現(xiàn)Body/*時(shí),XMT2BIFS樣式表可以調(diào)用Body lower模板,并且在通過(guò)分析發(fā)現(xiàn)Header/*時(shí),XMT2BIFS樣式表調(diào)用Headerlower的模板。
當(dāng)通過(guò)分析在XMT中發(fā)現(xiàn)ObjectDescriptorUpdate時(shí),XMT2BIFS樣式表可以將UPDATE OD[輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OD和ObjectDescriptor時(shí),XMT2BIFS樣式表調(diào)用預(yù)定ObjectDescriptor模板,當(dāng)通過(guò)分析發(fā)現(xiàn)InitialObjectDescriptor時(shí),XMT2BIFS樣式表調(diào)用預(yù)定InitialObjectDescriptor模板,并且將]輸出到情景文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)ObjectDescriptor時(shí),預(yù)定ObjectDescriptor模板可以將ObjectDescriptor{輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)屬性名稱objectDescriptorlD時(shí),預(yù)定ObjectDescriptor模板將objectDescriptorlD輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)屬性名稱binarylD時(shí),預(yù)定ObjectDescriptor模板將屬性名稱binarylD的值輸出,當(dāng)通過(guò)分析發(fā)現(xiàn)Descr時(shí),預(yù)定ObjectDescriptor模板調(diào)用預(yù)定Descr模板,并且將}輸出到情景文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)InitialObjectDescriptor和Profiles時(shí),預(yù)定InitialObjectDescriptor模板可以調(diào)用預(yù)定Profiles模板,并且通過(guò)分析發(fā)現(xiàn)Descr時(shí),預(yù)定InitialObjectDescriptor模板調(diào)用預(yù)定Descr模板。當(dāng)通過(guò)分析發(fā)現(xiàn)Descr和esDescr時(shí),預(yù)定Descr模板可以調(diào)用預(yù)定esDescr模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr時(shí),預(yù)定DescrPtr模板調(diào)用預(yù)定ipmpDescr模板。
當(dāng)通過(guò)分析發(fā)現(xiàn)esDescr和ES_Descriptor時(shí),預(yù)定esDescr模板可以調(diào)用預(yù)定ES_Descriptor模板。當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr和IPMP_Descriptor時(shí),預(yù)定ipmpDescrPtr模板可以調(diào)用預(yù)定IPMPDescriptor模板,并且通過(guò)分析發(fā)現(xiàn)IPMP_DescriptorPointer時(shí),預(yù)定ipmpDescrPtr模板調(diào)用預(yù)定IPMP_DescriptorPointer模板。
通過(guò)分析發(fā)現(xiàn)ES_Descriptor和URL時(shí),預(yù)定ES_Descriptor模板可以調(diào)用預(yù)定URL模板,當(dāng)通過(guò)分析發(fā)現(xiàn)StreamSourcer時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定StreamSourcer模板,當(dāng)通過(guò)分析發(fā)現(xiàn)decConfigDescr時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定decConfigDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)sIConfigDescr模板時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定sIConfigDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipiPtr時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定ipiPtr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipIDs時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定ipIDs模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定ipmpDescrPtr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)langDescr時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定langDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)regDescr時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定regDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)qosDescr時(shí),預(yù)定ES_Descriptor模板調(diào)用預(yù)定qosDescr模板。
當(dāng)通過(guò)分析在XMT文件中發(fā)現(xiàn)StreamSource時(shí),XMT2BIFS樣式表可以調(diào)用StreamSourcel模板,其中當(dāng)通過(guò)分析發(fā)現(xiàn)CompressedImageFormat時(shí),StreamSourcel模板將多工文件的擴(kuò)展、muxSrcipt和文件名稱輸出到情景,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperEncodingHints時(shí),StreamSourcel模板將多工文件的擴(kuò)展、muxScript和文件名稱輸出到情景文件。
當(dāng)/并隨后通過(guò)分析在XMT文件中發(fā)現(xiàn)Body/*時(shí),XMT2MUX樣式表可以調(diào)用Body lower的模板,并且通過(guò)分析發(fā)現(xiàn)Header/*時(shí),XMT2MUX樣式表調(diào)用Header lower的模板。當(dāng)通過(guò)分析在XMT文件中發(fā)現(xiàn)ObjectDescriptorUpdate或InitialObjectDescriptor時(shí),XMT2MUX樣式表可以使用ODids作為模板名稱并使用objectDescriptorlD作為模板名稱的值,同時(shí)調(diào)用ObjectDescriptorUpdate模板或InitialObjectDescriptor模板。
當(dāng)通過(guò)分析在XMT文件中發(fā)現(xiàn)ObjectDescriptorUpdate時(shí),ObjectDescriptorUpdate模板可以調(diào)用OD模板,并且當(dāng)在OD模板中發(fā)現(xiàn)OD時(shí),OD模板調(diào)用ObjectDescriptor模板。
XMT2MUX樣式表可以包括decConfigDescr模板和sIConfigDescr模板,當(dāng)在預(yù)定upper模板中發(fā)現(xiàn)decConfigDescr時(shí),調(diào)用decConfigDescr模板,當(dāng)在預(yù)定upper模板中發(fā)現(xiàn)sIConfigDescr時(shí),調(diào)用sIConfigDescr模板,其中當(dāng)通過(guò)分析發(fā)現(xiàn)decConfigDescr時(shí),decConfigDescr模板將decConfigDescrDecoderConfigDescriptor{輸出到多工文件,調(diào)用DecoderConfigDescriptor模板,并且將}輸出到多工文件,當(dāng)通過(guò)分析發(fā)現(xiàn)sIConfigDescr時(shí),sIConfigDescr模板將sIConfigDescr SLConfigDescriptoi{輸出到多工文件,調(diào)用SLConfigDescriptor模板,并且將}輸出到多工文件。
XMT2MUX樣式表可以包括解碼信息樣式表,該解碼信息樣式表包含AFXConfig模板和DecoderConfigDescriptor模板,其中,DecoderConfigDescriptor模板在DecoderConfigDescriptor節(jié)點(diǎn)的decSpecificInfo節(jié)點(diǎn)中將元素名稱定義為AFXconfig,其中此DecoderConfigDescriptor節(jié)點(diǎn)包括解碼所需的信息,并且當(dāng)通過(guò)分析發(fā)現(xiàn)decSpecificInfo和AFXConfig時(shí),DecoderConfigDescriptor模板調(diào)用AFXConfig模板。
當(dāng)通過(guò)分析發(fā)現(xiàn)AFXConfig時(shí),AFXConfig模板可以將decSpecificInfoAFXConfig{輸出到多工文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImageDecoderSpecific時(shí),AFXConfig模板調(diào)用OctreeImageDecoderSpecrfic模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureCompDecoderSpecific時(shí),AFXConfig模板調(diào)用PointTextureCompDecoderSpecific模板,并將}輸出到多工文件。當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImageDecoderSpecific時(shí),OctreeImageDecoderSpecific模板可以將OctreeImageDecoderSpecific{}輸出到多工文件。當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureCompDecoderSpecific時(shí),PointTextureCompDecoderSpecific模板可以將PointTextureCompDecoderSpecific{}輸出到多工文件。
當(dāng)通過(guò)分析在XMT文件中發(fā)現(xiàn)StreamSource時(shí),XMT2MUX樣式表可以輸出muxinfo Muxinfo{文件名,當(dāng)通過(guò)分析發(fā)現(xiàn)url時(shí),XMT2MUX樣式表將url的值輸出到多工文件,當(dāng)通過(guò)分析沒(méi)有發(fā)現(xiàn)url但發(fā)現(xiàn)EncodingHints、BIFSEncodingHints、FBAEncodingHints、BitWrapperEncodingHints和CompressedImageFormat中的一個(gè)時(shí),XMT2MUX樣式表調(diào)用EncodingHints模板、BIFSEncodingHints模板、FBAEncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板中對(duì)應(yīng)的一個(gè),其中,所發(fā)現(xiàn)的不是EncodingHints、BitWrapperEncodingHints或CompressedImageFormat,當(dāng)通過(guò)分析發(fā)現(xiàn)}時(shí),輸出streamFormat BIFS,并且將}輸出到多工文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)CompressedImageFormat以及JPEG、PNG、MPEG4-Video、和VTC中的一個(gè)時(shí),CompressedImageFormat模板可以調(diào)用JPEG模板、PNG模板、MPEG4-Video和VTC模板中的對(duì)應(yīng)一個(gè)。
當(dāng)JPEG模板被調(diào)用并且通過(guò)分析發(fā)現(xiàn)JPEG時(shí),JPEG模板調(diào)用sourceFormat模板或targetFormat模板,并輸出streamFormat JPEG,當(dāng)PNG模板被調(diào)用并且通過(guò)分析發(fā)現(xiàn)PNG時(shí),PNG模板調(diào)用sourceFormat模板或targetFormat模板,并輸出streamFormat PNG,當(dāng)MPEG4視頻模板被調(diào)用并且通過(guò)分析發(fā)現(xiàn)MEPG4-Video時(shí),MPEG4-Video模板調(diào)用sourceFormat模板或targetFormat模板,并輸出streamFormat MPEG4-Video,當(dāng)VTC模板被調(diào)用并且通過(guò)分析發(fā)現(xiàn)VTC時(shí),VTC模板調(diào)用sourceFormat模板或者targetFormat模板被調(diào)用,并輸出streamFormat VTC,其中,sourceFormat模板和targetFormat模板調(diào)用param模板,并且param模板輸出文件名的值。
當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperEncodingHints和BitWrapperOctreeImageEncodingHints時(shí),BitWrapperEncodingHints模板調(diào)用BitWrapperOctreeImageEncodingHints模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperPointTextureEncodingHints時(shí),BitWrapperEncodingHints模板調(diào)用BitWrapperPointTextureEncodingHints模板。
當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperOctreeImageEncodingHints和sourceFormat時(shí),BitWrapperOctreeImageEncodingHints模板調(diào)用sourceFormat模板,當(dāng)通過(guò)分析發(fā)現(xiàn)targetFormat時(shí),調(diào)用targetFormat模板,并將streamFormatOctreeImageCompression輸出到多工文件,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperPointTextureEncodingHints和sourceFormat時(shí),BitWrapperPointTextureEncodingHints模板調(diào)用sourceFormat模板,當(dāng)通過(guò)分析發(fā)現(xiàn)targetFormat時(shí),BitWrapperPointTextureEncodingHints模板調(diào)用targetFormat模板,并且將streamFormatPointTextureCompression輸出到多工文件。當(dāng)通過(guò)分析發(fā)現(xiàn)param時(shí),sourceFormat模板和targetFormat調(diào)用param模板,并且param模板輸出文件名的值。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種計(jì)算機(jī)可讀介質(zhì),其中在此介質(zhì)上面有包含上述模式和樣式表中一個(gè)的計(jì)算機(jī)程序。
參照附圖,通過(guò)詳細(xì)描述其典型具體實(shí)施方式
,本發(fā)明的上述和其它特征和優(yōu)點(diǎn)將變得更加明顯,其中圖1示出利用用于DIBR數(shù)據(jù)壓縮的元表述,用于產(chǎn)生輸入文件的系統(tǒng)結(jié)構(gòu);圖2示出終端用戶和安裝在系統(tǒng)中的程序之間的XMT模式的運(yùn)行;和圖3示出用文本語(yǔ)法和MPEG-4節(jié)點(diǎn),允許產(chǎn)生內(nèi)容的編輯框架。
具體實(shí)施例方式
參照附圖,下面將描述根據(jù)本發(fā)明的用于基于depthimage表述(DIBR)數(shù)據(jù)的模式和樣式表。
下面將描述MPEG-4節(jié)點(diǎn)的概要。MPEG-4節(jié)點(diǎn)總共由180個(gè)節(jié)點(diǎn)組成。根據(jù)節(jié)點(diǎn)數(shù)據(jù)的屬性,節(jié)點(diǎn)被區(qū)分為53個(gè)群節(jié)點(diǎn),例如SF2DNodeType、SF3DNodeType、SFAppearanceNodeType、SFAudioNodeType、SFBAPNodeType、SFDepthImageNodeType、SFDepthTextureNodeType、SFGeometryNodeType、SFWorldNodeType等。
與DIBR數(shù)據(jù)壓縮相關(guān)的BitWrapper節(jié)點(diǎn)屬于群節(jié)點(diǎn)、SF2DNodeType、SF3DNodeType、SFGeometryNodeType和SFWorldNodeType。
與DIBR相關(guān)的節(jié)點(diǎn)包括SimpleTexture、PointTexture、OctreeImage和DepthImage。DepthImage節(jié)點(diǎn)屬于群結(jié)點(diǎn),SF3DNodeType和SFDepthImageNodeType。SimpleTexture節(jié)點(diǎn)屬于群結(jié)點(diǎn),SFDepthTextureNodeType和SFWorldNodeType。PointTexture節(jié)點(diǎn)屬于群結(jié)點(diǎn),SFDepthTextureNodeType和SFWorldNodeType。OctreeImage節(jié)點(diǎn)屬于群結(jié)點(diǎn),SF3DnodeType和SFWorldNodeType。DepthImage節(jié)點(diǎn)包括camesal信息,其中此信息包括作為屬性的position(位置)、orientation(方向)、fieldOfView、nearPlane、farPlane和orthographic(正交)。PointTexture和SimpleTexture節(jié)點(diǎn)用于SFDepthTextureNode字段。OctreeImage節(jié)點(diǎn)包括為Octree歸檔的數(shù)據(jù),并且SimpleTexure節(jié)點(diǎn)被用texture信息,即MFDepthImageNode類型的圖像。
將簡(jiǎn)要描述XML。XML是一種元語(yǔ)言。XML是標(biāo)準(zhǔn)通用標(biāo)注語(yǔ)言(SGML)的子集或輪廓。XML是能用在環(huán)球網(wǎng)(web)上的SGML。不能被用于環(huán)球網(wǎng)的SGML在XML中被省略。XML包括超鏈接模式的規(guī)格。超鏈接模式的規(guī)格被稱為可擴(kuò)展鏈接語(yǔ)言(XLL),并且被提供作為辨別語(yǔ)言。XML包括樣式語(yǔ)言、可擴(kuò)展式樣單語(yǔ)言(XSL)的規(guī)格。XML與描述的信息有關(guān)。XML是用于結(jié)構(gòu)化并且描述數(shù)據(jù)的標(biāo)準(zhǔn)語(yǔ)言,其中此數(shù)據(jù)能夠被另一應(yīng)用所識(shí)別。XML具有邏輯結(jié)構(gòu),并因此指示是否創(chuàng)建文件或者文件的內(nèi)容。
將簡(jiǎn)要描述XML模式。XML模式表現(xiàn)為通用詞匯,并且允許使用傳送由用戶定義的規(guī)則的機(jī)器。XML模式定義XML文件的主體、結(jié)構(gòu)和內(nèi)容。
XML模式由組件組而組成。下面將描述XML模式的基本的、重要的組件。
存在定義組件的類型,simpleType和complexType。simpleType組件是一組約束,它限制將要被編碼或者編碼信息的值的字串,并且被用于屬性信息項(xiàng)或不含子信息(chilren)的元素信息項(xiàng)的范式化值。大部分simpleType用于屬性。
complexType組件是一組屬性聲明和內(nèi)容類型,并且被用于元素信息項(xiàng)的子信息和屬性。內(nèi)容類型組件需要包括不含元素和符號(hào)信息項(xiàng)的空的子信息,包括特殊簡(jiǎn)單類型字串的子信息,或者包括一系列與特定模式群一致的元素信息項(xiàng)(例如群)的子信息。
元素聲明具有作為名稱的類型定義。并且元素聲明是簡(jiǎn)單(或復(fù)雜)與約束的組合。
<!ELEMENT A...>
<!ATTLIST A...>
屬性聲明是屬性名稱、simpleType定義、事件信息和默認(rèn)值的組合。
注解由<annotation>~</annotation>定義。
存在Data type組件和Derivation組件。序列組件定義元素序列。Choice組件定義從元素中選擇的一個(gè)元素。組件minOccurs和maxOccurs分別指定所發(fā)生元素的最小數(shù)和所發(fā)生元素的最大數(shù)。Group組件用于具有特定功能的group元素,并且能夠被其它元素引用。MaxInclusive組件定義了所定義的基本類型的最大值。MinInclusive組件定義了所定義基本類型的最小值。
實(shí)例如下。
simpleType的實(shí)例<simpleType name=″bit4″>
<restriction base=″unsignedByte″>
<maxInclusive value=″15″/>
</restriction>
</simpleType>
complexType的實(shí)例<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>
在簡(jiǎn)單類型元素的上述實(shí)例中,定義了bit4。名稱屬性被定義為bit4,并且bit4屬性由限制元素指定。限制元素將基本屬性定義為unsignedByte和unsignedByte的maxInclusive值,它是一個(gè)值屬性,比如15。換句話說(shuō),simpleType元素定義bit4為unsignedByte類型并具有從0至15的值。
標(biāo)準(zhǔn)(par)元素包括complexType元素。complexType元素由2個(gè)子元素、2個(gè)子組和2個(gè)屬性組成。使用選擇元素來(lái)選擇四個(gè)子元素和子組中的一個(gè)。在選擇的元素中定義minOccurs=″0″maxOccurs=″unbounded″,它表示選擇元素的最小數(shù)是零,并且選擇元素的最大數(shù)是無(wú)窮大。子元素和子組利用上述定義的元素。
關(guān)于屬性,將屬性名稱定義為開(kāi)始,并且將屬性種類定義為SFTime。此屬性的使用是任選的,并且屬性具有默認(rèn)值0。將下一個(gè)屬性名稱定義為atES_ID,并且將此屬性的類型定義為IDREF。還規(guī)定,此屬性的使用是任選的屬性的詳細(xì)說(shuō)明如下。
<xscomplexType>
<xsattribute ref=″xmllang″use=″required″/>
<xsattribute ref=″xmlspace″default=″preserve″/>
<xsattribute name=″version″type=″xsnumber″fixed=″1.0″/>
</xscomplexType>
必需同時(shí)使用′use′和′default′兩者嗎??jī)H僅使用′default=100′而不定義′use=optional′來(lái)指定一個(gè)屬性可能的嗎??jī)H僅使用″default=100″而不使用″use=optional″是可能的。′use′和′default′用于指定屬性的出現(xiàn)和值。′use′可以被定義為″optional″或″required″。此外,可以專門使用′default′和′fixed′??梢酝瑫r(shí)或者單獨(dú)使用′use′和′default/fixed′。″optional″意思是該屬性不是必需的?!錼equired″意思是該屬性是必需的。′default′允許定義默認(rèn)值,并且′fixed′意味著僅僅可以使用一固定值。
本發(fā)明涉及XMT模式和樣式表,它們用于利用與DIBR數(shù)據(jù)壓縮相關(guān)的元表述來(lái)產(chǎn)生輸入文件。圖1示出用于利用DIBR數(shù)據(jù)壓縮的元表述來(lái)產(chǎn)生輸入文件的系統(tǒng)的結(jié)構(gòu)。附圖標(biāo)記100表示XMT模式和樣式表。
將簡(jiǎn)要描述XMT模式。XMT模式描述了XMT文件的結(jié)構(gòu)并且指定其中的內(nèi)容。根據(jù)MPEG-4XMT標(biāo)準(zhǔn)的XMT模式包括XMT-A、XMT-O和XMT-C。XMT模式將具有控制編輯、表述、處理和壓縮數(shù)據(jù)所需要的各種因素的簡(jiǎn)單方法,提供給使用安裝在系統(tǒng)中的程序的終端用戶。XMT-O用于以抽象形式將由終端用戶要求的各種因素,表述給編輯(表述/處理/壓縮)數(shù)據(jù)。使用基于方便的用戶接口而易于理解的語(yǔ)法和語(yǔ)義,XMT-O定義用戶要求的因素。然而,XMT-O中所定義的值不能直接提供給系統(tǒng)中的程序。所以,使用XMT-A將以用戶易于理解的形式所表述的因素傳送給系統(tǒng)中的程序。XMT-A定義由終端用戶要求并且從XMT-O傳來(lái)的因素,以便由系統(tǒng)中的程序讀取并且執(zhí)行映射。XMT-A定義了系統(tǒng)中的程序所需的因素,該程序用于用于壓縮、傳輸、處理和情景構(gòu)造。XMT-C定義了XMT-o和XMT-A中經(jīng)常使用的模塊。圖2表示終端用戶和在系統(tǒng)中的程序之間的XMT模式的功能。
下面將描述樣式表。首先,下面將描述XMT樣式表。通常,當(dāng)接收到遵照XML模式規(guī)則產(chǎn)生的輸入文件時(shí),樣式表把輸入數(shù)據(jù)的格式轉(zhuǎn)化為新的格式,即形成輸出格式。即使僅定義了一個(gè)模式時(shí),根據(jù)如何定義樣式表,輸入數(shù)據(jù)可以以各種格式輸出,就如同使用翻譯機(jī)把所定義的標(biāo)準(zhǔn)語(yǔ)言轉(zhuǎn)換為韓語(yǔ)、英語(yǔ)、日語(yǔ)、漢語(yǔ)、西班牙語(yǔ)等。換句話說(shuō),樣式表像語(yǔ)言轉(zhuǎn)換機(jī)器那樣運(yùn)行。
下面將描述MPEG-4樣式表。MPEG-4樣式表把輸入的XMT文件轉(zhuǎn)換為另一種格式,例如,將文件的IM1文本格式輸入給在圖3的本發(fā)明中的MPEG-4播放器。
圖3是利用文本語(yǔ)法和MPEG-4節(jié)點(diǎn),允許產(chǎn)生內(nèi)容的編輯框架。
下面將描述根據(jù)本發(fā)明的XMT-A模式和樣式表。下面將描述XMT-A模式的語(yǔ)法和語(yǔ)義。根據(jù)功能,將XMT-A模式分類為xmt-a、xmta-bifs、xmta-o、和xmta-encoding。xmt-a.xsd是主要的模式,它用于定義在MPEG-4節(jié)點(diǎn)字段中所使用的類型。xmta-bifs.xsd是用于定義MPEG-4節(jié)點(diǎn)、節(jié)點(diǎn)字段和XMT文件結(jié)構(gòu)(標(biāo)題部分和本體)的BIFS模式。xmta-o.xsd用于指定Object Descriptor。xmta-encoding.xsd用于指定特殊節(jié)點(diǎn),例如與壓縮有關(guān)的。換言之,指定壓縮參數(shù)、當(dāng)解碼時(shí)解碼器所必需的信息,等等。
各種節(jié)點(diǎn)的XMA-A模式語(yǔ)法和語(yǔ)義如下。當(dāng)將MPEG-4節(jié)點(diǎn)定義為對(duì)應(yīng)模式的元素時(shí),將具有單一值或者多個(gè)值的字段節(jié)點(diǎn)定義為屬性,而將具有字段值的其它節(jié)點(diǎn)定義為子元素。將字段名定義為元素名稱或?qū)傩悦Q。
特別地,DIBR節(jié)點(diǎn)的XMT-A模式語(yǔ)法和語(yǔ)義如下。
1.DepthImage節(jié)點(diǎn)(Xmta-bifs.xsd)下面是DepthImage節(jié)點(diǎn)的模式語(yǔ)法。<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>
上述模式語(yǔ)法將DepthImage節(jié)點(diǎn)定義為模式,并且用于基于depthimage的模型著色。包括camera信息和具有texture的深度(depth-having-texture)的信息。由于由多個(gè)子元素和屬性組成,所以complextype名稱被定義為″DepthImageType″。由于3個(gè)子元素都是必需的,所以用開(kāi)始標(biāo)記<all>和結(jié)束標(biāo)記</all>界定子元素。在第一元素中,涉及名稱為″IS″的元素。此外,此元素可以不出現(xiàn),將minOccurs定義為″0″。將第二元素的名稱定義為″diTexture″。此元素具有作為子元素的′group′。group的名稱是″SFDepthTextureNodeType″,并且涉及SFDepthTextureNode節(jié)點(diǎn)模式。SFDepthTextureNode節(jié)點(diǎn)模式被用于DepthImage節(jié)點(diǎn)的″diTexture″,并且包括作為較低元素的PointTexture和SimpleTexture。SFDepthTextureNode節(jié)點(diǎn)模式的使用是任選的。由于子元素包括上述的group,所以被定義為″complextype″。由于子元素可以不包括group,所以聲明OccurminOccurs=0。如果需要,group就出現(xiàn)一次。
使用7個(gè)屬性表示camera信息,例如屬性position、orientation、fieldOfView、nearPlane、farPlane和orthographic。DepthImage節(jié)點(diǎn)至少將7個(gè)屬性中的一個(gè)定義為屬性名稱。
具有名稱″farPlane″的屬性是″SFFIoat type″,其使用是任選的,并且其默認(rèn)值是100。具有名稱″fieldOfView″的屬性是″SFVec2f type″,其使用是任選的,并且其默認(rèn)值是0.785398 0.785398。具有名稱″nearPlane″的屬性是″SFFIoat type″,其使用是任選的,并且其默認(rèn)值是10。具有名稱″orientation″的屬性是″SFRotationtype″,其使用是任選的,并且其默認(rèn)值是0010。具有名稱″orthographic″的屬性是″SFBool type″,其使用是任選的,并且其默認(rèn)值是″true″。具有名稱″position″的屬性是″SFVec3f type″,其使用是任選的,并且其默認(rèn)值是0010。認(rèn)為″DefUseGroup″是屬性group。
2.SimpleTexture節(jié)點(diǎn)(xmta-bifs.xsd)下面是SimpleTexture節(jié)點(diǎn)的模式語(yǔ)法。
<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″/>
當(dāng)使用輸入深度圖像和彩色圖像著色三維DIBR模型時(shí),使用SimpleTexture節(jié)點(diǎn)的上述模式語(yǔ)法。由于SimpleTexture節(jié)點(diǎn)的模式包括多個(gè)子元素,那么將complextype名稱定義為″SimpleTextureType″。由于由三個(gè)子元素組成,所以定義″complextype″??梢詫impleTexture節(jié)點(diǎn)用于定義新節(jié)點(diǎn)的原節(jié)點(diǎn)(protonode),其中SimpleTexture節(jié)點(diǎn)可用作IS節(jié)點(diǎn),并且涉及IS元素。在SimpleTexture節(jié)點(diǎn)中的depth元素包括圖像形式的深度(depth)信息,并且其中的texture元素包括圖像形式的色彩(color)信息。將圖像定義在SFTextureNodeType節(jié)點(diǎn)中??蓪ⅰ錎ef″或″Use″用于名稱定義和SimpleTexture節(jié)點(diǎn)的使用。通過(guò)將attributeGroup作為DefUseGroup來(lái)實(shí)現(xiàn)。
3.PointTexture節(jié)點(diǎn)(xmta-bifs.xsd)下面是PointTexture節(jié)點(diǎn)的模式語(yǔ)法。
<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″/>
上述模式語(yǔ)法將PointTexture節(jié)點(diǎn)定義為模式。由于PointTexture節(jié)點(diǎn)的模式包括多個(gè)屬性,所以將complextype名稱定義為″PointTextureType″。由于由6種屬性組成,所以定義″complextype″。
PointTexture節(jié)點(diǎn)模式定義至少定義width、height、depthNbBits、depth和color中的至少一個(gè)作為屬性名稱。
具有名稱″color″的屬性是″MFColor type″,其使用是任選的。具有名稱″depth″的屬性是″MFInt32 type″,其使用是任選的。類型名稱中的″MF″意味著屬性具有陣列值。具有名稱″depthNbBits″的屬性是″SFInt32 type″,其使用是任選的,并且其默認(rèn)值是7。具有名稱″height″的屬性是″SFInt32 type″,其使用是任選的,并且其默認(rèn)值是256。具有名稱″width″的屬性是″SFInt32 type″,其使用是任選的,并且其默認(rèn)值是256。認(rèn)為″DefUseGroup″是屬性group。
4.OctreeIamge節(jié)點(diǎn)(xmta-bifs.xsd)下面是OctreeIamge節(jié)點(diǎn)的模式語(yǔ)法。
<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″/>
上述模式語(yǔ)法將OctreeIamge節(jié)點(diǎn)定義為模式。由于OctreeIamge節(jié)點(diǎn)的模式包括多個(gè)屬性,所以將complextype名稱定義為″OctreeImageType″。由于由2個(gè)子元素和4個(gè)屬性組成,所以定義″complextype″。由于所有子元素都是必需的,所以用<all>和</all>界定子元素。在第一元素中,涉及具有名稱″IS″的元素,并且將minOccur定義為″0″,表示該元素可以不出現(xiàn)。一旦如果需要,該元素就可以出現(xiàn)。在具有名稱″images″的第二個(gè)元素中,將minOccurs定義為″0″,表示元素可以不出現(xiàn)。認(rèn)為Group元素″SFDepthImageNodeType″是子元素,其中將minOccurs定義為″0″,并且將maxOccurs定義為″unbounded″。將第二元素定義為″complextype″。
OctreeIamge節(jié)點(diǎn)模式將Octree、OctreeResolution和voxelImagelndex中的至少一個(gè)定義為屬性名稱。具有名稱″octree″的屬性是″MFInt32 type″,其使用是任選的。具有名稱″octreeResolution″的屬性是″SFInt32 type″,其使用是任選的,并且其默認(rèn)值是256。具有名稱″voxelImagelndex″的屬性是″MFInt32 type″,其使用是任選的。認(rèn)為″DefUseGroup″是屬性group。
5.BitWrapper節(jié)點(diǎn)(xmta-bifs.xsd)下面是BitWrapper節(jié)點(diǎn)的模式語(yǔ)法。
<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=″&quot;&quot;″/>
<attributeGroup ref=″xmtaDefUseGroup″/>
</complexType>
<element name=″BitWrapper″type=″xmtaBitWrapperType″/>
BitWrapper節(jié)點(diǎn)壓縮在所存檔的節(jié)點(diǎn)中的數(shù)據(jù),并且使用內(nèi)帶或頻帶來(lái)傳輸比特流。url字段傳輸外帶比特流,并且所存檔的緩沖器將內(nèi)帶比特流與BIFS比特流一起傳輸。
當(dāng)編輯者希望使用BitWrapper方式來(lái)傳輸所壓縮的數(shù)據(jù)時(shí),必需允許編輯者控制用于產(chǎn)生比特流的參數(shù)??梢岳肵MT-A模式語(yǔ)法實(shí)現(xiàn)。
BitWrapper節(jié)點(diǎn)模式用于壓縮圖形數(shù)據(jù)。
BitWrapper節(jié)點(diǎn)模式包括作為較低元素的″BitWrapperEncodingParameter″和″node″,并且包括三個(gè)屬性。這三個(gè)屬性分別具有名稱″type″、″uri″、和″buffer″,并且分別具有類型″SFInt32″、″MFUrl″和″SFString″。
節(jié)點(diǎn)元素指定了包括將被壓縮的數(shù)據(jù)的圖形數(shù)據(jù),并且將SFWorldNode作為子元素。這意味著節(jié)點(diǎn)中的SFWorldNode能夠被所有子元素使用。
下面將描述壓縮參數(shù)BitWrapperEncodingParameter。壓縮參數(shù)模式定義了pointtexture的壓縮率,并且被包括在具有名稱″BitWrapperEncodingParameter″的節(jié)點(diǎn)元素中。具有名稱″PointTextureEncodingParameter″的元素包括名稱為″configPercent″和類型為″codingPercentType″的屬性。codingPercentType的類型為simpleType,其限制基礎(chǔ)是整數(shù)。
下面是BitWrapperEncodingParameter的模式語(yǔ)法。
<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的模式語(yǔ)法將PointTexture的encodingparameter定義為元素。此元素具有名稱″PointTextureEncodingParameter″。關(guān)于此元素,將minOccurs定義為″0″,并且將maxOccurs定義為″1″。由于此元素包括屬性,將它定義為″complextype″。該屬性具有名稱″codingPercent″和類型″codingPercentType″,其使用是任選的,并且其默認(rèn)值是100。
下面將描述PointTextureEncodingParameter。PointTextureEncodingParameter包括用于壓縮PointTexture的編碼參數(shù)″codingPercent″。編碼參數(shù)″codingPercent″確定了用于PointTexture的color值和depth值的壓縮度。
參照XMT-A語(yǔ)法,下面將詳細(xì)描述PointTextureEncodingParameter。將用于PointTexture的壓縮的編碼參數(shù)定義為具有名稱″PointTextureEncodingParameter″的元素。PointTextureEncodingParameter元素可以不出現(xiàn)(minOccurs=0)或者可以在最大值處出現(xiàn)一次(maxOccurs=1)。此元素包括屬性并且由<complexType>界定。該屬性具有名稱″codingPercent″和類型″codingPercentType″,其使用是任選的,并且其默認(rèn)值是100。
在描述xmta-encoding.xsd中的BitWrapperEncodingParameter的語(yǔ)法中,定義PointTextureEncodingParameter的模式語(yǔ)法。
下面將描述壓縮(解碼)所必需的編碼參數(shù)。
PointTexture的編碼參數(shù)的模式語(yǔ)法如下。
<annotation>
<documentation>
************************************************************declaration of basic types for PointTexture***********************************************************</documentation>
</annotation>
<simpleType name=″codingPercentType″>
<restriction base=″int″>
<minInclusive value=″1″/>
<maxInclusive value=″100″/>
</restriction>
</simpleType>
在上述模式語(yǔ)法中,″declaration of basic types for PointTexture″定義了用于PointTexture壓縮的具有名稱″codingPercent″的編碼參數(shù)的種類。特別地,將PointTexture定義為″simpleType″,并且具有名稱″codingPercentType″?!錭odingPercentType″具有從0(最小包含值)到100(最大包含值)范圍的整數(shù)值(整數(shù)類型),其中在定義了Bone-Based Animation的基本類型之后,在xmt-a.xsd模式中定義該整數(shù)值。
模式語(yǔ)法定義了用于PointTexture的編碼參數(shù)元素中的屬性類型″codingPercentType″。編碼參數(shù)元素是″SimpleType″,并且具有名稱″codingPercentType″。將限制基準(zhǔn)定義為″Integer type″,并且其值的范圍從1(最小包含值)到100(最大包含值)。
其次,將描述編碼和解碼所需的BitWrapperEncodingHints。當(dāng)BItWrapper節(jié)點(diǎn)是使用url字段的外帶,并且包括sourceFornat和targetFormat中的至少一個(gè)作為較低元素時(shí),使用BitWrapperEncodingHints定義腳本文件中的Muxinfo所需的信息,。在腳本文件中Muxinfo所需的信息包括DIBR壓縮比特流文件名稱和比特流壓縮格式。
在本發(fā)明中,提出了用于OtreeImage的編碼提示的BitWrapperOctreeImageEncodingHints和用于PointTexture的編碼提示的BitWrapperPointTextureEncodingHints。
將編碼和解碼所需的BitWrapperEncodingHints定義在xmta-encoding.xsd模式中。下面是OtreeImage和PointTexture的BitWrapperEncodingHints的語(yǔ)法。
<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>
下面將描述模式的語(yǔ)義。當(dāng)BItWrapper節(jié)點(diǎn)是使用″url″字段的外帶時(shí),將BitWrapperEncodingHints用于指定在腳本(.mux)文件中的″Muxinfo description″,并且用于傳輸包含在DIBR相關(guān)節(jié)點(diǎn)中的壓縮圖像或運(yùn)動(dòng)圖像(CompressedImageFormatJPEG、PNG、MPEG4-Video、VTC等)。因此,輸入XMT文件代表包括DIBR相關(guān)對(duì)象的內(nèi)容。當(dāng)輸入XMT文件時(shí),根據(jù)以前所定義的模式,調(diào)用BitWrapperEncodinghints的樣式表,以便輸出到符合MPEG-4二進(jìn)制文本格式的多工文件。在Muxinfo說(shuō)明中,在用于傳輸?shù)膕ourceFormat/targetFormat元素中的param元素中定義壓縮文件名稱。
下面將描述模式的語(yǔ)法。將BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints定義為BitWrapperEncodingHints中的子元素。每一個(gè)子元素包括作為子元素的sourceFormat和targetFormat。因此,將BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints定義為″compexType″。可以使用sourceFormat和targetFormat中的兩個(gè)或者僅使用一個(gè)。當(dāng)使用sourceFormat和targetFormat兩者時(shí),sourceFormat在targetFormat之前。將sourceFormat和targetFormat中每一個(gè)都定義為″complexType″,因?yàn)樗鼈儼ǘ鄠€(gè)具有文件名的param元素。多個(gè)param元素的順序通過(guò)序列來(lái)表示。
隨后,將描述解碼所需的″decodingspecific info″。當(dāng)BitWrapper節(jié)點(diǎn)是使用url字段的外帶時(shí),需要解碼信息模式。解碼碼信息模式包括AFXConfig模式和decoderConfigDescriptor模式。DecoderConfigDescriptor模式在包括解碼所需信息的DecoderConfigDescriptor節(jié)點(diǎn)中的decSpecificlnfo節(jié)點(diǎn)中定義元素名稱為AFXconfig。
AFXConfig元素包括關(guān)于解碼器的信息,其中此解碼器能夠用于解碼比特流。換句話說(shuō),AFXConfig元素包括關(guān)于解碼器的信息,其中可以使用此解碼器能夠解碼使用OctreeImage壓縮和PointTexture壓縮進(jìn)行壓縮的比特流。
下面將描述AFXConfig中的OctreeImageDecoderSpecific和PointTextureCompDecoderSpecific的語(yǔ)法含義。是″complexType″的AFXConfig包括多個(gè)元素,其中可以選擇使用一個(gè)元素(<choice>~</choice>)。在關(guān)于多個(gè)解碼器的多條信息中,將關(guān)于OctreeImage解碼器的使用的OctreeImageDecoderSpecific信息定義在一個(gè)元素中,該OctreeImage解碼器用于解碼由OctreeImage壓縮編碼的比特流,并且將關(guān)于PointTexture解碼器的使用的PointTextureCompDecoderSpecific信息定義在一個(gè)元素中,其中此PointTexture解碼器用于解碼由PointTexture壓縮編碼的比特流。
AFXConfig模式將OctreeImageDecoderSpecific和PointTextureCompDecoderSpecific定義為元素名稱,其中OctreeImageDecoderSpecific是關(guān)于用于解碼的OctreeImage解碼器的使用的信息,PointTextureCompDecoderSpecific是關(guān)于用于解碼的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模式。包括壓縮圖像或運(yùn)動(dòng)圖像文件的DIBR數(shù)據(jù)(內(nèi)容)可以使用多種多媒體(各種應(yīng)用程序,例如播放器)顯現(xiàn)。為了將圖像或運(yùn)動(dòng)圖像顯現(xiàn)給用戶,壓縮圖像或運(yùn)動(dòng)圖像文件中的DIBR數(shù)據(jù)必須作為texture被包含。為了由各種多媒體再現(xiàn),壓縮數(shù)據(jù)文件需要由解碼器解碼,并且與顯現(xiàn)的其它信息結(jié)合并且同步。在解碼過(guò)程中,需要壓縮圖像或運(yùn)動(dòng)圖像的文件名和比特流格式的信息。CompressedImageFormat模式用于向解碼器提供此信息。
將CompressedImageFormat模式用于提供包含在DIBR相關(guān)節(jié)點(diǎn)中的信息(壓縮文件名和流格式),其中此信息是解碼壓縮數(shù)據(jù)所需的,此壓縮數(shù)據(jù)例如是JPEG、PNG、MPEG4-Video或VTC格式的壓縮圖像或者運(yùn)動(dòng)圖像。CompressedImageFormat模式包括名稱為″CompressedImageFormat″的元素和名稱為″JPEG″、″PNG″、″MPEG4-Video″和″VTC″的子元素,其中每個(gè)子元素都包括SourceFormat或targetFormat。sourceFormat或targetFormat包括param,并且文件名被存儲(chǔ)在param中。
下面是CompressedImageFormat模式的語(yǔ)法。
<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>
下面將詳細(xì)描述根據(jù)本發(fā)明的DIBR數(shù)據(jù)的樣式表。MPEG-4樣式表把輸入的XMT文件轉(zhuǎn)換為另一種格式,例如MPEG-4播放器的輸入文件的IM1文本格式。
根據(jù)本發(fā)明的DIBR數(shù)據(jù)樣式表包括用于產(chǎn)生DIBR數(shù)據(jù)的情景文件的XMT2BIFS樣式表,和用于產(chǎn)生DIBR數(shù)據(jù)的多工文件的XMT2MUX樣式表。
存在IC、3DMC、BitWrapper、DIBR、BitWrapperEncodingHints和AFXConfig節(jié)點(diǎn)的樣式表。輸入的XMT文件的本體部分,即相關(guān)數(shù)據(jù)的情景,在XMT2BIFS.XSL中處理,并且被輸出到情景文件。輸入的XMT文件的標(biāo)題部分,例如objectdescriptor數(shù)據(jù),在XMT2MUX.XSL中處理,并且被輸出到多工文件。
首先,描述XMT2BIFS.XSL。此樣式表將元素和群定義為模板。對(duì)于BitWrapper節(jié)點(diǎn),根據(jù)模式中的BitWrapper,分析XMT文件中的BitWrapper節(jié)點(diǎn)的內(nèi)容。為了獲得與IM1文本格式兼容的情景輸出文件,必需聲明能夠使得發(fā)現(xiàn)BitWrapper的geometry group。XMT2BIFS樣式表定義了geometry模板的應(yīng)用模板中的BitWrapper。換句話說(shuō),在geometry模板中聲明將被調(diào)用的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>
根據(jù)模式中的BitWrapper,分析XMT文件中的BitWrapper節(jié)點(diǎn)的內(nèi)容,并且將XMT文件轉(zhuǎn)換為與IM1文本格式兼容的情景輸出文件。
當(dāng)通過(guò)分析在XMT文件中發(fā)現(xiàn)BItWrapper時(shí),XMT2BIFS樣式表可以將′BitWrapper{′輸出給情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)″node″時(shí),XMT2BIFS樣式表調(diào)用預(yù)定節(jié)點(diǎn)模板,當(dāng)通過(guò)分析發(fā)現(xiàn)壓縮節(jié)點(diǎn)的DIBR編碼參數(shù)中的PointTextureEncodingParameter時(shí),XMT2BIFS樣式表調(diào)用預(yù)定PointTextureEncodingParameter模板,當(dāng)通過(guò)分析發(fā)現(xiàn)″type″、″buffer″和″url″時(shí),XMT2BIFS樣式表將類型、緩沖器、和url及其值輸出到情景文件,并且將}輸出到情景文件。下面是XMT2BIFS樣式表的一個(gè)實(shí)例。
<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>
″節(jié)點(diǎn)″聲明如下。
<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>
當(dāng)通過(guò)分析發(fā)現(xiàn)″node″時(shí),節(jié)點(diǎn)模板將″node″輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),節(jié)點(diǎn)模板調(diào)用預(yù)定的PointTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImage時(shí),節(jié)點(diǎn)模板調(diào)用預(yù)定的OctreeImage模板。
DIBR節(jié)點(diǎn)包括PointTexture節(jié)點(diǎn)和OctreeImage節(jié)點(diǎn)。根據(jù)模式中的DIBR,分析XMT文件中的DIBR節(jié)點(diǎn)的內(nèi)容,并且將XMT文件轉(zhuǎn)換為與IM1文本格式兼容的情景輸出文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),PointTexture模板把′PointTexture{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)″width″、″height″、″depthNbBits″、″depth″、和″color″時(shí),PointTexture模板把width、height、depthNbBits、depth[]和color[]及其值輸出到情景文件,并且將}輸出到情景文件。下面是用于PointTexture模板的樣式表的一個(gè)實(shí)例。
<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>
當(dāng)通過(guò)分析發(fā)現(xiàn)″depth″時(shí),深度模板把″depth″輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)CompositeTexture2D時(shí),深度模板調(diào)用預(yù)定的CompositeTexture2D,當(dāng)通過(guò)分析發(fā)現(xiàn)CompositTexutre3D時(shí),深度模板調(diào)用預(yù)定的CompositTexutre3D模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ImageTexture時(shí),深度模板調(diào)用預(yù)定的ImageTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)MovieTexture時(shí),深度模板調(diào)用預(yù)定MovieTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)PiexlTexture時(shí),深度模板調(diào)用預(yù)定PiexlTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)ProtoInstance時(shí),深度模板調(diào)用預(yù)定ProtoInstance模板。下面是用于深度模板的樣式表的一個(gè)實(shí)例。
<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>
當(dāng)通過(guò)分析發(fā)現(xiàn)SimpleTexture時(shí),SimpleTexture模板輸出′SimpleTexture{′到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)″depth″時(shí),SimpleTexture模板調(diào)用預(yù)定的深度模板,當(dāng)通過(guò)分析發(fā)現(xiàn)″texture″時(shí),SimpleTexture模板調(diào)用預(yù)定的texture模板,并且將}輸出到情景文件。下面是SimpleTexture模板的樣式表的一個(gè)實(shí)例。
<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>
當(dāng)通過(guò)分析發(fā)現(xiàn)diTexture時(shí),diTexture模板調(diào)用預(yù)定的SimpleTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)″SimpleTexture″時(shí),diTexture模板調(diào)用預(yù)定的SimpleTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),diTexture模板調(diào)用預(yù)定的PointTexture模板。下面是diTexture模板的樣式表的一個(gè)實(shí)例。
<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>
當(dāng)通過(guò)分析發(fā)現(xiàn)DepthImage時(shí),DepthImage模板將′DepthImage{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)″diTexture″時(shí),DepthImage模板將″diTexture″輸出到情景文件,DepthImage模板調(diào)用預(yù)定的diTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)″fieldOfView″、″nearPlane″、″farPlane″、″orientation″、″position″和″orthographic″時(shí),DepthImage模板將fieldOfView、nearPlane、farPlane、orientation、position和orthographic及其值輸出到情景文件,并且輸出}到情景文件。下面是DepthTexture模板的樣式表的一個(gè)實(shí)例。
<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>
當(dāng)通過(guò)分析發(fā)現(xiàn)images時(shí),圖像模板調(diào)用預(yù)定的DepthImage模板。下面是圖像模板的樣式表的一個(gè)實(shí)例。
<xsltemplate match=″xmtimages″>
<xslapply-templates select=″xmtDepthImage″/>
</xsltemplate>
當(dāng)通過(guò)分析發(fā)現(xiàn)OCtreeImage時(shí),OctreeImage模板把′OctreeImage{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)″octreeResolution″、″octree″、和″voxelImagelndex″時(shí),OctreeImage模板把octreeResolution、octree[]和voxelImagelndex[]及其值輸出到情景文件,當(dāng)發(fā)現(xiàn)″images″時(shí),OctreeImage模板輸出image[]到情景文件,調(diào)用預(yù)定的圖像模板,并且將}輸出到情景文件。下面是OctreeImage模板的樣式表的一個(gè)實(shí)例。
<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>
關(guān)于3DMC節(jié)點(diǎn)和Interpolator節(jié)點(diǎn)(CoordinateInterpolator、PositionInterpolator和OrientationInterpolator),根據(jù)模式中與其相關(guān)的定義,分析XMT文件中的Indexedfaceset節(jié)點(diǎn)和Interpolator節(jié)點(diǎn)的內(nèi)容,并且把XMT文件轉(zhuǎn)換為與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>
根據(jù)模式中的IndexedFaceSetEncodingParameter元素,通過(guò)分析發(fā)現(xiàn)XMT文件中的IndexedFaceSetEncodingParameter,并將XMT文件轉(zhuǎn)換為與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>
根據(jù)模式中的CoordinateInterpolatorEncodingParameter元素,通過(guò)分析發(fā)現(xiàn)XMT文件中的CoordinateInterpolatorEncodingParameter,并將XMT文件轉(zhuǎn)換為與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>
根據(jù)模式中的OrientationInterpolatorEncodingParameter元素,通過(guò)分析發(fā)現(xiàn)XMT文件中的OrientationInterpolatorEncodingParameter,并將XMT文件轉(zhuǎn)換為與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>
根據(jù)模式中的PositionInterpolatorEncodingParameter元素,通過(guò)分析發(fā)現(xiàn)XMT文件中的PositionInterpolatorEncodingParameter,并將XMT文件轉(zhuǎn)換為與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>
根據(jù)模式中的PointTextureEncodingParameter元素,通過(guò)分析發(fā)現(xiàn)XMT文件中的PointTextureEncodingParameter,并將XMT文件轉(zhuǎn)換為與IM 1文本格式兼容的情景輸出文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureEncodingParameter時(shí),PointTextureEncodingParameter模板將PointTextureEncodingParameter{輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)″codingPercent″時(shí),PointTextureEncodingParameter模板將″codingPercent″及其值輸出到情景文件,并且將}輸出到情景文件。下面是PointTextureEncodingParameter模板的樣式表的一個(gè)實(shí)例。<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文件中所必需的信息。最初僅僅允許使用本體信息。然而,根據(jù)XMT標(biāo)準(zhǔn)規(guī)定,輸出IM1文本格式的文件也需要標(biāo)題信息。因此,為了使用XMT2BIFS樣式表中的標(biāo)題信息,將其定義如下。<xsltemplate match=″/″>
<xslapply-templates select=″xmtXMT-A/xmtBody/*″/>
<xslapply-templates select=″xmtXMT-A/xmtHeader/*″/>
</xsltemplate>
當(dāng)/并隨后通過(guò)分析在XMT文件中發(fā)現(xiàn)發(fā)現(xiàn)Body/*時(shí),XMT2BIFS樣式表調(diào)用本體的lower模板,并且通過(guò)分析發(fā)現(xiàn)Header/*時(shí),調(diào)用標(biāo)題的lower的模板。
ObjectDescriptorUpdate應(yīng)該與IM1文本格式兼容。當(dāng)通過(guò)分析在XMT中發(fā)現(xiàn)ObjectDescriptorUpdate時(shí),XMT2BIFS樣式表將UPDATE OD[輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OD并隨后發(fā)現(xiàn)ObjectDescriptor時(shí),XMT2BIFS樣式表調(diào)用ObjectDescriptor模板,當(dāng)通過(guò)分析發(fā)現(xiàn)InitialObjectDescriptor時(shí),XMT2BIFS樣式表調(diào)用InitialObjectDescriptor模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ObjectDescriptor時(shí),XMT2BIFS樣式表調(diào)用預(yù)定的ObjectDescriptor模板,當(dāng)通過(guò)分析發(fā)現(xiàn)InitialObjectDescriptor時(shí),XMT2BIFS樣式表調(diào)用預(yù)定的InitialObjectDescriptor模板,并且將]輸出到情景文件。
<xsltemplate match=″xmtObjectDescriptorUpdate″>UPDATE OD[<xslfor-each select=″xmtOD″><xslapply-templatesselect=″xmtObjectDescriptor|xmtInitialObjectDescriptor″/></xslfor-each>
]</xsltemplate>
從XMT2MUX中檢索到必需的部分。為了獲得與IM1文本格式兼容的情景文件,需要XMT2MUX的以下部分。
當(dāng)通過(guò)分析發(fā)現(xiàn)ObjectDescriptor時(shí),ObjectDescriptor模板將ObjectDescriptor{輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)名稱為″objectDescriptorlD″的屬性時(shí),ObjectDescriptor模板將objectDescriptorlD輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)屬性時(shí),ObjectDescriptor模板輸出名稱為″binarylD″的屬性的值,當(dāng)通過(guò)分析發(fā)現(xiàn)Descr時(shí),ObjectDescriptor模板調(diào)用預(yù)定的Descr模板,并且將}輸出到情景文件。<xsltemplate match=″xmtObjectDescriptor″>ObjectDescriptor{<xslif test=″@objectDescriptorID″>objectDescriptorID<xslvalue-ofselect=″@binaryID″/><xsltext>
</xsltext></xslif>
<xslapply-templates select=″xmtDescr″/>}</xsltemplate>
當(dāng)通過(guò)分析發(fā)現(xiàn)InitialObjectDescriptor并隨后發(fā)現(xiàn)Profiles時(shí),InitialObjectDescriptor模板調(diào)用預(yù)定Profiles模板,并且通過(guò)分析發(fā)現(xiàn)Descr時(shí),調(diào)用預(yù)定的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>
當(dāng)通過(guò)分析發(fā)現(xiàn)esDescr時(shí),Descr模板調(diào)用預(yù)定的esDescr模板,并且通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr時(shí),調(diào)用預(yù)定的ipmpDescr模板。
<xsltemplate match=″xmtDescr″>
<xsLapply-templates select=″xmtesDescr|xmtociDescr|xmtipmpDescrPtr″/>
</xsltemplate>
當(dāng)通過(guò)分析發(fā)現(xiàn)esDescr并隨后發(fā)現(xiàn)ES_Descriptor時(shí),esDescr模板調(diào)用預(yù)定的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>
當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr并隨后發(fā)現(xiàn)IPMP_Descriptor時(shí),ipmpDescrPtr模板調(diào)用預(yù)定的IPMPDescriptor模板,并通過(guò)分析發(fā)現(xiàn)IPMP_DescriptorPointer時(shí),調(diào)用預(yù)定的IPMP_pescriptorPointer模板。<xsltemplate match=″xmtipmpDescrPtr″>
<xslapply-templates select=″xmtIPMP_Descriptor|xmtIPMP_DescriptorPointer″/></xsltemplate>
通過(guò)分析發(fā)現(xiàn)ES_Descriptor和隨后發(fā)現(xiàn)URL時(shí),ES_Descriptor模板調(diào)用預(yù)定的URL模板,當(dāng)通過(guò)分析發(fā)現(xiàn)StreamSourcer時(shí),ES_Descriptor模板調(diào)用預(yù)定的StreamSourcer模板,當(dāng)通過(guò)分析發(fā)現(xiàn)decConfigDescr時(shí),ES_Descriptor模板調(diào)用預(yù)定的decConfigDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)slConfigDescr模板時(shí),ES_Descriptor模板調(diào)用預(yù)定的slConfigDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipiPtr時(shí),ES_Descriptor模板調(diào)用預(yù)定的ipiPtr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipIDs時(shí),ES_Descriptor模板調(diào)用預(yù)定的ipIDs模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr時(shí),ES_Descriptor模板調(diào)用預(yù)定的ipmpDescrPtr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)langDescr時(shí),ES_Descriptor模板調(diào)用預(yù)定的langDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)regDescr時(shí),ES_Descriptor模板調(diào)用預(yù)定的regDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)qosDescr時(shí),ES_Descriptor模板調(diào)用預(yù)定的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。
當(dāng)在XMT文件中發(fā)現(xiàn)StreamSource時(shí),XMT2BIFS樣式表調(diào)用StreamSourcel模板。當(dāng)通過(guò)分析發(fā)現(xiàn)CompressedImageFormat時(shí),StreamSourcel模板將多工文件的擴(kuò)展、muxSrcipt和文件名輸出到情景文件,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperEncodingHints時(shí),StreamSourcel模板將多工文件的擴(kuò)展、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>
下面將描述根據(jù)本發(fā)明的XMT2MUX樣式表。為了把根據(jù)模式中的Odids而分析的輸入XMT轉(zhuǎn)換為多工文件,其中此多工文件與IM1文本格式兼容,定義下列內(nèi)容。通常,當(dāng)發(fā)現(xiàn)ObjectDescriptor或InitialObjectDescriptor時(shí),可以將objectDescriptorlD的值用于Odids。但不能夠獲得與IM1文本格式兼容的輸出文件。然而,通過(guò)改變ObjectDescriptorUpdate而不是ObjectDescriptor,就可以獲得與IM1文本格式兼容的輸出文件。換句話說(shuō),XMT2MUX樣式表將模板名稱定義為ODids,并將objectDescriptorlD定義為ODids的值,并且調(diào)用ObjectDescriptorUpdate模板或InitialObjectDescriptor模板。
<xslkey name=″ODids″match=″xmtObjectDescriptorUpdate|xmtInitialObjectDescriptor″use=″@objectDescriptorID″/>
XMT2MUX樣式表應(yīng)當(dāng)包括定義輸入XMT文件中所必需的信息的部分。最初僅允許使用標(biāo)題信息。然而,為了根據(jù)XMT標(biāo)準(zhǔn)規(guī)范,獲得IM1文本格式的輸出格式,也需要本體信息。因此,為了使用本體信息,而定義它。當(dāng)通過(guò)分析發(fā)現(xiàn)/并隨后發(fā)現(xiàn)Body/*時(shí),XMT2MUX樣式表調(diào)用Body的lower模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)Header/*時(shí),調(diào)用Header的lower模板。<xsltemplate match=″/″>
<xslapply-templates select=″xmtXMT-A/xmtHeader/*″/>
<xslapply-templates select=″xmtXMT-A/xmtBody/*″/>
</xsltemplate>
為了通過(guò)參考模式分析輸入到XMT2MUX樣式表的XMT文件,從而把輸入XMT文件轉(zhuǎn)換為與IM1文本格式兼容的多工文件,將ObjectDescriptorUpdate模板定義如下。
當(dāng)通過(guò)分析在XMT中發(fā)現(xiàn)ObjectDescriptorUpdate時(shí),ObjectDescriptorUpdate模板調(diào)用OD模板。當(dāng)在OD模板中發(fā)現(xiàn)OD時(shí),OD模板調(diào)用ObjectDescriptor模板。
<xsltemplate match=″xmtObjectDescriptorUpdate″>
<xslapply-templates select=″xmtOD″/>
</xsltemplate>
<xsltemplate match=″xmtOD″><xslapply-templates select=″xmtObjectDescriptor″/></xsltemplate>
通常,DecConfigDescr和slConfigDescr不能用于輸出與IM1文本格式兼容的多工文件。然而,根據(jù)本發(fā)明,使用DecConfigDescr和sIConfigDescr,可以獲得與IM1文本格式兼容的多工文件。
ES_Descriptor模板包括decConfigDescr、sIConfigdescr和StreamSource,并且當(dāng)發(fā)現(xiàn)decConfigDescr、sIConfigDescr和StreamSource時(shí),可以分別調(diào)用decConfigDescr模板、sIConfigDescr模板和StreamSource模板。
當(dāng)通過(guò)分析發(fā)現(xiàn)decConfigDescr時(shí),decConfigDescr模板將′decConfigDescrDecoderConfigDescriptor{′輸出到多工文件,調(diào)用DecoderConfigDescriptor模板,并且將}輸出到多工文件。
當(dāng)發(fā)現(xiàn)sIConfigDescr時(shí),sIConfigDescr模板將sIConfigDescrSLConfigDescriptor{輸出到多工文件,調(diào)用SLConfigDescriptor模板,并且將}輸出到多工文件。
XMT2MUX樣式表可以進(jìn)一步包括包含AFXConfig模板和DecoderConfigDescriptor模板的解碼信息樣式表。
在DecoderConfigDescriptor節(jié)點(diǎn)的decSpecificInfo節(jié)點(diǎn)中DecoderConfigDescriptor模板將元素名稱定義為SFXconfig,其中此DecoderConfigDescriptor節(jié)點(diǎn)包括解碼所需的信息,并且當(dāng)通過(guò)分析發(fā)現(xiàn)decSpecificInfo并隨后發(fā)現(xiàn)AFXConfig時(shí),DecoderConfigDescriptor模板調(diào)用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來(lái)輸出與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>
為了使用解碼器解碼壓縮的比特流,需要與關(guān)于解碼器的信息相關(guān)的AFXConfig模板。使用AFXConfig模板可以輸出與IM1文本格式兼容的多工文件。
當(dāng)發(fā)現(xiàn)AFXConfig時(shí),AFXConfig模板將′decSpecificInfo AFXConfig{′輸出到多工文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImageDecoderSpecific時(shí),AFXConfig模板調(diào)用OctreeImageDecoderSpecrfic模板,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureCompDecoderSpecific時(shí),AFXConfig模板調(diào)用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>
當(dāng)發(fā)現(xiàn)OctreeImageDecoderSpecific時(shí),OctreeImageDecoderSpecific模板將′OctreeImageDecoderSpecific{}′輸出到多工文件。
<xsltemplate match=″xmtOctreeImageDecoderSpecific″>OctreeImageDecoderSpecific{}</xsltemplate>
當(dāng)發(fā)現(xiàn)PointTextureCompDecoderSpecific時(shí),PointTextureCompDecoderSpecific模板將′PointTextureCompDecoderSpecific{}′輸出到多工文件。
<xsltemplate match=″xmtPointTextureCompDecoderSpecific″>
PointTextureCompDecoderSpecific{}</xsltemplate>
為了獲得與IM1文本格式兼容的多工文件,OctreeImage和PointTexture的CompressedImageFormat和BitWrapperEncodingHints應(yīng)該在streamSource的Muxinof中。
因此,為了在StreamSource中使用,應(yīng)當(dāng)聲明用于OctreeImage和PointTexture的CompressedImageFormat和BitWrapperEncodingHints。
當(dāng)在XMT文件中發(fā)現(xiàn)StreamSource時(shí),XMT2MUX樣式表調(diào)用StreamSource模板。StreamSource模板輸出’muxInfo MuxInfo{fileName′,當(dāng)發(fā)現(xiàn)′url′時(shí),StreamSource模板將′url′的值輸出到多工文件,并且當(dāng)通過(guò)分析沒(méi)有發(fā)現(xiàn)′url′而發(fā)現(xiàn)了EncodingHints、BIFSEncodingHints、FBAEncodingHints、BitWrapperEncodingHints和CompressedImageFormat中的一個(gè)時(shí),StreamSource模板調(diào)用EncodingHints模板、BIFSEncodingHints模板、FBAEncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板中相對(duì)應(yīng)的一個(gè)。當(dāng)所調(diào)用的模板不是EncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板時(shí),XMT2MUX樣式表輸出streamFormat BIFS并且當(dāng)通過(guò)分析發(fā)現(xiàn)}時(shí),將}到輸出多工文件。下面是StreamSource模板的樣式表的一個(gè)實(shí)例。
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>
傳統(tǒng)的BitWrapperEncodingHints包括與例如3DMC、InterpolatorCompression等相關(guān)的encodinghints,而不包括與OctreeImage和PointTexture相關(guān)的encodinghints,這樣不能傳輸和再現(xiàn)包括在DIBR節(jié)點(diǎn)中的壓縮圖像文件。因此,不能輸出與IM1文本格式兼容的多工文件。然而,在本發(fā)明中,將BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints合并成BitWrapperEncodingHints,并且定義了CompressedImageFormat,其中CompressedImageFormat允許傳輸包括在DIBR節(jié)點(diǎn)中的壓縮圖像文件(沒(méi)有被BitWrapper壓縮)的名稱和文件的格式和文件的再現(xiàn),這樣就能夠輸出與IM1文本格式兼容的文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperEncodingHints并隨后發(fā)現(xiàn)BitWrapperOctreeImageEncodingHints時(shí),BitWrapperEncodingHints模板調(diào)用BitWrapperOctreeImageEncodingHints模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperPointTextureEncodingHints時(shí),BitWrapperEncodingHints模板調(diào)用BitWrapperPointTextureEncodingHints模板。
當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperOctreeImageEncodingHints并且隨后發(fā)現(xiàn)sourceFormat時(shí),BitWrapperOctreeImageEncodingHints模板調(diào)用sourceFormat模板,當(dāng)通過(guò)分析發(fā)現(xiàn)targetFormat時(shí),BitWrapperOctreeImageEncodingHints模板調(diào)用targetFomnat模板,并且將streamFormatOctreeImageCompression輸出到多工文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperPointTextureEncodingHints并隨后發(fā)現(xiàn)sourceFormat時(shí),BitWrapperPointTextureEncodingHints模板調(diào)用sourceFormat模板,當(dāng)通過(guò)分析發(fā)現(xiàn)targetFormat時(shí),BitWrapperPointTextureEncodingHints模板調(diào)用targetFormat模板,并且將streamFormatPointTextureCompression輸出到多工文件。
當(dāng)通過(guò)分析發(fā)現(xiàn)param時(shí),sourceFormat模板和targetFormat調(diào)用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>
當(dāng)通過(guò)分析發(fā)現(xiàn)CompressedImageFormat并隨后發(fā)現(xiàn)JPEG、PNG、MPEG4-Video或VTC中的一個(gè)時(shí),XMT2MUX樣式表調(diào)用JPEG模板、PNG模板、MPEG4-Video和VTC模板中的對(duì)應(yīng)一個(gè)。當(dāng)調(diào)用JPEG模板時(shí),JPEG模板調(diào)用sourceFormat模板或targetFormat模板,并且輸出streamFormat JPEG。當(dāng)調(diào)用PNG模板時(shí),PNG模板調(diào)用sourceFormat模板或targetFormat模板,并且輸出streamFormat PNG。當(dāng)調(diào)用MPEG4-Video模板時(shí),MPEG4-Video模板調(diào)用sourceFormat模板或targetFormat模板,并且輸出MPEG4-Video。當(dāng)調(diào)用VTC模板時(shí),VTC模板調(diào)用sourceFormat模板或targetFormat模板,并且輸出streamFormatVTC。
sourceFormat模板和targetFormat調(diào)用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>
可以將本發(fā)明記錄在計(jì)算機(jī)可讀介質(zhì)中??梢员景l(fā)明實(shí)現(xiàn)為計(jì)算機(jī)(包括任何信息處理裝置)可讀程序代碼。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括存儲(chǔ)計(jì)算機(jī)可讀數(shù)據(jù)的任何種類的記錄裝置,例如ROM、RAM、CD-ROM、磁帶、軟盤和光學(xué)可讀介質(zhì)。
當(dāng)編輯3D內(nèi)容時(shí),根據(jù)本發(fā)明的用于DIBR數(shù)據(jù)的模式和樣式表允許編輯者輕松地控制DIBR的表述和壓縮,并且允許部件者容易地產(chǎn)生MPEG-4編碼器的輸入文件。由于當(dāng)編輯內(nèi)容時(shí)編輯者可以親自壓縮3D圖形數(shù)據(jù),所以即使在窄帶網(wǎng)絡(luò)中,也可以實(shí)現(xiàn)DIBR數(shù)據(jù)的實(shí)時(shí)顯像和實(shí)時(shí)動(dòng)畫。
雖然已經(jīng)參考其典型實(shí)施例對(duì)本發(fā)明進(jìn)行了特別地說(shuō)明和描述,但是,只要不違背由權(quán)利要求定義的本發(fā)明的精神和范圍的條件下,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解可以在形式和細(xì)節(jié)上進(jìn)行各種改變。
權(quán)利要求
1.一種用于DIBR數(shù)據(jù)的XMT模式,即可擴(kuò)展MPEG-4文本格式模式,其包括用于圖形數(shù)據(jù)壓縮的BitWrapper節(jié)點(diǎn)模式;和DepthImage節(jié)點(diǎn)模式,其用于基于depthimage的模型著色,包括具有depth信息的camera信息和texture信息,將diTexture定義為元素,該元素包括作為模型群的SFDepthTextureNode,其中,所述BitWrapper節(jié)點(diǎn)模式包括節(jié)點(diǎn)元素,其包含包括被壓縮數(shù)據(jù)的圖形數(shù)據(jù),并且將SFWorldNode作為子元素;BitWrapperEncodingParameter元素;和三個(gè)屬性,其名稱為type、url和buffer,其類型分別為SFInt32、MFUrl、和SFString,并且所述depthimage節(jié)點(diǎn)模式的camera信息將position、orientation、fieldOfView、nearPlane、farPlane和orthographic中的至少一個(gè)定義為屬性名稱,并且定義在camera信息中的屬性類型分別包括SFVec3f、SFRotation、SFVec2f、SFFloat、SFFloat和SFBool。
2.根據(jù)權(quán)利要求1所述的XMT模式,其中,在所述depthimage節(jié)點(diǎn)模式中的diTexture元素定義了一個(gè)SFDepthTextureNode節(jié)點(diǎn)模式,該SFDepthTextureNode節(jié)點(diǎn)模式包括作為元素的PointTexture和SimpleTexture。
3.根據(jù)權(quán)利要求2所述的XMT模式,其中,所述SimpleTexture的節(jié)點(diǎn)模式接收用于DIBR模型的3維著色的color圖像和depth圖像,包括作為圖像的包含depth信息的depth元素和作為圖像的包含color信息的texture元素,其中,將這兩個(gè)圖像定義在SFTextualNodeType元素中。
4.根據(jù)權(quán)利要求2所述的XMT模式,其中所述PointTexture的節(jié)點(diǎn)模式將width、height、depthNbBits、depth和color中的至少一個(gè)定義為屬性名稱,并且該節(jié)點(diǎn)模式定義的屬性類型包括SFInt32、SFInt32、SFInt32、MFInt32和MFColor。
5.根據(jù)權(quán)利要求1至4中任何一項(xiàng)所述的XMT模式,進(jìn)一步包括octreeimage節(jié)點(diǎn)模式,它將octree、octreeResolution和voxelImageIndex中的至少一個(gè)定義為屬性名稱,并且將圖像定義為元素,此元素包括作為節(jié)點(diǎn)群的SFDepthImageNodeType,其中,在所述octreeimage節(jié)點(diǎn)模式中定義的屬性類型分別包括SFInt32、MFInt32和MFInt32。
6.根據(jù)權(quán)利要求1所述的XMT模式,進(jìn)一步包括解碼信息模式,當(dāng)所述BitWrapper節(jié)點(diǎn)模式是使用url字段的外帶時(shí),所述解碼信息模式包含AFXConfig模式和DecoderConfigDescriptor模式,其中,所述DecoderConfigDescriptor模式在DecoderConfigDescriptor節(jié)點(diǎn)的decSpecificInfo節(jié)點(diǎn)中將元素名稱定義為AFXconfig,其中此DecoderConfigDescriptor節(jié)點(diǎn)包括解碼所需的信息,并且AFXConfig模式將OctreeImageDecoderSpecific信息和PointTextureCompDecoderSpecific信息定義為元素名稱,其中OctreeImageDecoderSpecific信息與用于解碼的OctreeImage解碼器的使用有關(guān),并且PointTextureCompDecoderSpecific信息與用于解碼的PointTexture解碼器的使用有關(guān)。
7.根據(jù)權(quán)利要求6所述的XMT模式,進(jìn)一步包括包含point texture的壓縮比率的壓縮參數(shù)模式,其中將所述壓縮參數(shù)模式包括在一個(gè)節(jié)點(diǎn)中,該節(jié)點(diǎn)包含作為元素名稱的BitWrapperEncodingParameter,所述壓縮參數(shù)模式包括作為元素名稱的PointTextureEncodingParameter、作為屬性名稱的configPercent和作為屬性類型的codingPercentType,其中所述codingPercentType具有作為類型的SimpleType和作為名稱的codingPercentType。
8.根據(jù)權(quán)利要求7所述的XMT模式,其中所述codingPercentType以int,即整數(shù)作為限制基準(zhǔn)。
9.根據(jù)權(quán)利要求6所述的XMT模式,其中所述解碼信息模式進(jìn)一步包括BitWrapperEncondingHints,其用于定義在腳本文件,即多工文件,中的Muxinfo所需的信息,其中,所述BitWrapperEncodingHints包括作為子元素的BitWrapperOctreeImageEncodingHints和BitWrapperPointTextureEncodingHints,并且每一個(gè)子元素都包括作為子元素的sourceFormat和targetFormat中的至少一個(gè)。
10.根據(jù)權(quán)利要求9所述的XMT模式,其中所述腳本文件,即多工文件,中的所述Muxinfo所需的信息包括壓縮的DIBR比特流的壓縮格式和文件名稱。
11.根據(jù)權(quán)利要求1至4中任何一項(xiàng)所述的XMT模式,進(jìn)一步包括一個(gè)CompressedImageFormat模式,其中,當(dāng)DIBR相關(guān)節(jié)點(diǎn)包括JPEG、PNG、MPEG4-Video或者VTC格式的運(yùn)動(dòng)圖像或壓縮圖像時(shí),CompressedImageFormat模式提供解碼信息,其包括解碼被壓縮信息所必需的壓縮比特流的壓縮格式和文件名稱,并且CompressedImageFormat模式包括作為元素名稱的CompressedImageFormat和作為子元素名稱的JPEG、PNG、MPEG4-Video和VTC,其中每個(gè)子元素都包括sourceFormat或targetFormat,該sourceFormat或targetFormat包含用于存儲(chǔ)文件名稱的param。
12.一種樣式表,其用于利用DIBR數(shù)據(jù)的模式,分析包括基于深度圖像表述的,即DIBR的,數(shù)據(jù)的輸入XMT文件,即可擴(kuò)展MPEG-4文本格式文件,所述樣式表包括XMT2BIFS樣式表,其用于產(chǎn)生DIBR數(shù)據(jù)的情景文件;和XMT2MUX樣式表,其用于產(chǎn)生DIBR數(shù)據(jù)的多工文件。
13.根據(jù)權(quán)利要求12所述的樣式表,其中,當(dāng)執(zhí)行調(diào)用BitWrapper模板的語(yǔ)句并且通過(guò)分析在所述XMT文件中發(fā)現(xiàn)BitWrapper時(shí),XMT2BIFS樣式表將′BitWrapper{′輸出給情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)節(jié)點(diǎn)時(shí),XMT2BIFS樣式表調(diào)用預(yù)定的節(jié)點(diǎn)模板,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureEncodingParameter時(shí),其中該P(yáng)ointTextureEncodingParameter是將被壓縮節(jié)點(diǎn)的DIBR編碼參數(shù)中之一,XMT2BIFS樣式表調(diào)用預(yù)定的PointTextureEncodingParameter模板,當(dāng)通過(guò)分析發(fā)現(xiàn)type、buffer和url時(shí),XMT2BIFS樣式表將type、buffer和url及其值輸出到情景文件;并且將}輸出到情景文件。
14.根據(jù)權(quán)利要求13所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)節(jié)點(diǎn)時(shí),預(yù)定的節(jié)點(diǎn)模板把節(jié)點(diǎn)輸出到屏幕文件,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),預(yù)定的節(jié)點(diǎn)模板調(diào)用預(yù)定的PointTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImage時(shí),預(yù)定節(jié)點(diǎn)模板調(diào)用預(yù)定OctreeImage模板。
15.根據(jù)權(quán)利要求14所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),預(yù)定的PointTexture模板把′PointTexture{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)width、height、depthNbBits、depth和color時(shí),預(yù)定的PointTexture模板把width、height、depthNbBits、depth[]和color[]及其值輸出到情景文件,并且把}輸出到情景文件。
16.根據(jù)權(quán)利要求12所述的樣式表,進(jìn)一步包括simpleTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)simpleTexture時(shí),simpleTexture模板將′SimpleTexture{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)depth時(shí),simpleTexture模板調(diào)用預(yù)定的深度模板,當(dāng)通過(guò)分析發(fā)現(xiàn)texture時(shí),simpleTexture模板調(diào)用預(yù)定的texture模板,并且將}輸出到情景文件。
17.根據(jù)權(quán)利要求16所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)depth時(shí),預(yù)定深度模板把depth輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)CompositeTexture2D時(shí),預(yù)定深度模板調(diào)用預(yù)定的CompositeTexture2D模板,當(dāng)通過(guò)分析發(fā)現(xiàn)CompositTexutre3D時(shí),預(yù)定深度模板調(diào)用預(yù)定的CompositTexutre3D模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ImageTexture時(shí),預(yù)定深度模板調(diào)用預(yù)定的ImageTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)MovieTexture時(shí),預(yù)定深度模板調(diào)用預(yù)定的MovieTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)PixelTexture時(shí),預(yù)定深度模板調(diào)用預(yù)定的PixelTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)ProtoInstance時(shí),預(yù)定深度模板調(diào)用預(yù)定ProtoInstance模板。
18.根據(jù)權(quán)利要求12所述的樣式表,進(jìn)一步包括DepthImage模板,當(dāng)通過(guò)分析發(fā)現(xiàn)DepthImage時(shí),DepthImage模板將′DepthImage{′輸出到情景,當(dāng)通過(guò)分析發(fā)現(xiàn)diTexture時(shí),DepthImage模板將diTexture輸出到情景文件并且調(diào)用預(yù)定的diTexture模板,當(dāng)通過(guò)分析發(fā)現(xiàn)fieldOfView、nearPlane、farPlane、orientation、position和orthographic時(shí),DepthImage模板將fieldOfView、nearPlane、farPlane、orientation、position和orthographic及其值輸出到情景文件。
19.根據(jù)權(quán)利要求12所述的樣式表,進(jìn)一步包括diTexture模板,當(dāng)發(fā)現(xiàn)diTexture之后通過(guò)分析發(fā)現(xiàn)SimpleTexture時(shí),diTexture模板調(diào)用預(yù)定的SimpleTexture模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)PointTexture時(shí),diTexture模板調(diào)用預(yù)定的PointTexture。
20.根據(jù)權(quán)利要求14所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImage時(shí),所述預(yù)定的OctreeImage模板把′OctreeImage{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeResolution、Octree和voxelImagelndex時(shí),所述預(yù)定的OctreeImage模板把OctreeResolution、Octree[]和voxelImagelndex[]及其值輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)images時(shí),所述預(yù)定的OctreeImage模板將images[]輸出到情景文件,并且調(diào)用預(yù)定的圖像模板,并將}輸出到情景文件。
21.根據(jù)權(quán)利要求20所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)圖像時(shí),所述預(yù)定的圖像模板調(diào)用預(yù)定的DepthImage模板。
22.根據(jù)權(quán)利要求13所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureEncodingParameter時(shí),所述PointTextureEncodingParameter模板將′PointTextureEncodingParameter{′輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)codingPercent時(shí),所述PointTextureEncodingParameter模板將codingPercent及其值輸出到情景文件,并且將}輸出到情景文件。
23.根據(jù)權(quán)利要求12所述的樣式表,其中,當(dāng)通過(guò)分析在所述XMT文件中發(fā)現(xiàn)/并隨后發(fā)現(xiàn)Body/*時(shí),所述XMT2BIFS樣式表調(diào)用Body Lower模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)Header/*時(shí),所述XMT2BIFS樣式表調(diào)用Header Lower模板。
24.根據(jù)權(quán)利要求12所述的樣式表,其中,當(dāng)通過(guò)分析在XMT中發(fā)現(xiàn)ObjectDescriptorUpdate時(shí),所述XMT2BIFS樣式表將UPDATE OD[輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OD和ObjectDescriptor時(shí),所述XMT2BIFS樣式表調(diào)用預(yù)定的ObjectDescriptor模板,當(dāng)通過(guò)分析發(fā)現(xiàn)InitialObjectDescriptor時(shí),所述XMT2BIFS樣式表調(diào)用預(yù)定的InitialObjectDescriptor模板,并且將]輸出到情景文件。
25.根據(jù)權(quán)利要求24所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)ObjectDescriptor時(shí),所述預(yù)定的ObjectDescriptor模板將ObjectDescriptor{輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)屬性名稱objectDescriptorlD時(shí),所述預(yù)定的ObjectDescriptor模板將objectDescriptorlD輸出到情景文件,當(dāng)通過(guò)分析發(fā)現(xiàn)屬性名稱binarylD時(shí),所述預(yù)定的ObjectDescriptor模板輸出屬性名稱binarylD的值,當(dāng)通過(guò)分析發(fā)現(xiàn)Descr時(shí),所述預(yù)定的ObjectDescriptor模板調(diào)用預(yù)定的Descr模板,并且將}輸出到情景文件。
26.根據(jù)權(quán)利要求24所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)InitialObjectDescriptor和Profiles時(shí),所述預(yù)定的InitialObjectDescriptor模板調(diào)用預(yù)定的Profiles模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)Descr時(shí),所述預(yù)定的InitialObjectDescriptor模板調(diào)用預(yù)定的Descr模板。
27.根據(jù)權(quán)利要求26所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)Descr和esDescr時(shí),所述預(yù)定的Descr模板調(diào)用預(yù)定的esDescr模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr時(shí),所述預(yù)定Descr模板調(diào)用預(yù)定ipmpDescr模板。
28.根據(jù)權(quán)利要求27所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)esDescr和ES_Descriptor時(shí),所述預(yù)定的esDescr模板調(diào)用預(yù)定的ES_Descriptor模板。
29.根據(jù)權(quán)利要求27所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr和IPMP_Descriptor時(shí),所述預(yù)定的ipmpDescrPtr模板調(diào)用預(yù)定的IPMPDescriptor模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)IPMP_DescriptorPointer時(shí),所述預(yù)定的ipmpDescrPtr模板調(diào)用預(yù)定的IPMP_DescriptorPointer模板。
30.根據(jù)權(quán)利要求28所述的樣式表,其中,通過(guò)分析發(fā)現(xiàn)ES_Descriptor和URL時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的URL模板,當(dāng)通過(guò)分析發(fā)現(xiàn)StreamSourcer時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的StreamSourcer模板,當(dāng)通過(guò)分析發(fā)現(xiàn)decConfigDescr時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的decConfigDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)sIConfigDescr時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的sIConfigDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipiPtr時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的ipiPtr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)iplDs時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的iplDs模板,當(dāng)通過(guò)分析發(fā)現(xiàn)ipmpDescrPtr時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的ipmpDescrPtr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)langDescr時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的langDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)regDescr時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的regDescr模板,當(dāng)通過(guò)分析發(fā)現(xiàn)qosDescr時(shí),所述預(yù)定的ES_Descriptor模板調(diào)用預(yù)定的qosDescr模板。
31.根據(jù)權(quán)利要求12所述的樣式表,其中,當(dāng)通過(guò)分析在所述XMT文件中發(fā)現(xiàn)StreamSource時(shí),所述XMT2BIFS樣式表調(diào)用StreamSourcel模板,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)CompressedImageFormat時(shí),所述StreamSourcel模板將muxSrcipt、文件名稱和多工文件的擴(kuò)展輸出到情景,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperEncodingHints時(shí),所述StreamSourcel模板將muxScript、文件名稱和多工文件的擴(kuò)展輸出情景文件。
32.根據(jù)權(quán)利要求12所述的樣式表,其中,當(dāng)通過(guò)分析在所述XMT文件中發(fā)現(xiàn)/并隨后發(fā)現(xiàn)Body/*時(shí),所述XMT2MUX樣式表調(diào)用Body Lower模板,并且通過(guò)分析發(fā)現(xiàn)Header/*時(shí),所述XMT2MUX樣式表調(diào)用Header Lower模板。
33.根據(jù)權(quán)利要求12所述的樣式表,其中,當(dāng)通過(guò)分析在所述XMT文件中發(fā)現(xiàn)ObjectDescriptorUpdate或InitialObjectDescriptor時(shí),所述XMT2MUX樣式表將ODids用作模板名稱,并且將objectDescriptorlD用作模板名稱的值,并且調(diào)用ObjectDescriptorUpdate模板或InitialObjectDescriptor模板。
34.根據(jù)權(quán)利要求33所述的樣式表,其中,當(dāng)通過(guò)分析在所述XMT文件中發(fā)現(xiàn)ObjectDescriptorUpdate時(shí),所述ObjectDescriptorUpdate模板調(diào)用OD模板,并且當(dāng)在所述OD模板中發(fā)現(xiàn)OD時(shí),所述OD模板調(diào)用ObjectDescriptor模板。
35.根據(jù)權(quán)利要求12所述的樣式表,其中所述XMT2MUX樣式表包括decConfigDescr模板和sIConfigDescr模板,當(dāng)在預(yù)定上級(jí)模板中發(fā)現(xiàn)decConfigDescr時(shí),調(diào)用所述decConfigDescr模板,當(dāng)在預(yù)定上級(jí)模板中發(fā)現(xiàn)sIConfigDescr時(shí),調(diào)用sIConfigDescr模板,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)decConfigDescr時(shí),所述decConfigDescr模板將decConfigDescr DecoderConfigDescriptor{輸出到多工文件,調(diào)用DecoderConfigDescriptor模板,并且將}輸出到多工文件,并且當(dāng)通過(guò)分析發(fā)現(xiàn)sIConfigDescr時(shí),所述sIConfigDescr模板將sIConfigDescrSLConfigDescriptoi{輸出到多工文件,調(diào)用SLConfigDescriptor模板,并且將}輸出到多工文件。
36.根據(jù)權(quán)利要求12所述的樣式表,其中所述XMT2MUX樣式表包括解碼信息樣式表,該解碼信息樣式表包括AFXConfig模板和DecoderConfigDescriptor模板,其中,所述DecoderConfigDescriptor模板在DecoderConfigDescriptor節(jié)點(diǎn)的decSpecificInfo節(jié)點(diǎn)中將元素名稱定義為AFXconfig,其中此DecoderConfigDescriptor節(jié)點(diǎn)包括解碼所必需的信息,并且當(dāng)通過(guò)分析發(fā)現(xiàn)decSpecificInfo和AFXConfig時(shí),調(diào)用所述AFXConfig模板。
37.根據(jù)權(quán)利要求36所述的樣式表,其中當(dāng)通過(guò)分析發(fā)現(xiàn)AFXConfig時(shí),所述AFXConfig模板可以將decSpecificInfo AFXConfig{輸出到多工文件,當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImageDecoderSpecific時(shí),所述AFXConfig模板調(diào)用OctreeImageDecoderSpecrfic模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureCompDecoderSpecific時(shí),所述AFXConfig模板調(diào)用PointTextureCompDecoderSpecific模板,并將}輸出到多工文件。
38.根據(jù)權(quán)利要求37所述的樣式表,其中當(dāng)通過(guò)分析發(fā)現(xiàn)OctreeImageDecoderSpecific時(shí),所述OctreeImageDecoderSpecific模板將OctreeImageDecoderSpecific{ }輸出到多工文件。
39.根據(jù)權(quán)利要求37所述的樣式表,其中當(dāng)通過(guò)分析發(fā)現(xiàn)PointTextureCompDecoderSpecific時(shí),所述PointTextureCompDecoderSpecific模板將PointTextureCompDecoderSpecific{ }輸出到多工文件。
40.根據(jù)權(quán)利要求12所述的樣式表,其中當(dāng)通過(guò)分析在所述XMT文件中發(fā)現(xiàn)StreamSource時(shí),所述XMT2MUX樣式表輸出muxInfo MuxInfo{filename,當(dāng)通過(guò)分析發(fā)現(xiàn)url時(shí),所述XMT2MUX樣式表將url的值輸出到多工文件,當(dāng)通過(guò)分析沒(méi)有發(fā)現(xiàn)url而發(fā)現(xiàn)了EncodingHints、BIFSEncodingHints FBAEncodingHints、BitWrapperEncodingHints和CompressedImageFormat中的一個(gè)時(shí),所述XMT2MUX樣式表調(diào)用EncodingHints模板、BIFSEncodingHints模板、FBAEncodingHints模板、BitWrapperEncodingHints模板和CompressedImageFormat模板中對(duì)應(yīng)的一個(gè),其中如果所發(fā)現(xiàn)那個(gè)不是EncodingHints、BitWrapperEncodingHints或CompressedImageFormat,輸出streamFormat BIFS,并且當(dāng)通過(guò)分析發(fā)現(xiàn)}時(shí),將}輸出到多工文件。
41.根據(jù)權(quán)利要求40所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)CompressedImageFormat以及JPEG、PNG、MPEG4-Video和VTC中的一個(gè)時(shí),CompressedImageFormat模板調(diào)用JPEG模板、PNG模板、MPEG4-Video模板和VTC模板中對(duì)應(yīng)的一個(gè)。
42.根據(jù)權(quán)利要求41所述的樣式表,其中,當(dāng)調(diào)用JPEG模板并且通過(guò)分析發(fā)現(xiàn)JPEG時(shí),所述JPEG模板調(diào)用sourceFormat模板或targetFormat模板,并且輸出streamFormat JPEG,當(dāng)調(diào)用PNG模板并且通過(guò)分析發(fā)現(xiàn)PNG時(shí),所述PNG模板調(diào)用sourceFormat模板或targetFormat模板,并且輸出streamFormat PNG,當(dāng)調(diào)用MPEG4-Video并且通過(guò)分析發(fā)現(xiàn)MEPG4-Video時(shí),所述MPEG4-Video模板調(diào)用sourceFormat模板或targetFormat模板,并且輸出streamFormat MPEG4-Video,當(dāng)調(diào)用VTC模板并且通過(guò)分析發(fā)現(xiàn)VTC時(shí),VTC模板調(diào)用sourceFormat模板或者調(diào)用targetFormat模板,并且輸出streamFormat VTC,其中,sourceFormat模板和targetFormat模板調(diào)用param模板,并且param模板輸出文件名的值。
43.根據(jù)權(quán)利要求40所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperEncodingHints和BitWrapperOctreeImageEncodingHints時(shí),所述BitWrapperEncodingHints模板調(diào)用BitWrapperOctreeImageEncodingHints模板,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperPointTextureEncodingHints時(shí),所述BitWrapperEncodingHints模板調(diào)用BitWrapperPointTextureEncodingHints模板。
44.根據(jù)權(quán)利要求43所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperOctreeImageEncodingHints和sourceFormat時(shí),所述BitWrapperOctreeImageEncodingHints模板調(diào)用sourceFormat模板,當(dāng)通過(guò)分析發(fā)現(xiàn)targetFormat時(shí),所述BitWrapperOctreeImageEncodingHints模板調(diào)用targetFormat模板,并且將streamFormatOctreeImageCompression輸出到多工文件,并且當(dāng)通過(guò)分析發(fā)現(xiàn)BitWrapperPointTextureEncodingHints和sourceFormat時(shí),所述BitWrapperPointTextureEncodingHints模板調(diào)用sourceFormat模板,當(dāng)通過(guò)分析發(fā)現(xiàn)targetFormat時(shí),所述BitWrapperPointTextureEncodingHints模板調(diào)用targetFormat模板,并且將streamFormatPointTextureCompression輸出到多工文件。
45.根據(jù)權(quán)利要求44所述的樣式表,其中,當(dāng)通過(guò)分析發(fā)現(xiàn)param時(shí),所述sourceFormat模板和所述targetFormat調(diào)用param模板,并且所述param模板輸出文件名的值。
46.一種計(jì)算機(jī)可讀介質(zhì),其中,在此介質(zhì)上面包含上述權(quán)利要求1至11中的模式和上述權(quán)利要求12至44中的樣式表之一的計(jì)算機(jī)程序。
全文摘要
本發(fā)明涉及一種用于DIBR數(shù)據(jù)的模式和樣式表。所述模式包括用于圖形數(shù)據(jù)壓縮的Bit Wrapper節(jié)點(diǎn)模式;和用于基于depthimage的模型著色的DepthImage節(jié)點(diǎn)模式,該DepthImage節(jié)點(diǎn)模式包括具有depth信息的texture信息和camera信息,該DepthImage節(jié)點(diǎn)模式將diTexture定義為包括作為模型群的SFDepthTextureNode的元素,其中,BitWrapper節(jié)點(diǎn)模式包括節(jié)點(diǎn)元素、BitWrapperEncodingParameter元素和三個(gè)屬性,該節(jié)點(diǎn)元素包含包括將被壓縮的數(shù)據(jù)的圖形數(shù)據(jù),并且將SFWorldNode作為子元素,該三個(gè)屬性分別具有名稱-類型、url和緩沖器以及類型——SFInt32、MFUrl、和SFString。當(dāng)編輯3D內(nèi)容時(shí),模式和樣式表允許編輯者輕松地控制DIBR的表述和壓縮,并且允許容易地產(chǎn)生用于MPEG-4編碼器的輸入文件。
文檔編號(hào)G06T15/10GK1700256SQ20051007836
公開(kāi)日2005年11月23日 申請(qǐng)日期2005年3月8日 優(yōu)先權(quán)日2004年3月8日
發(fā)明者張敬子, 韓萬(wàn)鎮(zhèn), 金道均, 李信俊 申請(qǐng)人:三星電子株式會(huì)社