專利名稱:使用圖形數(shù)據(jù)壓縮的元表示產(chǎn)生輸入文件的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形數(shù)據(jù)寫(writing),特別地涉及一種使用圖形數(shù)據(jù)壓縮的元表示產(chǎn)生輸入文件的方法。
背景技術(shù):
一種傳統(tǒng)可擴展MPEG-4文本格式技術(shù)(下文稱為‘XMT’)能夠表示MPEG-4基本要素,例如,二維(2D)或三維(3D)圖形、音頻和視頻,從而編輯者能夠方便地處理它們。此外,已經(jīng)設(shè)計了一種內(nèi)容編輯框架,以便允許由編輯者制作的數(shù)據(jù)在不同的應(yīng)用中再使用,并且使數(shù)據(jù)具有兼容性和可移植性。數(shù)據(jù)的再使用和數(shù)據(jù)的兼容性和可移植性是能夠?qū)崿F(xiàn)的,因為在傳統(tǒng)的XMT中定義與MPEG-4基本元素相關(guān)的可擴展標(biāo)記語言(XML)語法。
可是,由于傳統(tǒng)的XMT并不處理3D數(shù)據(jù)的壓縮,因此很難去壓縮與編輯者制作的3D內(nèi)容相關(guān)的動畫數(shù)據(jù)和表示(representtation)數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明提供一種使用有關(guān)圖形數(shù)據(jù)壓縮的元語言產(chǎn)生輸入文件的方法和裝置,從而在編輯階段能夠容易地壓縮圖形數(shù)據(jù)。
本發(fā)明也提供一種使用有關(guān)圖形數(shù)據(jù)壓縮的元語言產(chǎn)生輸入文件的方法和系統(tǒng),所述方法和系統(tǒng)使用XMT定義由MPEG-4AFX所建議的壓縮數(shù)據(jù)表示,從而在編輯階段很容易地壓縮圖形數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,提供一種使用有關(guān)圖形數(shù)據(jù)壓縮的元語言產(chǎn)生輸入文件的方法,所述方法包括產(chǎn)生可擴展標(biāo)記語言(XML)模式,上述模式定義至少一個描述被壓縮的對象數(shù)據(jù)的壓縮節(jié)點,以及用于數(shù)據(jù)壓縮的參數(shù);基于XML模式,產(chǎn)生樣式表,該樣式表支持從輸入XML文件向?qū)⒈惠斎氲綌?shù)據(jù)壓縮編碼器的文件的轉(zhuǎn)換;以及基于XML模式和樣式表分析輸入XML文件,以產(chǎn)生將被輸入到數(shù)據(jù)壓縮譯碼器的文件。較佳地,XML模式還包括指定文件位置的EncodingHints,其中所述文件存儲將被壓縮的對象數(shù)據(jù)。較佳地,所述參數(shù)至少包括下列參數(shù)之一與對象的頂點坐標(biāo)、對象的旋轉(zhuǎn)信息、將被壓縮的對象的位置信息相關(guān)的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù)以及用于將被壓縮的對象的三維(3D)網(wǎng)格信息的參數(shù)。
對象的頂點坐標(biāo)是坐標(biāo)內(nèi)插器的數(shù)據(jù),該坐標(biāo)內(nèi)插器的數(shù)據(jù)使用基于關(guān)鍵幀的圖形動畫中的x,y,z分量組成的頂點的坐標(biāo)來表示對象位置。對象的旋轉(zhuǎn)信息是基于關(guān)鍵幀的圖形動畫中的方向內(nèi)插器的數(shù)據(jù)。對象的位置信息是基于關(guān)鍵幀的圖形動畫中的位置內(nèi)插器的數(shù)據(jù)。根據(jù)本發(fā)明的另一個方面,提供一種使用有關(guān)圖形數(shù)據(jù)壓縮的元語言產(chǎn)生輸入文件的方法,該方法包括產(chǎn)生XMT模式,該模式定義一種定義被壓縮對象數(shù)據(jù)的壓縮節(jié)點,用于數(shù)據(jù)壓縮的參數(shù),以及至少指定存儲被壓縮對象數(shù)據(jù)的文件位置的BitWrapperEncodingHints;基于XMT模式,產(chǎn)生XMT2BIFS樣式表和XMT2MUX樣式表,其中XMT2BIFS樣式表支持從輸入XMT文件向場景文件的轉(zhuǎn)換,XMT2MUX樣式表支持從XMT輸入文件到復(fù)用(mux)文件的轉(zhuǎn)換;以及通過使用XMT模式以及XMT2BIFS樣式表和XMT2MUX樣式表分析輸入XMT文件以產(chǎn)生場景文件和復(fù)用文件。較佳地,壓縮節(jié)點包括包含有將被壓縮的對象數(shù)據(jù)的節(jié)點字段;不與URL字段同時使用的緩沖字段,其中該緩沖字段使用帶內(nèi)場景(in-band scenario)而存儲在壓縮節(jié)點中定義的比特流;以及不與緩沖字段同時使用的URL字段,其使用帶外場景(out-band scenario)鏈接有關(guān)壓縮節(jié)點中定義的比特流的信息。較佳地,壓縮節(jié)點還包括指定節(jié)點壓縮模式的類型的類型字段。較佳地,所述參數(shù)至少包括用于與對象的頂點坐標(biāo)、對象的旋轉(zhuǎn)信息、被壓縮對象的位置信息相關(guān)的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù),和用于將被壓縮的對象的3D網(wǎng)格信息的參數(shù)之一。
較佳地,BitWrapperEncodingHints還指定與壓縮節(jié)點的URL ID相同的對象描述符ID,存儲壓縮比特流的文件的名字,以及流格式的類型,和在復(fù)用文件中所描述的文件名。優(yōu)選地,分析輸入XMT文件還包括接收描述定義原始數(shù)據(jù)的壓縮節(jié)點、壓縮參數(shù)以及緩沖器的輸入XMT文件;并且通過使用XMT模式以及XMT2BIFS樣式表和XMT2MUX樣式表分析輸入XMT文件以產(chǎn)生場景文件和復(fù)用文件,其中場景文件包括原始數(shù)據(jù)、壓縮參數(shù)以及暫存由原始數(shù)據(jù)壓縮所獲得的比特流的緩沖器,以及復(fù)用文件描述使用BIFS編碼器編碼場景文件所獲得的文件名和和流格式。優(yōu)選地,分析輸入XMT文件還包括接收輸入XMT文件,所述輸入XMT文件定義含有能夠暫存壓縮對象數(shù)據(jù)的緩沖器的壓縮節(jié)點;并且使用XMT模式以及XMT2BIFS樣式表和XMT2MUX樣式表分析輸入XMT文件以產(chǎn)生場景文件和復(fù)用文件,其中場景文件包含暫存比特流的緩沖器,該比特流表示壓縮對象數(shù)據(jù),以及復(fù)用文件說明了通過使用BIFS編碼器來編碼場景文件而獲得的文件的名字和流格式。優(yōu)選地,分析輸入XMT文件包括接收輸入XMT文件,所述輸入XMT文件描述定義原始數(shù)據(jù)、壓縮參數(shù)以及URL信息的壓縮節(jié)點,以及定義與壓縮節(jié)點的url ID相同的對象描述符ID和表示壓縮對象數(shù)據(jù)的比特流的位置的BitWrapperEncodingHints;以及使用XMT模式以及XMT2BIFS樣式表和XMT2MUX樣式表分析輸入XMT文件以產(chǎn)生場景文件和復(fù)用文件,其中場景文件包括原始數(shù)據(jù)、壓縮參數(shù)以及與鏈接有關(guān)原始數(shù)據(jù)的壓縮所獲得的比特流的信息的URL信息,以及復(fù)用文件用于指定表示被壓縮對象數(shù)據(jù)的比特流的位置和在BitWrapperEncodingHints中所定義的流格式。較佳地,輸入XMT文件還包括ObjectDescriptorUpdate和從輸入XMT文件的分析中所產(chǎn)生的復(fù)用文件的名字,所述ObjectDescriptorUpdate定義與BitWrapperEncodingHints中所指定的對象描述符ID相同的對象描述符ID,其中場景文件還指定與在BitWrapperEncodingHints中所說明的對象描述符ID相同的對象描述符ID以及復(fù)用文件的名字。
較佳地,分析輸入XMT文件還包括接收輸入XMT文件,所述輸入XMT文件描述指定壓縮節(jié)點的BitWrapperEncodingHints,該壓縮節(jié)點定義鏈接關(guān)于已壓縮對象數(shù)據(jù)的信息的URL,所述輸入XMT文件還描述與URL ID相同的對象描述符ID以及表示壓縮對象數(shù)據(jù)的比特流的位置;通過使用XMT模式以及XMT2BIFS樣式表和XMT2MUX樣式表分析輸入XMT文件以產(chǎn)生場景文件和復(fù)用文件,其中場景文件包含URL,該URL鏈接有關(guān)由原始數(shù)據(jù)的壓縮所獲得的比特流的信息,并且URL的ID與在壓縮節(jié)點中所指定的對象描述符的ID相同,以及復(fù)用文件指定,表示BitWrapperEncodingHints中所定義的壓縮對象數(shù)據(jù)的比特流的位置和流格式。同樣,較佳地,輸入XMT文件還包括ObjectDescriptorUpdate,其指定與BitWrapperEncodingHints中所定義的對象描述符ID相同的對象描述符ID,和通過輸入XMT文件的分析而獲得的復(fù)用文件的名字,其中場景文件還指定與BitWrapperEncodingHints中所定義的描述符ID相同的對象描述符ID和復(fù)用文件的名字。
根據(jù)本發(fā)明的又一方面,提供一種使用有關(guān)圖形數(shù)據(jù)壓縮的元語言來產(chǎn)生輸入文件的系統(tǒng),該系統(tǒng)包括XML模式,XML模式定義至少包含有關(guān)被壓縮對象數(shù)據(jù)的信息的壓縮節(jié)點和用于數(shù)據(jù)壓縮的參數(shù);基于XML模式,支持輸入XML文件到將被輸入到預(yù)定數(shù)據(jù)壓縮編碼器的文件的轉(zhuǎn)換的樣式表;以及XML分析器,其基于XML模式和樣式表來分析輸入XML文件以產(chǎn)生輸入到預(yù)定數(shù)據(jù)壓縮編碼器的文件。優(yōu)選地,參數(shù)至少包括用于有關(guān)于對象頂點坐標(biāo)的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù),用于對象的旋轉(zhuǎn)信息的參數(shù),用于被壓縮的對象的位置信息的參數(shù),以及用于被壓縮的3D網(wǎng)格信息的參數(shù)之一。
根據(jù)本發(fā)明的又一方面,提供一種使用有關(guān)圖形數(shù)據(jù)壓縮的元語言來產(chǎn)生輸入文件的系統(tǒng),該系統(tǒng)包括XML模式,XML模式定義用于指定被壓縮的對象數(shù)據(jù)的壓縮節(jié)點,和用于數(shù)據(jù)壓縮的參數(shù),以及BitWrapperEncodingHints,所述的BitWrapperEncodingHints至少說明在存儲被壓縮對象數(shù)據(jù)的文件的位置;XMT2BIFS樣式表,其基于XMT模式而支持從輸入XMT文件到場景文件的轉(zhuǎn)換;XMT2MUX樣式表,其基于XMT模式而支持從輸入XMT文件到復(fù)用文件的轉(zhuǎn)換;以及XMT文件,其使用XMT模式以及XMT2BIFS樣式表和XMT2MUX樣式表分析輸入XMT文件以產(chǎn)生場景和復(fù)用文件。
較佳地,壓縮節(jié)點包括用于說明被壓縮對象數(shù)據(jù)的節(jié)點字段;緩沖字段,其不URL字段同時使用,并且使用帶內(nèi)場景(in-band scenario)傳輸表示壓縮對象數(shù)據(jù)的比特流,所述比特流在壓縮節(jié)點中指定;以及URL字段,其不與緩沖字段同時使用,并且使用帶外場景(out-band scenario)傳輸表示被壓縮的對象數(shù)據(jù)的比特流,該比特流在壓縮節(jié)點中指定。較佳地,參數(shù)至少包括用于有關(guān)于對象頂點坐標(biāo)的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù),用于對象的旋轉(zhuǎn)信息的參數(shù),用于被壓縮的對象的位置信息的參數(shù),以及用于被壓縮的3D網(wǎng)格信息的參數(shù)之一。
較佳地,BitWrapperEncodingHints還包括與壓縮節(jié)點中所定義的URLID相同的對象描述符ID,存儲有包含在復(fù)用文件中的比特流的文件的名字,以及流格式的類型。
根據(jù)本發(fā)明的又一方面,提供了一種使用圖形數(shù)據(jù)壓縮的元表示產(chǎn)生輸入文件的方法,該方法包括制作可擴展的MPEG-4文本格式XMT模式,該模式定義了包含關(guān)于將被壓縮的對象數(shù)據(jù)的信息的壓縮節(jié)點;數(shù)據(jù)壓縮所必需的編碼參數(shù);與存儲在壓縮節(jié)點的URL字段中的標(biāo)識符相同的objectDescriptorID;以及BitWrapperEncodingHints,其指定存儲將要被發(fā)送的被壓縮比特流的文件的名稱和比特流的格式,其中存儲將要被發(fā)送的被壓縮比特流的文件被包含在復(fù)用文件中;基于XMT模式產(chǎn)生XMT2BIFS樣式表和XMT2MUX樣式表,其中,XMT2BIFS樣式表支持輸入XMT文件向場景文件的轉(zhuǎn)換,XMT2MUX樣式表支持輸入XMT文件向復(fù)用文件的轉(zhuǎn)換,其中,當(dāng)將被壓縮的圖形數(shù)據(jù)存在或壓縮節(jié)點的URL被使用時,場景文件包含UPDATE OD,UPDATE OD描述與存儲在壓縮節(jié)點的URL字段中的標(biāo)識符相同的objectDescriptorID和復(fù)用文件的名稱,并且復(fù)用文件包含InitialObjectDescriptor具有是基本流描述符的ES_Descriptor,ES_Descriptor包含是表示通過壓縮場景數(shù)據(jù)而得到的比特流的基本流的標(biāo)識符的ES_ID,指定將被用于對比特流解碼的解碼器的decConfigDescr,指示復(fù)制時間的slConfigDescr,和指示存儲將被發(fā)送的比特流的文件的名稱和比特流的格式的muxInfo;以及ObjectDescriptor具有是基本流描述符的ES_Descriptor,ES_Descriptor包含是當(dāng)壓縮節(jié)點的URL被使用時鏈接到將被發(fā)送到該URL的對象的比特流的URL的標(biāo)識符的objectDescriptorID,指定將被用于對比特流解碼的解碼器的decConfigDescr,指示復(fù)制時間的slConfigDescr,指示存儲將被發(fā)送的比特流的文件的名稱和比特流的格式的muxInfo;以及通過使用XMT2BIFS樣式表和XMT2MUX樣式表、根據(jù)XMT模式分析輸入XMT文件來制作場景文件和復(fù)用文件,其中,壓縮節(jié)點包含節(jié)點字段,包含有將被壓縮的對象數(shù)據(jù);類型字段,指示節(jié)點壓縮編碼器的類型;URL字段,不與緩存字段同時使用并將在節(jié)點中定義的壓縮比特流作為帶外數(shù)據(jù)發(fā)送;以及緩存字段,不與URL字段同時使用并將在壓縮節(jié)點中定義的比特流作為帶內(nèi)數(shù)據(jù)發(fā)送,并且編碼參數(shù)包括用于關(guān)于將被壓縮的對象的頂點坐標(biāo)的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù);用于三維網(wǎng)格信息的參數(shù);用于旋轉(zhuǎn)移動的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù);和用于位置移動的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù)。
根據(jù)本發(fā)明的又一方面,提供一種記錄有在計算機中執(zhí)行上述方法的程序的計算機可讀記錄介質(zhì)。
通過參考附圖而詳細(xì)地描述其中的優(yōu)選實施例,本發(fā)明的上述和其他方面和優(yōu)點將變得更加明顯,其中圖1是根據(jù)本發(fā)明的優(yōu)選實施例,使用有關(guān)圖象數(shù)據(jù)壓縮的元語言的輸入文件生成系統(tǒng)的結(jié)構(gòu)圖;圖2是根據(jù)本發(fā)明的另一優(yōu)選實施例,使用有關(guān)圖象數(shù)據(jù)壓縮的元語言的輸入文件生成系統(tǒng)的結(jié)構(gòu)圖;圖3說明使用文本語法的MPEG-4情景描述的XMT框架;圖4說明使用參數(shù)將有關(guān)對象A的三維(3D)數(shù)據(jù)壓縮成比特流,并且使用″BufferWithEP.m3d″緩沖器傳輸該比特流;圖5說明使用已壓縮比特流和緩沖器來傳輸3D數(shù)據(jù);圖6說明使用參數(shù)將有關(guān)對象A的三維(3D)數(shù)據(jù)壓縮成比特流,并使用在″BitWrapper″節(jié)點中定義的統(tǒng)一資源定位器(URL)來傳輸該比特流;圖7說明使用在″BitWrapper″中所定義的URL來傳輸有關(guān)使用已壓縮比特流的對象A的3D數(shù)據(jù)。
具體實施例方式
現(xiàn)在通過參照附圖將更加詳細(xì)地描述使用有關(guān)圖形數(shù)據(jù)壓縮的元語言的一種輸入文件生成系統(tǒng)。
對于編輯者來說需要一種能夠調(diào)整編輯、表示、處理以及壓縮三維(3D)內(nèi)容所必須的要素的方法,以便能夠很容易地處理被壓縮的3D數(shù)據(jù)。可以通過使用XMT來調(diào)整上述要素。XMT是用于編輯諸如音頻、視頻、兩維(2D)內(nèi)容以及三維(3D)內(nèi)容之類的MPEG-4內(nèi)容的框架(framework)。同樣,XMT是一個使用文本語法表示MPEG-4情景描述的框架。該框架將在圖3中進(jìn)行說明。XMT允許內(nèi)容編輯者、工具(tools)以及服務(wù)提供者再使用由另一內(nèi)容編輯者所制作的內(nèi)容,并且還能夠使其與可擴展3D(X3D)和同步多媒體集成語言(SMIL)共同使用。
如圖3所示,XMT格式能夠在SMIL播放器、虛擬現(xiàn)實建模語言(VRML)播放器和MPEG-4播放器之間互換,并且通過這些播放器播放。更準(zhǔn)確地說,參考圖3,在預(yù)處理X3D內(nèi)容之后,可以通過SMIL播放器來分析和播放XMT格式,或通過VRML播放器播放XMT格式,或在編譯MPEG-4(mp4)格式的表示之后由MPEG-4播放器來播放XMT格式。
在XMT-A格式和XMT-Ω的雙結(jié)構(gòu)中給出XMT格式。XMT-A格式是一種MPEG-4內(nèi)容的基于XML的版本(version),并且包括可擴展的3D圖形(X3D),所述MPEG-4內(nèi)容表示音頻、視頻、2D或3D圖形數(shù)據(jù),或它們的壓縮。XMT-A格式還包括作為XMT-A格式的擴展的X3D,以表示MPEG-4的特征。在XMT-A格式中,文本格式和二進(jìn)制格式以1∶1的比率映射。
XMT-Ω格式是基于SMIL的MPEG-4特征的高級表示。即使內(nèi)容的編輯者不熟悉從Ω到A的機制,XMT也能夠從XMT-Ω格式默認(rèn)地映射為XMT-A格式。XMT-Ω格式提供一種能夠使用戶方便地編輯內(nèi)容的界面提示功能。通常,MPEG-4數(shù)據(jù)以XMT-A格式表示、處理和壓縮。
因此,一種調(diào)整編輯、表示、處理和壓縮3D數(shù)據(jù)所必須的要素的壓縮技術(shù)必須在XMT-A格式中定義,以便對于編輯者來說能夠去壓縮3D數(shù)據(jù)。
換句話說,因為在XMT格式中定義由MPEG-4AFX所建議的壓縮數(shù)據(jù)的表示,因此可能壓縮與編輯者制作的3D內(nèi)容相關(guān)的動畫數(shù)據(jù)和表示數(shù)據(jù)。從而,編輯者能夠基于該定義壓縮3D數(shù)據(jù),并且發(fā)送所壓縮的數(shù)據(jù)。也就是說,壓縮諸如動畫數(shù)據(jù)和表示數(shù)據(jù)之類的3D數(shù)據(jù)所需要的要素與參數(shù)一起在XMT格式中定義。根據(jù)本發(fā)明,通過使用表示3D數(shù)據(jù)的壓縮的節(jié)點,在XMT-A模式中定義用于3D數(shù)據(jù)壓縮的要素定義。
在本發(fā)明中,提供一種使用元語言表示3D數(shù)據(jù)壓縮的要素的方法并且基于上述方法壓縮3D數(shù)據(jù)。
圖1是使用有關(guān)圖象數(shù)據(jù)壓縮的元語言的輸入文件生成系統(tǒng)的結(jié)構(gòu)圖。圖1的系統(tǒng)包括XML分析器110、XML模式(schema)120以及樣式表(stylesheet)130。XML模式120定義包含有關(guān)將被壓縮的對象數(shù)據(jù)的信息的壓縮節(jié)點,和數(shù)據(jù)壓縮參數(shù)。樣式表130基于XML模式120,支持從XML輸入文件向輸出到數(shù)據(jù)壓縮編碼器140的文件的轉(zhuǎn)換。XML110使用XMT模式120和樣式表130來分析XML輸入文件100,并且產(chǎn)生被輸入到數(shù)據(jù)壓縮編碼器140的文件。
圖2是圖1中使用有關(guān)圖形數(shù)據(jù)壓縮的一種元語言的輸入文件生成系統(tǒng)的另一實施例的結(jié)構(gòu)圖。詳細(xì)地,圖2的系統(tǒng)使用元語言在XMT格式中定義由MPEG-4AFX所提議的壓縮數(shù)據(jù)的表示,所以能夠進(jìn)行圖形數(shù)據(jù)的壓縮。
圖2的系統(tǒng)包括XMT分析器210、XMT2MUX樣式表220、XMT2BIFS樣式表230和XMT模式240。XMT模式240定義包含有關(guān)被壓縮的對象數(shù)據(jù)的信息的壓縮節(jié)點,數(shù)據(jù)壓縮參數(shù),以及包含有指定壓縮對象數(shù)據(jù)的位置的信息的BitWrapperEncondingHints。XMT2BIFS樣式表230基于XMT模式240,支持XMT輸入文件向場景文件的轉(zhuǎn)換。XMT2MUX樣式表220基于XMT模式240,支持XMT輸入文件200到復(fù)用(MUX)文件的轉(zhuǎn)換。XMT分析器210使用XMT模式240、XMT2BIFS樣式表230和XMT2MUX樣式表220來分析XMT輸入文件200并且產(chǎn)生場景文件和復(fù)用文件。
壓縮節(jié)點與包含將被壓縮的對象數(shù)據(jù)的節(jié)點字段、緩沖字段和URL字段不兼容,緩沖字段與統(tǒng)一資源定位器字段不兼容并且使用帶內(nèi)場景(in-band scenario)傳輸在節(jié)點中所定義的比特流,以及URL字段與緩沖字段不兼容并且使用帶外場景(out-band scenario)傳輸包含在節(jié)點中的壓縮比特流。數(shù)據(jù)壓縮參數(shù)可以至少包括下列參數(shù)之一用于有關(guān)于對象的頂點坐標(biāo)的基于關(guān)鍵幀(keyframe-based)的動畫數(shù)據(jù)的參數(shù),用于對象的旋轉(zhuǎn)信息的參數(shù),用于被壓縮對象的位置信息的參數(shù)以及用于被壓縮的3D網(wǎng)格信息的參數(shù)。BitWrapperEncondingHints還包含以下信息,有關(guān)諸如壓縮節(jié)點的URL ID之類的對象描述符ID,存儲被壓縮比特流的文件的名字,包含在MUX文件中的文件,以及流格式的類型。
現(xiàn)在將更加詳細(xì)地描述圖2的系統(tǒng)。首先,描述包含有將被壓縮的3D數(shù)據(jù)的壓縮節(jié)點,和使用有關(guān)壓縮節(jié)點的參數(shù)的XMT-A的數(shù)據(jù)壓縮方法。
由于缺少有關(guān)3D數(shù)據(jù)壓縮的XMT-A模式的定義,因此現(xiàn)有的XMT技術(shù)不能分析有關(guān)3D數(shù)據(jù)壓縮的輸入XMT文件??墒牵鶕?jù)本發(fā)明,如圖2所示,XMT-A模式240包含了有關(guān)3D數(shù)據(jù)壓縮的壓縮節(jié)點和相關(guān)參數(shù)的定義。所以,XMT分析器能夠基于XMT-A模式240中的定義、XMT2MUX樣式表220和XMT2BIFS樣式表230,來分析通過使用壓縮節(jié)點而定義3D數(shù)據(jù)壓縮的輸入XMT文件200,并且產(chǎn)生輸入到MPEG-4編碼器的文件。MPEG-4編碼器包括BIFS編碼器250和MP4編碼器260。當(dāng)所產(chǎn)生的文件輸入到BIFS編碼器250和MP4編碼器260時,產(chǎn)生.mp4比特流,由MPEG-4播放器(未示出)可視化并且顯示在顯示器上。
當(dāng)使用壓縮節(jié)點和有關(guān)3D數(shù)據(jù)的基于元語言的參數(shù)時,也就是使用定義3D壓縮節(jié)點和參數(shù)的XMT-A模式,編輯者能夠判定在編輯處理期間,3D數(shù)據(jù)是否將被壓縮。如果判定3D數(shù)據(jù)將被壓縮,則必須使用元語言給出參數(shù)。
如果編輯者判定需要壓縮3D數(shù)據(jù),則在調(diào)整參數(shù)的同時,通過使用隨后兩種方法之一來傳輸3D數(shù)據(jù),所述兩種方法為(i)將3D數(shù)據(jù)壓縮為比特流并且傳輸該比特流;以及(ii)使用已壓縮比特流來傳輸3D數(shù)據(jù)。
上述兩種方法可以細(xì)分為四種方法(i)使用參數(shù)將原始數(shù)據(jù)壓縮為比特流并且使用緩沖器傳輸比特流;(ii)通過緩沖器使用已壓縮比特流來傳輸原始數(shù)據(jù);(iii)使用參數(shù)將原始數(shù)據(jù)壓縮為比特流并且使用URL傳輸比特流;以及(iv)使用URL傳輸已壓縮的比特流。編輯者可以使用上述四種方法之一來傳輸3D數(shù)據(jù)。
接下來,將描述一種在XMT格式中使用元語言表示用于壓縮3D數(shù)據(jù)的因素的方法。在該方法中,通過使用元語言表示有關(guān)3D數(shù)據(jù)壓縮的壓縮節(jié)點和參數(shù)。在該發(fā)明中,將通過3D數(shù)據(jù)壓縮所需要的″BitWrapper″節(jié)點和參數(shù)來描述該方法。
1.有關(guān)BitWrapper節(jié)點的XMT-A模式1.1有關(guān)BitWrapper節(jié)點的BIFS語法BitWrapper{#%NDT=SF2Dnode,SF3Dnode,SFGeometryNodefield SFWorldNode node NULLfield SFlnt32 type 0field MFUrl url[]field SFString buffer ""}簡言之,″BitWrapper″節(jié)點定義從包含在節(jié)點字段中的數(shù)據(jù)到比特流的壓縮和使用帶內(nèi)場景或帶外場景對比特流的傳輸。″url″字段將數(shù)據(jù)的傳輸定義為帶外比特流,以及″buffer″字段將數(shù)據(jù)的傳輸定義為諸如BIFS比特流的帶內(nèi)比特流。
如果編輯者壓縮并且傳輸在″BitWrapper″節(jié)點中所定義的數(shù)據(jù),那么程序設(shè)計者必須調(diào)整用于產(chǎn)生比特流的參數(shù)??梢允褂肵MT-A模式語法來進(jìn)行參數(shù)的調(diào)整。然而,由于參數(shù)除了與特殊的編碼語法相關(guān)外還與譯碼語法相關(guān),因此在數(shù)據(jù)壓縮期間可以調(diào)整參數(shù)?!錌itWrapper″節(jié)點通過使用七種壓縮工具而支持被壓縮比特流的傳輸。
接下來,將要描述有關(guān)用于″BitWrapper″節(jié)點和有關(guān)3D關(guān)鍵幀動畫數(shù)據(jù)的三個″坐標(biāo)內(nèi)插器(coordinate interpolator)″,″方向內(nèi)插器(orientationinterpolator)″和″位置內(nèi)插器(position interpolator)″節(jié)點,以及表示3D網(wǎng)格信息的″IndexedFaceSet″節(jié)點的參數(shù)的XMT-A模式。
1.2有關(guān)″BitWrapper″節(jié)點的XMT-A模式1.2.1語法< xml version="1.0"encoding="UFT-8" >
<schema xmlns="http://www.w3.org/2001/XML Schema"xmlns:xmta="urn:mpeg:mpeg4:xmta:schema:2002"targetNamespace="um:mpeg:mpeg4:xmta:schema:2002"elementFormDefault="qualified">
<element name="BitWrapper">
<complex Type>
<element name="node"minOccurs="0" form="qualified">
<complex Type>
<group ref="xmta:SFWorldNodes Type" minOccurs="0">
</complex Type>
</element>
<choice>
<element name="coordinateInterpolatorEncodingParameter"minOccurs="0"maxOccurs="1">
<complex Type>
<attributename="keyQbits" type="xmta:numOfKeyQBits"use="optional"default="8"/>
<attribute name="keyValueQbits" tyPe="xmta:numOfKeyQBits"use="optional"default="16"/>
<attribute name="transpose" type="xmta:transpose Type"use="optional"default="&quot;ON&quot;"/>
<attribute name="linearKeycoder"type="xmta:linearKeycoder Type" use="optional"default="&quot;LINEAR&quot;"/>
</complex Type>
</element>
<element name="indexedFaceSetEncodingParameter" minOccurs="0"maxOccurs="1">
<complex Type>
<attribute name="coordQBits" type="xmta:numOfCoordQBits"use="optional"default="10"/>
<attribute name="normalQBits" type="xmta:numOfCoordQBits"use="optional"default="9"/>
<attribute name="colorQBits" type="xmta:numOfCoordQBits"use="optional"default="6"/>
<attribute name="texCoordQBits" type="xmta:numOfCoordQBits"use="option al"default="10"/>
<attribute name="coordPredMode" type="xmta:coordPredType"use="optional"default="2"/>
<attribute name="normalPredMode" type="xmta:normalPredType"use="optional"default="0"/>
<attribute name="colorPredMode" type="xmta:colorPredType"use="optional"default="0"/>
<attribute name="texCoordPredMode" type="xmta:texCoordPredType"use="optional"default="0"/>
<attribute name="errorResilience" type="xmta:errorResilience Type"use="optional"default="&quot;OFF&quot;"/>
<attribute name="bitsPerPacket" type="xmta:SFInt32" use="optional"default="360"/>
<attribute name="boundaryPrediction"type="xmta:boundPredictionType" use="optional"default="0"/>
</complexType>
</element>
<element name="OrientationInterpolatorEncodingParameter"minOccurs="0"maxOccurs="1">
<complexType>
<attribute name="keyQbits" type="xmta:numOfKeyQBits"use="optional"default="8"/>
<attribute name="keyValueQbits" type="xmta:numOfKeyQBits"use="optional"default="16"/>
<attribute name="preservingMode" type="xmta:preservingType" use="optional"default="&quot;KEY&quot;"/>
<attribute name="dpcmMode" type="xmta:orientationDpcmType" use="optional"degsult="0"/>
<attribute name="aacMode_X" type="xmta:aacType" use="optional"default="&quot;BINARY&quot;"/>
<attribute name="aacMode_Y" type="xmta:aacType" use="optional"default="&quot;BINARY&quot;"/>
<attribute name="aacMode_Z" type="xmta:aacType" use="optional"default="&quot;BINARY&quot;"/>
<attribute name="linearKeycoder" type="xmta:linearKeycoderType"use="optional"default="&quot;LINEAR&quot;"/>
</complex Type>
</element>
<element name="PositionInterpolatorEncodingParameter"minOccurs="0"maxOccours="1">
<complex Type>
<attribute name="keyQBits" type="xmta:numOfKeyQBits"use="optional"default="8"/>
<attribute name="keyValueQBits" type="xmta:numOfKeyQBits"use="optional"default="16"/>
<attribute name="preservingMode" type="xmta:preservingType" use="optional"default="&quot;KEY&quot;"/>
<attribute name="dpcmMode_X"type="xmta:positionDpcmType" use="optional"default="0"/>
<attribute name="dpcmMode_Y" tyPe="xmta:positionDpcmType"use="optional"default="0"/>
<attribute name="dpcmMode_Z" type="xmta:positionDpcmType"use="optional"default="0"/>
<attribute name="aacMode_X" type="xmta:aacType" use="optional"default="&quot;BINARY&quot;"/>
<attribute name="aacMode_Y" type="xmta:aacType" use="optional"default="&quot;BINARY&quot;"/>
<attribute name="aacMode_Z" type="xmta:aacType" use="optional"default="&quot;BINARY&quot;"/>
<attribute name="linearKeycoder" type="xmta:linearKeycoderType"use="optional"default="&quot;LINEAR&quot;"/>
<attribute name="intra_X" type="xmta:intraType" use="optional"default="0"/>
<attribute name="intra_Y" type="xmta:intraType" use="optional"default="0"/>
<attribute name="intra_Z" type="xmta:intraType" use="optional"default="0"/>
</complex Type>
</element>
<element name="WaveSubdivisionSurfaceEncodingParameter">
</element>
<element name="MeshGridEncodingParameter">
</element>
</choice>
<attribute name="type" type="xmta:SFInt32" use="optional"default="0"/>
<attribute name="buffer" type="xmta:SFString" use="optional"/>
<attribute name="url" type="xmta:MFUrl" use="optional"/>
<attribute Group ref="xmta:DefUseGroup"/>
<complex Type>
</element>
</schema>
1.2.2語義″BitWrapper″是一種用于節(jié)點壓縮的專用模式。在BIFS流或外部分離流中傳輸被壓縮數(shù)據(jù)的表示。當(dāng)在BIFS更新內(nèi)傳輸流時,″緩沖器″字段包含被壓縮數(shù)據(jù)的表示。如果在BIFS更新之外的分離流中傳輸流時,″url″字段包含一個流的URL。
作為替代,″緩沖器″字段和″url″字段相互之間不兼容。也就是說,在″緩沖器″字段的使用期間不使用″url″字段,反之亦然?!骞?jié)點″字段包括一個表示被壓縮數(shù)據(jù)的節(jié)點?!錌itWrapper″節(jié)點能夠在″節(jié)點″上使用。″type″字段指示用于節(jié)點壓縮所使用的模式。″type″字段的默認(rèn)值為0。在考慮到為同一節(jié)點而開發(fā)另用于節(jié)點壓縮的模式的可能性,來指定″type″字段的值。另一個可能的模式定義為默認(rèn)的模式。
″CoordinateInterpolatorEncodingParameter″定義參數(shù),該參數(shù)用于在基于關(guān)鍵幀的動畫數(shù)據(jù),也就是,坐標(biāo)內(nèi)插器節(jié)點數(shù)據(jù)中的一個對象的頂點坐標(biāo)的壓縮。在該情況下,″節(jié)點″字段是″CoordinateInterpolator″節(jié)點。
″IndexedFaceSetEncodingParameter″定義參數(shù),該參數(shù)用于3D網(wǎng)格信息,也就是IndexedFaceSet節(jié)點數(shù)據(jù)的壓縮。在該情況中,″節(jié)點″字段是一個″IndexedFaceSet″節(jié)點。
″OrientationInterpolatorEncodingParameter″定義參數(shù),該參數(shù)用于基于關(guān)鍵幀的動畫數(shù)據(jù)中,也就是,方向內(nèi)插器節(jié)點數(shù)據(jù)中的一個對象的旋轉(zhuǎn)信息的壓縮。在該情況下,″節(jié)點″字段是″OrientationInterpolator″節(jié)點。
″PositionInterpolatorEncodingParameter″定義參數(shù),該參數(shù)用于基于關(guān)鍵幀的動畫數(shù)據(jù)中,也就是,位置內(nèi)插器節(jié)點數(shù)據(jù)中的一個對象的位置信息的壓縮。在該情況下,″節(jié)點″字段是″PositionInterpolator″節(jié)點。
在數(shù)據(jù)壓縮期間不使用參數(shù)的情況中,文件不包含參數(shù)的描述。當(dāng)使用參數(shù)壓縮數(shù)據(jù)時,每一參數(shù)字段必須獨占使用,因為一個″節(jié)點″字段恰好對應(yīng)一個被壓縮的節(jié)點數(shù)據(jù)類型,并且通過″<choice>″元素來分組參數(shù)字段。稍后描述每一參數(shù)字段的″屬性(attribute)″。
當(dāng)壓縮的數(shù)據(jù)的表示包含在分離流中并被傳輸時,在預(yù)定的幀中必須給出節(jié)點譯碼器。
在對象描述符流中,考慮到″streamType 0x03″和″objectTypeIndication0x05″而必須將節(jié)點譯碼器定義在DecoderConfig描述符。該譯碼器配置有一個AFXConfig描述符。
1.3numOfKeyQBits1.3.1語法<simpleType name="numOfKeyQBits">
<restriction base="int">
<minInclusive value="0"/>
<maxInclusive value="31"/>
</restriction>
</simple Type>
1.3.2語義numOfKeyQBits指示一個表明關(guān)鍵數(shù)據(jù)(key data)的量化比特大小的整數(shù)值。numOfKeyQBits的最小和最大值分別是0和31。
1.4numOfKeyValueQBits1.4.1語法<simpleType name="numOfKeyValueQBits">
<restriction base="int">
<minInclusive value="0"/>
<maxInclusive value="31"/>
</restriction>
</simple Type>
1.4.2語義numOfKeyValueQBits指示一個表明鍵值(Key Value)數(shù)據(jù)的量化比特大小的整數(shù)值。numOfKeyValueQBits的最小和最大值分別是0和31。
1.5 linearKeycoderType1.5.1語法<simpleType name="linearKeycoderType">
<restriction base="string">
<enumeration value="&quot;LINEAR&quot;"/>
<enumeration value="&quot;NOLINEAR&quot;"/>
</restriction>
</simple Type>
1.5.2語義linearKeycoderType是一個字符串類型并且指示是否使用線性關(guān)鍵編碼器。
1.6preservingType1.6.1語法<simpleType name="preservingType">
<restriction base="string">
<enumeration value="&quot;KEY&quot;"/>
<enumeration value="&quot;PATH&quot;"/>
</restriction>
</simple Type>
1.6.2語義preservingType是一個字符串類型并且指示當(dāng)前模式是關(guān)鍵字保持模式(key preserving mode)還是路徑保持模式(path preserving mode)。
1.7accType1.7.1語法<simpleType name="accType">
<restriction base="string">
<enumeration value="&quot;BINARY&quot;"/>
<enumeration value="&quot;UNARY&quot;"/>
</restriction>
</simple Type>
1.7.2語義
accType是一個字符串類型并且考慮鍵值分量(X,Y,Z)而指示當(dāng)前是二進(jìn)制AAC模式還是一元AAC模式。
1.8orientationDpcmType1.8.1語法<simpleType name="orientationDpcmType">
<restriction base="int">
<enumeration value="1"/>
<enumeration value="2"/>
</restriction>
</simple Type>
1.8.2語義orientationDpcmType考慮不同鍵值分量(X,Y,Z)而指示一個表明所使用的DPCM的順序的一個整數(shù)值。如果DPCM的等級(degree)是1,則標(biāo)記將被設(shè)置為0。如果DPCM的等級是2,則標(biāo)記被設(shè)置為1。
1.9positionDpcmType1.9.1語法<simpleType name="positionDpcmType">
<restriction base="int">
<enumeration value="0"/>
<enumeration value="1"/>
<enumeration value="2"/>
</restriction>
</simple Type>
1.9.2語義positionDpcmType考慮不同鍵值分量(X,Y,Z)而指示一個表明所使用的DPCM的等級的一個整數(shù)值。如果DPCM的等級是1,則標(biāo)記將被設(shè)置為0。如果DPCM的等級是2,則標(biāo)記被設(shè)置為1。當(dāng)使用SAD時,標(biāo)記被設(shè)置為2。
1.10intraType1.10.1語法<simpleType name="intraType">
<restriction base="int">
<enumeration value="0"/>
<enumeration value="1"/>
</restriction>
</simple Type>
1.10.2語義intraType用于位置內(nèi)插器壓縮。IntraType考慮不同的鍵值分量(X,Y,Z)而指示是否使用內(nèi)(intra)編碼模式。
1.11transposeType1.11.1語法<simpleType name="transposeType">
<restriction base="string">
<enumeration value="&quot;ON&quot;"/>
<enumeration value="&quot;OFF&quot;"/>
</restriction>
</simple Type>
1.11.2語義transposeType指示用于轉(zhuǎn)置模式或頂點模式的標(biāo)記。如果值被設(shè)置為″ON″,則使用轉(zhuǎn)置模式。否則,使用頂點模式。
1.12numOfCoordQBits1.12.1語法<simpleType name="numOfCoordQBits">
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="24"/>
</restriction>
</simple Type>
1.12.2語義numOfCoordQBits指示用于幾何結(jié)構(gòu)的量化級。NumOfCoordQBits的最小和最大值分別是1和24。
1.13numOfNormalQBits1.13.1語法
<simpleType name="numOfNormalQBits">
<restriction base="int">
<minInclusive value="3"/>
<maxInclusive value="31"/>
</restriction>
</simple Type>
1.13.2語義numOfNormalQBits指示一個標(biāo)準(zhǔn)量化級。NumOfNormalQBits的最小和最大值分別是3和31。
1.14numOfColorQBits1.14.1語法<simpleType name="numOfColorQBits">
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="16"/>
</restriction>
</simple Type>
1.14.2語義numOfColorQBits指示用于顏色的量化級。NumOfColorQBits的最小和最大值分別是1和16。
1.15numOfTexCoordQBits1.15.1語法<simpleType name="numOfTexCoordQBits">
<restriction base="int">
<minInclusive value="1"/>
<maxInclusive value="16"/>
</restriction>
</simple Type>
1.15.2語義numOftexCoordQBits指示用于結(jié)構(gòu)坐標(biāo)(texture coordinates)的量化級。NumOftexCoordQBits的最小和最大值分別是1和16。
1.16coordPredType1.16.1語法<simpleType name="coordPredType">
<restriction base="int">
<enumeration value="0"/>
<enumeration value="2"/>
</restriction>
</simple Type>
1.16.2語義coordPredType指示用于重構(gòu)網(wǎng)格的頂點坐標(biāo)的預(yù)測值的類型。當(dāng)使用no_prediction(無_預(yù)測)值時,coordPredType被設(shè)置為1。當(dāng)使用parallelogram_prediction(平行四邊形_預(yù)測)時,coordPredType被設(shè)置為2。
1.17normalPredType1.17.1語法<simpleType name="normalPredType">
<restriction base="int">
<enumeration value="0"/>
<enumeration value="1"/>
<enumeration value="2"/>
</restriction>
</simple Type>
1.17.2語義normalPredType描述正常值的預(yù)測。當(dāng)選擇no_prediction時,normalPredType被設(shè)置為0。當(dāng)選擇tree_prediction(樹_預(yù)測)時,coordPredType被設(shè)置為1。當(dāng)選擇parallelogram_prediction時,NormalPredType設(shè)置為2。
1.18colorPredType1.18.1語法<simpleType name="colorPredType">
<restriction base="int">
<enumeration value="0"/>
<enumeration value="1"/>
<enumeration value="2"/>
</restriction>
</simple Type>
1.18.2語義colorPredType描述怎樣預(yù)測顏色。當(dāng)選擇no_prediction時,colorPredType被設(shè)置為0。當(dāng)時選擇tree_prediction時,colorPredType被設(shè)置為1。當(dāng)選擇parallelogram_prediction時,colorPredType設(shè)置為2。
1.19texCoordPredType1.19.1語法<simpleType name="texCoordPredType">
<restriction base="int">
<enumeration value="0"/>
<enumeration value="2"/>
</restriction>
</simple Type>
1.19.2語義texCoordPredType描述顏色的預(yù)測。如果選擇了no_prediction,那么texCoordPredType被設(shè)置為0。當(dāng)使用parallelogram_prediction時,texCoordPredType被設(shè)置為2。
1.20errorResilienceType1.20.1語法<simpleType name="errorResilienceType">
<restriction base="string">
<enumeration value="&quot;ON&quot;"/>
<enumeration value="&quot;OFF&quot;"/>
</restriction>
</simple Type>
1.20.2語義errorResilienceType是一個指示是否使用容錯(Error Resilience)模式的值。如果不使用容錯模式,則該值被設(shè)置為″OFF″。如果使用容錯模式,則該值被設(shè)置為″ON″。只有當(dāng)該值設(shè)置為″ON″時,boundaryPredictionType和bitsPerPacket才是有效的。
1.21boundaryPredictionType1.21.1語法<simpleType name="boundaryPredictionType">
<restriction base="int">
<enumeration value="0"/>
<enumeration value="1"/>
</restriction>
</simple Type>
1.21.2語義BoundaryPredictionType指示一個表明邊界預(yù)測類型的值。如果該值為0,則使用受限制的預(yù)測,并且如果該值為1,則使用擴展的預(yù)測。
1.22bitsPerPacket1.22.1語法″bitsPerPacket″的語法與SFIint32的類型相同。
<simpleType name="SFIint32">
<restriction base="int">
</simple Type>
1.22.2語義BitsPerPacket指示一個表明容錯比特流的包大小的值。根據(jù)該值來指定容錯模式中每一部分的大小。BitsPerPacket的類型是SFInt32。默認(rèn)值是360。
2.用于BitWrapperEncodingHints的XMT-A模式2.1 BitWrapperEncodingHints2.1.1.語法″BitWrapperEncodingHints″的語法如下:
<!--聲明BitWrapperEncodingHints-->
<element name="StreamSource">
<complex Type>
<choice minOccurs="0"maxOccurs="unbounded">
<element ref="xmta:BitWrapperEncodingHints"/>
</choice>
...
</complexType>
</element>
...
<!--聲明BitWrapperEncodingHints-->
<element name="BitWrapperEncodingHints">
<complex Type>
<element name="BitWrapper3DMCEncodingHints">
<complex Type>
<sequence>
<element name="sourceFormat">
<complexType>
<sequence>
<element ref="xmta:apram"minOccurs="0"maxOccurs="unbounded"/>
</sequence>
</complex Type>
</element>
<element name="targetFormat">
<complexType>
<sequence>
<element ref="xmta:apram"minOccurs="0"maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
<element name="BitWrapperICEncodingHints">
<complex Type>
<sequence>
<element name="sourceFormat">
<complexType>
<sequence>
<element ref="xmta:apram"minOccurs="0"maxOccurs="unbounded"/>
</sequence>
</complex Type>
</element>
<element name="sourceFormat">
<complexType>
<sequence>
<element ref="xmta:apram"minOccurs="0"maxOccurs="unbounded"/>
</sequence>
</complex Type>
</element>
</sequence>
</complexType>
</element>
<element name="OthersEncodingHints">
...
</element>
</complexType>
</element>
2.1.2語義BitWrapperEncodingHints用于指定腳本(.mux)文件中的″MuxInfo″描述。在該情況中,BitWrapperEncodingHints的格式與二進(jìn)制文本格式的相應(yīng)格式相同。″BitWrapper″節(jié)點通過使用″BitWrapper″節(jié)點中的″url″字段,而被用于帶外場景。BitWrapperEncodingHints定義″MuxInfo″描述的流格式類型。
3.修改XMT2MUX樣式表中的BitWrapperEncodingHints現(xiàn)在將描述在XMT2MUX樣式表中對″MuxInfo″和″BitWrapperEncodingHints″的修改。
3.1語法原始的″MuxInfo″和″BitWrapperEncodingHints″的語法如下:
<xsl:template match="xmt:StreamSource">muxInfo{filename<xsl:value-ofselect=″@url"/><xsl:text>
<!--為urls作什么?-->
<xsl:text>
<!----如果沒有給出編碼提示,就假定流是BIFS格式,否則流格式應(yīng)該在源格式或目標(biāo)格式的參數(shù)元素中明確(相應(yīng)于流格式的名稱‘streamFormat’和值由BIFSEnc識別)-->
<xsl:if test="not(xmt:EncodingHints)">streamFormat BIFS<xsl:text>
</xsl:text></xsl:if>
<xsl:apply-templatesselect="xmt:EncodingHints"|xmt:BIFSEncodingHints|xmt:FBAEncodingHints"/>
}</xsl:template>
對″MuxInfo″和″BitWrapperEncodingHints″語法的修改如下<xsl:template match="xmt:StreamSource">muxInfo MuxInfo{filename<xsl:value-of selec="@url"/>
<xsl:apply-templatesselect="xmt:EncodingHints|xmt:BIFSEncodingHints|xmt:FBAEncodingHints|xmt:BitWrapperEncodingHints"/>
<xsl:iftest="not(xmt:EncodingHints|xmt:BitWrapperEncodingHints)">streamFormat BIFS<xsl:text>
</xsl:text></xsl:if>
<xsl:if test="xmt:BitWrapperEncodingHints"><xsl:text>
</xsl:text></xsl:if>
<xsl:apply-templatesselect="xmt:BitWrapper3DMCEncodingHints|xmt:BitWrapperICEncodingHints|xmt:OthersEncodingHints"/>
}<xsl:template match="xmt:BitWrapperEncodingHints">
<xsl:apply-templatesselect="xmt:BitWrapper3DMCEncodingHints|xmt:BitWrapperICEncodingHints|xmt:OthersEncodingHints"/>
<xsl:apply-templates select="xmt:sourceFormat|xmt:targetFormat"/>
</xsl:template>
<xsl:template match="xmt:BitWrapper3DMCEncodingHints">
<xsl:apply-templates select="xmt:sourceFormat|xmt:targetFormat"/>
streamFormat3DMC<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="xmt:BitWrapperICEncodingHints">
<xsl:apply-templates select="xmt:sourceFormat|xmt:targetFormat"/>
streamFormatInterpolatorCompression<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="xmt:OthersEncodingHints">
<xsl:apply-templates select="xmt:sourceFormat|xmt:targetFormat"/>
streamFormatBIFS<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="xmt:sourceFormat">
<xsl:apply-templates select="xmt:param"/>
</xsl:template>
<xsl:template match="xmt:targetFormat">
<xsl:apply-templates select="xmt:param"/>
</xsl:template>
</xsl:template>
3.2語義在原始的語法中,XMT2MUX樣式表不能充分地描述有關(guān)被傳輸?shù)組P4編碼器的比特流的MUX信息。例如,并沒有定義比特流的名字和類型。同樣,當(dāng)在″BitWrapper″節(jié)點定義URL時,XMT2MUX樣式表也不能指定有關(guān)經(jīng)由URL傳輸?shù)谋忍亓鞯模T如圖6中″bunny-15000-tcp.m3d″文件和流格式的信息。作為代替,MT2MUX樣式描述存儲比特流的文件的名字和在″BitWrapper″節(jié)點定義的比特流的類型。更為詳細(xì)地,在一個內(nèi)插器壓縮流格式中描述3D動畫數(shù)據(jù)的壓縮,以及在3DMC流格式中描述3D網(wǎng)格數(shù)據(jù)的壓縮。
4.對ObjectDescriptorUpdate的修改4.1語法現(xiàn)在將描述在XMT2BIFS樣式表中對″ObjectDescriptorUpdate″語法的修改。
原始的″ObjectDescriptorUpdate″的語法如下:
<xsl:template match="xmt:ObjectDescriptorUpdate">
UPDATE OD[<xsl:apply-templates select="xmt:OD"/>
]</xsl:template>
修改過的″ObjectDescriptorUpdate″語法如下<xsl:template match="xmt:ObjectDescriptorUpdate">
UPDATE OD[<xsl:apply-templates select="xmt:OD"/>
]</xsl:template>
<xsl:templates match="xmt:OD"/>
<xsl:apply-templates select="xmt:ObjectDescriptorBase"/>
</xsl:template>
<xsl:templates match="xmt:ObjectDescriptorBase">
<xsl:apply-templatesselect="xmt:ObjectDescriptor|xmt:InitialObjectDescriptor"/>
</xsl:template>
<xsl:template match="xmt:ObjectDescriptor">
ObjectDescriptor{<xsl:if text="@ObjectDescriptorID">ObjectDescriptor ID<xsl:value-ofselect="@ObjectDescriptorID"/></xsl:if>
<xsl:text></xsl:text>
<xsl:apply-templates select="xmt:URL"/>
}</xsl:template>
</xsl:template match="xmt:URL">
<xsl:if test="@URLstring">muxScript<xsl:value-of select="@URLsting"/></xsl:if>
<xsl:text></xsl:text>
</xsl:template>
4.2語義在原始的″ObjectDescritorUpdate″語法中,″Update OD″不含有描述。在修改過的″ObjectDescriptorUpdate″語法中,當(dāng)編輯者將一個場景描述流(BIFS流)經(jīng)由″url″字段鏈接到另一個元素流時,可以使用″Update OD″。同樣,ObjectDescriptorID和腳本文件(script file)加到″Update OD″?!錙bjectDescriptorUpdate″語法的格式與二進(jìn)制文本格式的格式相同。
在下文中,將描述根據(jù)本發(fā)明,使用有關(guān)圖形數(shù)據(jù)壓縮的元語言的輸入文件生成方法和系統(tǒng)。
首先,參考圖2和4來描述根據(jù)本發(fā)明的優(yōu)選實施例,使用編碼參數(shù)將原始數(shù)據(jù)壓縮為比特流和使用緩沖器傳輸比特流的方法。
圖4說明以下情況使用參數(shù),將有關(guān)諸如杯子(cup)這樣的對象A的3D數(shù)據(jù),例如幾何結(jié)構(gòu)信息、連接信息和顏色信息壓縮成比特流,并且使用緩沖器將比特流傳輸?shù)健錌ufferWithEP.m3d″。如圖2所示,當(dāng)輸入XMT文件輸入到XMT分析器210時,XMT分析器210基于XMT-A模式,使用XMT2BIFS和XMT2MEX樣式表將與場景數(shù)據(jù)一起的比特流插入到的″.scene″文件中,并且將″.scene″文件傳輸?shù)紹IFS編碼器。在該情況中,″.mux″文件包含有一個對操作BIFS編碼器的結(jié)果進(jìn)行描述的″.bifs/.od″文件,該BIFS編碼器是MPEG-4編碼器。同樣,當(dāng)包含在″.mux″流中的信息和″.bif/.od″文件輸入到MP4編碼器時,產(chǎn)生″.mp4″文件。使用MPEG-4播放器可以再現(xiàn)″.mp4″文件(有關(guān)細(xì)節(jié)參見隨后的實施例1)。
XMT文件的例子如下,其中該文件定義通過使用″BitWrapper″節(jié)點和參數(shù)而將有關(guān)原始數(shù)據(jù)的3D網(wǎng)格信息壓縮成比特流,并且通過使用緩沖器來傳輸比特流<Header>
<InitialObjectDescriptor objectDescriptorID="1"binaryID="1">
<Descr>
<esDesct>
<ES_Descriptor ES_ID="xyz'binaryID="201"OCR_ES_ID="xyz">
...
<StreamSource>
<BIFSEncodingHints>
<sourceFromat>
<param value="BufferWithEP.bif"></param>
</sourceFormat>
</BIFSEncodingHints>
</StreamSource>
</ES_pesciptor>
</esDescr>
</Descr>
</InitialObjectDescriptor>
</Header>
...
<BitWrapper type="0"buffer="MyIndexFaceSetv.m3d">
<node>
<IndexedFaceSet ccw="TRUE" solid="TRUE"
coordIndex="0,1,2,-1,3,4,5,-1,..."normalPerVertex="TRUE">
<coord DEF="Box-COORD"></coord>
<Coordinate point="0 1 2,0 2 3,4 0 1,1 5 4,5 1 2,2 65,..."></Coordinate>
<normal>
<Normal vector="0.7859-0.341-0.5157,0.38120.8010.4615,...">
</Normal></normal>
</IndexedFaceSet>
</node>
<IndexedFaceSetEncodingParameter coordQBits="10'normalQBits="9"coordPredModenormalPredMode="0" errorResilience="OFF">
</IndexedFaceSetEncodingParameter>
</BitWrapper>
...
如果XMT分析器210接收到實施例1中的XMT文件,其中所述XMT文件使用″BitWrapper″節(jié)點和參數(shù)定義壓縮的3D網(wǎng)格信息的表示,那么XMT分析器210使用在″BitWrapper″節(jié)點中定義的3D網(wǎng)格信息的壓縮參數(shù)壓縮XMT文件并且產(chǎn)生比特流。XMT文件的壓縮和比特流的產(chǎn)生基于定義″BitWrapper″節(jié)點和參數(shù)的XMT-A模式。同樣,使用″XMT2BIFS″和″XMT2MUX″樣式表來產(chǎn)生XMT-A模式,和輸入到MPEG-4編碼器的″.scene″及″.mux″文件。結(jié)果,獲得隨后的文件-"BufferWithEP.scene"File...
BitWrapper{node indexedFaceSet{ccw="TRUE"solid="TRUE"coordIndex="0,1,2,-1,3,4,5,-1,..."normalPerVertex="TRUE"coord DEF Box-COORD Coordinate{
point[]0 1 2,0 2 3,4 0 1,1 5 4,5 1 2,2 6 5,...]}normal Normal{Vector
}}IndexedFaceSetEncodingParameter{coordQBits 10NormalQBits 9coordPredMode 2normalPredMode 0errorResilience OFF}type 0buffer"MyIndexFaceSet.m3d"}...
-"BufferWithEP.mux"FileInitialObjectDescriptor{...
muxInfo MuxInfo{fileName"BufferWithEP.bif"streamFormat BIFS}}將上述的″.scene″和″.mux″文件輸入到MPEG-4播放器并且通過BIFS編碼器250產(chǎn)生″.bifs/.od″文件。然后,將″.bifs/od″文件和″.mux″文件輸入到MP4編碼器260,從而產(chǎn)生″.mp4″比特流。最后,在MPEG-4播放器的屏幕上可視化″.mp4″文件。
第二,參考圖2和5來描述,通過使用一個緩沖器來傳輸使用了已壓縮比特流的原始數(shù)據(jù)的方法。
參考圖5,與使用有關(guān)在輸入XMT文件中所指定的″BitWrapper″節(jié)點中定義的對象A的參數(shù)和3D數(shù)據(jù)將原始數(shù)據(jù)壓縮成比特流并使用緩沖器來傳輸比特流的第一種情況相比,將有關(guān)諸如一個杯子的對象A的3D數(shù)據(jù),例如幾何結(jié)構(gòu)信息、連接信息和顏色信息已經(jīng)壓縮成比特流,并且經(jīng)緩沖器將比特流傳輸?shù)健錌ufferWithEP.m3d″。
如圖2所示,一接收到XMT文件200,XMT分析器210基于XMT-A模式240,使用XMT2MUX和XMT2BIFS樣式表220和230,將已壓縮的比特流和場景數(shù)據(jù)一起插入到″.scene″比特流,并且傳輸″.scene″比特流。在該情況中,″.mux″文件包含了一個通過BIFS編碼器250也就是MPEG-4編碼器所產(chǎn)生的″.bits/.od″文件。還,將″.mux″和″.bifs/.od″文件輸入到MP4編碼器260中,從而通過MPEG-4播放器產(chǎn)生和顯現(xiàn)一個最終的″.mp4″文件。在實施例2中已經(jīng)公開了通過一個緩沖器來傳輸使用已壓縮的比特流的原始數(shù)據(jù)的方法的一個實例。
如下是XMT文件的一個例子,其中該文件描述如在″BitWrapper″節(jié)點中定義的3D網(wǎng)格信息的已壓縮比特流表示的傳輸。
...
<Header>
<InitialObjectDescriptor objectDescriptorID="1"binaryID="1">
<Descr>
<esDescr>
<ES_DescriptorES_ID="xyz"binaryID="201"OCR_ES_ID="xyz">
...
<StreamSource>
<BIFSEncodingHints>
<sourceFormat>
<param value="BufferWithoutEP.bif"></param>
</sourceFormat>
</BIFSEncodingHints>
</StreamSource>
</ES_Descriptor>
</esDescr>
</Descr>
</InitialObjectDescriptor>
</Header>
<Body>
<Replace>
<Scene>
<Group>
<children>
<Shape>
<geometry DEF="MY_BOX">
<BitWrapper type="0"buffer="MyIndexFaceSet.m3d">
<node>
<IndexedFaceSet>
<coord DEF="Box-COORD"></coord>
<Coordinate></Coordinate>
</node>
</BitWrapper>
</geometry>
</shape>
</children>
</Group>
</Scene>
</Replace>
</Body>
...
如實施例2所公開的,一接收到XMT文件,XMT分析器210就產(chǎn)生將使用在″BitWrapper″節(jié)點中定義的緩沖器傳輸?shù)谋忍亓?,其中XMT文件定義使用在″BitWrapper″節(jié)點定義的緩沖器傳輸代表3D網(wǎng)格信息的已壓縮比特流,該比特流表示被壓縮的3D網(wǎng)格信息。該比特流是依據(jù)定義″BitWrapper″節(jié)點和參數(shù)的XMT-A模式而產(chǎn)生的。并且,如下所示,通過使用XMT-A模式以及XMT2BIFS和XMT2MUX樣式表230和220,來產(chǎn)生將被輸入到MPEG-4編碼器中的″.scene″和″.mux″文件。
-BufferWithoutEP.scene File...
BitWrapper{Node IndexedFaceSet{coord DEF Box-COORD Coordinat{}}type 0buffer"MyIndexFaceSet.m3d″}...
-BufferWithoutEP.mux FileInitialObjectDescriptor{...
muxInfo MuxInfo{fileName"BufferWithoutEP.bif"streamFormat BIFS}}將″.scene″和″.mux″文件輸入到MPEG-4編碼器并且通過BIFS編碼器250產(chǎn)生″.bifs/.od″文件。將該″.bifs/.od″文件(或比特流)和″mux″文件輸入到MP4編碼器260,從而獲得″.mp4″比特流。在MPEG-4播放器的屏幕上可視化該″mp4″文件。
第三,參考附圖2和6將描述,通過使用參數(shù)而將原始數(shù)據(jù)壓縮成比特流并且使用URL傳輸比特流的方法的實施例。
圖6說明一種使用參數(shù),將有關(guān)諸如杯子之類的對象A的3D數(shù)據(jù)(例如幾何結(jié)構(gòu)信息、連接信息和顏色信息)壓縮成比特流并且經(jīng)由″BitWrapper″節(jié)點所定義的URL來傳輸比特流的方法。該方法不同于將3D數(shù)據(jù)壓縮成比特流并且通過緩沖器傳輸比特流的方法。更準(zhǔn)確地說,在該方法中,在″BitWrapper″節(jié)點中定義例如12的url ID,具有諸如url ID的ObjectDescriptorID的″BitWrapperEncodingHints″能夠指定有關(guān)對象A的3D數(shù)據(jù)的被壓縮比特流表示的位置,也就是″bunny-15000-tcp.m3d″文件,并且基于″BitWrapperEncodingHints″字段傳輸被壓縮的數(shù)據(jù)。接下來,有關(guān)3D數(shù)據(jù)的被壓縮比特流表示的位置的信息包含在有關(guān)″.mux″文件的信息中。有關(guān)″.mux″文件的位置信息在″ObjectDescriptorUpdate″也就是″BitWrapper″節(jié)點的url ID中描述。有關(guān)″.mux″文件的位置信息鏈接到,有關(guān)對象A的3D數(shù)據(jù)的被壓縮比特流表示的位置信息,也就是″bunny-15000-tcp.m3d″文件。有關(guān)3D數(shù)據(jù)的被壓縮比特流表示的位置信息鏈接到3D數(shù)據(jù)的被壓縮比特流表示。從而,經(jīng)由URL來傳輸″bunny-15000-tcp.m3d″文件的比特流表示。
當(dāng)在輸入到XMT分析器210的圖2的輸入XMT文件200中說明圖6的方法時,XMT分析器210基于XMT-A模式240,使用XMT2BIFS和XMT2MUX樣式表230和220,將有關(guān)″.mux″文件的位置信息和場景數(shù)據(jù)一起插入到″.scene″文件,并且傳輸該″.scene″文件。所述的″.mux″文件包括一個通過包含在MPEG-4編碼器中的BIFS編碼器250所產(chǎn)生的″.bifs/.od″文件。同樣,″.mux″文件包含有指定表示有關(guān)對象A的3D數(shù)據(jù)的比特流的位置的″bunny-15000-tcp.m3d″文件。
當(dāng)有關(guān)3D數(shù)據(jù)的比特流表示的位置信息和″.bifs/.od″文件被輸入到MP4編碼器260時,在MPEG-4播放器的屏幕上產(chǎn)生并顯示一個作為比特流文件的″.mp4″文件,其中在″.mux″文件中指定3D數(shù)據(jù)的比特流表示。
通過實施例3將更加詳細(xì)地描述圖6的方法。
如下是XMT文件的一個實例,描述使用參數(shù)來壓縮有關(guān)原始數(shù)據(jù)的3D網(wǎng)格信息并且通過″BitWrapper″節(jié)點中所定義的URL來傳輸比特流。
<Header>
...
<ObjectDescriptor objectDescriptorID="12"binaryID="12">
<Descr>
<esDescr>
<ES_DescriptorES_ID="PI"binaryID="211"OCR_ES_ID="PIC">
...
<StreamSource>
<BitWrapperEncodingHints>
<BitWrapper3DMCEncodingHints>
<sourceFormat>
<param value="bunny-15000-tcp.m3d"></param>
</sourceFormat>
</BitWrapper3DMCEncodingHints>
</BitWrapperEncodingHints>
</StreamSource>
</ES_Descriptor>
</esDescr>
</Descr>
</ObjectDescriptor>
</Header>
<Body>
<Replace>
<Scene>
<Group>
<children>
<Shape>
<geometry DEF="MY_BOX">
<Box size="69"></Box>
<BitWrapper type="0"url="12"><node>
<IndexedFaceSet ccw="TRUE"solid="TRUE"
coordIndex="0,1,2,-1,3,4,5,-1..."normalPerVertex="TRUE">
<coord DEF="Box-COORD"></coord>
<Coordinatepoint="012,023,401,154,512,265,..."></Coordinate>
<normal>
<normal vector="0.7859 -0.341 -0.5159,0.3821 -0.801 0.4615,...">
</Normal>
</normal>
</IndexedFaceSet>
<node>
</IndexedFaceSetEncodingParameter coordQBits="10"normalQBits="9"coordPreMode="2"normalPredMode="0"errorResilience="OFF"></IndexedFaceSetEncodingParameter>
</BitWrapper>
</geometry>
</shape>
</children>
</Group>
</Scene>
</Replace>
<ObjectDescriptorUpdate>
<OD>
<ObjectDescriptorBase>
<ObjectDescriptor objectDescriptorID="12"binaryID="12">
<URL URLstring="UrlWithEP.mux"></URL>
</ObjectDescriptor>
</ObjectDescriptorBase>
</OD>
</ObjectDescriptorUpdate>
</Body>
在實施例3的方法中,一接收到XMT文件,XMT分析器210就使用″BitWrapper″節(jié)點中所定義的參數(shù)將3D網(wǎng)格信息壓縮為比特流,其中XMT文件描述使用″BitWrapper″節(jié)點中所定義的參數(shù)來壓縮3D網(wǎng)格信息。該比特流是基于定義″BitWrapper″節(jié)點和參數(shù)的XMT-A模式而產(chǎn)生。同樣,如下所示,通過使用XMT-A模式以及″XMT2BIFS″和″XMT2MUX″樣式表來產(chǎn)生可被輸入到MPEG-4編碼器的″.scene″和″.mux″文件。
-UrlWithEP.scene File...
BitWrapper{Node IndexedFaceSet{ccw TRUEcoordIndex
normalPerVertex TRUEsolid TRUEcoord DEF Box-COORD Coordinate{point
}normal Normal{vector
}}IndexedFaceSetEncodingParameter{Vector
}}IndexedFaceS etEncodingParameter{
coordQBits 10normalQBits 9coordPredMode 2normalPredMode 0errorResilience OFF}type 0url 12}...
UPDATE OD[ObjectDescriptor{objectDescriptorID 12muxScript UrlWithEP.mux}]-"UrlWithEP.mux"File...
ObjectDescriptor{objectDescriptorID 12esDescr[ES_Descriptor{ES_ID 211...
muxInfo MuxInfo{fileName"bunny-15000-tcp.m3d"streamFormat 3DMC}]}當(dāng)″.scene″和″.mux″文件被輸入到MPEG-4編碼器并且通過BIFS編碼器250時,產(chǎn)生″.bifs/.od″文件。然后,″.bifs/.od″和″.mux″文件被輸入到MP4編碼器260,從而產(chǎn)生″.mp4″文件。所獲得的″.mp4″文件在MPEG-4播放器上顯示。
第四,將結(jié)合附圖2和7來描述根據(jù)本發(fā)明的優(yōu)選實施例,經(jīng)由URL來傳輸使用已壓縮比特流的原始數(shù)據(jù)的方法。
圖7說明一種經(jīng)由″BitWrapper″節(jié)點中所定義的URL,傳輸表示有關(guān)一個例如杯子的對象A的諸如幾何結(jié)構(gòu)信息、連接信息和顏色信息之類的3D數(shù)據(jù)的已壓縮比特流的方法。相對于第三種方法,描述圖7的方法與經(jīng)由緩沖器傳輸比特流的方法之間的區(qū)別,其中第三種方法是通過使用參數(shù)來將原始數(shù)據(jù)壓縮為比特流并且使用URL來傳輸比特流。同樣,圖7的方法不同于第三種方法,在于經(jīng)由URL,使用作為3D數(shù)據(jù)表示的已壓縮比特流來傳輸3D數(shù)據(jù)。因此,圖2的輸入XMT文件200除了描述原始數(shù)據(jù)和″BitWrapper″節(jié)點中的參數(shù)以外,僅描述url ID。
現(xiàn)在通過實施例4來更加詳細(xì)地描述圖7的方法。
如下是XMT文件的一個例子,描述經(jīng)由URL傳輸已壓縮比特流,該已壓縮比特流是″BitWrapper″節(jié)點中所定義的3D網(wǎng)格信息的表示。
<Header>
...
<ObhectDescriptor objectDescriptorID="12"binaryID="12">
<Descr>
<esDescr>
<ES_DescriptorES_ID="PI"binaryID="211"OCR ES_ID="PIC">
<StreamSource>
<BitWrapperEncodingHints>
<BitWrapper3DMCEncodingHints>
<sourceFormat>
<param value="bunny-15000-tcp.m3d"></param>
</sourceFormat>
</BitWrapper3DMCEncodingHints>
</BitWrapperEncodingHints>
</StreamSource></ES_Descriptor></esDescr></Descr></ObjectDescriptor></Header><Body><Replace><Scene><Group><children>
<Shape>
<geometry DEF="MY_BOX">
<BitWrapper type="0"url="12">
<node>
<IndexedFaceSet>
<coord DEF="Box-COORD"></coord>
<Coordinate></Coordinate>
</IndexedFaceSet> </node>
</BitWrapper>
</geometry> </Shape>
</children></Group></Scene></Replace></ObjectDescriptorUpdate></OD></ObjectDescriptorBase>
<ObjectDescriptor objectDescriptorID="12"binaryID="12">
<URL URLsring="UrlWithoutEP.mux">
</URL>
</ObjectDescriptor>
</ObjectDescriptorBase>
</OD>
</ObjectDescriptorUpdate>
</Body>
在實施例4的方法中,當(dāng)使用″BitWrapper″節(jié)點中所定義的URL接收到描述傳輸表示3D網(wǎng)格信息的已壓縮比特流的XMT文件,XMT分析器210就產(chǎn)生表示被壓縮的3D信息的比特流,并使用″BitWrapper″節(jié)點中所指定的URL來傳輸該比特流。該比特流基于定義″BitWrapper″節(jié)點和參數(shù)的XMT-A模式產(chǎn)生。同樣,如下所示,通過使用XMT-A模式以及XMT2BIFS和XMT2MUX樣式表來產(chǎn)生可被輸入到MPEG-4編碼器的″.scene″和″.mux″文件。
-URLWithoutEP.scene File...
BitWrapper{node IndexedFaceSet{coord DEF Box-COORD Coordinate{}type 0url 12}...
UPDATE OD[ObjectDescriptor{objectDescriptorID 12muxScript UrlWithoutEP.mux}]-"URLWithoutE P.mux"File
...
ObjectDescriptor{ObjectDescriptorID 12EsDescr[ES_Descriptor{ES_ID 211...
muxInfo MuxInfo{fileName"bunny-15000-tcp.m3d"streamFormat 3DMC}...
將上述的″.scene″和″.mux″文件輸入到MPEG-4編碼器?!?scene″文件輸入到BIFS編碼器250以產(chǎn)生″.bifs/.od″文件。將″.bifs/.od″和″.mux″文件輸入到MP4編碼器260以產(chǎn)生″.mp4″比特流文件。所述″.mp4″文件在MPEG-4播放器的屏幕上顯示為3D數(shù)據(jù)。
根據(jù)本發(fā)明,一種使用有關(guān)圖形數(shù)據(jù)壓縮的元語言的輸入文件生成方法和系統(tǒng),在編輯3D內(nèi)容期間,允許編輯者很容易地使用元語言來應(yīng)用和壓縮3D數(shù)據(jù)。特別地,根據(jù)本發(fā)明,編輯者能夠選擇一種壓縮數(shù)據(jù)的方法并且能夠控制數(shù)據(jù)壓縮。通過元語言的表示來判定數(shù)據(jù)是否可以被壓縮。同樣,通過元語言的表示來判定數(shù)據(jù)壓縮格式,例如,通過編碼參數(shù)以及選擇帶內(nèi)/帶外場景(in-band/out-band scenario)來判定。
根據(jù)本發(fā)明,通過使用以XML為基礎(chǔ)的MPEG-4基本要素而很容易去制作編輯工具。使用編輯工具的2D或3D內(nèi)容作品可以在不同平臺的應(yīng)用重新使用。此外,由于本發(fā)明允許編輯者在編輯處理期間去壓縮3D數(shù)據(jù),因此能夠即使在低的網(wǎng)絡(luò)帶寬時也能實時顯現(xiàn)圖形數(shù)據(jù)或動畫數(shù)據(jù)。同樣,編輯者能夠制作出不同類型的3D圖形數(shù)據(jù)。
本發(fā)明能夠以計算機可讀介質(zhì)上的代碼的形式實現(xiàn),所述代碼可以由計算機或信息處理裝置來讀取。在此,計算機可讀介質(zhì)可以是計算機可讀的能夠存儲數(shù)據(jù)的任意記錄裝置,例如,只讀存儲器(ROM)、隨機存取存儲器(RAM)、光盤(CD)-ROM、磁帶、軟盤、光數(shù)據(jù)存儲設(shè)備等等。
雖然已經(jīng)參考了本發(fā)明中的優(yōu)選實施例而特別地示出和描述本發(fā)明,但是本領(lǐng)域技術(shù)人員將能理解,在不脫離所附權(quán)利要求所限定的發(fā)明的精神和范圍內(nèi),可以進(jìn)行形式和細(xì)節(jié)上的不同變化。
權(quán)利要求
1.一種使用圖形數(shù)據(jù)壓縮的元表示產(chǎn)生輸入文件的方法,該方法包括制作可擴展的MPEG-4文本格式XMT模式,該模式定義了包含關(guān)于將被壓縮的對象數(shù)據(jù)的信息的壓縮節(jié)點;數(shù)據(jù)壓縮所必需的編碼參數(shù);與存儲在壓縮節(jié)點的URL字段中的標(biāo)識符相同的objectDescriptorID;以及BitWrapperEncodingHints,其指定存儲將要被發(fā)送的被壓縮比特流的文件的名稱和比特流的格式,其中存儲將要被發(fā)送的被壓縮比特流的文件被包含在復(fù)用文件中;基于XMT模式產(chǎn)生XMT2BIFS樣式表和XMT2MUX樣式表,其中,XMT2BIFS樣式表支持輸入XMT文件向場景文件的轉(zhuǎn)換,XMT2MUX樣式表支持輸入XMT文件向復(fù)用文件的轉(zhuǎn)換,其中,當(dāng)將被壓縮的圖形數(shù)據(jù)存在或壓縮節(jié)點的URL被使用時,場景文件包含UPDATE OD,UPDATE OD描述與存儲在壓縮節(jié)點的URL字段中的標(biāo)識符相同的objectDescriptorID和復(fù)用文件的名稱,并且復(fù)用文件包含InitialObjectDescriptor具有是基本流描述符的ES_Descriptor,ES_Descriptor包含是表示通過壓縮場景數(shù)據(jù)而得到的比特流的基本流的標(biāo)識符的ES_ID,指定將被用于對比特流解碼的解碼器的decConfigDescr,指示復(fù)制時間的s1ConfigDescr,和指示存儲將被發(fā)送的比特流的文件的名稱和比特流的格式的muxInfo;以及ObjectDescriptor具有是基本流描述符的ES_Descriptor,ES_Descriptor包含是當(dāng)壓縮節(jié)點的URL被使用時鏈接到將被發(fā)送到該URL的對象的比特流的URL的標(biāo)識符的objectDescriptorID,指定將被用于對比特流解碼的解碼器的decConfigDescr,指示復(fù)制時間的s1ConfigDescr,指示存儲將被發(fā)送的比特流的文件的名稱和比特流的格式的muxInfo;以及通過使用XMT2BIFS樣式表和XMT2MUX樣式表、根據(jù)XMT模式分析輸入XMT文件來制作場景文件和復(fù)用文件,其中,壓縮節(jié)點包含節(jié)點字段,包含有將被壓縮的對象數(shù)據(jù);類型字段,指示節(jié)點壓縮編碼器的類型;URL字段,不與緩存字段同時使用并將在節(jié)點中定義的壓縮比特流作為帶外數(shù)據(jù)發(fā)送;以及緩存字段,不與URL字段同時使用并將在壓縮節(jié)點中定義的比特流作為帶內(nèi)數(shù)據(jù)發(fā)送,并且編碼參數(shù)包括用于關(guān)于將被壓縮的對象的頂點坐標(biāo)的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù);用于三維網(wǎng)格信息的參數(shù);用于旋轉(zhuǎn)移動的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù);和用于位置移動的基于關(guān)鍵幀的動畫數(shù)據(jù)的參數(shù)。
2.如權(quán)利要求1所述的方法,其中,分析輸入XMT文件包含接收描述壓縮節(jié)點的XMT輸入文件,其中,壓縮節(jié)點包括包含有原始數(shù)據(jù)、編碼參數(shù)和緩沖器的節(jié)點字段;以及通過使用XMT2BIFS和XMT2MUX樣式表、根據(jù)XMT模式分析輸入XMT文件來制作場景文件和復(fù)用文件,其中,場景文件包含壓縮節(jié)點,其中壓縮節(jié)點具有包含有原始數(shù)據(jù)、編碼參數(shù)和類型信息的節(jié)點字段,類型信息指定發(fā)送通過壓縮原始數(shù)據(jù)得到的比特流的緩沖器和編碼器的類型,并且復(fù)用文件包含通過使用BIFS編碼器對場景文件編碼而得到的文件的名稱;和壓縮的比特流的格式。
3.如權(quán)利要求1所述的方法,其中,分析輸入XMT文件包括接收定義了壓縮節(jié)點的輸入XMT文件,其中壓縮節(jié)點包含有關(guān)于暫時存儲已經(jīng)被壓縮的對象數(shù)據(jù)的緩沖器的信息;以及使用XMT2BIF樣式表和XMT2MUX樣式表、根據(jù)XMT模式分析輸入XMT文件來制作場景文件和復(fù)用文件,其中,其中場景文件包含壓縮節(jié)點,其中壓縮節(jié)點具有不包含對象數(shù)據(jù)的節(jié)點字段,和指定了用于發(fā)送通過壓縮對象數(shù)據(jù)而得到的比特流的緩沖器和編碼器的類型的類型信息,并且復(fù)用文件包含通過使用BIFS編碼器對場景文件編碼而得到的文件的名稱;和流格式信息。
4.如權(quán)利要求1所述的方法,其中,分析輸入XMT文件包含接收輸入XMT文件、objectDescriptorID和ObjectDescriptorUpdate,其中,輸入XMT文件定義了壓縮節(jié)點,壓縮節(jié)點描述了包含有原始數(shù)據(jù)、編碼參數(shù)和存儲在URL中的標(biāo)識符的節(jié)點字段;objectDescriptorID與存儲在壓縮節(jié)點中的URL字段的標(biāo)識符相同;ObjectDescriptorUpdate具有BitWrapperEncodingHints,BitWrapperEncodingHints指示存儲被壓縮的比特流的文件的名稱和比特流的格式,其中存儲被壓縮的比特流的文件包含在復(fù)用文件中并且將要被發(fā)送;以及通過使用XMT2BIFS樣式表和XMT2MUX樣式表、根據(jù)XMT模式分析輸入XMT文件來制作場景文件和復(fù)用文件,其中,場景文件包含壓縮節(jié)點,其具有包含有原始數(shù)據(jù)、編碼參數(shù)和類型信息的節(jié)點字段,其中類型信息包含有關(guān)于鏈接到關(guān)于通過壓縮原始數(shù)據(jù)而得到的比特流的信息的URL和編碼器的類型的信息;和UPDATE OD,其指示objectDescriptorID和復(fù)用文件的名稱,其中objectDescriptorID與存儲在壓縮節(jié)點的URL域中的標(biāo)識符相同,并且復(fù)用文件包含存儲了被壓縮的比特流的文件的名稱,該文件包含在由BitWrapperEncodingHints定義的復(fù)用文件中,并且將要被發(fā)送;和被壓縮的比特流的格式的信息。
5.如權(quán)利要求1所述的方法,其中分析輸入XMT文件包含接收輸入XMT文件,該文件定義了壓縮節(jié)點,該壓縮節(jié)點描述了節(jié)點字段,該節(jié)點字段包含有已經(jīng)被壓縮的目標(biāo)數(shù)據(jù),和鏈接到已經(jīng)被壓縮的目標(biāo)數(shù)據(jù)的URL;objectDescriptorID,其與存儲在壓縮節(jié)點的URL字段中的標(biāo)識符相同;和ObjectDescriptorUpdate,其包含BitWrapperEncodingHints,BitWrapperEncodingHints指示存儲了被壓縮的比特流的文件的名稱,所述存儲了被壓縮的比特流的文件由復(fù)用文件定義并且將要被發(fā)送,和被壓縮的比特流的格式;以及通過使用XMT2BIFS樣式表和XMT2MUX樣式表、根據(jù)XMT模式分析輸入XMT文件來制作場景文件和復(fù)用文件,其中,場景文件包含壓縮節(jié)點,其具有不包含已經(jīng)被壓縮的目標(biāo)數(shù)據(jù)的節(jié)點字段和類型信息,其中類型信息指定存儲在鏈接到關(guān)于已經(jīng)被壓縮的目標(biāo)數(shù)據(jù)的比特流的信息的URL字段中的標(biāo)識符和編碼的類型的信息;和UPDATE OD,其具有objectDescriptorID和復(fù)用文件的名稱,其中objectDescriptorID與存儲在壓縮節(jié)點的URL域中的標(biāo)識符相同,并且復(fù)用文件包含存儲了被壓縮的比特流的文件的名稱,該比特流包含在由BitWrapperEncodingHints定義的復(fù)用文件中并且將要被發(fā)送;和被壓縮的比特流的格式的信息。
全文摘要
提供一種使用圖形數(shù)據(jù)壓縮的元表示產(chǎn)生輸入文件的方法,該方法包括制作可擴展的MPEG-4文本格式XMT模式,該模式定義了包含關(guān)于將被壓縮的對象數(shù)據(jù)的信息的壓縮節(jié)點;數(shù)據(jù)壓縮所必需的編碼參數(shù);與存儲在壓縮節(jié)點的URL字段中的標(biāo)識符相同的objectDescriptorID;以及BitWrapperEncodingHints,其指定存儲將要被發(fā)送的被壓縮比特流的文件的名稱和比特流的格式,其中存儲將要被發(fā)送的被壓縮比特流的文件被包含在復(fù)用文件中。
文檔編號H04N7/24GK1825954SQ20061000423
公開日2006年8月30日 申請日期2003年12月5日 優(yōu)先權(quán)日2002年12月5日
發(fā)明者張敬子, 金道均 申請人:三星電子株式會社