專利名稱:編碼和解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于編碼和解碼合成圖像的裝置和方法,尤其涉及用于編碼和解碼一種坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置和方法,其中坐標(biāo)內(nèi)插符使用在基于關(guān)鍵幀的圖形動畫中的包括x、y、z分量的頂點(diǎn)坐標(biāo)表示對象的位置。
背景技術(shù):
三維(3D)動畫技術(shù)已經(jīng)廣泛地應(yīng)用在3D計(jì)算機(jī)游戲或虛擬現(xiàn)實(shí)計(jì)算機(jī)應(yīng)用中。虛擬現(xiàn)實(shí)模型語言(VRML)是這種3D動畫技術(shù)的典型實(shí)例。
國際多媒體標(biāo)準(zhǔn),例如用于場景(BIFS)和虛擬現(xiàn)實(shí)模型語言(VRML)的MPEG-4二進(jìn)制格式,使用內(nèi)插符節(jié)點(diǎn)支持基于關(guān)鍵幀的3D動畫。在MPEG-4BIFS和VRML中,有各種類型的內(nèi)插符,其包括標(biāo)量內(nèi)插符、位置內(nèi)插符、坐標(biāo)內(nèi)插符、定向內(nèi)插符、法線(normal line)內(nèi)插符、和色彩內(nèi)插符,這些內(nèi)插符以及其功能和特性在表1中示出。
表1
在表1所示的內(nèi)插符中,坐標(biāo)內(nèi)插符被用于表示在構(gòu)成基于關(guān)鍵幀的動畫中的3D對象的每一頂點(diǎn)位置上的信息,并且包括關(guān)鍵字和關(guān)鍵字值字段。關(guān)鍵字段使用范圍在-∞和∞之間的不連續(xù)數(shù)字表示在時(shí)間軸上的每一關(guān)鍵幀的位置。每一個關(guān)鍵字值字段規(guī)定了在由每一關(guān)鍵字表示的在確定瞬時(shí)的構(gòu)成3D對象的每一個頂點(diǎn)位置上的信息,并且包括三個分量x、y和z。每一個關(guān)鍵字值字段包括與關(guān)鍵字段一樣多的關(guān)鍵字值。在這種基于關(guān)鍵幀的動畫中,預(yù)定的關(guān)鍵幀定位在時(shí)間軸的任意位置,并且由線性內(nèi)插填充在關(guān)鍵幀之間的動畫數(shù)據(jù)。
由于MPEG-4 BIFS和VRML中采用線性內(nèi)插,所以要求相當(dāng)量的關(guān)鍵字?jǐn)?shù)據(jù)和關(guān)鍵字值數(shù)據(jù)來使用線性內(nèi)插符把動畫表現(xiàn)得盡可能地自然和平滑。此外,為了存儲和發(fā)送這種自然和平滑的動畫,需要相當(dāng)大容量的存儲器和大量的時(shí)間。因此,最好是選擇壓縮內(nèi)插符,以便更容易存儲和發(fā)送內(nèi)插符。
在已經(jīng)應(yīng)用在MPEG-4 BIFS中用于編碼和解碼內(nèi)插符節(jié)點(diǎn)的方法之一的預(yù)測MF字段編碼(PMFC)中,使用量化器、差分脈碼調(diào)制(DPCM)操作器、和熵編碼器編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù),如圖1所示。參考圖1,量化器和DPCM操作器消除關(guān)鍵字值數(shù)據(jù)的冗余,DPCM操作器把其操作的結(jié)果輸出到熵編碼器。然而,PMFC在對關(guān)鍵字值數(shù)據(jù)進(jìn)行編碼中并不是充分有效的,因?yàn)槠渲混鼐幋a從一般DPCM操作獲得的差分?jǐn)?shù)據(jù),并且僅考慮在動畫中構(gòu)成3D對象頂點(diǎn)之間的空間相關(guān)性而不考慮在這種頂點(diǎn)之間的時(shí)間相關(guān)性,在基于關(guān)鍵幀的動畫中,這種時(shí)間相關(guān)性是很重要的。
發(fā)明內(nèi)容
為解決上述和其它問題,本發(fā)明的一個方面提供一種用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法和裝置,在其中考慮動畫中的3D對象頂點(diǎn)之間的時(shí)間相關(guān)性以及空間相關(guān)性。
本發(fā)明的另一方面提供一種用于解碼編碼的坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法和裝置,在其中考慮動畫中的3D對象頂點(diǎn)之間的時(shí)間相關(guān)性以及空間相關(guān)性。
本發(fā)明的另一方面提供一種比特?cái)?shù)據(jù)流,在其中考慮動畫中的3D對象頂點(diǎn)之間的時(shí)間相關(guān)性以及空間相關(guān)性編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)。
本發(fā)明的另一方面提供了一種用于DPCM操作的方法和裝置,該操作被使用在根據(jù)本發(fā)明的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法和裝置中,并且考慮動畫中的3D對象的頂點(diǎn)之間的時(shí)間相關(guān)性以及其中的空間相關(guān)性對3D對象的坐標(biāo)數(shù)據(jù)執(zhí)行DPCM操作。
本發(fā)明的另一方面提供了一種用于反DPCM操作的方法和裝置,其解碼由根據(jù)本發(fā)明的用于DPCM操作的方法和裝置產(chǎn)生的差分?jǐn)?shù)據(jù)。
因此,為了實(shí)現(xiàn)本發(fā)明的上述和其它方面,其中提供了用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置,其中坐標(biāo)內(nèi)插符使用包括x、y和z分量的每一個頂點(diǎn)的坐標(biāo)表示對象的每一頂點(diǎn)的位置。裝置包括量化器,其以預(yù)定的量化比特量化輸入其中的坐標(biāo)內(nèi)插符,DPCM處理器,其對量化的坐標(biāo)內(nèi)插符的每一頂點(diǎn)的每一分量執(zhí)行預(yù)定模式的DPCM操作,并且因此產(chǎn)生根據(jù)每一頂點(diǎn)的坐標(biāo)的時(shí)間變化的差分?jǐn)?shù)據(jù)以及根據(jù)每一個頂點(diǎn)的坐標(biāo)的空間變化的差分?jǐn)?shù)據(jù),字典編碼器,其產(chǎn)生表示每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的符號和已經(jīng)對差分?jǐn)?shù)據(jù)執(zhí)行的DPCM操作的模式以及表示符號的位置的位置索引,和熵編碼器,熵編碼符號和位置索引。
為了實(shí)現(xiàn)本發(fā)明的上述和其它方面,其中提供了用于解碼比特?cái)?shù)據(jù)流的裝置,其中比特?cái)?shù)據(jù)流中編碼了使用包括x、y和z分量的每一個頂點(diǎn)的坐標(biāo)表示對象的每一頂點(diǎn)的位置的坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)。裝置包括熵解碼器,其通過熵解碼輸入的比特?cái)?shù)據(jù)流而產(chǎn)生將要被字典解碼的數(shù)據(jù),其中包括差分?jǐn)?shù)據(jù)的符號、表示符號位置的位置索引和DPCM操作模式;字典解碼器,其使用將要被字典解碼的數(shù)據(jù)產(chǎn)生差分?jǐn)?shù)據(jù);反DPCM處理器,其通過恢復(fù)在DPCM操作模式之后從字典解碼器輸入的關(guān)鍵幀之間的差分?jǐn)?shù)據(jù)和頂點(diǎn)之間的差分?jǐn)?shù)據(jù)而產(chǎn)生量化數(shù)據(jù);以及反量化器,通過反量化量化的數(shù)據(jù)而產(chǎn)生恢復(fù)的關(guān)鍵字值數(shù)據(jù)。
使用在用于解碼比特?cái)?shù)據(jù)流的裝置中的反DPCM處理器最好包括反時(shí)間DPCM操作器,其對關(guān)鍵幀中的頂點(diǎn)和另一關(guān)鍵幀中的頂點(diǎn)之間的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作;反空間DPCM操作器,其對在同一關(guān)鍵幀的頂點(diǎn)和其對應(yīng)參考頂點(diǎn)之間的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作;以及反DPCM模式選擇器,其根據(jù)DPCM操作模式而把差分?jǐn)?shù)據(jù)輸出到反時(shí)間DPCM操作器或反空間DPCM操作器。
為了實(shí)現(xiàn)本發(fā)明的上述和其它方面,其中提供了用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法,其中坐標(biāo)內(nèi)插符使用包括x、y和z分量的每一個頂點(diǎn)的坐標(biāo)表示對象的每一頂點(diǎn)的位置。方法包括步驟(a)以預(yù)定的量化比特量化坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù),(b)對量化坐標(biāo)內(nèi)插符的每一頂點(diǎn)的每一分量執(zhí)行預(yù)定模式的DPCM操作,并且因此產(chǎn)生基于每一個頂點(diǎn)的坐標(biāo)的時(shí)間變化的差分?jǐn)?shù)據(jù)和基于每一個頂點(diǎn)的坐標(biāo)的空間變化的差分?jǐn)?shù)據(jù),(c)產(chǎn)生表示每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)和已經(jīng)對差分?jǐn)?shù)據(jù)執(zhí)行的DPCM操作的模式的符號,并且產(chǎn)生表示符號位置的位置索引,以及(d)熵編碼符號和位置索引。
為了實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供了一種方法,用于產(chǎn)生構(gòu)成隨時(shí)間運(yùn)動的對象的頂點(diǎn)的量化坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)。該方法包括執(zhí)行時(shí)間DPCM操作,其中產(chǎn)生根據(jù)時(shí)間的推移而改變的每一頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù);執(zhí)行空間DPCM操作,其中產(chǎn)生在預(yù)定時(shí)刻的每一頂點(diǎn)和對應(yīng)于頂點(diǎn)的參考頂點(diǎn)之間的差分?jǐn)?shù)據(jù);并且輸出時(shí)間DPCM的差分?jǐn)?shù)據(jù)和空間DPCM的差分?jǐn)?shù)據(jù)之間的較小值。
為了實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供了用于解碼比特?cái)?shù)據(jù)流的方法,比特?cái)?shù)據(jù)流中的使用包括x、y和z分量的每一個頂點(diǎn)的坐標(biāo)表示對象的每一個頂點(diǎn)位置的坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)被編碼。該方法包括(a)通過熵解碼輸入比特?cái)?shù)據(jù)流而產(chǎn)生將要被字典解碼的數(shù)據(jù),其中包括差分?jǐn)?shù)據(jù)的符號、表示符號的位置的位置索引和DPCM操作模式;(b)通過對差分?jǐn)?shù)據(jù)的符號和位置索引執(zhí)行字典解碼操作,使用將要被字典解碼的數(shù)據(jù)產(chǎn)生差分?jǐn)?shù)據(jù);(c)按照DPCM操作模式,通過恢復(fù)關(guān)鍵幀之間的差分?jǐn)?shù)據(jù)和頂點(diǎn)之間的差分?jǐn)?shù)據(jù)而產(chǎn)生量化的數(shù)據(jù);和(d)通過反量化量化的數(shù)據(jù)而產(chǎn)生恢復(fù)的關(guān)鍵字值數(shù)據(jù)。
為了實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供一種方法,用于通過對頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)執(zhí)行預(yù)定的反DPCM操作而產(chǎn)生構(gòu)成根據(jù)時(shí)間的推移改變的對象的頂點(diǎn)量化坐標(biāo)數(shù)據(jù)。該方法包括(a)根據(jù)包括在差分?jǐn)?shù)據(jù)中的DPCM操作模式,選擇將要對差分?jǐn)?shù)據(jù)執(zhí)行的反DPCM操作;和(b)執(zhí)行選擇的反DPCM操作。其中,選擇的反DPCM操作包括反時(shí)間DPCM操作,其中對根據(jù)時(shí)間的推移改變的每一頂點(diǎn)的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作;以及反空間DPCM操作,其中對在預(yù)定時(shí)刻的每一個頂點(diǎn)和對應(yīng)于頂點(diǎn)的參考頂點(diǎn)之間差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作。
通過下面結(jié)合示例性地示出一例的附圖進(jìn)行的描述,本發(fā)明的上述和其他目的和特點(diǎn)將會變得更加清楚,其中圖1是用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的常規(guī)裝置的框圖;圖2A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置的框圖,而圖2B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法的流程圖;圖3A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的DPCM處理器的框圖,而圖3B是字典編碼器的框圖;圖4A是根據(jù)本發(fā)明的優(yōu)選實(shí)施例的量化操作的流程圖,圖4B是DPCM操作的流程圖,圖4C是字典編碼的流程圖,而圖4D是熵編碼的流程圖;圖5A至5C分別是說明根據(jù)本發(fā)明的量化關(guān)鍵字值數(shù)據(jù)、DPCM的關(guān)鍵字值數(shù)據(jù)和循環(huán)量化的關(guān)鍵字值數(shù)據(jù)的示意圖;圖6A是說明根據(jù)本發(fā)明的優(yōu)選實(shí)施例的DPCM模式編碼的示意圖,圖6B是說明出現(xiàn)模式編碼的示意圖,而圖6C是說明增量模式編碼的示意圖;圖7A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置的框圖,而圖7B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法的流程圖;圖8A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的字典解碼器的框圖,而圖8B是反DPCM處理器的框圖;圖9A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的字典解碼的流程圖,而圖9B是反DPCM操作的流程圖;圖10是說明使用在坐標(biāo)內(nèi)插符中的頂點(diǎn)以及每一個頂點(diǎn)的分量的數(shù)據(jù)的比特?cái)?shù)據(jù)流的示意圖;圖11A是說明DPCM模式解碼的示意圖,圖11B是說明出現(xiàn)模式解碼的示意圖,而圖11C是說明增量模式解碼的示意圖;圖12至18是說明比特?cái)?shù)據(jù)流語法的實(shí)例的示意圖,其中實(shí)現(xiàn)在根據(jù)本發(fā)明優(yōu)選實(shí)施例進(jìn)行的解碼過程中從比特?cái)?shù)據(jù)流讀出比特的次序;圖19是說明程序代碼實(shí)例的示意圖,由此實(shí)現(xiàn)用于解碼關(guān)鍵字值數(shù)據(jù)的操作;圖20A和20B是用于把根據(jù)本發(fā)明的用于編碼和解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法的性能與用于編碼和解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的常規(guī)方法的性能相比較的示意圖;及圖21A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的DPCM操作器的框圖,而圖21B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的反DPCM操作器的框圖。
具體實(shí)施例方式
在下文中,將參照附圖更詳細(xì)地描述根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置。
圖2A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置的框圖,而圖2B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法的流程圖。
參考圖2A,用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置包括量化器300,其以預(yù)定的量化比特量化表示坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的每一頂點(diǎn)的每一分量(component)的數(shù)據(jù),DPCM處理器310,其對每一頂點(diǎn)的每一個分量的量化數(shù)據(jù)執(zhí)行預(yù)定的DPCM操作,字典編碼器340,其把差分?jǐn)?shù)據(jù)轉(zhuǎn)換成符號和位置索引,以及熵編碼器350,其熵編碼輸入其中的差分?jǐn)?shù)據(jù)的符號和位置索引。
下面參照圖2B描述用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法。
參考圖2B,步驟S400中以N×M矩陣的形式把坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)輸入到量化器300。輸入的坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的實(shí)例在下列表中示出。
表2
在表2中,N表示關(guān)鍵字?jǐn)?shù)據(jù)(關(guān)鍵幀)的數(shù)目,M表示每一關(guān)鍵幀中的頂點(diǎn)的數(shù)量。
根據(jù)本發(fā)明用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置以兩種不同模式操作來編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)。模式之一是頂點(diǎn)模式,而另外一個模式是轉(zhuǎn)置模式。表2中,示出將以頂點(diǎn)模式在量化器300中量化的關(guān)鍵字值數(shù)據(jù)的結(jié)構(gòu)。在量化表2所示的輸入關(guān)鍵字值數(shù)據(jù)之前,根據(jù)本發(fā)明的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置把輸入的關(guān)鍵字值數(shù)據(jù)轉(zhuǎn)置成MHN矩陣。在解碼關(guān)鍵字值數(shù)據(jù)過程中反量化轉(zhuǎn)置矩陣,并且把解碼的關(guān)鍵字值數(shù)據(jù)轉(zhuǎn)換成NHM矩陣,使得能夠恢復(fù)與輸入關(guān)鍵字值數(shù)據(jù)一樣的關(guān)鍵字值數(shù)據(jù)。
參考圖2B,在步驟S410中,量化器300檢查從外部輸入的關(guān)鍵字值數(shù)據(jù)的編碼方式是否為轉(zhuǎn)置模式。如果輸入的關(guān)鍵字值數(shù)據(jù)的編碼模式是轉(zhuǎn)置模式,則輸入的關(guān)鍵字值數(shù)據(jù)的NHM矩陣在步驟S420中被轉(zhuǎn)置成MHN矩陣。
其后,量化器300以預(yù)定的量化比特量化輸入其中的關(guān)鍵字值數(shù)據(jù)矩陣中的每一個分量的數(shù)據(jù),并且在步驟S430把每一個分量的量化的關(guān)鍵字值數(shù)據(jù)輸出到DPCM處理器310。在同一步驟中,量化器300把在每一個分量的輸入的關(guān)鍵字值數(shù)據(jù)當(dāng)中的最小值和在分量的數(shù)據(jù)范圍當(dāng)中的最大范圍轉(zhuǎn)換成十進(jìn)制數(shù)字,并且把十進(jìn)制數(shù)字輸出到關(guān)鍵字值標(biāo)題(header)編碼器370。
在步驟S440中,DPCM處理器310對輸入其中的量化的關(guān)鍵字值數(shù)據(jù)執(zhí)行時(shí)間DPCM操作、空間DPCM操作和空間-時(shí)間DPCM操作,對三個不同的DPCM操作的結(jié)果,即對從三個DPCM操作獲得的每一差分?jǐn)?shù)據(jù)執(zhí)行循環(huán)量化操作,并且把在它們當(dāng)中的具有最低熵值的差分?jǐn)?shù)據(jù)輸出到字典編碼器340。
字典編碼器340產(chǎn)生并且輸出對應(yīng)于從DPCM處理器310輸入的差分?jǐn)?shù)據(jù)的字典符號Si,j和位置索引Ii,j。具體地說,字典編碼器340產(chǎn)生表明已經(jīng)對輸入差分?jǐn)?shù)據(jù)執(zhí)行的DPCM操作的模式的字典符號和位置索引,把輸入的差分?jǐn)?shù)據(jù)轉(zhuǎn)換成對應(yīng)于輸入差分?jǐn)?shù)據(jù)的值的符號或符號標(biāo)志,和表示符號的位置的位置索引,并且把符號和位置索引輸出到熵編碼器350。
在步驟S480中,熵編碼器350通過熵編碼從字典編碼器340輸入的符號和位置索引而產(chǎn)生比特?cái)?shù)據(jù)流。
隨后,參照圖3A至6C更詳細(xì)地描述步驟S400至S480。
參考圖4A,在步驟S432中,量化器300選擇在每一個分量數(shù)據(jù)當(dāng)中的最大值和最小值。
量化器300使用在步驟S432中選擇的最大和最小值計(jì)算分量的數(shù)據(jù)范圍,并且在步驟S434中確定在分量的數(shù)據(jù)范圍當(dāng)中的最大范圍。
量化器300使用在每一個分量的數(shù)據(jù)當(dāng)中的最小值和在分量的所有的數(shù)據(jù)范圍當(dāng)中的最大范圍量化每一個分量的關(guān)鍵字值數(shù)據(jù),其以下列方程式示出。
V~i,j,x=floor(Vi,j,x-fMin_XfMax(2nKVQBit-1)+0.5)···(1)]]>V~i,j,y=floor(Vi,j,y-fMin_YfMax(2nKVQBit-1)+0.5)]]>V~i,j,z=floor(Vi,j,z-fMin_ZfMax(2nKVQBit-1)+0.5)]]>方程式(1)中,i表示關(guān)鍵字?jǐn)?shù)據(jù),j表示頂點(diǎn),而nKVQBit表示量化比特大小。此外,fMin_X、fMin_Y、fMin_Z表示在每一個分量的數(shù)據(jù)中的最小值,而fMax表示在分量數(shù)據(jù)范圍中的最大范圍。
量化器300把每一分量的量化關(guān)鍵字值數(shù)據(jù)輸出到DPCM處理器310,把fMin_X、fMin_Y、fMin_Z和fMax變換成十進(jìn)制數(shù)字,并且把十進(jìn)制數(shù)字輸出到關(guān)鍵字值標(biāo)題編碼器370。
計(jì)算機(jī)把浮點(diǎn)數(shù)字存儲為32比特的二進(jìn)制數(shù)字。為了降低用于編碼所需要的比特的數(shù)量,量化器300在十進(jìn)制系統(tǒng)中把fMin_X、fMin_Y。fMin_Z和fMax轉(zhuǎn)換成其各自的尾數(shù)和指數(shù),并且此處理由于下面方程式表示。
例如,浮點(diǎn)數(shù)12.34能夠通過計(jì)算機(jī)轉(zhuǎn)換成下面所示的二進(jìn)制數(shù)。
010001010111000010100011100000101 2 31符號2二進(jìn)制中的尾數(shù)3二進(jìn)制中的指數(shù)二進(jìn)制數(shù)能夠遵循方程式(2)轉(zhuǎn)換成隨后所示的十進(jìn)制數(shù)。
0123421 231符號2十進(jìn)制中的尾數(shù)3十進(jìn)制中的指數(shù)為了把十進(jìn)制中的尾數(shù)和指數(shù)包括在比特?cái)?shù)據(jù)流中,量化器300必須計(jì)算為了表示尾數(shù)和指數(shù)所要求的比特?cái)?shù)目。具有在-38和38之間的值的指數(shù)因此能夠使用7比特連同符號一起表示。表示尾數(shù)而需要的比特的數(shù)量取決于位數(shù)。尾數(shù)的值和表示尾數(shù)而需要的比特的數(shù)量由下表列出。
表3
量化器300把已經(jīng)遵循方程式(2)和表3轉(zhuǎn)換的在每一個分量的數(shù)據(jù)中的最小值fMin_X、fMin_Y和fMin_Z以及在分量的數(shù)據(jù)范圍中的最大范圍fMax輸出到關(guān)鍵字值標(biāo)題編碼器370。
下面參照圖3A和4B描述根據(jù)本發(fā)明的DPCM處理器和DPCM操作。
圖3A是根據(jù)本發(fā)明的DPCM處理器310的框圖。參考圖3A,DPCM處理器310包括DPCM操作器320,其對從量化器300輸入的每一分量的數(shù)據(jù)執(zhí)行時(shí)間DPCM操作、空間DPCM操作和空間-時(shí)間DPCM操作,循環(huán)量化器330,其降低從DPCM操作器320輸入的差分?jǐn)?shù)據(jù)的范圍,以及DPCM模式選擇器335,其選擇從循環(huán)量化器330輸入的差分?jǐn)?shù)據(jù)中的一個。DPCM操作器320包括時(shí)間DPCM操作器321,其對每一個分量的量化數(shù)據(jù)執(zhí)行時(shí)間DPCM操作,空間DPCM操作器323,其對每一個分量的量化數(shù)據(jù)執(zhí)行空間DPCM操作,以及空間-時(shí)間DPCM操作器325,對每一個分量的量化數(shù)據(jù)執(zhí)行空間-時(shí)間DPCM操作。
圖4B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的DPCM操作的流程圖。參考圖4B,在步驟S442中,每一個分量的量化數(shù)據(jù)從量化器300輸入到時(shí)間DPCM操作器321、空間DPCM操作器323、和空間-時(shí)間DPCM操作器325,然后在各自的操作器321、323以及325中對每一個分量的量化數(shù)據(jù)執(zhí)行時(shí)間DPCM操作、空間DPCM操以及空間-時(shí)間DPCM操作。
時(shí)間DPCM操作器321計(jì)算在當(dāng)前關(guān)鍵幀中的頂點(diǎn)的分量數(shù)據(jù)和在先前關(guān)鍵幀中的頂點(diǎn)的分量數(shù)據(jù)之間的差值。時(shí)間DPCM操作由下面方程式表示。
Di,j=V~i,j-V~i-1,j···(3)]]>方程式(3)中,i表示關(guān)鍵字?jǐn)?shù)據(jù),j表示頂點(diǎn)的位置索引。
空間DPCM操作器323計(jì)算在同關(guān)鍵幀中的頂點(diǎn)之間的差值。具體地說,空間DPCM操作器323使用下面方程式計(jì)算先前頂點(diǎn)的熵,在當(dāng)前頂點(diǎn)受到空間DPCM操作之前已經(jīng)對先前頂點(diǎn)執(zhí)行了空間DPCM操作。
Entropy(P)=-Σi=0N-1Pilog2Pi···(4)]]>在方程式(4)中,Pi表示某符號在頂點(diǎn)產(chǎn)生的概率,并且等于Fi/N,其中Fi表示符號被產(chǎn)生了多少次,而N表示關(guān)鍵字?jǐn)?shù)據(jù)的數(shù)量。
空間DPCM操作器323把在頂點(diǎn)中的具有最低熵的頂點(diǎn)確定為參考頂點(diǎn),并且計(jì)算在當(dāng)前受到空間DPCM操作的頂點(diǎn)的數(shù)據(jù)和參考頂點(diǎn)的數(shù)據(jù)之間差分?jǐn)?shù)據(jù)。空間操作由下面方程式表示。
Di,j=V~i,j-V~i,Ref···(5)]]>空間-時(shí)間DPCM操作器325對當(dāng)前關(guān)鍵幀的頂點(diǎn)執(zhí)行空間DPCM操作,使用在先前關(guān)鍵幀的頂點(diǎn)中的頂點(diǎn)作為參考頂點(diǎn)對先前關(guān)鍵幀的頂點(diǎn)執(zhí)行空間DPCM操作,其中其對應(yīng)于的當(dāng)前關(guān)鍵幀的參考頂點(diǎn),并且計(jì)算在對應(yīng)于當(dāng)前關(guān)鍵幀的頂點(diǎn)的差分?jǐn)?shù)據(jù)和對應(yīng)于先前關(guān)鍵幀的頂點(diǎn)的差分?jǐn)?shù)據(jù)之間的差分?jǐn)?shù)據(jù)。換句話說,空間-時(shí)間DPCM操作器325對空間DPCM操作的結(jié)果執(zhí)行時(shí)間DPCM操作??臻g-時(shí)間DPCM操作由下面方程式表示。
Di,j=V~i,j-{V~i-1,j+(V~i,Ref-V~i-1,Ref)}···(6)]]>在空間DPCM操作和空間-時(shí)間DPCM操作過程中,如果 或{V~i-1,j+(V~i,Ref-V~i-1,Ref)}]]>小于在每一分量的量化數(shù)據(jù)中的最小值,則最小值被用于空間DPCM操作和空間-時(shí)間DPCM操作。另一方面,如果 或{V~i-1,j+(V~i,Ref-V~i-1,Ref)}]]>大于在每一分量的量化數(shù)據(jù)中的最大值,則最大值被用于空間DPCM操作和空間-時(shí)間DPCM操作。
在步驟S444中,DPCM操作器320把計(jì)算的差分?jǐn)?shù)據(jù)輸出到循環(huán)量化器330,并且循環(huán)量化器330對時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM差分?jǐn)?shù)據(jù)和空間-時(shí)間DPCM差分?jǐn)?shù)據(jù)執(zhí)行循環(huán)量化操作,并且把循環(huán)量化的結(jié)果輸出到DPCM模式選擇器335。
圖5A是量化器300的輸出實(shí)例的曲線圖,而圖5B是對圖5A中所示的量化數(shù)據(jù)執(zhí)行DPCM操作的結(jié)果的曲線圖。如圖5B所示,通過執(zhí)行對量化數(shù)據(jù)的DPCM操作,將要被編碼的數(shù)據(jù)范圍能夠增加為其原數(shù)據(jù)范圍的兩倍。循環(huán)量化的目的是在保持量化值的數(shù)據(jù)范圍的同時(shí)執(zhí)行DPCM操作。
在本發(fā)明中,假設(shè)在DPCM的差分?jǐn)?shù)據(jù)中的最大值被循環(huán)連接到在DPCM的差分?jǐn)?shù)據(jù)中的最小值而執(zhí)行循環(huán)量化。如果對兩個連續(xù)量化數(shù)據(jù)執(zhí)行的線性DPCM操作的結(jié)果大于在從DPCM操作器320輸出的DPCM差分?jǐn)?shù)據(jù)中的最大值的一半,則從線性DPCM的結(jié)果中減去從DPCM操作器320輸出的DPCM差分?jǐn)?shù)據(jù)的最大范圍值,以便產(chǎn)生具有較小絕對值的值。另一方面,如果線性DPCM的結(jié)果小于最大范圍中的最小值的一半,則把最大范圍值加到線性DPCM的結(jié)果,以便產(chǎn)生具有較小絕對值的值。
通過下面的方程式表示循環(huán)量化器330的操作。
CircularQuanti zation(Xi)…(7)X′i=Xi-(nQMax-nQMin+1) (if Xi≥0)X′i=Xi+(nQMax-nQMin+1) (otherwise)X~i=min(|Xi|,|X′i|)]]>在方程式(7)中,nQMax表示在DPCM的差分?jǐn)?shù)據(jù)中的最大值,而nQMin表示在DPCM的差分?jǐn)?shù)據(jù)中的最小值。圖5C示出對圖5B所示的DPCM的差分?jǐn)?shù)據(jù)執(zhí)行循環(huán)量化的結(jié)果。
循環(huán)量化器330把循環(huán)量化的差分?jǐn)?shù)據(jù)輸出到DPCM模式選擇器335。
在步驟S446中,DPCM模式選擇器335遵循方程式(4)計(jì)算從時(shí)間DPCM操作、空間DPCM操作和空間-時(shí)間DPCM操作獲得的每一DPCM差分?jǐn)?shù)據(jù)的熵。
隨后,DPCM模式選擇器335在步驟S448中選擇在時(shí)間DPCM操作、空間DPCM操作、空間-時(shí)間DPCM操作的結(jié)果中具有最低熵的DPCM差分?jǐn)?shù)據(jù)作為每一頂點(diǎn)的DPCM操作模式,并且把對應(yīng)于選擇的DPCM模式的DPCM差分?jǐn)?shù)據(jù)和關(guān)于DPCM模式的信息輸出到字典編碼器340。
隨后,參照圖3B和4C描述字典編碼器340和其操作。
圖3B是根據(jù)本發(fā)明的字典編碼器340的框圖。參考圖3B,字典編碼器340包括DPCM模式編碼器342,其編碼已經(jīng)對輸入其中的每一個頂點(diǎn)的每一分量的數(shù)據(jù)執(zhí)行的DPCM的模式,出現(xiàn)模式編碼器346,其產(chǎn)生表示每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的值的符號和表示符號的位置的位置索引,增量模式編碼器348,其產(chǎn)生對應(yīng)于符號和表示符號位置的位置索引的符號標(biāo)志,以及表格大小計(jì)算器344,其計(jì)算用于表示每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的符號表格以及符號標(biāo)志表格的大小,并且把從DPCM模式編碼器342輸入的差分?jǐn)?shù)據(jù)輸出到出現(xiàn)模式編碼器346或增量模式編碼器348。
字典編碼器340檢測每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的量化選擇標(biāo)志是否為1,如果是,則執(zhí)行將在下面描述的后續(xù)處理。另一方面,如果某頂點(diǎn)的差分?jǐn)?shù)據(jù)的量化選擇標(biāo)志是0,其意味著頂點(diǎn)所有關(guān)鍵幀中具有相同的量化值,則字典編碼器340將省略字典編碼處理,并且把量化值Qmin編碼成關(guān)鍵字值標(biāo)題。
圖4C是根據(jù)本發(fā)明的字典編碼處理的流程圖。參考圖4C,在步驟S462中,在DPCM處理器310中已經(jīng)產(chǎn)生的每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)被輸入到DPCM模式編碼器342中,然后DPCM模式編碼器342產(chǎn)生表示已經(jīng)對每一頂點(diǎn)的每一分量的數(shù)據(jù)執(zhí)行的DPCM操作模式的符號,以及表示符號的位置的位置索引。
圖6A是說明根據(jù)本發(fā)明的DPCM模式在編碼器342中執(zhí)行的編碼DPCM模式的方法的示意圖。參考圖6A,DPCM模式編碼器342預(yù)先制備表格,其中示出每一頂點(diǎn)的每一分量的DPCM模式和其分別的符號,如圖表4所示。表4示出DPCM操作以及其對應(yīng)符號的組合。表4中,時(shí)間DPCM操作、空間DPCM操作和空間-時(shí)間DPCM操作分別表示為T、S和T+S。
表4
每一頂點(diǎn)包括三個分量x、y和z,并且相應(yīng)的DPCM操作的組合的數(shù)量是27。
如圖6A所示,根據(jù)差分?jǐn)?shù)據(jù)已經(jīng)通過的DPCM操作,每一個頂點(diǎn)的差分?jǐn)?shù)據(jù)對應(yīng)于表4示出的符號中的一個。DPCM模式編碼器342使得頂點(diǎn)的DPCM模式對應(yīng)于表4中示出的其各自的符號,并且設(shè)置表示符號存在于各自的頂點(diǎn)差分?jǐn)?shù)據(jù)中的標(biāo)志。
DPCM模式編碼器342把對應(yīng)于頂點(diǎn)的DPCM模式的符號排列在列中,并且以從用于具有較小幅值的符號的位置索引到用于具有最大幅值的符號的位置索引的次序產(chǎn)生用于符號的位置索引。
如圖6A所示,對應(yīng)于頂點(diǎn)差分?jǐn)?shù)據(jù)的DPCM模式的符號的數(shù)組是(4,1,5,1,4,5)。在符號當(dāng)中,1是最小的符號,并且對應(yīng)于(T,T,S)。DPCM模式編碼器342產(chǎn)生用于符號1的位置索引,使得符號的數(shù)組中出現(xiàn)1的位置由1表示。因此,位置索引是(0,1,0,1,0,0)。
隨后,DPCM模式編碼器342產(chǎn)生用于次最小符號4的位置索引,其對應(yīng)于DPCM模式(T,S,S),使得其中4的位置由1表示。在用于符號4的位置索引的產(chǎn)生中,不計(jì)算符號1的位置。因此,用于符號4的位置索引是(1,0,1,0)。以同樣方式,DPCM模式編碼器342產(chǎn)生用于符號5的位置索引,其對應(yīng)于(T,S,T+S)。用于符號5的位置索引是(1,1)。
隨后,DPCM模式編碼器342把標(biāo)志和位置索引輸出到表格大小計(jì)算器344。
再一次參考圖3B和4C,表格大小計(jì)算器344計(jì)算用于編碼在出現(xiàn)模式中的輸入的差分?jǐn)?shù)據(jù)的符號表的大小(A),以及用于編碼在遞增模式中的輸入的差分?jǐn)?shù)據(jù)的符號標(biāo)志的大小(B),其對應(yīng)于步驟S464中在預(yù)先設(shè)置的符號表中的符號。
在步驟S446中,表格大小計(jì)算器344把使用在出現(xiàn)模式編碼器346中的符號表的大小A=S*(AQP+1)(其中S表示差分?jǐn)?shù)據(jù)中包括的符號的數(shù)量而AQP表示用于表示符號的比特的大小)與對應(yīng)各自符號的符號標(biāo)志的大小B=2AQP+1-1(其中AQP表示用于表示符號的比特的大小)相比較。
如果A小于B,則表格大小計(jì)算器344把每一個頂點(diǎn)的差分?jǐn)?shù)據(jù)輸出到出現(xiàn)模式編碼器346,如果B小于A,則把差分?jǐn)?shù)據(jù)輸出到增量模式編碼器348。
下面參照圖6B描述出現(xiàn)模式編碼器346的操作。
在步驟S468中,出現(xiàn)模式編碼器346產(chǎn)生對應(yīng)于每一頂點(diǎn)的輸入差分?jǐn)?shù)據(jù)的值的符號,以及表示其各自符號的位置的位置索引。
參考圖6B,當(dāng)頂點(diǎn)的輸入差分?jǐn)?shù)據(jù)是(3,7,3,7,-4,7,3,-4,3,7,-4,-4),時(shí),在步驟S468中出現(xiàn)模式編碼器346制備表格,其中對應(yīng)于每一頂點(diǎn)的差分?jǐn)?shù)據(jù)的差分值的符號3,7,和-4被順序地寫入一行。
出現(xiàn)模式編碼器346編碼符號數(shù)組中的第一個符號3并且產(chǎn)生針對符號3的位置索引,以使3處在而位置由1表示而其它位置由0表示。針對符號3的位置索引是(0 1 0 0 0 1 0 1 0 0 0)。
隨后,出現(xiàn)模式編碼器346產(chǎn)生用于下符號7的位置索引。如圖6B所示,在產(chǎn)生用于下符號的位置索引的過程中,前個符號的位置不被再次計(jì)算。因此,針對符號7的位置索引是(1 0 1 0 1 0 0)。
在出現(xiàn)模式編碼器346中,僅考慮尚未編碼的符號位置產(chǎn)生用于符號的全部位置索引,因此用于符號-4的位置索引是(1 1 1)。
在圖6B中,標(biāo)志bSoleKV被設(shè)置為0。標(biāo)志bSoleKV表示在差分?jǐn)?shù)據(jù)的符號數(shù)組中符號是否僅出現(xiàn)一次。如果符號僅出現(xiàn)一次并且因此其位置索引僅包括0,則用于對應(yīng)符號的bSoleBK被設(shè)置為1,并且對應(yīng)符號的位置索引不被編碼。出現(xiàn)模式編碼器346把輸入差分?jǐn)?shù)據(jù)的符號、符號的位置索引以及bSoleKV輸出到用于熵編碼差分?jǐn)?shù)據(jù)的熵編碼器350。
隨后參照圖6C描述根據(jù)本發(fā)明的增量模式編碼器348的操作。
在步驟S469,增量模式編碼器348產(chǎn)生表示包含在預(yù)定符號表中的符號是否存在于輸入的差分?jǐn)?shù)據(jù)中的符號標(biāo)志以及用于符號的位置索引。
增量模式編碼器348預(yù)先產(chǎn)生用于被期望存在于輸入差分?jǐn)?shù)據(jù)中的符號的表格。在表格中,以從具有最低絕對值的符號到具有最大絕對值的符號的次序把符號排列在列中,并且在具有相同的絕對值的兩個符號之間,具有正值的符號被放置在比另一符號更高的行中。因此,符號寫入表格中的次序是0,1,-1,2,-2,3,-3,....。對應(yīng)于符號表中的符號的符號標(biāo)志的大小是2AQP+1-1。例如,如果AQP是2,則能夠由符號標(biāo)志表示的符號的數(shù)量是7。如果對應(yīng)于符號的值存在于差分?jǐn)?shù)據(jù)中,則符號標(biāo)志設(shè)置為1。僅針對其符號標(biāo)志被設(shè)置為1的符號產(chǎn)生位置索引。
參考圖6C,如果輸入到增量模式編碼器348的差分?jǐn)?shù)據(jù)是(-1,-3,-1,-3,2,-3,-1,2,-1,-3,2,2),則存在于差分?jǐn)?shù)據(jù)中的符號是(-1,2,-3),并且因此確定符號標(biāo)志為(0,0,1,1,0,0,1)。
增量模式編碼器348產(chǎn)生用于符號的位置索引,其中符號在符號表中的定位在比其它符號高的行中。如圖6C所示,增量模式編碼器348設(shè)置符號-1所在的位置,其中其在符號表中的差分?jǐn)?shù)據(jù)中存在的符號中排位最高,并且以0設(shè)置其它位置,使得用于符號-1的位置索引是(1 0 1 0 0 0 1 0 1 0 0 0)。
隨后,增量模式編碼器348產(chǎn)生用于符號2的位置索引(0 0 1 0 1 0 1 1)而不考慮已經(jīng)編碼的符號-1的位置。最后,增量模式編碼器348產(chǎn)生用于符號3的位置索引(1 1 1 1)而不考慮已經(jīng)編碼的符號-1和符號2的位置。增量模式編碼器348把用于其各自符號的符號標(biāo)志和位置索引輸出到熵編碼器350。
由出現(xiàn)模式編碼器346和增量模式編碼器348產(chǎn)生的全部位置索引具有稱為nTrueOne的標(biāo)志,其表示原來的位置索引是否已經(jīng)反。具體地說,如果nTrueOne被設(shè)置為0,則認(rèn)為位置索引是通過反其原來位置索引而獲得的。在位置索引包括許多1的情況中,有可能通過反位置索引而增強(qiáng)算法編碼效率,以便增加0的數(shù)量。
隨后參照圖4描述熵編碼器350的操作。
根據(jù)本發(fā)明的熵編碼器350熵編碼從增量模式編碼器348輸入的表示差分?jǐn)?shù)據(jù)的符號的符號標(biāo)志和用于符號的位置索引,并且使用函數(shù)enodeSignedQuasiAAC()熵編碼從出現(xiàn)模式編碼器346輸入的差分?jǐn)?shù)據(jù)的符號和其各自的位置索引。
在encodeSignedQuasiAAC中,使用涉及輸入值和其符號的內(nèi)容產(chǎn)生一種自適應(yīng)算法編碼的比特?cái)?shù)據(jù)流。具體地說,在encodeSignedQuasiAAC()中,不為0的第一比特被編碼,隨后編碼其符號,并且使用零內(nèi)容編碼其它比特。
圖4D是使用encodeSignedQuasiAAC()編碼符號的處理的流程圖。
在步驟S481中,熵編碼器350接收將要被編碼的差分?jǐn)?shù)據(jù)的符號nValue和其比特大小QBit。
在步驟S482,熵編碼器350從nQBit減去2,并且存儲相減的結(jié)果作為可變i。
在步驟S483中,熵編碼器350把符號nValue的絕對值存儲作為變量val,并且對val執(zhí)行次數(shù)為i的右移位(SR)操作。熵編碼器350對1和SR操作的結(jié)果執(zhí)行邏輯″與″操作,并且把邏輯″與″操作的結(jié)果存儲作為變量比特。
在使用encodeSignedQuasiAAC()編碼符號的處理的第一周期中,檢測除了符號位以外的將要被熵編碼的輸入值中的第一比特,并且在隨后的周期中逐個讀出其它比特。
在步驟S484中熵編碼器350檢測val是否大于1。如果val大于1,則在步驟S485中在零上下文(context)之下使用函數(shù)qf_encode()編碼′比特′的值。另一方面,如果val不是大于1,則在步驟S486中在第i上下文中使用函數(shù)qf_encode()編碼′比特′的值。
當(dāng)val不大于1時(shí),在步驟S487中熵編碼器350再一次檢驗(yàn)val是否為1。如果val是1,則在步驟S488中設(shè)置nValue的符號,并且在步驟S489中根據(jù)其符號和符號上下文編碼nValue。
當(dāng)完成針對一個比特的編碼處理時(shí),熵編碼器350在步驟S490中把i減1,隨后在步驟S491中檢測i的當(dāng)前值是否小于0。通過重復(fù)地執(zhí)行S483至S490,熵編碼器350熵編碼輸入值,直到i小于0為止。
因此,按照分配到第一比特的上下文,熵編碼器350編碼輸入值不是0的第一比特,并且編碼按照零上下文的其它比特。
隨后參照圖2A描述在關(guān)鍵字值標(biāo)題編碼器370中的將要被編碼成關(guān)鍵字值標(biāo)題的信息。
關(guān)鍵字值標(biāo)題編碼器370接收輸入的坐標(biāo)協(xié)調(diào)程序并且編碼數(shù)據(jù)模式、每一關(guān)鍵幀中的頂點(diǎn)的數(shù)目、用于頂點(diǎn)數(shù)目的所需要的比特?cái)?shù)、以及每一浮點(diǎn)數(shù)的有效位的最大數(shù)目。
關(guān)鍵字值標(biāo)題編碼器370編碼量化比特?cái)?shù)、每一頂點(diǎn)的每一分量的關(guān)鍵字值數(shù)據(jù)中的最小值和每一頂點(diǎn)的每一分量的數(shù)據(jù)范圍中的最大數(shù)據(jù)范圍、以及每一頂點(diǎn)的每一分量的量化數(shù)據(jù)中的最大和最小值。
關(guān)鍵字值標(biāo)題編碼器370從DPCM處理器310接收已經(jīng)對每一頂點(diǎn)的每一分量的數(shù)據(jù)執(zhí)行的DPCM操作的模式,從字典編碼器340接收字典編碼模式,并且編碼DPCM操作模式和字典編碼方式。
隨后參照圖7A和7B描述根據(jù)本發(fā)明的用于解碼編碼的坐標(biāo)內(nèi)插符的裝置和方法。
圖7A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于解碼編碼的坐標(biāo)內(nèi)插符的裝置的框圖,而圖7B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于解碼編碼的坐標(biāo)內(nèi)插符的方法的流程圖。
參考圖7A,根據(jù)本發(fā)明的用于解碼編碼的坐標(biāo)內(nèi)插符的裝置包括熵解碼器800,其熵解碼輸入的比特?cái)?shù)據(jù)流并且因此產(chǎn)生將要被字典解碼的數(shù)據(jù),其中數(shù)據(jù)包括DPCM差分?jǐn)?shù)據(jù)的符號、符號標(biāo)志、用于符號的位置索引和DPCM操作模式;字典解碼器810,根據(jù)將要被字典編碼的數(shù)據(jù)的符號和其位置索引產(chǎn)生差分?jǐn)?shù)據(jù);反DPCM處理器830,根據(jù)DPCM操作模式而對差分?jǐn)?shù)據(jù)執(zhí)行預(yù)定的反DPCM操作來產(chǎn)生量化數(shù)據(jù);反量化器850,通過反量化量化數(shù)據(jù)而產(chǎn)生恢復(fù)的關(guān)鍵字值數(shù)據(jù);以及關(guān)鍵字值標(biāo)題解碼器870,從輸入的比特?cái)?shù)據(jù)流解碼用于解碼坐標(biāo)內(nèi)插符所需要的信息,并且把信息輸出到字典解碼器810、反DPCM處理器830和反量化器850。
下面參照圖7B描述根據(jù)本發(fā)明的用于解碼編碼的坐標(biāo)內(nèi)插符的方法。
在步驟S910中,其中的坐標(biāo)內(nèi)插符被編碼的比特?cái)?shù)據(jù)流被輸入到熵解碼器800,然后在步驟S920中,熵解碼器800解碼輸入的比特?cái)?shù)據(jù)流。如果輸入的比特?cái)?shù)據(jù)流已經(jīng)以出現(xiàn)模式編碼,則熵解碼器800把每一頂點(diǎn)的符號和其位置索引輸出到字典解碼器810。另一方面,如果輸入的比特?cái)?shù)據(jù)流已經(jīng)以增量模式編碼,則熵解碼器800把表示符號的存在的符號標(biāo)志和用于符號的位置索引輸出到字典解碼器810。
在步驟S930中,根據(jù)輸入的字典編碼模式,字典解碼器810通過解碼從熵解碼器800以出現(xiàn)模式輸入的符號和位置索引或通過解碼從熵解碼器800以增量模式輸入的符號標(biāo)志和位置索引而產(chǎn)生差分?jǐn)?shù)據(jù),并且把產(chǎn)生的差分?jǐn)?shù)據(jù)輸出到反DPCM處理器830。
根據(jù)輸入差分?jǐn)?shù)據(jù)的解碼的DPCM工作模式,反DPCM處理器830在步驟S940中通過對從字典解碼器810輸入的差分?jǐn)?shù)據(jù)執(zhí)行反時(shí)間DPCM操作、反空間DPCM操作以及反空間-時(shí)間DPCM操作中的一個而產(chǎn)生量化的關(guān)鍵字值數(shù)據(jù),并且把量化的關(guān)鍵字值數(shù)據(jù)輸出到反量化器850。
在步驟S950中,反量化器850使用從關(guān)鍵字值標(biāo)題解碼器870輸入的每一個分量的數(shù)據(jù)中的最小值和最大數(shù)據(jù)范圍而反量化從反DPCM處理器830輸入的量化的關(guān)鍵字值數(shù)據(jù)。
在步驟S960中,反量化器850檢查反量化的關(guān)鍵字值數(shù)據(jù)矩陣是否已經(jīng)在編碼處理過程中轉(zhuǎn)換成轉(zhuǎn)置矩陣,并且如果反量化的關(guān)鍵字值數(shù)據(jù)的矩陣已經(jīng)轉(zhuǎn)置,則在步驟S965中反地變換轉(zhuǎn)置矩陣。
在步驟S970中,反量化器850輸出恢復(fù)的坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)。
隨后,參照圖8A至9B更詳細(xì)地描述用于解碼編碼的坐標(biāo)內(nèi)插符的裝置和方法。
熵解碼器800首先從輸入比特?cái)?shù)據(jù)流解碼表示DPCM模式的比特?cái)?shù)據(jù)流,然后解碼包括bSelFlag、nKVACodingBit、nQMin、和nQMax的數(shù)組。
在編碼處理中,首先分別把bSelFlag和nKVACodingBit設(shè)置為1和0。如果bSelFlag被解碼成1,則熵解碼器800解碼nKVACodingBit、nQMin和nQMax。另一方面,如果bSelFlag被解碼成0,則熵解碼器800只解碼nQMin。
在解碼數(shù)據(jù)bSelFlag、nKVACodingBit、nQMin和nQMax的數(shù)組以后,熵解碼器800解碼表示字典編碼模式的nDicModeSelect。根據(jù)nDicModeSelect的值,將要被解碼的比特?cái)?shù)據(jù)流被分成下面將被描述的兩個不同種類。
圖10是示意圖,說明坐標(biāo)內(nèi)插符的每一頂點(diǎn)和每一個頂點(diǎn)的分量數(shù)據(jù)的比特?cái)?shù)據(jù)流的結(jié)構(gòu)。如圖10所示,如果nDicModeSelect是0,比特?cái)?shù)據(jù)流包括已經(jīng)在出現(xiàn)模式編碼器中編碼的符號和位置索引。另一方面,如果nDicModeSelect是1,則比特?cái)?shù)據(jù)流包括已經(jīng)在增量模式編碼器中編碼的符號標(biāo)志和位置索引。
上面已經(jīng)描述的根據(jù)本發(fā)明的熵解碼器使用以圖19所示的程序代碼實(shí)現(xiàn)的函數(shù)decodeSignedQuasiAAC()。在函數(shù)encodeSignedQuasiAA()中,使用涉及輸入值和其符號的上下文解碼一種自適應(yīng)算法編碼的比特?cái)?shù)據(jù)流。具體地說,在函數(shù)decodeSignedQuasiAAC()中,使用零上下文解碼符號位之后的比特。熵解碼器800把解碼的數(shù)據(jù)輸出到字典解碼器810。
圖8A是根據(jù)本發(fā)明的字典解碼器810的框圖,而圖9A是字典編碼的流程圖。
如圖8A所示,字典解碼器810包括DPCM模式解碼器812,其恢復(fù)輸入其中的每一頂點(diǎn)的DPCM模式;字典模式選擇器814,其選擇輸入每一頂點(diǎn)的字典解碼模式;出現(xiàn)模式解碼器816,從字典模式選擇器814接收每一頂點(diǎn)的每一分量的符號和針對符號的位置索引,并且恢復(fù)差分?jǐn)?shù)據(jù);以及增量模式解碼器818,其從字典模式選擇器814接收符號標(biāo)志和用于符號的位置索引,并且恢復(fù)差分?jǐn)?shù)據(jù)。
參考圖9A,在步驟S93 1中,包括符號、符號標(biāo)志和位置索引的每一頂點(diǎn)的熵解碼的分量數(shù)據(jù)被輸入到DPCM模式解碼器812。
在字典解碼的差分?jǐn)?shù)據(jù)被輸出到反DPCM處理器830之前,在步驟S932中,DPCM模式解碼器812解碼反DPCM操作的模式,其中反DPCM操作是在反DPCM處理器830中將對每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)執(zhí)行的操作。
隨后參考圖11A描述DPCM模式解碼。
除了表示每一頂點(diǎn)的每一分量的DPCM模式的組合的符號數(shù)目被固定在27、因此符號表的大小也被固定在27之外,DPCM模式解碼與稍后將被描述的增量模式解碼相同。
DPCM模式解碼器812接收DPCM模式標(biāo)志并且按照輸入的位置索引把對應(yīng)于DPCM模式標(biāo)志的符號記錄在數(shù)組中。
例如,如圖11A所示,對應(yīng)于輸入DMCM模式標(biāo)志的符號是1(T T S),4(TS S),和5(T S T+S),并且其各自的索引是(0 1 0 1 0 0)、(1 0 1 0)和(1 1)。因此,使用符號1和其位置索引(0 1 0 1 0 0)恢復(fù)數(shù)據(jù)數(shù)組(array)(X 1 X 1 X X),使用符號4和其位置索引(1 0 1 0)恢復(fù)數(shù)據(jù)數(shù)組(4 1 X 1 4 X),以及使用符號5和其位置索引(1 1)恢復(fù)數(shù)據(jù)數(shù)組(4 1 5 1 4 5)。
恢復(fù)的數(shù)據(jù)數(shù)組(4 1 5 1 4 5)被轉(zhuǎn)換成DPCM模式(T S S)(T T S)(T ST+S)(T T S)(T S S)(T S T+S)的組合的數(shù)組。因此,有可能表明已經(jīng)根據(jù)恢復(fù)的數(shù)據(jù)數(shù)組對每一頂點(diǎn)的每一分量執(zhí)行了哪一種DPCM。
DPCM模式解碼器812把每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)連同解碼的DPCM模式信息一起輸出到字典模式選擇器814。
在步驟S934中,根據(jù)每一頂點(diǎn)的每一分量的nDicModeSelect的值,字典模式選擇器814把從DPCM模式解碼器812輸入的每一頂點(diǎn)的分量數(shù)據(jù)輸出到出現(xiàn)模式解碼器816或增量模式解碼器818。
如果nDicModeSelect是0,則字典模式選擇器814把頂點(diǎn)的分量數(shù)據(jù)輸出到出現(xiàn)模式解碼器816,而如果nDicModeSelect是1,則字典模式選擇器814把頂點(diǎn)的分量數(shù)據(jù)輸出到增量模式解碼器818。
在步驟S936中,出現(xiàn)模式解碼器816把每一個分量的符號數(shù)據(jù)和位置索引恢復(fù)成差分?jǐn)?shù)據(jù)。
圖11B是說明出現(xiàn)模式解碼的實(shí)例的示意圖。參考圖11B,出現(xiàn)模式解碼器816從字典模式選擇器814接收符號數(shù)據(jù)并且檢驗(yàn)bSoleKV和nTrueOne。
如果bSoleKV表示在差分?jǐn)?shù)據(jù)中有多個輸入符號并且nTrueOne表示位置索引尚未反,則出現(xiàn)模式解碼器816通過在數(shù)據(jù)數(shù)組中由其各自的位置索引表示的各自的位置插入輸入符號而恢復(fù)差分?jǐn)?shù)據(jù)。
例如,出現(xiàn)模式解碼器816順序地接收符號3、7和-4以及其各自的位置索引(0 1 0 0 0 1 0 1 0 0 0)、(1 0 1 0 1 0 0)和(1 1 1)。
在按照位置索引(0 1 0 0 0 1 0 1 0 0 0)的差分?jǐn)?shù)據(jù)數(shù)組中出現(xiàn)模式解碼器816記錄第一符號3。因此,通過把符號3插入在差分?jǐn)?shù)據(jù)數(shù)組中的對應(yīng)于位置索引(0 1 0 0 0 1 0 1 0 0 0)中1所處在的位置而獲得(3 X 3 X X X 3 X 3 X X X)。
出現(xiàn)模式解碼器816恢復(fù)隨后的符號7。在恢復(fù)符號7的過程中,不考慮差分?jǐn)?shù)據(jù)數(shù)組中的符號3的位置,使得用于符號7的位置索引不是(0 1 0 1 0 0 0 10 0),而是(1 0 1 0 1 0 0)。
出現(xiàn)模式解碼器816在差分?jǐn)?shù)據(jù)數(shù)組中的沒被符號3占用的位置中的第一位置記錄符號7,然后在差分?jǐn)?shù)據(jù)數(shù)組中對應(yīng)于位置索引(1 0 1 0 1 0 0)中的1處在的位置記錄符號7。因此,在恢復(fù)符號7之后,差分?jǐn)?shù)據(jù)數(shù)組是(3 7 3 7 X 73 X 3 7 X X)。
出現(xiàn)模式解碼器816按照索引(1 1 1)恢復(fù)符號-4,并且因此產(chǎn)生差分?jǐn)?shù)據(jù)數(shù)組是(3 7 3 7 -4 7 3 -4 3 7 4 -4)。
如果bSoleKV被設(shè)置為1,則意味著在差分?jǐn)?shù)據(jù)中僅存在輸入符號,并且沒有用于輸入符號的位置索引。因此,出現(xiàn)模式解碼器816把輸入符號記錄在空白差分?jǐn)?shù)據(jù)數(shù)組中的第一位置,并且執(zhí)行用于恢復(fù)下一個符號的處理。
在步驟S936中,增量模式解碼器818把每一個分量的符號標(biāo)志和位置索引恢復(fù)成差分?jǐn)?shù)據(jù)。隨后參考圖11C描述增量模式解碼。
增量模式解碼器818從字典模式選擇器814接收表示在差分?jǐn)?shù)據(jù)中是否存在符號的符號標(biāo)志、表示位置索引是否已經(jīng)反的nTrueOne以及位置索引。
增量模式解碼器818根據(jù)輸入符號標(biāo)志解碼在差分?jǐn)?shù)據(jù)中包括的符號。像用于增量模式編碼的符號表一樣,在用于增量模式解碼的符號表中,按照從具有最低絕對值的符號到具有最大絕對值的符號的次序把符號排列為一列,并且在具有相同絕對值的兩個符號之間,具有正值的符號排列在比另外的符號高的一行中。符號標(biāo)志的大小是2nKVCodingBit+1-1,其中nKVCodingBit表示在熵解碼器800中解碼的量化比特的數(shù)量。因此,如果符號標(biāo)志是(0 0 1 1 0 0 1),則增量模式解碼器818解碼存在于差分?jǐn)?shù)據(jù)中作為符號存在的-1,2,和-3。
符號標(biāo)志之后輸入的位置索引分別是(1 0 1 0 0 0 1 0 1 0 0 0),(0 0 1 0 1 01 1),和(1 1 1 1)并且分別對應(yīng)于符號-1、2和3。
增量模式解碼器818在差分?jǐn)?shù)據(jù)數(shù)組中的對應(yīng)于位置索引(1 0 1 0 0 0 10 1 0 0 0)中1處在的位置的位置上記錄符號-1,使得產(chǎn)生的數(shù)據(jù)數(shù)組是(-1 X -1X X X -1 X -1 X X X)。
隨后,增量模式解碼器818通過在差分?jǐn)?shù)據(jù)數(shù)組中的對應(yīng)于在位置索引(00 1 0 1 0 1 1)中1處在的位置的位置中記錄2而恢復(fù)符號2。在恢復(fù)符號2的過程中,不考慮差分?jǐn)?shù)據(jù)數(shù)組中的第一個符號-1的位置,使得產(chǎn)生的差分?jǐn)?shù)據(jù)數(shù)組是(-1 X-1 X 2 X-1 2-1 X 2 2)。
增量模式解碼器81通過在差分?jǐn)?shù)據(jù)數(shù)組中的對應(yīng)于在位置索引(1 1 1 1)中的1處在的位置的位置上記錄-3而恢復(fù)符號-3,使得產(chǎn)生的差分?jǐn)?shù)據(jù)數(shù)組是(-1 -3 -1 -3 2 -3 -1 -3 2 2)。
在步驟S939中,出現(xiàn)模式解碼器816和增量模式解碼器818恢復(fù)每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù),并且把恢復(fù)的差分?jǐn)?shù)據(jù)輸出到反DPCM處理器830。
圖8B是根據(jù)本發(fā)明的反DPCM處理器830的框圖,而圖9B是反DPCM操作的流程圖。
參考圖8B,根據(jù)本發(fā)明的反DPCM處理器830包括反時(shí)間DPCM操作器842,其對輸入的差分?jǐn)?shù)據(jù)執(zhí)行反時(shí)間DPCM操作和反循環(huán)量化操作,然后輸出坐標(biāo)內(nèi)插符的量化的關(guān)鍵字值數(shù)據(jù);反空間DPCM操作器844,其對輸入的差分?jǐn)?shù)據(jù)執(zhí)行反空間DPCM操作和反循環(huán)量化操作,隨后輸出量化的關(guān)鍵字值數(shù)據(jù);反空間-時(shí)間DPCM操作器846,對輸入的差分?jǐn)?shù)據(jù)執(zhí)行反空間-時(shí)間DPCM操作和反循環(huán)量化操作,隨后輸出量化的關(guān)鍵字值數(shù)據(jù);以及反DPCM模式選擇器835,其把輸入其中的差分?jǐn)?shù)據(jù)輸出到反時(shí)間DPCM操作器842、反空間DPCM操作器844和反空間-時(shí)間DPCM操作器846中的一個上。
參考圖9B,在步驟S942中,反DPCM模式選擇器835根據(jù)在DPCM模式解碼器812中恢復(fù)的每一頂點(diǎn)的每一分量的DPCM操作模式確定將對輸入其中的差分?jǐn)?shù)據(jù)執(zhí)行的反DPCM操作,并且按照反DPCM操作模式而輸出每一頂點(diǎn)的每一分量的輸入的差分?jǐn)?shù)據(jù)。
DPCM操作器842、844和846中的每一個同時(shí)對輸入其中的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作和反循環(huán)量化操作。
在步驟S944中,反時(shí)間DPCM操作器842遵循方程式(8)對輸入的差分?jǐn)?shù)據(jù)執(zhí)行反時(shí)間DPCM操作,在步驟S946中,反空間DPCM操作器844遵循方程式(9)對輸入的差分?jǐn)?shù)據(jù)執(zhí)行反空間DPCM操作,在步驟S948中,反空間-時(shí)間DPCM操作器846遵循方程式(10)對輸入的差分?jǐn)?shù)據(jù)執(zhí)行反空間-時(shí)間DPCM操作。
V~i,j=Di,j+V~i-1,j···(8)]]>V~i,j=Di,j+V~i,Ref···(9)]]>V~i,j=Di,j+{V~i-1,j+(V~i,Ref-V~i-1,Ref)}···(10)]]>在方程式(8)至(10)中, 表示在第i關(guān)鍵幀中的第j個頂點(diǎn)的量化關(guān)鍵字值數(shù)據(jù),Di,j表示在第i關(guān)鍵幀中的第j個頂點(diǎn)的差分?jǐn)?shù)據(jù),而Ref表示參考頂點(diǎn)。
方程式(9)和(10)中,如果 或{V~i-1,j+(V~i,Ref-V~i-1,Ref)}]]>小于每一分量的量化關(guān)鍵字值數(shù)據(jù)的最小值,則使用最小值而不使用 或{V~i-1,j+(V~i,Ref-V~i-1,Ref)}.]]>如果 或{V~i-1,j+(V~i,Ref-V~i-1,Ref)}]]>大于每一個分量的量化關(guān)鍵字值數(shù)據(jù)中的最大值,則使用最大值而不使用 或{V~i-1,j+(V~i,Ref-V~i-1,Ref)}.]]>DPCM操作器842、844和846中的每一個都使用方程式(11)執(zhí)行反DPCM操作并且同時(shí)執(zhí)行反循環(huán)量化操作,以便擴(kuò)展已經(jīng)在編碼處理過程中降低的差分?jǐn)?shù)據(jù)的范圍。
InverseCircularQuantization(Xi)~:···(11)]]>Xi′=X~i-(nQMax-nQMin+1)---(ifX~i≥0)]]>Xi′=X~i+(nQMax-nQMin+1)---(otherwise)]]>X^i=X^i-1+X~i---(if nQMin≤X^i-1+X~i≤nQMax)]]>X^i=X^i-1+Xi′---(f nQMin≤X^i-1+Xi′≤nQMax)]]>在方程式(11)中, 是與DIJ相同的輸入值, 是與 或{V~i-1,j+(V~i,Ref-V~i-1,Ref)}]]>一樣的先前反循環(huán)量化的值。nQMax和nQMin分別表示在DPCMed差分?jǐn)?shù)據(jù)中的最大值和最小值。
在步驟S949中,反DPCM處理器830把已經(jīng)反DPCM的和反循環(huán)量化的每一頂點(diǎn)的每一分量的關(guān)鍵字值數(shù)據(jù)輸出到反量化器850。
參考圖7B,遵循方程式(2),反量化器850把在從關(guān)鍵字值標(biāo)題解碼器870輸入的輸入分量數(shù)據(jù)中的最小值fMin_X、fMin_Y和fMin_Z和最大范圍值fMax轉(zhuǎn)換成二進(jìn)制數(shù),并且通過把fMin_X、fMin_Y、fMin_Z和fMax代入到方程式(12)中而反量化從反DPCM處理器830輸入的量化關(guān)鍵字值數(shù)據(jù)。
V^i,j,x=fMin_X+V~i,j,x2nKVQBits-1×fMax···(12)]]>V^i,j,y=fMin_Y+V~i,j,y2nKVQBits-1×fMax]]>V^i,j,z=fMin_Z+V~i,j,z2nKVQBits-1×fMax]]>方程式(12)中,nKVQBits表示用于反量化的量化比特的大小。
反量化器850必須以表2示出的矩陣的形式輸出每一頂點(diǎn)的每一分量的反量化的關(guān)鍵字值數(shù)據(jù)。為了實(shí)現(xiàn)此目的,在步驟S960中,反量化器850在輸出反量化的關(guān)鍵字值數(shù)據(jù)之前檢驗(yàn)反量化的關(guān)鍵字值數(shù)據(jù)的模式是否為轉(zhuǎn)置模式。如果反量化的關(guān)鍵字值數(shù)據(jù)的模式是轉(zhuǎn)置模式,則在步驟S965中,反量化器850通過反變換轉(zhuǎn)置矩陣而產(chǎn)生并且輸出坐標(biāo)內(nèi)插符的解碼的關(guān)鍵字值數(shù)據(jù)。
隨后,參照圖12至18描述用于解碼編碼的比特?cái)?shù)據(jù)流和使用在這種程序代碼中的變量的SDL程序代碼。
圖12示出用于讀出壓縮坐標(biāo)內(nèi)插符的比特?cái)?shù)據(jù)流的最高類(class)。
CoordIKeyValueHeader和CoordIKeyValue是用于讀出對應(yīng)于一般坐標(biāo)內(nèi)插符節(jié)點(diǎn)的關(guān)鍵字值字段數(shù)據(jù)的關(guān)鍵字值信息的類。函數(shù)qf_start()被用于在讀出AAC-編碼的數(shù)據(jù)之前初始化算法解碼器。
圖13表示使用用于解碼關(guān)鍵字值數(shù)據(jù)所需要的關(guān)鍵字值標(biāo)題信息用于產(chǎn)生比特?cái)?shù)據(jù)流的程序代碼。
在關(guān)鍵字標(biāo)題數(shù)據(jù)被解碼之后解碼關(guān)鍵字值標(biāo)題數(shù)據(jù)。關(guān)鍵字值標(biāo)題包括頂點(diǎn)數(shù)目、用于量化的關(guān)鍵字值數(shù)據(jù)參數(shù)和用于量化的最大和最小值。bTranspose是表示是否為轉(zhuǎn)置模式或頂點(diǎn)模式的標(biāo)志。如果bTranspose是1,則在解碼處理中選擇轉(zhuǎn)置模式。另一方面,如果bTranspose是0,選擇頂點(diǎn)模式。nKVQBit是用于通過反量化恢復(fù)浮點(diǎn)數(shù)字的量化比特。nCoordQBit是用于表示代表頂點(diǎn)數(shù)量nNumberOfCoord的比特的大小。在反量化后使用nKVDigit,并且表示關(guān)鍵字值數(shù)據(jù)有效位的最大值數(shù)。類KeyValueMinMax恢復(fù)用于反量化的最小值和被分成尾數(shù)和指數(shù)的最大數(shù)據(jù)范圍。標(biāo)題信息的其它部分包括在最大值以及每一頂點(diǎn)的每一分量的量化關(guān)鍵字值數(shù)據(jù)中的最大值和最小值中的最小值。具體地說,nXQMinOfMax表示在每一個頂點(diǎn)的x分量的量化關(guān)鍵字值數(shù)據(jù)中的最大值當(dāng)中的最小值。nNumKeyCodingBit代表表示關(guān)鍵字?jǐn)?shù)據(jù)數(shù)的nNumberofKey的比特大小。需要包括nXQMinofMax和nNumberOfKey信息來解碼關(guān)鍵字值數(shù)據(jù)。
圖14A和14B是表示根據(jù)本發(fā)明用于實(shí)現(xiàn)解碼DPCM模式的裝置的程序代碼。圖14A和14B所示每一變量的含意如下。
nDPCMMode表示每一頂點(diǎn)的每一分量(x,y,z)的DPCM模式。當(dāng)nDPCMMode被設(shè)置為1,2,或3時(shí),分別表示時(shí)間DPCM模式、空間DPCM模式,或時(shí)間空間的DPCM模式。
bSelFlag是用于選擇每一頂點(diǎn)的每一分量的標(biāo)志。使用字典編碼器340僅編碼其bSelFlag被設(shè)置為1的每一個頂點(diǎn)的分量。selectionFlagContext是用于讀出bSelFlag的上下文。
nKVACodingBit表示用于每一頂點(diǎn)的每一分量的編碼比特。aqpXContext、aqpYContext和aqpZContext是分別用于X軸、Y軸和Z軸的上下文,被用于讀出nKVACodingBit。
nRefVertex是用于全部頂點(diǎn)的參考頂點(diǎn)的索引。refContext是用于讀出nRefVertex的上下文。
nQMin表示在每一頂點(diǎn)的每一分量的DPCMed差分?jǐn)?shù)據(jù)中的最小值。qMinContext表示用于讀出nQMin的上下文,而qMinSignContext是用于讀出nQMin的符號的上下文。
nQMax表示在每一頂點(diǎn)的每一分量的DPCMed差分?jǐn)?shù)據(jù)中的最大值。qMaxContext是用于讀出nQMax的上下文,而aMaxSignContext是用于讀出nQMax的符號的上下文。
圖15是說明根據(jù)本發(fā)明的用于解碼DPCM模式的程序代碼,并且圖15所示的每一變量的含意如下。
bAddressOfDPCMMode表示每一DPCM字典符號的用法,其通過用于在DPCM字典表格中的每一分量的DPCM模式的組合構(gòu)成。每一頂點(diǎn)包括三個分量,并且在每一個頂點(diǎn)的分量中可能存在三個不同種類的DPCM,T、S和T+S模式。如圖3所示,有27個表示三個DPCM模式的組合的字典符號。dpcmModeDicAddressContext是用于讀出bAddressOfDPCMMode的上下文。
bDPCMIndex表示哪個DPCM符號已經(jīng)用于每一個頂點(diǎn)。dpcmModelDicIndexContext是用于讀出bDPCMIndex的上下文。
圖16是表示根據(jù)本發(fā)明用于解碼字典編碼模式的程序代碼的示意圖,圖16示出每一變量的含意如下。
dDicModeSelect表示已經(jīng)在字典編碼過程中使用的字典編碼模式。當(dāng)dDicModeSelect是1時(shí),意味著字典編碼模式是增量模式。另一方面,如果dDicModeSelect是0,則意味著字典編碼模式是出現(xiàn)模式。
圖17是表示根據(jù)本發(fā)明用于實(shí)現(xiàn)增量模式解碼方法的程序代碼的示意圖,圖17示出每一變量的含意如下。
bAddress表明是否已經(jīng)使用了表示量化關(guān)鍵字值的增量模式字典符號。使用在增量模式表格中的符號的數(shù)量是2nKVCodingBit+1-1。dicAddressContext是用于讀出bAddress的上下文。
nTrueOne表示索引數(shù)據(jù)是否已經(jīng)反。當(dāng)nTrueOne是1時(shí),在位置索引中的1值被認(rèn)為是表示符號的位置的實(shí)際值。當(dāng)nTrueOne是0時(shí),在位置索引中的0值被認(rèn)為是表示符號的位置的實(shí)際值。
bAddrIndex表示用于每一頂點(diǎn)的每一分量的增量模式符號。dicIndexContext是用于讀出bAddrIndex的上下文。
圖18是說明根據(jù)本發(fā)明的用于實(shí)現(xiàn)出現(xiàn)模式解碼方法的程序代碼,并且圖18所示的每一變量的含意如下。
nQKV包括出現(xiàn)模式符號,它是量化的關(guān)鍵字值數(shù)據(jù)。kvXContext、kvYContext和kvZContext是用于讀出nQKV的上下文,而kvSignContext是用于讀出nQKV的符號的上下文。
bSoleKV表示是否解碼符號在差分?jǐn)?shù)據(jù)中僅出現(xiàn)一次。如果解碼符號在差分?jǐn)?shù)據(jù)中僅出現(xiàn)一次,則soleKV被設(shè)置為1。dicSoleKVContext是用于讀出bSoleKV的上下文。
bDicIndex表示哪個字典符號已經(jīng)被用于每一頂點(diǎn)的每一分量。dicIndexContext是用于讀出bDicIndex的上下文。
圖20A是表示執(zhí)行根據(jù)本發(fā)明的用于編碼和解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法和傳統(tǒng)的MPEG-4BIFS PMFC方法的執(zhí)行測試性能的結(jié)果的速率失真曲線。具體地說,圖20A示出在失真度和在編碼坐標(biāo)內(nèi)插符的38個關(guān)鍵字值數(shù)據(jù)情況下的編碼比特率之間的關(guān)系。如圖20A所示,用于編碼和解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法具有比傳統(tǒng)的MPEG-4BIFS PMFC方法更高的效率。
圖20B包括三個示意圖(a)、(b)和(c)。具體地說,在圖20B中,(a)表示動畫數(shù)據(jù),(b)表示根據(jù)本發(fā)明編碼/解碼的動畫數(shù)據(jù),而(c)表示遵循常規(guī)編碼/解碼方法而被編碼/解碼的動畫數(shù)據(jù)。如圖20B所示,根據(jù)本發(fā)明用于編碼和解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法能夠提供比常規(guī)編碼/解碼方法更高質(zhì)量的動畫,其大為接近原始的動畫。
上面已經(jīng)參照附圖描述了根據(jù)本發(fā)明用于編碼/解碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)以便顯示基于關(guān)鍵幀的動畫的方法和裝置,其中示出了本發(fā)明的優(yōu)選實(shí)施例。本專業(yè)技術(shù)人員顯然清楚,采用在本發(fā)明優(yōu)選實(shí)施例中的DPCM操作不局限于只應(yīng)用到坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù),而是同樣能應(yīng)用到包括多個分量來描述三維對象的頂點(diǎn)數(shù)據(jù)。
圖21A是根據(jù)本發(fā)明的DPCM操作器的框圖。參考圖21A,根據(jù)本發(fā)明的DPCM操作器包括時(shí)間DPCM操作器2010,其產(chǎn)生構(gòu)成隨時(shí)間的推移而變化的3D對象的在預(yù)定時(shí)刻頂點(diǎn)數(shù)據(jù)和另一預(yù)定的時(shí)刻的頂點(diǎn)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù);空間DPCM操作器2020,其產(chǎn)生在頂點(diǎn)的數(shù)據(jù)和在預(yù)定時(shí)刻的參考頂點(diǎn)的數(shù)據(jù)之間差分?jǐn)?shù)據(jù);以及DPCM模式選擇器2030,其輸出在從時(shí)間DPCM操作器2010輸入的差分?jǐn)?shù)據(jù)和從空間DPCM操作器2020輸入的差分?jǐn)?shù)據(jù)之間的較小的差分?jǐn)?shù)據(jù)。
根據(jù)本發(fā)明的DPCM操作器最好還包括空間-時(shí)間DPCM操作器2040,其計(jì)算在頂點(diǎn)和關(guān)鍵幀中的參考頂點(diǎn)之間的差分?jǐn)?shù)據(jù)之間的差分?jǐn)?shù)據(jù),以及通過對空間DPCM操作的結(jié)果執(zhí)行時(shí)間DPCM操作而計(jì)算其在另一關(guān)鍵幀中的對應(yīng)的差分?jǐn)?shù)據(jù)。即使在提供有空間-時(shí)間DPCM操作器的情況中,DPCM模式選擇器2030仍然輸出在從時(shí)間DPCM操作器2010輸入的差分?jǐn)?shù)據(jù)、從空間DPCM操作器2020輸入的差分?jǐn)?shù)據(jù)和從空間-時(shí)間DPCM操作器2040輸入的差分?jǐn)?shù)據(jù)當(dāng)中的最小的差分?jǐn)?shù)據(jù)。
根據(jù)本發(fā)明的DPCM操作器的單元的操作與上述的DPCM處理器的對應(yīng)單元的操作相同。
根據(jù)本發(fā)明DPCM操作器接收來自外部的構(gòu)成3D對象頂點(diǎn)的量化坐標(biāo)數(shù)據(jù)。
當(dāng)頂點(diǎn)表示當(dāng)前對象時(shí),時(shí)間DPCM操作器2010使用方程式(3)計(jì)算在頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù),并且當(dāng)頂點(diǎn)表示先前對象時(shí)計(jì)算頂點(diǎn)的坐標(biāo)數(shù)據(jù)。
空間DPCM操作器2020使用方程式(5)計(jì)算已經(jīng)執(zhí)行了DPCM操作的頂點(diǎn)和存在于同一個時(shí)間軸上作為DPCMed頂點(diǎn)的之間的差分?jǐn)?shù)據(jù),選擇具有最小差分?jǐn)?shù)據(jù)的頂點(diǎn)作為參考頂點(diǎn),并且輸出差分?jǐn)?shù)據(jù)。
DPCM模式選擇器2030計(jì)算從時(shí)間DPCM操作器2010輸入的差分?jǐn)?shù)據(jù)和從空間DPCM操作器2020輸入的差分?jǐn)?shù)據(jù)的大小,并且連同DPCM操作信息一起輸出具有較小大小的差分?jǐn)?shù)據(jù)。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,可以進(jìn)一步包括在DPCM操作器中的空間-時(shí)間DPCM操作器2040,使用方程式(6)對3D對象的量化坐標(biāo)數(shù)據(jù)執(zhí)行上述的空間DPCM操作,并且對當(dāng)前頂點(diǎn)執(zhí)行空間DPCM操作以及對先前頂點(diǎn)執(zhí)行空間DPCM操作的結(jié)果執(zhí)行上述的時(shí)間DPCM操作。
包括在根據(jù)本發(fā)明優(yōu)選實(shí)施例的DPCM操作器中的循環(huán)量化器2050使用方程式(7)降低輸入其中的差分?jǐn)?shù)據(jù)的范圍。
圖21B是反DPCM操作器的框圖,反DPCM操作器把由根據(jù)本發(fā)明的DPCM操作器產(chǎn)生的差分?jǐn)?shù)據(jù)轉(zhuǎn)換成量化坐標(biāo)數(shù)據(jù)。
根據(jù)本發(fā)明的反DPCM操作器包括反時(shí)間DPCM操作器2110,其對在預(yù)定時(shí)刻的頂點(diǎn)的數(shù)據(jù)和在另一預(yù)定時(shí)刻的頂點(diǎn)的數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作;反空間DPCM操作器2120,其對頂點(diǎn)的數(shù)據(jù)和在預(yù)定瞬時(shí)的參考頂點(diǎn)的數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)執(zhí)行反空間DPCM操作;以及反DPCM模式選擇器2100,其根據(jù)已經(jīng)對差分?jǐn)?shù)據(jù)執(zhí)行的DPCM操作的模式,把差分?jǐn)?shù)據(jù)輸出到反時(shí)間DPCM操作器2110或反空間DPCM操作器2120。
根據(jù)本發(fā)明的反DPCM操作器最好還包括反空間-時(shí)間DPCM操作器2130,對當(dāng)前反空間DPCM操作的結(jié)果以及先前反空間DPCM操作的結(jié)果執(zhí)行反空間-時(shí)間DPCM操作。
根據(jù)本發(fā)明的反DPCM操作器的單元的操作與上述的反DPCM處理器的對應(yīng)單元的操作相同。
將要被恢復(fù)成量化坐標(biāo)數(shù)據(jù)的差分?jǐn)?shù)據(jù)被輸入到反DPCM模式選擇器2100。隨后,反DPCM模式選擇器2100識別已經(jīng)對包括在輸入的差分?jǐn)?shù)據(jù)中的每一頂點(diǎn)的分量數(shù)據(jù)執(zhí)行了哪一種DPCM,并且把每一個頂點(diǎn)的分量數(shù)據(jù)輸出到反時(shí)間DPCM操作器2110、反空間DPCM操作器2120和反空間-時(shí)間DPCM操作器2130。
反時(shí)間DPCM操作器2110遵循方程式(8)對輸入其中的差分?jǐn)?shù)據(jù)執(zhí)行反時(shí)間DPCM操作,反空間DPCM操作器2120遵循方程式(9)對輸入其中的差分?jǐn)?shù)據(jù)執(zhí)行反空間DPCM操作,并且反空間-時(shí)間DPCM操作器2130遵循方程式(10)對輸入其中的差分?jǐn)?shù)據(jù)執(zhí)行空間-時(shí)間DPCM操作。
如果輸入的差分?jǐn)?shù)據(jù)已經(jīng)被循環(huán)量化,則DPCM操作器2110、2120和2130的每一個都使用方程式(11)對其各自的反DPCM的差分?jǐn)?shù)據(jù)執(zhí)行反循環(huán)量化操作,以便擴(kuò)展各自的反DPCM差分?jǐn)?shù)據(jù)的范圍。
本發(fā)明能夠?qū)崿F(xiàn)為寫在計(jì)算機(jī)可讀取記錄介質(zhì)上的計(jì)算機(jī)可讀代碼。其中,計(jì)算機(jī)可讀記錄介質(zhì)包括能夠由計(jì)算機(jī)系統(tǒng)讀出的任何種類的記錄介質(zhì)。例如,計(jì)算機(jī)可讀記錄介質(zhì)可以包括ROM、RAM、CD-ROM、磁帶、軟盤、光數(shù)據(jù)存儲器、載波(通過互聯(lián)網(wǎng)絡(luò)發(fā)送)等。計(jì)算機(jī)可讀記錄介質(zhì)能夠分散到經(jīng)過網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng),并且計(jì)算機(jī)能夠以分散的方法讀出記錄介質(zhì)。
考慮了在不同關(guān)鍵幀中的頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)以及坐標(biāo)內(nèi)插符的頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù),根據(jù)本發(fā)明的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法和裝置通過編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)而具有高編碼效率。
此外,根據(jù)本發(fā)明的用于編碼坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的方法和裝置通過使用對應(yīng)于差分?jǐn)?shù)據(jù)的值的符號和針對其各自符號的位置索引表示差分?jǐn)?shù)據(jù)而具有更高的編碼效率。
雖然已經(jīng)參照幾個優(yōu)選實(shí)施例展示和描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解,在不背離本所附的如權(quán)利要求定義的精神和范圍的條件下可以進(jìn)行各種形式和細(xì)節(jié)上的改變。
本發(fā)明不限于上述實(shí)施例,在不脫離本發(fā)明范圍的情況下,可以進(jìn)行各種變形和修改。
權(quán)利要求
1.用于產(chǎn)生構(gòu)成根據(jù)時(shí)間的推移而移動的對象的頂點(diǎn)量化坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)的裝置,該裝置包括時(shí)間DPCM操作器,其產(chǎn)生根據(jù)時(shí)間的推移改變的每一頂點(diǎn)坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù);空間DPCM操作器,其產(chǎn)生在每一個頂點(diǎn)和在預(yù)定時(shí)刻的頂點(diǎn)的參考頂點(diǎn)之間的差分?jǐn)?shù)據(jù);及DPCM模式選擇器,其輸出在從時(shí)間DPCM操作器輸入的差分?jǐn)?shù)據(jù)和從空間DPCM操作器輸入的差分?jǐn)?shù)據(jù)之間的較小的差分?jǐn)?shù)據(jù)。
2.如權(quán)利要求1所述的裝置,還包括空間-時(shí)間DPCM操作器,其計(jì)算通過在不同時(shí)刻對的同頂點(diǎn)執(zhí)行空間DPCM操作而獲得的第一差分?jǐn)?shù)據(jù),并且對第一差分?jǐn)?shù)據(jù)執(zhí)行時(shí)間DPCM操作,以便產(chǎn)生第二差分?jǐn)?shù)據(jù),其中DPCM操作選擇器輸出在從時(shí)間DPCM操作器輸入的差分?jǐn)?shù)據(jù)、從空間DPCM操作器輸入的差分?jǐn)?shù)據(jù)和從空間-時(shí)間DPCM操作器輸入的差分?jǐn)?shù)據(jù)當(dāng)中的最小的一個。
3.如權(quán)利要求2所述的裝置,其中在當(dāng)前頂點(diǎn)受到空間DPCM操作之前的已經(jīng)DPCM的頂點(diǎn)當(dāng)中,參考頂點(diǎn)是具有用于編碼在本身和受到空間DPCM操作的當(dāng)前頂點(diǎn)之間的差分?jǐn)?shù)據(jù)所需要的最小比特?cái)?shù)目的頂點(diǎn)。
4.如權(quán)利要求2所述的裝置,其中DPCM模式選擇器對從時(shí)間DPCM操作器輸入的差分?jǐn)?shù)據(jù)、從空間DPCM操作器輸入的差分?jǐn)?shù)據(jù)和從空間-時(shí)間DPCM操作器輸入的差分?jǐn)?shù)據(jù)執(zhí)行SAD操作、分散操作和熵操作中的一個,并且選擇在對應(yīng)操作的結(jié)果當(dāng)中的最小的差分?jǐn)?shù)據(jù)。
5.如權(quán)利要求2所述的裝置,還包括循環(huán)量化器,其通過對時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM的差分?jǐn)?shù)據(jù)、空間-時(shí)間DPCM的差分?jǐn)?shù)據(jù)和差分?jǐn)?shù)據(jù)的最大范圍執(zhí)行預(yù)定的操作而產(chǎn)生具有降低大小的差分?jǐn)?shù)據(jù),其中DPCM模式選擇器在對時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM的差分?jǐn)?shù)據(jù)、空間-時(shí)間DPCM的差分?jǐn)?shù)據(jù)和差分?jǐn)?shù)據(jù)的最大范圍執(zhí)行預(yù)定操作的結(jié)果當(dāng)中選擇最小的差分?jǐn)?shù)據(jù)。
6.如權(quán)利要求5所述的裝置,其中循環(huán)量化器根據(jù)時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM的差分?jǐn)?shù)據(jù)和時(shí)間空間DPCM的差分?jǐn)?shù)據(jù)符號,通過把每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的范圍值加到差分?jǐn)?shù)據(jù)或從差分?jǐn)?shù)據(jù)減去范圍值而產(chǎn)生循環(huán)量化的差分?jǐn)?shù)據(jù),并且輸出在輸入的差分?jǐn)?shù)據(jù)和循環(huán)量的化差分?jǐn)?shù)據(jù)之間的較小的。
7.通過對頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)執(zhí)行預(yù)定的反DPCM操作而產(chǎn)生構(gòu)成根據(jù)時(shí)間的推移而改變的對象的頂點(diǎn)的量化的坐標(biāo)數(shù)據(jù)的裝置,該裝置包括反時(shí)間DPCM操作器,其對根據(jù)時(shí)間的推移而改變的每一頂點(diǎn)的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作;反空間DPCM操作器,其對在每一個頂點(diǎn)和對應(yīng)于預(yù)定時(shí)刻的頂點(diǎn)的參考頂點(diǎn)之間的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作;及反DPCM模式選擇器,其根據(jù)包括在輸入差分?jǐn)?shù)據(jù)中的DPCM操作模式把輸入其中的差分?jǐn)?shù)據(jù)輸出到反時(shí)間DPCM操作器或反空間DPCM操作器。
8.如權(quán)利要求7所述的裝置,還包括反空間-時(shí)間DPCM操作器,其對當(dāng)前反空間DPCM操作的結(jié)果和先前的反空間DPCM操作的結(jié)果執(zhí)行反時(shí)間DPCM操作,其中反DPCM模式選擇器根據(jù)DPCM操作模式把差分?jǐn)?shù)據(jù)輸出到反時(shí)間DPCM操作器、反空間DPCM操作器和反空間-時(shí)間DPCM操作器中的一個上。
9.如權(quán)利要求8所述的裝置,其中通過對差分?jǐn)?shù)據(jù)和每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的最大范圍執(zhí)行反循環(huán)量化操作,反時(shí)間DPCM操作器、反空間DPCM操作器和反空間-時(shí)間DPCM操作器擴(kuò)展差分?jǐn)?shù)據(jù)的范圍。
10.一種用于產(chǎn)生構(gòu)成隨時(shí)間移動的對象的頂點(diǎn)量化坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)的方法,該方法包括下述步驟(a)執(zhí)行時(shí)間DPCM操作,其中產(chǎn)生在根據(jù)時(shí)間的推移而改變的每一頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù);(b)執(zhí)行空間DPCM操作,其產(chǎn)生在每一個頂點(diǎn)和在對應(yīng)于預(yù)定時(shí)刻的頂點(diǎn)的參考頂點(diǎn)之間的差分?jǐn)?shù)據(jù);及(e)輸出在時(shí)間DPCM的差分?jǐn)?shù)據(jù)和空間DPCM的差分?jǐn)?shù)據(jù)之間的較小的差分?jǐn)?shù)據(jù)。
11.如權(quán)利要求10所述的方法,在步驟(e)之前還包括步驟(c),計(jì)算通過在不同時(shí)刻對同一個頂點(diǎn)執(zhí)行空間DPCM操作獲得的第一差分?jǐn)?shù)據(jù),并且對第一差分?jǐn)?shù)據(jù)執(zhí)行時(shí)間DPCM操作以便產(chǎn)生第二差分?jǐn)?shù)據(jù),其中在步驟(e)中,輸出在時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM的差分?jǐn)?shù)據(jù)和時(shí)間空間的DPCM的差分?jǐn)?shù)據(jù)當(dāng)中的最小的一個。
12.如權(quán)利要求11所述的方法,其中在當(dāng)前頂點(diǎn)受到空間DPCM操作之前已經(jīng)DPCM的頂點(diǎn)當(dāng)中,參考頂點(diǎn)是具有用于編碼在本身和受到空間DPCM操作的當(dāng)前頂點(diǎn)之間的差分?jǐn)?shù)據(jù)所需要的最小比特?cái)?shù)目的頂點(diǎn)。
13.如權(quán)利要求11所述的方法,其中在步驟(e)中,對從時(shí)間DPCM操作器輸入的差分?jǐn)?shù)據(jù)、從空間DPCM操作器輸入的差分?jǐn)?shù)據(jù)和從空間-時(shí)間DPCM操作器輸入的差分?jǐn)?shù)據(jù)執(zhí)行SAD操作、分散操作和熵操作中的一個,并且隨后輸出在執(zhí)行的操作的結(jié)果中的最小的差分?jǐn)?shù)據(jù)。
14.如權(quán)利要求11所述的方法,在步驟(e)之前還包括步驟(d),執(zhí)行循環(huán)量化工作,其中通過對時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM的差分?jǐn)?shù)據(jù)、空間-時(shí)間DPCM的差分?jǐn)?shù)據(jù)和差分?jǐn)?shù)據(jù)的最大范圍執(zhí)行預(yù)定操作而產(chǎn)生具有縮減大小的差分?jǐn)?shù)據(jù),其中在步驟(e)中,輸出在對時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM的差分?jǐn)?shù)據(jù)、空間-時(shí)間DPCM的差分?jǐn)?shù)據(jù)和差分?jǐn)?shù)據(jù)的最大范圍執(zhí)行預(yù)定操作的結(jié)果中的最小的差分?jǐn)?shù)據(jù)。
15.如權(quán)利要求14所述的方法,其中在步驟(d)中,根據(jù)時(shí)間DPCM的差分?jǐn)?shù)據(jù)、空間DPCM的差分?jǐn)?shù)據(jù)和空間-時(shí)間DPCM的差分?jǐn)?shù)據(jù)的符號,通過把每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的范圍值加到差分?jǐn)?shù)據(jù)或從差分?jǐn)?shù)據(jù)減去范圍值而產(chǎn)生循環(huán)量化的數(shù)據(jù),并且輸出在差分?jǐn)?shù)據(jù)和循環(huán)量化的數(shù)據(jù)之間的較小值。
16.用于通過對頂點(diǎn)的坐標(biāo)數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)執(zhí)行預(yù)定的反DPCM操作而產(chǎn)生構(gòu)成根據(jù)時(shí)間的推移改變的對象的頂點(diǎn)量化坐標(biāo)數(shù)據(jù)的方法,該方法包括下述步驟(a)根據(jù)包括在差分?jǐn)?shù)據(jù)中的DPCM操作模式,選擇將要對差分?jǐn)?shù)據(jù)執(zhí)行的反DPCM操作;及(b)執(zhí)行選擇的反DPCM操作,其中選擇的反DPCM操作包括反時(shí)間DPCM操作,其中對根據(jù)時(shí)間的推移改變的每一頂點(diǎn)的差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作;以及反空間DPCM操作,其中對在預(yù)定時(shí)刻的每一個頂點(diǎn)和對應(yīng)于頂點(diǎn)的參考頂點(diǎn)之間差分?jǐn)?shù)據(jù)執(zhí)行反DPCM操作。
17.如權(quán)利要求16所述的方法,還包括反空間-時(shí)間DPCM操作,其中對當(dāng)前反空間DPCM操作的結(jié)果和先前反空間DPCM操作的結(jié)果執(zhí)行反時(shí)間DPCM操作。
18.如權(quán)利要求17所述的方法,其中在反時(shí)間DPCM操作、反空間DPCM操作和反空間-時(shí)間DPCM操作中,通過對差分?jǐn)?shù)據(jù)和每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的最大范圍執(zhí)行反循環(huán)量化操作,擴(kuò)展差分?jǐn)?shù)據(jù)的范圍。
全文摘要
一種用于編碼/解碼使用在三維圖形動畫中的坐標(biāo)內(nèi)插符關(guān)鍵字值數(shù)據(jù)的方法和裝置。用于編碼使用包括x、y和z分量的每一個頂點(diǎn)的坐標(biāo)表示對象的每一頂點(diǎn)的位置的坐標(biāo)內(nèi)插符的關(guān)鍵字值數(shù)據(jù)的裝置包括量化器,以預(yù)定的量化比特量化輸入其中的坐標(biāo)內(nèi)插符,DPCM處理器,對量化的坐標(biāo)內(nèi)插符的每一頂點(diǎn)的每一分量執(zhí)行預(yù)定模式的DPCM操作,并且因此產(chǎn)生基于每一頂點(diǎn)的坐標(biāo)的時(shí)間變化的差分?jǐn)?shù)據(jù)以及基于每一個頂點(diǎn)的坐標(biāo)的空間變化的差分?jǐn)?shù)據(jù),字典編碼器,產(chǎn)生表示每一頂點(diǎn)的每一分量的差分?jǐn)?shù)據(jù)的符號和已經(jīng)對差分?jǐn)?shù)據(jù)執(zhí)行的DPCM操作的模式以及表示符號的位置的位置索引,和熵編碼器,熵編碼符號和位置索引。
文檔編號G06T15/70GK1664863SQ20051006557
公開日2005年9月7日 申請日期2002年11月27日 優(yōu)先權(quán)日2001年11月27日
發(fā)明者李信俊, 鄭錫潤, 張義善, 禹相玉, 韓萬鎮(zhèn), 金道均, 張敬子 申請人:三星電子株式會社