欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對(duì)定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵值數(shù)據(jù)編碼和譯碼的方法和裝置的制作方法

文檔序號(hào):6601847閱讀:293來(lái)源:國(guó)知局
專利名稱:對(duì)定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵值數(shù)據(jù)編碼和譯碼的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及對(duì)動(dòng)畫(huà)的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼和譯碼的方法和裝置,特別涉及對(duì)定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼和譯碼的方法和裝置,通過(guò)對(duì)在每個(gè)關(guān)鍵幀中某對(duì)象的定向變換值間的差值進(jìn)行編碼和譯碼,將該關(guān)鍵值數(shù)據(jù)變換成四元數(shù)。
背景技術(shù)
MPEG-4 BIFS是國(guó)際多媒體標(biāo)準(zhǔn)之一,支持基于關(guān)鍵幀的動(dòng)畫(huà),所述動(dòng)畫(huà)采用了具有動(dòng)畫(huà)關(guān)鍵字和關(guān)鍵值的內(nèi)插器節(jié)點(diǎn)。
為了用上述基于關(guān)鍵幀的動(dòng)畫(huà)技術(shù)盡可能自然平滑地顯示動(dòng)畫(huà),需要大量的關(guān)鍵字和關(guān)鍵值數(shù)據(jù),并通過(guò)內(nèi)插來(lái)填充關(guān)鍵幀間的字段數(shù)據(jù)。在虛擬現(xiàn)實(shí)造型語(yǔ)言(VRML)中的內(nèi)插包含線性或球形內(nèi)插。
關(guān)鍵字和關(guān)鍵值近似于時(shí)間軸上的原始動(dòng)畫(huà)曲線。圖1根據(jù)在三維球體表面上的時(shí)間推移來(lái)說(shuō)明動(dòng)畫(huà)數(shù)據(jù)的二維軌跡,這些數(shù)據(jù)由定向內(nèi)插器節(jié)點(diǎn)表示。如圖1所示,常規(guī)的MPEG-4 BIFS支持關(guān)鍵幀間的球形線性內(nèi)插,動(dòng)畫(huà)路徑看起來(lái)類似于表示上述動(dòng)畫(huà)數(shù)據(jù)變化的一組片段。
在由BIFS提供的定向內(nèi)插器節(jié)點(diǎn)中,關(guān)鍵字?jǐn)?shù)據(jù)用-∞到∞之間的不連續(xù)數(shù)字表示在動(dòng)畫(huà)所在的時(shí)間軸上的預(yù)定時(shí)刻。關(guān)鍵值數(shù)據(jù)表示有關(guān)合成圖像中的對(duì)象在由關(guān)鍵字?jǐn)?shù)據(jù)表示的預(yù)定時(shí)刻的旋轉(zhuǎn)信息。有關(guān)該對(duì)象在不是由關(guān)鍵字?jǐn)?shù)據(jù)表示的其它預(yù)定時(shí)刻的旋轉(zhuǎn)信息,則使用與兩個(gè)最鄰近上述預(yù)定時(shí)刻的時(shí)刻相應(yīng)的關(guān)鍵字?jǐn)?shù)據(jù),通過(guò)球形線性內(nèi)插獲得。
在球形線性內(nèi)插過(guò)程中,用旋轉(zhuǎn)軸和旋轉(zhuǎn)角表示旋轉(zhuǎn)信息。同虛擬現(xiàn)實(shí)造型語(yǔ)言(VRML)一樣,MPEG4 BIFS采用定向內(nèi)插器節(jié)點(diǎn)來(lái)支持由旋轉(zhuǎn)軸和旋轉(zhuǎn)角表示的旋轉(zhuǎn)信息。當(dāng)在球形線性內(nèi)插期間用關(guān)鍵值數(shù)據(jù)生成平滑的動(dòng)畫(huà)時(shí),關(guān)鍵幀間的關(guān)鍵值數(shù)據(jù)的差值彼此非常相關(guān),這會(huì)導(dǎo)致數(shù)據(jù)間的冗余。因此,用數(shù)據(jù)差值來(lái)對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法是很有效的。
MPEG-4 BIFS提供了兩種對(duì)用定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵字和關(guān)鍵值數(shù)據(jù)表示的字段數(shù)據(jù)進(jìn)行編碼的不同方法一種采用脈沖編碼調(diào)制(PCM)對(duì)字段數(shù)據(jù)進(jìn)行編碼;另一種采用差分脈沖編碼調(diào)制(DPCM)和熵編碼對(duì)字段數(shù)據(jù)進(jìn)行編碼。
在采用PCM對(duì)字段數(shù)據(jù)進(jìn)行編碼的方法中,對(duì)待編碼的關(guān)鍵字?jǐn)?shù)據(jù)和關(guān)鍵值數(shù)據(jù)僅進(jìn)行量化過(guò)程。由于在該方法中不考慮待編碼的數(shù)據(jù)的特征,因此該方法被認(rèn)為無(wú)效。在采用PCM對(duì)字段數(shù)據(jù)進(jìn)行編碼的方法中,輸入定向內(nèi)插器節(jié)點(diǎn)的字段數(shù)據(jù),并將字段數(shù)據(jù)的關(guān)鍵值數(shù)據(jù)變換為四元數(shù)空間中的值。接著,量化關(guān)鍵字和關(guān)鍵值數(shù)據(jù)。量化的字段數(shù)據(jù)以二進(jìn)制數(shù)據(jù)的形式輸出。為了測(cè)量與原始字段數(shù)據(jù)相比四元數(shù)變換的結(jié)果在視覺(jué)上失真的程度,將所述二進(jìn)制數(shù)據(jù)復(fù)原為由旋轉(zhuǎn)軸和旋轉(zhuǎn)角組成的關(guān)鍵值數(shù)據(jù)。然后存儲(chǔ)并在屏幕上輸出定向內(nèi)插器節(jié)點(diǎn)的復(fù)原后的字段數(shù)據(jù)。可以用所述復(fù)原后的數(shù)據(jù)測(cè)量由四元數(shù)誤差引起的圖像可視失真程度。圖像失真可用以下等式(1)來(lái)計(jì)算D=(Σi=0i<NϵiN)2=(Σi=0i<NQi-Q^iN)2------(1)]]>在等式(1)中,N表示字段數(shù)據(jù)的數(shù)量,εi表示編碼關(guān)鍵值數(shù)據(jù)Qi與四元數(shù)空間中的復(fù)原關(guān)鍵值數(shù)據(jù) 的差值。
另一方面,在采用DPCM和熵編碼對(duì)字段數(shù)據(jù)進(jìn)行編碼的方法中,考慮連續(xù)數(shù)據(jù)間的關(guān)聯(lián),因此在編碼效率方面,這種方法被認(rèn)為比采用PCM來(lái)編碼字段數(shù)據(jù)的方法更有效。在這種方法中,在量化前計(jì)算以前復(fù)原的關(guān)鍵值數(shù)據(jù)與待編碼的關(guān)鍵值數(shù)據(jù)之間的差值,然后量化該差值,從而通過(guò)利用該差值中顯示的數(shù)據(jù)特性提高了編碼效率。
圖2A和2B分別是使用線性DPCM和熵編碼的MPEG-4 PMFC編碼器以及使用逆線性DPCM和熵編碼的MPEG-4 PMFC譯碼器的框圖。圖2A中所示的線性DPCM算子用以下等式(2)計(jì)算當(dāng)前關(guān)鍵值數(shù)據(jù)與以前復(fù)原的關(guān)鍵值數(shù)據(jù)之間的差分?jǐn)?shù)據(jù)Qi。Qi=Qi-Q^i-1=(qi,0-qi-1,0^,qi,1-qi-1,1^,qi,2-qi-1,2^,qi,3-qi-1,3^)------(2)]]>
在等式(2)中,Qi表示在預(yù)定時(shí)刻(t)的原始關(guān)鍵值數(shù)據(jù),由四元數(shù)表示; 表示在預(yù)定時(shí)刻(t-1)的關(guān)鍵值數(shù)據(jù),是從誤差補(bǔ)償電路復(fù)原的。
但是,圖2A所示的用于編碼關(guān)鍵值數(shù)據(jù)的裝置中所使用的編碼方法沒(méi)有較高的編碼效率。通過(guò)分析關(guān)鍵值數(shù)據(jù),很容易指出該編碼方法的缺點(diǎn),其中所述關(guān)鍵值數(shù)據(jù)確定了對(duì)象在四元數(shù)空間中的旋轉(zhuǎn)。該關(guān)鍵值數(shù)據(jù)由以下等式中的四元數(shù)來(lái)表示。Q=(cosθ2,nx||n||sinθ2,ny||n||sinθ2,nz||n||sinθ2)------(3)]]>例如,如果在四元數(shù)空間中,一個(gè)四元數(shù)分量的絕對(duì)值與另一四元數(shù)相應(yīng)分量的絕對(duì)值相同而符號(hào)不同,如等式(3)中所示,則認(rèn)為這兩個(gè)四元數(shù)是相同的。也就是說(shuō),對(duì)于在三維空間中對(duì)象的旋轉(zhuǎn)變換,這兩個(gè)四元數(shù)提供相同的效果,這表示影響對(duì)象旋轉(zhuǎn)變換的因素是旋轉(zhuǎn)軸的方向以及旋轉(zhuǎn)角,而不是該旋轉(zhuǎn)軸的矢量。但是,同在MPEG4 BIFS中一樣,如果用等式(3)的四元數(shù)表示關(guān)鍵值數(shù)據(jù),且通過(guò)計(jì)算連續(xù)關(guān)鍵值數(shù)據(jù)間矢量中的差值來(lái)線性計(jì)算差值,則該差值不為0,這表示線性差值沒(méi)有很好地反映旋轉(zhuǎn)變換中的冗余。因此,不可能使用等式(1)中所示用于估計(jì)圖像失真程度的方法來(lái)精確估計(jì)圖像質(zhì)量。

發(fā)明內(nèi)容
為解決上述和其它問(wèn)題,本發(fā)明一方面提供一種方法和裝置,用于通過(guò)計(jì)算能充分反映旋轉(zhuǎn)變換中冗余的旋轉(zhuǎn)差值,對(duì)定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼。
本發(fā)明另一方面提供一種方法和裝置,用于通過(guò)編碼旋轉(zhuǎn)差值,對(duì)已編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼。
本發(fā)明還要提供一種用于生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的方法和裝置,可用在本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法和裝置中。
為實(shí)現(xiàn)本發(fā)明的上述以及其它方面,提供了一種用于對(duì)定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置,所述關(guān)鍵值數(shù)據(jù)表示對(duì)象在關(guān)鍵幀中的旋轉(zhuǎn)變換。該裝置包括旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器、循環(huán)DPCM算子以及熵編碼器。所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器用當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值和前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值生成旋轉(zhuǎn)差值,并通過(guò)量化該旋轉(zhuǎn)差值來(lái)輸出旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換與通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在前關(guān)鍵幀中該對(duì)象的旋轉(zhuǎn)變換之間存在差異,所述旋轉(zhuǎn)差值就是用來(lái)根據(jù)該最大差異旋轉(zhuǎn)上述對(duì)象的。所述循環(huán)DPCM算子選擇性地對(duì)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行線性DPCM或循環(huán)DPCM操作。所述熵編碼器對(duì)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。
所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器優(yōu)選包括量化器、量化數(shù)據(jù)調(diào)節(jié)器、逆量化器、旋轉(zhuǎn)差值復(fù)原器以及誤差測(cè)量單元。所述量化器通過(guò)量化所述旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述量化數(shù)據(jù)調(diào)節(jié)器調(diào)節(jié)輸入到其中的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值。所述逆量化器逆量化該調(diào)節(jié)分量值。所述旋轉(zhuǎn)差值復(fù)原器用該三個(gè)逆量化的分量值復(fù)原未量化的分量值,從而生成復(fù)原的旋轉(zhuǎn)差值。所述誤差測(cè)量單元測(cè)量輸入到所述量化器中的旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值之間的誤差,并輸出具有調(diào)節(jié)分量值的旋轉(zhuǎn)差值,從而將該誤差減至最小。
或者,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器可包括第一四元數(shù)乘法器、量化器、逆量化器以及第二四元數(shù)乘法器。所述第一四元數(shù)乘法器用當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值和前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成所述旋轉(zhuǎn)差值。所述量化器通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆量化器通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原旋轉(zhuǎn)差值。所述第二四元數(shù)乘法器通過(guò)將該復(fù)原旋轉(zhuǎn)差值與前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘,生成當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)差值。
為實(shí)現(xiàn)本發(fā)明的上述以及其它方面,提供了一種用于對(duì)表示在每個(gè)關(guān)鍵幀中對(duì)象旋轉(zhuǎn)的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法。該方法包括(a)用前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值生成旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換與通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在前關(guān)鍵幀中該對(duì)象的旋轉(zhuǎn)變換之間的最大差異旋轉(zhuǎn)所述對(duì)象;通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成待熵編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),并對(duì)該量化旋轉(zhuǎn)差值有選擇地進(jìn)行線性DPCM或循環(huán)DPCM操作;(c)對(duì)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。
步驟(a)優(yōu)選包括(a1)用當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值以及前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值生成所述旋轉(zhuǎn)差值;(a2)通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(a3)通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原旋轉(zhuǎn)差值;(a4)通過(guò)將復(fù)原旋轉(zhuǎn)差值與前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘,生成當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值。
步驟(a)優(yōu)選包括(a1)通過(guò)量化旋轉(zhuǎn)差值的三個(gè)分量值生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(a2)調(diào)節(jié)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;(a3)逆量化該調(diào)節(jié)分量值;(a4)通過(guò)用該三個(gè)逆量化的分量值復(fù)原一個(gè)分量值,從而生成復(fù)原的旋轉(zhuǎn)差值;(a5)測(cè)量所述旋轉(zhuǎn)差值與復(fù)原旋轉(zhuǎn)差值之間的誤差,并確定具有調(diào)節(jié)分量值的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),從而將該誤差最小化為將被熵編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
為實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供一種用于對(duì)位流進(jìn)行譯碼的裝置,其中表示在關(guān)鍵幀中對(duì)象旋轉(zhuǎn)變換的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)被編碼為該位流。該裝置包括熵譯碼器、逆循環(huán)DPCM算子、逆量化器以及四元數(shù)乘法器。所述熵譯碼器通過(guò)對(duì)該位流進(jìn)行熵譯碼,生成循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)或量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆循環(huán)DPCM算子根據(jù)從該位流譯碼出的DPCM次數(shù),對(duì)從熵譯碼器輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆循環(huán)DPCM操作,從而生成量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆量化器通過(guò)逆量化已量化的旋轉(zhuǎn)差值生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù),用來(lái)根據(jù)通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換與通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在前關(guān)鍵幀中該對(duì)象的旋轉(zhuǎn)變換之間的最大差異旋轉(zhuǎn)所述對(duì)象。所述四元數(shù)乘法器通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)差值與前關(guān)鍵幀譯碼后的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘,生成該當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值。
為實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供了一種用于對(duì)位流進(jìn)行譯碼的方法,其中表示在每個(gè)關(guān)鍵幀中對(duì)象旋轉(zhuǎn)變換的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)被編碼為該位流。該方法包括(a)從該位流中對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行熵譯碼,從而生成循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)或量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(b)根據(jù)從該位流中譯碼出的DPCM次數(shù)對(duì)熵譯碼后的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆循環(huán)DPCM操作,從而生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(c)通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)每個(gè)關(guān)鍵幀的四元數(shù)關(guān)鍵值數(shù)據(jù)應(yīng)用于所述對(duì)象的旋轉(zhuǎn)變換間的最大差異旋轉(zhuǎn)所述對(duì)象;(d)通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)差值與前關(guān)鍵幀的譯碼后的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘,生成該當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值。
為實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供了一種用于對(duì)位流進(jìn)行譯碼的方法,其中表示在每個(gè)關(guān)鍵幀中對(duì)象旋轉(zhuǎn)變換的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)被編碼為該位流。該位流包括旋轉(zhuǎn)差分?jǐn)?shù)據(jù)、熵譯碼信息、逆循環(huán)DPCM信息以及逆量化位。所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)通過(guò)量化旋轉(zhuǎn)差值而被熵編碼,用來(lái)根據(jù)通過(guò)每個(gè)關(guān)鍵幀的四元數(shù)關(guān)鍵值數(shù)據(jù)應(yīng)用于所述對(duì)象的旋轉(zhuǎn)變換間的最大差異旋轉(zhuǎn)所述對(duì)象。所述熵譯碼信息包含表示熵譯碼方法的熵譯碼模式,該熵譯碼方法已經(jīng)使用于上述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆循環(huán)DPCM信息包含顯示是否對(duì)根據(jù)熵譯碼模式被熵譯碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆循環(huán)DPCM操作的逆循環(huán)DPCM操作次數(shù)。所述逆量化位通過(guò)逆量化根據(jù)逆循環(huán)DPCM操作次數(shù)而被逆循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)復(fù)原差值。
為實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供一種用于生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的裝置,生成表示在每幀中對(duì)象旋轉(zhuǎn)的旋轉(zhuǎn)變換值的差分?jǐn)?shù)據(jù)。該裝置包括第一四元數(shù)乘法器、量化單元、逆量化單元以及第二四元數(shù)乘法器。所述第一四元數(shù)乘法器生成旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)當(dāng)前幀的旋轉(zhuǎn)變換值應(yīng)用于在當(dāng)前關(guān)鍵幀中對(duì)象的旋轉(zhuǎn)變換與通過(guò)前一幀的復(fù)原旋轉(zhuǎn)變換值應(yīng)用于在前關(guān)鍵幀中該對(duì)象的旋轉(zhuǎn)變換之間的最大差異旋轉(zhuǎn)所述對(duì)象。所述量化單元通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆量化單元通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原旋轉(zhuǎn)差值。所述第二四元數(shù)乘法器通過(guò)將該復(fù)原旋轉(zhuǎn)差值與前一幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成當(dāng)前幀的復(fù)原旋轉(zhuǎn)變換值。
為實(shí)現(xiàn)本發(fā)明的上述和其它方面,提供一種用于生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的方法,生成表示在每一幀中對(duì)象旋轉(zhuǎn)的旋轉(zhuǎn)變換值的差分?jǐn)?shù)據(jù)。該方法包括(a)用當(dāng)前幀的旋轉(zhuǎn)變換值和前一幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成旋轉(zhuǎn)差值,用來(lái)根據(jù)應(yīng)用于每幀中所述對(duì)象的旋轉(zhuǎn)變換之間的最大差異旋轉(zhuǎn)所述對(duì)象;(b)通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(c)通過(guò)逆量化該旋轉(zhuǎn)差值來(lái)生成復(fù)原旋轉(zhuǎn)差值;(d)通過(guò)將該復(fù)原旋轉(zhuǎn)差值與前一幀旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成當(dāng)前幀的復(fù)原旋轉(zhuǎn)變換值,并對(duì)該當(dāng)前幀的復(fù)原旋轉(zhuǎn)變換值和下一幀的旋轉(zhuǎn)變換值重復(fù)執(zhí)行步驟(a)至(d)。


結(jié)合參考附圖詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例,將更清楚地說(shuō)明本發(fā)明的上述和其它方面以及優(yōu)點(diǎn),其中圖1根據(jù)在三維球體表面上的時(shí)間推移來(lái)說(shuō)明動(dòng)畫(huà)數(shù)據(jù)的二維軌跡,這些數(shù)據(jù)由定向內(nèi)插器節(jié)點(diǎn)表示;圖2A和2B分別是采用線性DPCM和熵編碼的MPEG-4 PMFC編碼器的框圖以及采用逆線性DPCM和熵譯碼的MPEG-4 PMFC譯碼器的框圖;圖3A是本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置框圖;圖3B是本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的裝置框圖;圖4A是描述在旋轉(zhuǎn)差值每個(gè)分量中的概率分布函數(shù)(PDF)的典型示例;圖4B是非線性量化的反正切曲線;圖5A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的從量化器輸出的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)示例;圖5B描述對(duì)圖5A所示的差分?jǐn)?shù)據(jù)進(jìn)行線性DPCM操作后的結(jié)果;圖5C描述對(duì)圖5B所示的線性DPCM的差分?jǐn)?shù)據(jù)進(jìn)行循環(huán)DPCM操作后的結(jié)果;圖6A是描述用于熵編碼的函數(shù)SignedAAC()示例;圖6B是描述用于熵編碼的函數(shù)UnaryAAC()示例;圖7描述在用旋轉(zhuǎn)差值對(duì)四元數(shù)旋轉(zhuǎn)變換值進(jìn)行編碼的過(guò)程中產(chǎn)生的旋轉(zhuǎn)方向誤差;圖8A是本發(fā)明第二實(shí)施例的循環(huán)DPCM算子的框圖;圖8B是圖8A所示的旋轉(zhuǎn)方向誤差計(jì)算器的框圖;圖9A是本發(fā)明第二實(shí)施例的循環(huán)DPCM操作的流程圖;圖9B是描述圖9A所示的旋轉(zhuǎn)方向誤差計(jì)算器、旋轉(zhuǎn)方向誤差檢測(cè)器以及旋轉(zhuǎn)方向校正器操作的流程圖;圖10A的框圖表示包含在本發(fā)明第三實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置中的量化器;圖10B是本發(fā)明第三實(shí)施例的該量化器的操作流程圖;圖11A的框圖表示本發(fā)明優(yōu)選實(shí)施例的用于對(duì)定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置;圖11B中的流程圖表示本發(fā)明優(yōu)選實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的方法;圖12描述輸入到熵譯碼器中的位流的結(jié)構(gòu);圖13A至13E是描述SDL語(yǔ)言程序代碼示例的框圖,通過(guò)這些代碼實(shí)現(xiàn)了本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的裝置;
圖14是描述用于測(cè)量原始動(dòng)畫(huà)路徑與復(fù)原動(dòng)畫(huà)路徑之間誤差的方法示例;圖15將用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的本發(fā)明方法的性能與用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的常規(guī)方法的性能進(jìn)行比較。
具體實(shí)施例方式
以下將結(jié)合示出了本發(fā)明優(yōu)選實(shí)施例的附圖更為全面地描述本發(fā)明。
圖3A是本發(fā)明第一實(shí)施例的用于對(duì)定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置框圖。根據(jù)圖3A,本發(fā)明第一實(shí)施例的用于對(duì)定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置包括旋轉(zhuǎn)DPCM算子300、循環(huán)DPCM算子400、熵編碼器450以及關(guān)鍵值頭編碼器500。所述旋轉(zhuǎn)DPCM算子300計(jì)算對(duì)象在連續(xù)關(guān)鍵幀中的旋轉(zhuǎn)變換值間的旋轉(zhuǎn)差值,量化該旋轉(zhuǎn)差值,然后輸出旋轉(zhuǎn)差分?jǐn)?shù)據(jù),其中所述旋轉(zhuǎn)變換值是通過(guò)將所述關(guān)鍵幀的四元數(shù)關(guān)鍵值數(shù)據(jù)應(yīng)用于其各自的對(duì)象來(lái)獲得的。所述循環(huán)DPCM算子400對(duì)量化后的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)有選擇地進(jìn)行線性DPCM操作和循環(huán)DPCM操作。所述熵編碼器450對(duì)旋轉(zhuǎn)DPCM或循環(huán)DPCM后的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。所述關(guān)鍵值頭編碼器500對(duì)在對(duì)定向內(nèi)插器節(jié)點(diǎn)的編碼關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼時(shí)所需的信息進(jìn)行編碼。
所述旋轉(zhuǎn)DPCM算子300包括第一四元數(shù)乘法器310、量化器340、逆量化器350、第二四元數(shù)乘法器370以及延遲器390。所述第一四元數(shù)乘法器310通過(guò)將對(duì)象在當(dāng)前關(guān)鍵幀中的旋轉(zhuǎn)變換值與其在前關(guān)鍵幀中的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘,來(lái)計(jì)算該對(duì)象在前關(guān)鍵幀中的旋轉(zhuǎn)變換值與在當(dāng)前關(guān)鍵幀中的旋轉(zhuǎn)變換值之間的旋轉(zhuǎn)差值。所述量化器340通過(guò)非線性量化從第一四元數(shù)乘法器310輸入的旋轉(zhuǎn)差值來(lái)生成量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆量化器350通過(guò)對(duì)已量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆量化來(lái)生成所述對(duì)象在當(dāng)前關(guān)鍵幀中的復(fù)原旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述第二四元數(shù)乘法器370通過(guò)將所述對(duì)象在當(dāng)前關(guān)鍵幀中的旋轉(zhuǎn)差值與該對(duì)象在前關(guān)鍵幀中的通過(guò)累加所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)而計(jì)算出的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘,來(lái)復(fù)原所述對(duì)象在當(dāng)前關(guān)鍵幀中的旋轉(zhuǎn)變換值。當(dāng)輸入所述對(duì)象在下一關(guān)鍵幀中的旋轉(zhuǎn)變換值時(shí),所述延遲器390將該對(duì)象在當(dāng)前關(guān)鍵幀中的復(fù)原旋轉(zhuǎn)變換值輸出到第一四元數(shù)乘法器310中。
下面將更詳細(xì)地說(shuō)明本發(fā)明的旋轉(zhuǎn)DPCM算子中進(jìn)行的循環(huán)DPCM操作。
在已被常規(guī)的MPEG-4 PMFC采用的線性DPCM方法中,用下面的等式(4)來(lái)計(jì)算四元數(shù)旋轉(zhuǎn)變換值Q1(Q1=(q1,0,q1,1,q1,2,q1,3))與四元數(shù)旋轉(zhuǎn)變換值Q2(Q2=(q2,0,q2,1,q2,2,q2,3))之間的差值,其中所述四元數(shù)旋轉(zhuǎn)變換值Q1表示對(duì)象在當(dāng)前關(guān)鍵幀中的旋轉(zhuǎn)變換(或表示對(duì)象在當(dāng)前關(guān)鍵幀中被旋轉(zhuǎn)變換的程度),所述四元數(shù)旋轉(zhuǎn)變換值Q2表示該對(duì)象在下一關(guān)鍵幀中的旋轉(zhuǎn)變換。
QlinearDPCM=(q1,0-q2,0,q1,1-q2,1,q1,2-q2,2,q1,3-q2,3) ...(4)但是,上述線性DPCM方法僅計(jì)算四元數(shù)分量間的差值,這不能反映任何有意義的旋轉(zhuǎn)差值,即實(shí)際的旋轉(zhuǎn)差值。因此,該線性DPCM方法不能有效地減少待編碼的連續(xù)關(guān)鍵值數(shù)據(jù)間的冗余。另外,在該線性DPCM方法中,除了一個(gè)具有最大值的分量之外,要對(duì)四元數(shù)的四個(gè)分量進(jìn)行編碼。因此,需要就這一個(gè)未被編碼的分量另外編碼2比特長(zhǎng)的信息,并將該2比特長(zhǎng)的信息從編碼器傳輸?shù)阶g碼器。
為了通過(guò)減小連續(xù)關(guān)鍵值數(shù)據(jù)間的冗余來(lái)達(dá)到用常規(guī)的線性DPCM方法解決上述問(wèn)題的目的,本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置提供了循環(huán)DPCM操作,其中考慮了實(shí)際的旋轉(zhuǎn)差值。
如果 表示基準(zhǔn)矢量,該基準(zhǔn)矢量表示對(duì)象在當(dāng)前關(guān)鍵幀中的基準(zhǔn)位置,(ni-1^,θi-1)]]>表示當(dāng)關(guān)鍵字?jǐn)?shù)據(jù)等于ki-1時(shí)的關(guān)鍵值數(shù)據(jù), 是通過(guò)在當(dāng)前關(guān)鍵幀中旋轉(zhuǎn)變換該對(duì)象而獲得的 的位移矢量,則四元數(shù)空間中的旋轉(zhuǎn)變換可以用以下等式表示。Yi-1=Qi-1×X0×Qi-1*-----(5)]]>在等式(5)中,X0,Yi-1,Qi-1以及 分別表示x^,yi-1^,(ni-1^,θi-1)]]>以及(ni-1^,θi-1)*]]>的單位四元數(shù)。另外, 表示Qi-1的四元數(shù)復(fù)共扼,×表示四元數(shù)乘法。
用這種方式,如果關(guān)鍵字?jǐn)?shù)據(jù)等于ki,則四元數(shù)空間中的旋轉(zhuǎn)變換可以用以下等式表示。Yi=Qi×X0×Qi*-----(6)]]>可用以下等式(7)來(lái)計(jì)算連續(xù)關(guān)鍵值數(shù)據(jù)的連續(xù)旋轉(zhuǎn)變換值間的旋轉(zhuǎn)差值。Yi=Qi×X0×Qi*=Q×Qi-1*×Yi-1×Qi-1×Qi*=Qi×Yi-1×Qi*-----(7)]]>因此,可以通過(guò)以下由等式(5)和(6)導(dǎo)出的等式來(lái)定義旋轉(zhuǎn)差值。Q.=Qi×Qi-1*---(8)]]>為了防止量化誤差影響下一旋轉(zhuǎn)差值,本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置用在下一關(guān)鍵幀中的旋轉(zhuǎn)變換值以及在前關(guān)鍵幀中的復(fù)原旋轉(zhuǎn)變換值 ,來(lái)重新定義由等式(8)定義的旋轉(zhuǎn)差值,如等式(9)所示。Q.i=Qi×Q^i-1*---(9)]]>下面將結(jié)合圖3B來(lái)描述本發(fā)明優(yōu)選實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法。圖3B是本發(fā)明優(yōu)選實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法流程圖。
本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置在步驟S300中接收DPCM次數(shù)、熵編碼模式以及關(guān)鍵值數(shù)據(jù)。
接著,在步驟S305中,第一四元數(shù)乘法器310接收用四元數(shù)表示的關(guān)鍵值數(shù)據(jù)Qi,并檢查所輸入的關(guān)鍵值數(shù)據(jù)Qi是否是第一關(guān)鍵值數(shù)據(jù)Q0。如果輸入的關(guān)鍵值數(shù)據(jù)Qi是第一關(guān)鍵值數(shù)據(jù)Q0,則表示沒(méi)有累積的四元數(shù)變換值用于四元數(shù)乘法。因此,第一四元數(shù)乘法器310將輸入的關(guān)鍵值數(shù)據(jù)Qi輸出到量化器340中。如果輸入的關(guān)鍵值數(shù)據(jù)Qi不是第一關(guān)鍵值數(shù)據(jù)Q0,在步驟S310中,第一四元數(shù)乘法器310通過(guò)將在前關(guān)鍵幀中的復(fù)原四元數(shù)變換值 ( 的復(fù)共扼)與用四元數(shù)變換值表示的輸入關(guān)鍵值數(shù)據(jù)Qi四元數(shù)相乘(Qi×Q^i-1*]]>),來(lái)計(jì)算四元數(shù)差值 ,它是當(dāng)前關(guān)鍵幀的關(guān)鍵值數(shù)據(jù)與前關(guān)鍵幀的復(fù)原關(guān)鍵值數(shù)據(jù)之間的差值。
在步驟S330中,量化器340從第一四元數(shù)乘法器310接收第一關(guān)鍵值數(shù)據(jù)Q0或四元數(shù)旋轉(zhuǎn)差值QI,并用預(yù)定數(shù)量的量化位來(lái)量化該輸入。
由于所有旋轉(zhuǎn)四元數(shù)差值均分別由單位四元數(shù)表示,因此表示旋轉(zhuǎn)差值的四元數(shù)范數(shù)(norm)始終為1。因此,在四元數(shù)的四個(gè)分量中,可以用其它三個(gè)分量對(duì)未編碼的分量進(jìn)行譯碼。根據(jù)本發(fā)明第一實(shí)施例的用于對(duì)定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置僅對(duì)四元數(shù)四個(gè)分量中的三個(gè)進(jìn)行編碼,以減小待編碼的數(shù)據(jù)量。因此,量化器340僅對(duì)待編碼的三個(gè)分量進(jìn)行量化。
根據(jù)本發(fā)明,量化器340執(zhí)行非線性量化而不是通用的線性量化,下面將結(jié)合圖4A說(shuō)明其原因。
圖4A是描述在旋轉(zhuǎn)差值的每個(gè)分量中的概率分布函數(shù)(PDF)的典型示例圖。如圖4A所示,旋轉(zhuǎn)差值的分量值一般集中在0左右,這被稱為能量壓縮(energy compaction),意味著可以有效地降低旋轉(zhuǎn)信息間的冗余。因此,為量化旋轉(zhuǎn)差值,更充分地反映每個(gè)旋轉(zhuǎn)差值的較小分量值,需要更精心地對(duì)較小分量值進(jìn)行量化,這就是為什么本發(fā)明的量化器340要執(zhí)行非線性量化的原因。此時(shí),量化器340采用反正切曲線,以便將非線性比例因子分配給每個(gè)旋轉(zhuǎn)差值。
圖4B是用于根據(jù)本發(fā)明的量化的反正切曲線。如圖4B所示,該反正切曲線向較大輸入值提供適當(dāng)?shù)姆直媛?,向較小輸入值提供高得多的分辨率。在步驟S330中,量化器340用以下等式中所示的非線性比例函數(shù)來(lái)量化旋轉(zhuǎn)差值。q~i=floor(qi′·(2nQBits-1-1)+0.5)----(qi′≥0)----(10)]]>=-floor(-qi′·(2nQBits-1-1)+0.5)----(qi′<0)]]>(qi′=4π.tan-1(q.i),i=1,2,3,-1≤q.i≤1)]]>此時(shí), 表示輸入到量化器340中的旋轉(zhuǎn)差值的各個(gè)分量,qi′表示 的比例值,nQBits表示用于量化的預(yù)定數(shù)量的量化位,floor(x)表示將輸入值x轉(zhuǎn)換為不大于x的最大整數(shù)的函數(shù)。
量化器340對(duì)輸入的旋轉(zhuǎn)差值進(jìn)行量化,然后檢查量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)是否與待編碼的最后一個(gè)關(guān)鍵值數(shù)據(jù)一致。如果量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)與最后一個(gè)關(guān)鍵值數(shù)據(jù)一致,則量化器340將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到循環(huán)DPCM算子400中。如果量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)與最后一個(gè)關(guān)鍵值數(shù)據(jù)不一致,則量化器340將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到逆量化器350中。
在步驟S340中,逆量化器350對(duì)從量化器340輸入的量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆量化,并在步驟S350中輸出復(fù)原的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
如上所述,根據(jù)本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置通過(guò)對(duì)表示旋轉(zhuǎn)差值的四元數(shù)的除第一分量外的三個(gè)分量進(jìn)行量化,從而僅對(duì)這三個(gè)分量進(jìn)行編碼。一種用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的裝置的逆量化器1130,如圖11A所示,以及上述逆量化器350用所述三個(gè)編碼的分量來(lái)復(fù)原旋轉(zhuǎn)差值的四個(gè)分量中未編碼的分量其它。由于所有旋轉(zhuǎn)差值均分別由單位四元數(shù)表示,因此表示旋轉(zhuǎn)差值的四元數(shù)范數(shù)始終為1。因此,可以用以下等式來(lái)復(fù)原旋轉(zhuǎn)差值四個(gè)分量中的第一分量。q^0=1-(q^12+q^22+q^32)-----(q^0≥0)---(11)]]>在等式(11)中, 以及 表示旋轉(zhuǎn)差值的三個(gè)復(fù)原分量, 表示用該三個(gè)復(fù)原分量 以及 復(fù)原的第一分量。
為了根據(jù)等式(11)復(fù)原第一分量 ,第一分量 必須具有正值,該條件可利用四元數(shù)的特點(diǎn)來(lái)滿足,這些特點(diǎn)在將四元數(shù)應(yīng)用到對(duì)象在三維空間中的旋轉(zhuǎn)變換時(shí)出現(xiàn),并如等式(12)所示。
Y=Q×X×Q*=(-Q)×X×(-Q)*...(12)等式(12)表示在將旋轉(zhuǎn)變換應(yīng)用到三維空間中的對(duì)象時(shí),旋轉(zhuǎn)變換值Q和-Q在其功能方面是相同的。因此,在根據(jù)本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置中,如果旋轉(zhuǎn)差值的第一分量具有負(fù)值,則可以通過(guò)將該旋轉(zhuǎn)差值的每個(gè)分量乘以-1而很容易地將該旋轉(zhuǎn)差值轉(zhuǎn)換為正值。但是在這種情況下,除第一分量外,復(fù)原旋轉(zhuǎn)差值的各分量的平方和可能會(huì)由于量化誤差而超過(guò)1。在這種情況下,不能由等式(11)確定 并且認(rèn)為 是接近0且小于能被量化器340量化的最小值的值。 具有這樣一個(gè)值的事實(shí)表示該對(duì)象已被旋轉(zhuǎn)變換了約180度。因此,對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的裝置需要確定 的一種方法,并同時(shí)減小復(fù)原的第一分量值 對(duì)三個(gè)復(fù)原的分量值 以及 的影響,該方法將被應(yīng)用到根據(jù)本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置的逆量化器350中。例如,可以將能由量化器340量化的最小值以及乘以一個(gè)預(yù)定整數(shù)的最小值確定為 ??梢杂靡韵碌仁酱_定 q0^=a.2-m---(13)]]>在等式(113)中,“α”表示任意常數(shù),m表示預(yù)定數(shù)量的量化位。
在常規(guī)MPEG-4 BIFS PMFC方法中要求有關(guān)每個(gè)關(guān)鍵值數(shù)據(jù)的2比特長(zhǎng)的信息用于譯碼,而在本發(fā)明中,不需要該2比特長(zhǎng)的信息,因此在對(duì)N個(gè)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼時(shí),能減少差不多2N個(gè)待編碼的位。
在步驟S360中,將從逆量化器350輸出的復(fù)原旋轉(zhuǎn)差值輸入到第二四元數(shù)乘法器370中,并且該第二四元數(shù)乘法器370檢查輸入的關(guān)鍵幀是否是待編碼的第一關(guān)鍵幀。如果該輸入關(guān)鍵幀是待編碼的第一關(guān)鍵幀,則在步驟S380中,第二四元數(shù)乘法器370累加從該逆量化器350輸入的第一關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值( ),并將累加值輸出到延遲器390中。
如果該輸入的關(guān)鍵幀不是待編碼的第一關(guān)鍵幀,則在步驟S370中,第二四元數(shù)乘法器370通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)差值 與前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值 進(jìn)行四元數(shù)相乘( ),復(fù)原該當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值 第二四元數(shù)乘法器370將該當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值 輸出到延遲器390,然后該延遲器390將該 保持到輸入下一關(guān)鍵幀的旋轉(zhuǎn)變換值為止,從而使 能與 相同,然后將 輸出到第一四元數(shù)乘法器310中。
在將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值Qi輸入到第一四元數(shù)乘法器310中時(shí),在步驟S310中,第一四元數(shù)乘法器310也從延遲器390接收前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值 ,并通過(guò)將前關(guān)鍵幀中的復(fù)原四元數(shù)變換值 與Qi進(jìn)行四元數(shù)相乘( ),生成當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值間的旋轉(zhuǎn)差值 在步驟S330中,將生成的旋轉(zhuǎn)差值輸出到量化器340中,然后由量化器340進(jìn)行量化,如上所述。在步驟S340中,如果輸入的旋轉(zhuǎn)差值與最后一個(gè)關(guān)鍵值數(shù)據(jù)一致,則量化器340將通過(guò)量化旋轉(zhuǎn)差值所生成的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到循環(huán)DPCM算子400中。
循環(huán)DPCM算子400檢查從量化器340輸入的量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的DPCM的次數(shù)是否為0。在步驟S400中,如果DPCM的次數(shù)為0,則循環(huán)DPCM算子400將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到熵編碼器450中,而不執(zhí)行線性DPCM操作和循環(huán)DPCM操作。如果DPCM的次數(shù)不為0,則在步驟S410中,循環(huán)DPCM算子400對(duì)該量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行一次線性DPCM操作和一次循環(huán)DPCM操作。
圖5A是描述從量化器340輸出的差分?jǐn)?shù)據(jù)的示例圖,圖5B是描述對(duì)從量化器340輸出的差分?jǐn)?shù)據(jù)進(jìn)行線性DPCM操作的結(jié)果圖。
如圖5B所示,作為線性DPCM操作的結(jié)果,待編碼的差分?jǐn)?shù)據(jù)的范圍可以比過(guò)去增加兩倍。進(jìn)行循環(huán)DPCM操作的目的是將差分?jǐn)?shù)據(jù)的范圍保持在量化的差分?jǐn)?shù)據(jù)的范圍內(nèi)。
循環(huán)DPCM操作是在假定量化范圍內(nèi)的最大值和最小值彼此循環(huán)地連接之下進(jìn)行的。因此,如果作為對(duì)兩個(gè)連續(xù)的量化數(shù)據(jù)進(jìn)行線性DPCM的結(jié)果的差分?jǐn)?shù)據(jù)大于該量化范圍內(nèi)的最大值的一半,則可以通過(guò)從差分?jǐn)?shù)據(jù)中減去該最大值來(lái)用較小值表示這些差分?jǐn)?shù)據(jù)。
如果差分?jǐn)?shù)據(jù)小于該量化范圍內(nèi)的最小值的一半,則可以通過(guò)將量化范圍內(nèi)的最大值與該差分?jǐn)?shù)據(jù)相加來(lái)用較小值甚至更多地表示這些差分?jǐn)?shù)據(jù)。
如果 和 分別表示在兩個(gè)連續(xù)時(shí)刻ti和ti-1時(shí)的量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù),則根據(jù)等式(14),對(duì)兩個(gè)連續(xù)的量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 和 進(jìn)行線性DPCM操作。Xi=Qi~-Qi-1~=(qi,1~-qi-1,1~,qi,2~-qi-1,2~,qi,3~-qi-1,3~)T------(14)]]>另外,根據(jù)等式(15),對(duì)根據(jù)等式(14)獲得的差分?jǐn)?shù)據(jù)進(jìn)行循環(huán)DPCM操作。Q∪i=min(|Xi|,|Xi′|)-----(15)]]>Xi’=Xi-(2nQBits-1) (Xi≥0)Xi’=Xi+(2nQBits-1) (其它)在等式(15)中,nQBits表示預(yù)定數(shù)量的量化位。圖5C是說(shuō)明如圖5B所示的對(duì)DPCM的差分?jǐn)?shù)據(jù)進(jìn)行循環(huán)DPCM操作的結(jié)果圖。如圖5C所示,循環(huán)DPCM的差分?jǐn)?shù)據(jù)范圍遠(yuǎn)小于線性DPCM的差分?jǐn)?shù)據(jù)范圍。
根據(jù)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的DPCM的次數(shù),熵編碼器450從循環(huán)DPCM算子400中接收旋轉(zhuǎn)差分?jǐn)?shù)據(jù)或循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),然后通過(guò)消除位冗余對(duì)輸入的差分?jǐn)?shù)據(jù)進(jìn)行編碼。
再參考圖3B,在步驟S450中,熵編碼器450檢查熵編碼模式。
如果該熵編碼模式是二進(jìn)制熵編碼模式,則在步驟S460中,熵編碼器450用函數(shù)SignedAAC()對(duì)輸入的差分?jǐn)?shù)據(jù)進(jìn)行編碼。如果該熵編碼模式是一元熵編碼模式,則在步驟S470中,熵編碼器450用函數(shù)UnaryAAC()對(duì)輸入的差分?jǐn)?shù)據(jù)進(jìn)行編碼。
通過(guò)自適應(yīng)的二進(jìn)制算術(shù)編碼器,用函數(shù)SignedAAC()對(duì)差分?jǐn)?shù)據(jù)進(jìn)行編碼,該算數(shù)編碼器在每個(gè)位平面(bit plane)上對(duì)該差分?jǐn)?shù)據(jù)的正負(fù)號(hào)和大小進(jìn)行編碼。
圖6A是說(shuō)明函數(shù)SignedAAC()的示例圖。根據(jù)圖6A,當(dāng)輸入值為74,且要求用于對(duì)該輸入值進(jìn)行編碼的位數(shù)為8時(shí),該輸入值的正負(fù)號(hào)為0,并且表示該輸入數(shù)的二進(jìn)制數(shù)為1001010。用以下方式對(duì)正負(fù)號(hào)和所有位平面進(jìn)行編碼第一步在每個(gè)位平面上,按從其最高有效位(Most Significant Bit,MSB)到其最低有效位(Last Significant Bit,LSB)的順序來(lái)編碼二進(jìn)制數(shù);第二步檢查當(dāng)前正被編碼的位是否為0;第三步如果當(dāng)前正被編碼的位不是0,則接著對(duì)該二進(jìn)制數(shù)的正負(fù)號(hào)進(jìn)行編碼;第四步對(duì)該二進(jìn)制數(shù)據(jù)的剩余位進(jìn)行編碼。
函數(shù)UnaryAAC()將待編碼的值轉(zhuǎn)換為預(yù)定數(shù)量位,由一系列0、表示該0系列結(jié)束的標(biāo)志位1以及表示該值正負(fù)號(hào)的位組成。此時(shí),0的數(shù)量與該值的大小一致。
下面將結(jié)合圖6B更全面地說(shuō)明函數(shù)UnaryAAC()。例如,將256編碼為一系列位,這些位由256個(gè)0、表示該0系列結(jié)束的標(biāo)志位1以及表示256正負(fù)號(hào)的0,也就是由函數(shù)UnaryAAC()轉(zhuǎn)換的正號(hào)標(biāo)記組成。由于采用了UnaryAAC(),表示該待編碼符號(hào)的位間的冗余增加,這提高了對(duì)該符號(hào)的編碼效率。
下面,將描述一種根據(jù)本發(fā)明第二實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置。該根據(jù)本發(fā)明第二實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置包括一種用于校正量化期間出現(xiàn)的旋轉(zhuǎn)方向誤差的裝置,以及根據(jù)本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置的所有元件。
圖7是描述在用旋轉(zhuǎn)差值對(duì)四元數(shù)旋轉(zhuǎn)變換值進(jìn)行編碼期間產(chǎn)生的旋轉(zhuǎn)方向誤差的圖。由于在本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置中進(jìn)行的四元數(shù)編碼方法是一種有損編碼方法,因此產(chǎn)生了旋轉(zhuǎn)方向誤差。
在圖7中,如果Qi、Qi-1、 和 分別表示當(dāng)前正被應(yīng)用到第i關(guān)鍵幀中的對(duì)象的旋轉(zhuǎn)變換值、應(yīng)用到該對(duì)象在前關(guān)鍵幀中的旋轉(zhuǎn)變換值、從Qi復(fù)原的值以及從Qi-1復(fù)原的值,則分別由Qi、Qi-1、 和 應(yīng)用的旋轉(zhuǎn)變換對(duì)該對(duì)象進(jìn)行旋轉(zhuǎn)后的位置可由四個(gè)不同的區(qū)域表示,如圖7所示。
換句話說(shuō),如果該對(duì)象沿最短弧線從Qi-1旋轉(zhuǎn)到Qi,從而在按照Qi和Qi-1旋轉(zhuǎn)后,該對(duì)象位于區(qū)域1和區(qū)域3中,則認(rèn)為該對(duì)象按逆時(shí)鐘方向從Qi-1旋轉(zhuǎn)到Qi。同時(shí),如果該對(duì)象沿最短路徑從Qi-1旋轉(zhuǎn)到Qi,從而在按照Qi-1和Qi旋轉(zhuǎn)后,該對(duì)象位于區(qū)域2和區(qū)域4中,則認(rèn)為該對(duì)象按順時(shí)針?lè)较驈腝i-1旋轉(zhuǎn)到Qi。
另一方面,如果該對(duì)象按照已被編碼、且然后又被譯碼的旋轉(zhuǎn)信息進(jìn)行旋轉(zhuǎn),則用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的裝置用分別與Qi、Qi-1相對(duì)應(yīng)的 和 來(lái)旋轉(zhuǎn)該對(duì)象。因此,如果該對(duì)象按照 旋轉(zhuǎn)的相對(duì)于該對(duì)象按照 旋轉(zhuǎn)的位置的相對(duì)位置是區(qū)域2或3,則該對(duì)象逆時(shí)針旋轉(zhuǎn)。如果該對(duì)象按照 旋轉(zhuǎn)的相對(duì)于該對(duì)象按照 旋轉(zhuǎn)的位置的相對(duì)位置是區(qū)域1或4,則該對(duì)象順時(shí)針旋轉(zhuǎn)。在區(qū)域1和2中,由于采用了用來(lái)對(duì)四元數(shù)旋轉(zhuǎn)變換值進(jìn)行編碼的有損編碼而使得Qi和 不同,因此在采用原始的旋轉(zhuǎn)變換值時(shí),該對(duì)象的旋轉(zhuǎn)方向可能與該對(duì)象在采用譯碼的旋轉(zhuǎn)變換值時(shí)的旋轉(zhuǎn)方向相反。為解決這個(gè)問(wèn)題,要求將該對(duì)象在與期望方向相反的錯(cuò)誤方向上旋轉(zhuǎn)的角度減至最小,或者在該對(duì)象在錯(cuò)誤方向上旋轉(zhuǎn)時(shí)校正該對(duì)象的旋轉(zhuǎn)方向,從而使該對(duì)象在期望的方向上旋轉(zhuǎn)。在本發(fā)明中,采用校正該對(duì)象旋轉(zhuǎn)方向以使該對(duì)象在期望的方向上旋轉(zhuǎn)的方法。
再參考圖7,下面將簡(jiǎn)單描述根據(jù)本發(fā)明校正旋轉(zhuǎn)方向誤差的原理。如果檢測(cè)到旋轉(zhuǎn)方向誤差,如在區(qū)域1和2中發(fā)生的現(xiàn)象,則控制待編碼的四元數(shù)旋轉(zhuǎn)差值,以便在正確方向上旋轉(zhuǎn),在這種情況下,在區(qū)域2中仍然會(huì)出現(xiàn)旋轉(zhuǎn)方向上的不一致。但是在區(qū)域2中,和在區(qū)域1中不一樣,原始的四元數(shù)值和復(fù)原的四元數(shù)值間的差值相對(duì)較小。因此,根據(jù)本發(fā)明的第二實(shí)施例,僅在區(qū)域1中對(duì)旋轉(zhuǎn)方向進(jìn)行校正。
下面將結(jié)合圖8A至9B來(lái)描述根據(jù)本發(fā)明第二實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的、執(zhí)行旋轉(zhuǎn)方向校正的裝置。根據(jù)本發(fā)明第二實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置與根據(jù)本發(fā)明第一實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置的結(jié)構(gòu)幾乎完全相同。它們之間的唯一區(qū)別是旋轉(zhuǎn)DPCM算子的結(jié)構(gòu),因此下面將只描述根據(jù)本發(fā)明第二實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置中的旋轉(zhuǎn)DPCM算子的結(jié)構(gòu)。
圖8A是根據(jù)本發(fā)明第二實(shí)施例的旋轉(zhuǎn)DPCM算子800的框圖,圖8B是如圖8A所示的旋轉(zhuǎn)方向誤差計(jì)算器820的框圖。
根據(jù)圖8A,旋轉(zhuǎn)DPCM算子800包括旋轉(zhuǎn)方向誤差計(jì)算器820、旋轉(zhuǎn)方向誤差檢測(cè)器830、旋轉(zhuǎn)方向校正器815以及旋轉(zhuǎn)方向選擇器835。所述旋轉(zhuǎn)方向誤差計(jì)算器820接收對(duì)象在當(dāng)前關(guān)鍵幀中的旋轉(zhuǎn)變換值以及該對(duì)象在前關(guān)鍵幀中的復(fù)原旋轉(zhuǎn)變換值,并計(jì)算旋轉(zhuǎn)方向誤差。所述旋轉(zhuǎn)方向誤差檢測(cè)器830基于從旋轉(zhuǎn)方向誤差計(jì)算器820輸入的旋轉(zhuǎn)方向誤差,檢測(cè)在譯碼過(guò)程中是否產(chǎn)生了足以改變?cè)搶?duì)象旋轉(zhuǎn)方向的誤差。所述旋轉(zhuǎn)方向校正器815校正和輸出從第一四元數(shù)乘法器810輸入的旋轉(zhuǎn)差值,從而使該對(duì)象在按照前關(guān)鍵幀的譯碼的旋轉(zhuǎn)變換值旋轉(zhuǎn)之后還能進(jìn)一步在原始的旋轉(zhuǎn)方向上旋轉(zhuǎn)約180度。所述旋轉(zhuǎn)方向選擇器835根據(jù)從旋轉(zhuǎn)方向誤差檢測(cè)器830輸入的值來(lái)選擇從旋轉(zhuǎn)方向校正器815輸入的旋轉(zhuǎn)差值或從第一四元數(shù)乘法器810輸入的旋轉(zhuǎn)差值,并將所選擇的值輸出到量化器840中。
根據(jù)圖8B,如圖8A所示的旋轉(zhuǎn)方向誤差計(jì)算器820包括延遲器822、第三四元數(shù)乘法器824、第四四元數(shù)乘法器826以及第五四元數(shù)乘法器828。所述延遲器822存儲(chǔ)輸入的旋轉(zhuǎn)變換值,直到輸入下一關(guān)鍵幀的旋轉(zhuǎn)變換值為止。所述第三四元數(shù)乘法器824接收從該延遲器822輸出的該輸入旋轉(zhuǎn)變換值以及前關(guān)鍵幀的旋轉(zhuǎn)變換值,并通過(guò)四元數(shù)乘法計(jì)算該輸入旋轉(zhuǎn)變換值與該前關(guān)鍵幀的旋轉(zhuǎn)變換值間的旋轉(zhuǎn)差值。所述第四四元數(shù)乘法器826計(jì)算從延遲器822輸出的前關(guān)鍵幀的旋轉(zhuǎn)變換值與前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值間的旋轉(zhuǎn)差值。所述第五四元數(shù)乘法器828在前關(guān)鍵幀的輸入旋轉(zhuǎn)變換值與復(fù)原旋轉(zhuǎn)變換值間進(jìn)行計(jì)算。
下面,將結(jié)合圖9A更詳細(xì)地描述根據(jù)本發(fā)明第二實(shí)施例的旋轉(zhuǎn)DPCM操作。
在步驟S900中,將待編碼的定向內(nèi)插器節(jié)點(diǎn)的關(guān)鍵值數(shù)據(jù)Qi輸入到第一四元數(shù)乘法器810和該旋轉(zhuǎn)DPCM算子800的旋轉(zhuǎn)方向誤差計(jì)算器820中。
在步驟S910中,第一四元數(shù)乘法器810象在根據(jù)本發(fā)明第一實(shí)施例的由于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置中的第一四元數(shù)乘法器一樣,通過(guò)將當(dāng)前關(guān)鍵幀的輸入旋轉(zhuǎn)變換值與從第二四元數(shù)乘法器870輸入的前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘( ),生成旋轉(zhuǎn)差值 ,并將生成的旋轉(zhuǎn)差值 輸出到旋轉(zhuǎn)方向校正器815和旋轉(zhuǎn)方向選擇器835中。
旋轉(zhuǎn)方向校正器815根據(jù)等式(16)校正輸入到其中的旋轉(zhuǎn)差值,并將校正的旋轉(zhuǎn)差值Qs輸出到旋轉(zhuǎn)方向選擇器835中。旋轉(zhuǎn)方向誤差計(jì)算器820接收當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值Qi以及從第二四元數(shù)乘法器870中輸入的前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值 ,并計(jì)算旋轉(zhuǎn)變換值QA、QB以及QC,這將在以后描述。在步驟S920中,旋轉(zhuǎn)方向誤差檢測(cè)器830用從旋轉(zhuǎn)方向誤差計(jì)算器820輸入的旋轉(zhuǎn)差值來(lái)檢測(cè)是否產(chǎn)生了旋轉(zhuǎn)方向誤差,并將檢測(cè)結(jié)果輸出到旋轉(zhuǎn)方向選擇器835中。 在等式(16)中,δT表示非常接近0的常數(shù),并且(q.R,0,q.R,1,q.R,2,q.R,3)T]]>表示從第一四元數(shù)乘法器810輸出的旋轉(zhuǎn)差值 。以后將結(jié)合圖9B描述旋轉(zhuǎn)方向誤差計(jì)算器820、旋轉(zhuǎn)方向誤差檢測(cè)器830以及旋轉(zhuǎn)方向校正器815。
旋轉(zhuǎn)方向選擇器835檢查是否產(chǎn)生了旋轉(zhuǎn)方向誤差,從而在用從旋轉(zhuǎn)方向誤差檢測(cè)器830輸入的邏輯值對(duì)編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼時(shí),使該對(duì)象在與期望方向相反的方向上旋轉(zhuǎn)。如果沒(méi)有產(chǎn)生旋轉(zhuǎn)方向誤差,則在步驟S930中,旋轉(zhuǎn)方向選擇器835將從第一四元數(shù)乘法器810輸入的旋轉(zhuǎn)差值輸出到量化器840中。如果產(chǎn)生了旋轉(zhuǎn)方向誤差,則在步驟S930中,旋轉(zhuǎn)方向選擇器835將輸出從旋轉(zhuǎn)方向校正器815輸入的校正旋轉(zhuǎn)差值。
在步驟S940和950中,量化器840用與本發(fā)明的第一實(shí)施例中相同的量化方法量化原始的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 或校正的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)Qs。
在步驟S960中,量化器840檢查量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 是否屬于最后一個(gè)關(guān)鍵值數(shù)據(jù)。如果量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 與最后一個(gè)關(guān)鍵值數(shù)據(jù)相對(duì)應(yīng),則在步驟S970中,量化器840將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 輸出到循環(huán)DPCM算子400中。如果量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 不與最后一個(gè)關(guān)鍵值數(shù)據(jù)相對(duì)應(yīng),則量化器840將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 輸出到逆量化器850中。
在步驟S980中,逆量化器850用與本發(fā)明的第一實(shí)施例相同的逆量化方法對(duì)該量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 進(jìn)行逆量化,并將復(fù)原的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 輸出到第二四元數(shù)乘法器870中。
第二四元數(shù)乘法器870通過(guò)將復(fù)原的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 與前關(guān)鍵幀的旋轉(zhuǎn)變換值 進(jìn)行四元數(shù)相乘,生成當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值 。在步驟S990中,第二四元數(shù)乘法器870通過(guò)延遲器890將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值輸出到第一四元數(shù)乘法器810和旋轉(zhuǎn)方向誤差計(jì)算器820中。
下面,將結(jié)合圖9B來(lái)描述旋轉(zhuǎn)方向誤差計(jì)算器820、旋轉(zhuǎn)方向誤差檢測(cè)器830以及旋轉(zhuǎn)方向校正器815的操作。
旋轉(zhuǎn)方向誤差計(jì)算器820計(jì)算與區(qū)域2至4相應(yīng)的旋轉(zhuǎn)差值,這已經(jīng)結(jié)合圖7描述過(guò)。
在步驟S922中,旋轉(zhuǎn)方向誤差計(jì)算器820接收與待編碼的關(guān)鍵幀的關(guān)鍵值數(shù)據(jù)相應(yīng)的旋轉(zhuǎn)變換值,接收當(dāng)前關(guān)鍵阿幀前的前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值,并計(jì)算旋轉(zhuǎn)方向誤差。
將與當(dāng)前關(guān)鍵幀的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)相應(yīng)的旋轉(zhuǎn)變換值直接輸入到第三四元數(shù)乘法器824和第五四元數(shù)乘法器828中,并在輸入下一關(guān)鍵幀的旋轉(zhuǎn)變換值時(shí),通過(guò)延遲器822輸入到第四四元數(shù)乘法器826中。另外,將從第二四元數(shù)乘法器870輸出的前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值輸入到第四四元數(shù)乘法器826和第五四元數(shù)乘法器828中。
第三四元數(shù)乘法器824通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘(QA=Qi×Qi-1*]]>),生成旋轉(zhuǎn)差值QA,并將QA輸出到旋轉(zhuǎn)方向誤差檢測(cè)器830中。旋轉(zhuǎn)差值QA表示在時(shí)間間隔[ti-1,ti]期間對(duì)象的原始旋轉(zhuǎn)方向。
第四四元數(shù)乘法器826通過(guò)將前關(guān)鍵幀的旋轉(zhuǎn)變換值與前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘(QB=Qi-1×Q^i-1*]]>),生成旋轉(zhuǎn)差值QB,并將QB輸出到旋轉(zhuǎn)方向誤差檢測(cè)器830中。第四四元數(shù)乘法器826計(jì)算的旋轉(zhuǎn)差值QB表示在預(yù)定時(shí)刻ti-1的由量化誤差影響的對(duì)象的旋轉(zhuǎn)方向誤差和旋轉(zhuǎn)方向,并與圖7所示的區(qū)域2對(duì)應(yīng)。
第五四元數(shù)乘法器828通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘(QC=Qi×Q^i-1*]]>)生成旋轉(zhuǎn)差值QC,并將QC輸出到旋轉(zhuǎn)方向誤差檢測(cè)器830中。由第五四元數(shù)乘法器828計(jì)算的旋轉(zhuǎn)差值QC表示將在預(yù)定時(shí)刻ti編碼的旋轉(zhuǎn)差值,且與圖7所示的區(qū)域4對(duì)應(yīng)。
在步驟S924中,旋轉(zhuǎn)方向誤差檢測(cè)器830用從旋轉(zhuǎn)方向誤差計(jì)算器820輸入的旋轉(zhuǎn)差值QA、QB和QC來(lái)檢查在對(duì)編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的過(guò)程中該對(duì)象是否在與原始方向相反的方向上旋轉(zhuǎn)。為完成該功能,旋轉(zhuǎn)方向誤差檢測(cè)器830檢查旋轉(zhuǎn)差值QA、QB和QC是否滿足不等式(17)至(21)。首先,旋轉(zhuǎn)方向誤差檢測(cè)器830檢查旋轉(zhuǎn)差值QA和QC是否滿足不等式(17)。qA,1qA,2qA,3.qC,1qC,2qC,3<0-----(17)]]>在不等式(17)中,如果從旋轉(zhuǎn)方向誤差計(jì)算器820輸入的旋轉(zhuǎn)差值QA由QA=(qA,0,qA,1,qA,2,qA,3)T表示,則qA,1qA,2qA,3]]>表示三維矢量(qA,1,qA,2,qA,3)T,由QA的四個(gè)分量qA,0、qA,1、qA,2、qA,3除第一分量qA,0外組成。qC,1qC,2qC,3]]>表示三維矢量(qC,1,qC,2,qC,3)T,由QC的四個(gè)分量qC,0、qC,1、qC,2、qC,3除第一分量qC,0外組成。不等式(17)顯示了兩個(gè)三維矢量(qA,1,qA,2,qA,3)T和(qC,1,qC,2,qC,3)T的內(nèi)積小于0的條件。
如果該不等式(17)中的內(nèi)積小于0,則采用QA時(shí)的對(duì)象旋轉(zhuǎn)方向與采用QC時(shí)的旋轉(zhuǎn)方向相反。當(dāng)該內(nèi)積小于0時(shí),將不等式(17)中所示的邏輯表達(dá)式的值設(shè)置為“true(真)”。當(dāng)該內(nèi)積大于0時(shí),將該邏輯表達(dá)式的值設(shè)置為“false(假)”。qB,1qB,2qB,3.qC,1qC,2qC,3<0-----(18)]]>在不等式(18)中,如果從旋轉(zhuǎn)方向誤差計(jì)算器820輸入的旋轉(zhuǎn)差值QB由QB=(qB,0,qB,1,qB,2,qB,3)T表示,則qB,1qB,2qB,3]]>表示三維矢量(qB,1,qB,2,qB,3)T,由QB的四個(gè)分量qB,0、qB,1、qB,2、qB,3除第一分量qB,0外組成。qC,1qC,2qC,3]]>表示三維矢量(qC,1,qC,2,qC,3)T,由QC的四個(gè)分量qC,0、qC,1、qC,2、qC,3除第一分量qC,0外組成。不等式(18)顯示了兩個(gè)三維矢量(qB,1,qB,2,qB,3)T和(qC,1,qC,2,qC,3)T的內(nèi)積小于0的條件。
如果該不等式(18)中的內(nèi)積小于0,則采用QB時(shí)對(duì)象的旋轉(zhuǎn)方向與采用QC時(shí)的旋轉(zhuǎn)方向相反。當(dāng)該內(nèi)積小于0時(shí),將不等式(18)中所示的邏輯表達(dá)式的值設(shè)置為“true”。當(dāng)該內(nèi)積大于0時(shí),將該邏輯表達(dá)式的值設(shè)置為“false”。
ATH<2cos-1|qA,0| …(19)在不等式(19)中,qA,0表示旋轉(zhuǎn)差值QA的第一分量,將ATH設(shè)置為接近0的預(yù)定常數(shù)。當(dāng)不等式(19)中的2cos-1|qA,0|大于ATH時(shí),將不等式(19)中所示的邏輯表達(dá)式的值設(shè)置為“true”。當(dāng)2cos-1|qA,0|不大于ATH時(shí),將該邏輯表達(dá)式的值設(shè)定為“false”。當(dāng)不等式(19)設(shè)置為“false”時(shí),表示在實(shí)現(xiàn)根據(jù)本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置時(shí)可以忽略小于預(yù)定常數(shù)ATH的旋轉(zhuǎn)角θ(=2cos-1|qA,0|)。即使存在約等于旋轉(zhuǎn)角θ的旋轉(zhuǎn)方向誤差,該旋轉(zhuǎn)方向誤差也不會(huì)導(dǎo)致對(duì)人眼來(lái)說(shuō)嚴(yán)重失真的圖像,特別是在用由本發(fā)明建議的誤差測(cè)量方法時(shí)。
ATH<2cos-1|qB,0| ...(20)在不等式(20)中,qB,0表示旋轉(zhuǎn)差值QB的第一分量,ATH與不等式(19)中的相應(yīng)部分相同。當(dāng)不等式(20)中的2cos-1|qB,0|大于ATH時(shí),將不等式(20)所示的邏輯表達(dá)式的值設(shè)置為“true”。當(dāng)2cos-1|qB,0|不大于ATH時(shí),將該邏輯表達(dá)式的值設(shè)置為“false”。
ATH<2cos-1|qC,0| ...(21)在不等式(21)中,qC,0表示旋轉(zhuǎn)差值QC的第一分量,ATH與不等式(19)中的相應(yīng)部分相同。當(dāng)不等式(21)中的2cos-1|qC,0|大于ATH時(shí),將不等式(21)所示的邏輯表達(dá)式的值設(shè)置為“true”。當(dāng)2cos-1|qC,0|不大于ATH時(shí),將該邏輯表達(dá)式的值設(shè)置為“false”。
旋轉(zhuǎn)方向誤差檢測(cè)器830對(duì)不等式(17)至(21)的邏輯值執(zhí)行一次與(AND)操作,并將該與操作的結(jié)果輸出到旋轉(zhuǎn)方向選擇器835中。
在預(yù)定時(shí)刻t,第一四元數(shù)乘法器810具有兩個(gè)輸入值Qi和 。第一四元數(shù)乘法器810用這兩個(gè)輸入值Qi和 輸出旋轉(zhuǎn)差值。如上所述,在區(qū)域1中,接收旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的用于對(duì)編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的裝置順時(shí)針旋轉(zhuǎn)對(duì)象。但是,該對(duì)象必須從在旋轉(zhuǎn)了由Qi-1所示的預(yù)定度數(shù)之后所處的當(dāng)前位置旋轉(zhuǎn)到假定在旋轉(zhuǎn)了由Qi所示的預(yù)定度數(shù)之后所處的位置,因此該對(duì)象的原始旋轉(zhuǎn)方向必須是逆時(shí)針?lè)较颉?br> 因此,旋轉(zhuǎn)方向校正器815校正該對(duì)象的旋轉(zhuǎn)方向,從而使該對(duì)象能在其基于 旋轉(zhuǎn)的相同方向上旋轉(zhuǎn)由 所示的旋轉(zhuǎn)角度大小,如圖7所示,也就是說(shuō),從而使該對(duì)象能從基于 旋轉(zhuǎn)后所處的當(dāng)前位置逆時(shí)針旋轉(zhuǎn)到假定旋轉(zhuǎn)由 所示的旋轉(zhuǎn)角度之后所處的位置。
為此,該旋轉(zhuǎn)方向校正器815建立新的旋轉(zhuǎn)信息,以使該對(duì)象從其在旋轉(zhuǎn)了 的預(yù)定角度之后所處的當(dāng)前位置逆時(shí)針旋轉(zhuǎn)大約180度。因此,該對(duì)象的旋轉(zhuǎn)方向被校正為與原始方向相同,并能將旋轉(zhuǎn)方向誤差減至最小。在步驟S926中,旋轉(zhuǎn)方向校正器815接收來(lái)自第一四元數(shù)乘法器810的當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) ,生成具有校正旋轉(zhuǎn)方向的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),并將該校正的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到旋轉(zhuǎn)方向選擇器835中。
根據(jù)圖9A,在步驟S930中,旋轉(zhuǎn)方向選擇器835檢查從旋轉(zhuǎn)方向誤差檢測(cè)器830輸入的邏輯值是否為真。如果該輸入的邏輯值為真,則在步驟S940中,該旋轉(zhuǎn)方向選擇器835確定出現(xiàn)了圖7所示的區(qū)域1中發(fā)生的相同現(xiàn)象,并將由等式(16)定義的校正旋轉(zhuǎn)差值Qs輸出到量化器840中。
另一方面,如果該輸入的邏輯值為假,則在步驟S950中,旋轉(zhuǎn)方向選擇器835確定沒(méi)有出現(xiàn)在區(qū)域1中發(fā)生的相同現(xiàn)象,并將從第一四元數(shù)乘法器810輸入的旋轉(zhuǎn)差值 輸出到量化器840中。
下面,將描述一種根據(jù)本發(fā)明第三實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置。
由于根據(jù)本發(fā)明第一和第二實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置只對(duì)旋轉(zhuǎn)差值的四個(gè)分量中的三個(gè)分量進(jìn)行編碼。它們可能因?yàn)榱炕`差而不能用等式(11)來(lái)復(fù)原該四元數(shù)的第一分量值。例如,復(fù)原旋轉(zhuǎn)差值的第一分量可能是虛數(shù)。
為防止由于只對(duì)四元數(shù)的三個(gè)分量進(jìn)行編碼所帶來(lái)的問(wèn)題,根據(jù)本發(fā)明第三實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置包括量化器,可以適當(dāng)?shù)卣{(diào)節(jié)三個(gè)量化的分量值,從而在對(duì)編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼時(shí),將另一分量復(fù)原為正實(shí)數(shù),并將圖像失真減至最小。
除量化器的結(jié)構(gòu)外,根據(jù)本發(fā)明第三實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置與根據(jù)本發(fā)明第一或第二實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置相同,因此下面將只描述該量化器的結(jié)構(gòu)。
圖10A是包括在根據(jù)本發(fā)明第三實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置中的量化器框圖。根據(jù)圖10A,量化器1000包括量化單元1010、量化數(shù)據(jù)調(diào)節(jié)器1020、逆量化器1030、旋轉(zhuǎn)差值復(fù)原器1040以及誤差測(cè)量單元1050。所述量化單元1010量化輸入到其中的旋轉(zhuǎn)差值。所述量化數(shù)據(jù)調(diào)節(jié)器1020調(diào)節(jié)量化的旋轉(zhuǎn)差值。所述逆量化器1030對(duì)量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆量化。所述旋轉(zhuǎn)差值復(fù)原器1040通過(guò)用逆量化的分量復(fù)原量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的第一分量來(lái)復(fù)原量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的所有分量值。所述誤差測(cè)量單元1050測(cè)量復(fù)原的差值與原始的輸入旋轉(zhuǎn)差值間的誤差,并更新量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
圖10B是量化器1010的操作流程圖。根據(jù)圖10B,當(dāng)從第一四元數(shù)乘法器輸入旋轉(zhuǎn)差值 時(shí),在步驟S1005中,該量化器1010用等式(10)量化輸入的旋轉(zhuǎn)差值 ,并將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 輸出到量化數(shù)據(jù)調(diào)節(jié)器1020中。
在步驟S1010中,量化數(shù)據(jù)調(diào)節(jié)器1020根據(jù)等式(22)調(diào)節(jié)量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 的三個(gè)分量。Iijk=Q~+Dijk,Dijk=(i,j,k)T]]>(-d≤i,j,k≤di,i,j,k和d為整數(shù))(22)在等式(22)中,i、j、k均為變量,將它們與旋轉(zhuǎn)差分?jǐn)?shù)據(jù)相加,以調(diào)節(jié)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù),d用于定義i、j、k的范圍。將量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 的三個(gè)調(diào)節(jié)分量輸出到逆量化器1030中。
在步驟S1020中,逆量化器1030對(duì)調(diào)節(jié)量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)Iijk進(jìn)行逆量化,并將逆量化的旋轉(zhuǎn)差值 (或逆量化的結(jié)果)輸出到旋轉(zhuǎn)差值復(fù)原器1040中。
在步驟S1030中,接收逆量化的旋轉(zhuǎn)差值 的三個(gè)分量的旋轉(zhuǎn)差值復(fù)原器1040根據(jù)等式(11)復(fù)原旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的第一分量,并將復(fù)原的旋轉(zhuǎn)差值輸出到誤差測(cè)量單元1050中。
誤差測(cè)量單元1050檢查輸入到其中的旋轉(zhuǎn)差值的第一分量值。在步驟S1040中,如果該第一分量值是實(shí)數(shù),則誤差測(cè)量單元1050執(zhí)行誤差測(cè)量。另一方面,如果該第一分量值是虛數(shù),則該方法轉(zhuǎn)入步驟S1060。
當(dāng)該輸入旋轉(zhuǎn)差值的第一分量是實(shí)數(shù)時(shí),在步驟S1050中,誤差測(cè)量單元1050測(cè)量原始的旋轉(zhuǎn)差值和復(fù)原的旋轉(zhuǎn)差值間的誤差eijk,在步驟S1050中檢查eijk是否小于調(diào)節(jié)誤差 。以后將結(jié)合圖14描述測(cè)量原始的旋轉(zhuǎn)差值與復(fù)原的旋轉(zhuǎn)差值間的eijk的方法。
如果測(cè)量誤差eijk小于調(diào)節(jié)誤差 ,則在步驟S1055中,用eijk替換 ,然后在步驟S1060中檢查變量i、j、k是否屬于調(diào)節(jié)范圍[-d,+d]。如果變量i、j、k屬于調(diào)節(jié)范圍[-d,+d],則誤差測(cè)量單元1040重復(fù)執(zhí)行步驟S1010至S1055。在步驟S1010中,在步驟S1010至S1055的每個(gè)循環(huán)期間,在嵌套的循環(huán)方式中,將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的第二至第四分量加1。
例如,量化數(shù)據(jù)調(diào)節(jié)器1020保持第二和第三分量,通過(guò)將k值與第四分量值相加并同時(shí)在k值超過(guò)+d之前通過(guò)連續(xù)將k值加1逐步增加k值,從而試圖使復(fù)原的第一分量成為實(shí)數(shù),然后找到四個(gè)調(diào)節(jié)分量值,這可以將輸入的旋轉(zhuǎn)差值與復(fù)原的旋轉(zhuǎn)差值間的誤差減至最小。
如果k值達(dá)到+d,則用-d初始化k值,將j值與第三分量值相加并同時(shí)通過(guò)將j(-d≤j≤+d)值加1來(lái)增加j值,將k值與第四分量值相加并同時(shí)在k值超過(guò)+d前通過(guò)連續(xù)地將k(-d≤k≤+d)值加1逐步增加k值,通過(guò)上述方式,量化數(shù)據(jù)調(diào)節(jié)器1020試圖使該復(fù)原的第一分量成為實(shí)數(shù)值,然后找到四個(gè)調(diào)節(jié)分量值,這可以將輸入的旋轉(zhuǎn)差值與復(fù)原的旋轉(zhuǎn)差值間的誤差減至最小。
如果j值達(dá)到+d,則用-d初始化j和k值,將i值與第二分量值相加并同時(shí)通過(guò)將i(-d≤i≤+d)值加1來(lái)增加i值,將j值與第三分量值相加,將k值與第四分量值相加并同時(shí)在k值超過(guò)+d前通過(guò)連續(xù)地將k(-d≤k≤+d)值加1逐步增加k值,通過(guò)上述方式,量化數(shù)據(jù)調(diào)節(jié)器1020試圖使該復(fù)原的第一分量成為實(shí)數(shù)值,然后找到四個(gè)調(diào)節(jié)分量值,這可以將輸入的旋轉(zhuǎn)差值與復(fù)原的旋轉(zhuǎn)差值間的誤差減至最小。
重復(fù)上述處理直到i、j、k達(dá)到+d為止,量化數(shù)據(jù)調(diào)節(jié)器1020找到四個(gè)調(diào)節(jié)分量值,這可以將輸入的旋轉(zhuǎn)差值與復(fù)原的旋轉(zhuǎn)差值間的誤差減至最小。
在步驟S1070中,誤差測(cè)量單元1050檢查調(diào)節(jié)誤差 是否小于最終誤差 ,同時(shí)修改第二至第四分量值。如果 小于 ,則在步驟S1075中,用 代替 ,同時(shí)根據(jù)等式(23)校正量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。Q~*=(q1~,q2~,q~3)T+(i*,j*,k*)T------(23)]]>此后,誤差測(cè)量單元1050將校正的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到量化的數(shù)據(jù)調(diào)節(jié)器1020中。
量化的數(shù)據(jù)調(diào)節(jié)器1020將變量i、j、k值設(shè)置為-d,并對(duì)輸入到其中的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)再次執(zhí)行步驟S1010至S1060。然后,量化數(shù)據(jù)調(diào)節(jié)器1020用輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)檢查是否存在其誤差比以前存儲(chǔ)的最終誤差更小的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
如果調(diào)節(jié)誤差 不小于最終誤差 ,則在步驟S1080中,誤差測(cè)量單元1050將與當(dāng)前存儲(chǔ)的最終誤差 相應(yīng)的量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)Q~g*=Q~*=(q~1*,q~2*,q~3*)T]]>輸出到循環(huán)DPCM算子中。
下面,將結(jié)合圖11A至12描述一種用于對(duì)編碼的位流進(jìn)行譯碼的裝置和方法,根據(jù)本發(fā)明,采用對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置將關(guān)鍵值數(shù)據(jù)編碼到該位流中。
圖11A是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于對(duì)編碼的位流進(jìn)行譯碼的裝置框圖。根據(jù)圖11A,根據(jù)本發(fā)明的用于對(duì)編碼的位流進(jìn)行譯碼的裝置包括關(guān)鍵值頭譯碼器1170、熵譯碼器1110、逆循環(huán)DPCM算子1120、逆量化器1130以及四元數(shù)乘法器1140。所述關(guān)鍵值頭譯碼器1170對(duì)從輸入位流中對(duì)由四元數(shù)表示的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼時(shí)所要求的頭信息進(jìn)行譯碼,并將該譯碼的頭信息提供給關(guān)鍵值數(shù)據(jù)譯碼器1100。所述熵譯碼器1110通過(guò)從該輸入位流中對(duì)熵編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行熵譯碼來(lái)生成循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)或量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆循環(huán)DPCM算子1120通過(guò)對(duì)輸入到其中的循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行逆循環(huán)DPCM操作來(lái)生成量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述逆量化器1130通過(guò)對(duì)量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆量化來(lái)生成旋轉(zhuǎn)差值。所述四元數(shù)乘法器1140通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)差值與前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成該當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值。
圖11B是根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的方法流程圖。根據(jù)圖11B,將位流,其中具有用根據(jù)本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置所編碼的關(guān)鍵值數(shù)據(jù),輸入到關(guān)鍵值頭譯碼器1170以及關(guān)鍵值數(shù)據(jù)譯碼器1100的熵譯碼器1110中。
在步驟S1100中,關(guān)鍵值頭譯碼器1170對(duì)從該輸入位流中對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼時(shí)所要求的頭信息進(jìn)行譯碼,并將該譯碼的頭信息提供給關(guān)鍵據(jù)進(jìn)行譯碼時(shí)所要求的頭信息進(jìn)行譯碼,并將該譯碼的頭信息提供給關(guān)鍵值數(shù)據(jù)譯碼器1100。
在該頭信息中,對(duì)基于DPCM次數(shù)被量化為四元數(shù)的第一和第二內(nèi)部關(guān)鍵值數(shù)據(jù)以及多個(gè)用來(lái)對(duì)其它關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的標(biāo)志位進(jìn)行編碼。
如果DPCM的次數(shù)為1(例如,如果將多個(gè)標(biāo)志之一的nKVDPCMOrder設(shè)置為0),則將第一量化關(guān)鍵值數(shù)據(jù)作為內(nèi)部關(guān)鍵值數(shù)據(jù)包括在該頭信息中。如果第一逆量化關(guān)鍵值數(shù)據(jù)的四元數(shù)值滿足Q^0=(q^0,0,q^0,1,q^0,2,q^0,3)T]]>,則根據(jù)等式(24)來(lái)計(jì)算該第一逆量化關(guān)鍵值數(shù)據(jù)。q^0,0=tan(π4*(|firstQKV_S|2nKVQBit-1-1))---(24)]]>q^0,1=tan(π4*(xSign*|firstQKV_X|2nKVQBit-1-1))]]>q^0,2=tan(π4*(ySign*|firstQKV_y|2nKVQBit-1-1))]]>q^0,3=tan(π4*(zSign*|firstQKV_Z|2nKVQBit-1-1))]]>在等式(24)中,僅當(dāng)類OrilDPCMKeyValueHeader中的nFirstXSign為1時(shí),xSign為1,在其它條件下,xSign為-1。Ysign和zSign分別與nFirstYSign和nFirstZSign間的關(guān)系與xSign與nFirstXSign間的關(guān)系相同。
將由等式(24)定義的復(fù)原四元數(shù)分量值轉(zhuǎn)換為將被用作定向內(nèi)插器的角位移。從關(guān)鍵值數(shù)據(jù)中復(fù)原的各角位移均可以用四維矢量(x^i,y^i,z^i,θ^i)T]]>表示,其中i表示當(dāng)前關(guān)鍵字?jǐn)?shù)據(jù),( )表示旋轉(zhuǎn)軸的矢量, 表示逆時(shí)針旋轉(zhuǎn)角。因此,根據(jù)等式(25)將復(fù)原的四元數(shù)分量值轉(zhuǎn)換為角位移。x^0=q^0,1*1sin(θ0^2)------(25)]]>y^0=q^0,2*1sin(θ0^2)]]>z^0=q^0,3*1sin(θ0^2)]]>θ^0=arccos(q^0,0)*2]]>如果DPCM的次數(shù)為2,例如,如果將nKVDPCMOrder設(shè)置為1,則將第一和第二量化關(guān)鍵值數(shù)據(jù)包括在頭信息中。用與上述相同的方式復(fù)原該第一量化關(guān)鍵值數(shù)據(jù)。但是用不同的方法復(fù)原該第二關(guān)鍵值數(shù)據(jù)。換句話說(shuō),僅將第二量化關(guān)鍵值數(shù)據(jù)的三個(gè)分量與編碼的位流一起傳送,且其值不是內(nèi)部關(guān)鍵值數(shù)據(jù),而是具有第一關(guān)鍵值數(shù)據(jù)的差值(Q~1=(q~1,1,q~1,2,q~1,3)).]]>假定表示逆量化關(guān)鍵值數(shù)據(jù)的第二關(guān)鍵值數(shù)據(jù)的四元數(shù)滿足Q~^1=(q~^1,0,q~^1,1,,q~^1,2,q~^1,3)T]]>,則根據(jù)等式(26)計(jì)算 q~^1,0=1-(q~^1,12+q~^1,22+q~^1,32)------(26)]]>q~^1,1=tan(π4*(secondXSign*|secondQKV_X|2nKVQBit-1-1)]]>q~^1,2=tan(π4*(secondYSign*|secondQKV_Y|2nKVQBit-1-1)]]>q~^1,3=tan(π4*(secondZSign*|secondQKV_Z|2nKVQBit-1-1)]]>在等式(26)中,僅當(dāng)類OrilDPCMKeyValueHeader中的nSecondXSign為1時(shí),secondXSign為1,在其它條件下,secondXSign為-1。secondYsign和secondZSign分別與nSecondYSign和nSecondZSign間的關(guān)系與xSign與nSecondXSign間的關(guān)系相同。如果表示第二逆量化的關(guān)鍵值數(shù)據(jù)的四元數(shù) 滿足Q^1=(q^1,0,q^1,1,q^1,2,q^1,3)T]]>,則通過(guò) 乘以 計(jì)算 。換句話說(shuō),Q^1=Q~^1×Q^0.]]>關(guān)鍵值頭譯碼器1170將譯碼的關(guān)鍵值數(shù)據(jù)和譯碼的頭信息輸出到關(guān)鍵值譯碼器1100中。
在步驟S1120至S1128中,熵譯碼器1110接收位流,其中具有編碼的關(guān)鍵值數(shù)據(jù)的差分?jǐn)?shù)據(jù),并用由關(guān)鍵值頭譯碼器1170譯碼的譯碼信息對(duì)輸入位流進(jìn)行熵譯碼。
圖2是描述輸入到熵譯碼器1110中的位流的結(jié)構(gòu)圖。在圖12中,假定N(nNumberOfKeyValue)表示編碼的關(guān)鍵值數(shù)據(jù)量,當(dāng)DPCM的次數(shù)為0時(shí),包括在位流中的每個(gè)分量的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)量為N-1(0,1,...,nNumberOfKeyValue-2)。當(dāng)DPCM的次數(shù)為1時(shí),包括在該位流中的每個(gè)分量的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)量為N-2(0,1,...,nNumberOfKeyValue-3)。
在步驟S1120中,熵譯碼器1110接收來(lái)自關(guān)鍵值頭譯碼器1170的x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag,并檢查x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag是否都被設(shè)定為1。
當(dāng)x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag均被設(shè)定為0時(shí),認(rèn)為所有量化的關(guān)鍵值數(shù)據(jù)或每個(gè)分量的所有差分?jǐn)?shù)據(jù)與類OrilKeyValueCodingBit中的nAllKeyValues相同。因此,在步驟S1122中,熵譯碼器1110將每個(gè)分量的關(guān)鍵值數(shù)據(jù)譯碼為與從關(guān)鍵值頭譯碼器1170輸入的nAllKeyValues相同的值,并將譯碼的關(guān)鍵值數(shù)據(jù)輸出到逆循環(huán)DPCM算子1120中。
如果x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag不是設(shè)定為0,例如,如果x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag被設(shè)定為1,則在步驟S1124中,熵譯碼器1110檢查從關(guān)鍵值頭譯碼器1170輸入的熵譯碼模式,以便對(duì)輸入的關(guān)鍵值數(shù)據(jù)的每個(gè)分量 進(jìn)行譯碼。
當(dāng)熵譯碼模式是二進(jìn)制譯碼模式時(shí),在步驟S1126中,熵譯碼器1110用如表1所示的函數(shù)decodeSignedAAC()對(duì)自適應(yīng)算術(shù)編碼的位流進(jìn)行譯碼,并將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到逆循環(huán)DPCM算子1120中。
表1

另一方面,當(dāng)熵譯碼模式不是二進(jìn)制譯碼模式時(shí),則在步驟S1128中,熵譯碼器1110用函數(shù)decodeUnaryAAC()對(duì)輸入的位流進(jìn)行譯碼。通過(guò)連續(xù)地讀取0直到從該位流中讀出1為止,將連續(xù)0的數(shù)量轉(zhuǎn)換為其絕對(duì)值,讀取位“1”的下一位,并將該位轉(zhuǎn)換為正負(fù)號(hào)位,函數(shù)decodeUnaryAAC()對(duì)該輸入位流進(jìn)行譯碼,然后將量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到逆循環(huán)DPCM算子1120中。表2示出了函數(shù)decodeUnaryAAC()的例子。
表2

在上述函數(shù)decodeSignedAAC()和decodeUnaryAAC()中采用的函數(shù)qf_decode()被用來(lái)從自適應(yīng)算術(shù)編碼的位流中讀取位1,并已由國(guó)際標(biāo)準(zhǔn)組織授權(quán)的文獻(xiàn)IS0/IEC 14496-21999 Coding of Audio-Visual ObiectVisual定義。
逆循環(huán)DPCM算子1120從熵譯碼器1110接收熵譯碼的關(guān)鍵值數(shù)據(jù),并檢查從關(guān)鍵值頭譯碼器1170輸入的DPCM次數(shù)。如果DPCM的次數(shù)為0,則在步驟S1130中,逆循環(huán)DPCM算子1120將譯碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 輸出到逆量化器1130中,因?yàn)閺撵刈g碼器1110輸入的熵譯碼的關(guān)鍵值數(shù)據(jù)是量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
另一方面,如果DPCM的次數(shù)為1,則在步驟S1135中,逆循環(huán)DPCM算子1120執(zhí)行逆循環(huán)DPCM操作,因?yàn)閺撵刈g碼器1110輸入的熵譯碼的關(guān)鍵值數(shù)據(jù)是循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
假定nKVQBit表示逆量化位,則在步驟S1135中,逆循環(huán)DPCM算子1120用等式(27)對(duì)旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 進(jìn)行逆循環(huán)DPCM操作,并生成量化的循環(huán)差分?jǐn)?shù)據(jù) Q∪i-2′=Q∪i-2-(2nKVQBits-1)-----(Q∪i≥0)---(27)]]>Q∪i-2′=Q∪i-2+(2nKVQBits-1)-----(Q∪i<0)]]>(i=2,…nNumberOfKeyValue-1)此后,逆循環(huán)DPCM算子1120分別用 和 獲得逆DPCM的值A(chǔ)以及逆DPCM的值B,如等式(28)所示。A=Q∪i-2+Q~i-1------(28)]]>B=Q∪i-2′+Q~i-1]]>(i=2,…,nNumberOfKeyValue-1)如果B+(2nKVQBit-1-1)位于0和量化范圍內(nèi)的最大值之間,則循環(huán)DPCM算子1120將B作為逆循環(huán)DPCM數(shù)據(jù) 輸出。另一方面,如果B+(2nKVQBit-1-1)小于0或大于該量化范圍內(nèi)的最大值,則逆循環(huán)DPCM算子1120將A作為 輸出。
表3示出了C++程序代碼的例子,其中寫(xiě)出了逆循環(huán)DPCM算子1120的上述操作。
表3

在步驟S1140中,逆量化器1130接收由執(zhí)行逆循環(huán)DPCM操作的逆循環(huán)DPCM算子1120生成的量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)(Q~i=(q~i,1,q~i,2,q~i,3))]]>,通過(guò)在

上用等式(29)執(zhí)行一逆量化操作來(lái)復(fù)原一旋轉(zhuǎn)差值(Q~^=(q~^i,.0,q~^i,1,q~^i,2,q~^i,3)T)]]>,并將該旋轉(zhuǎn)差值

輸出到四元數(shù)乘法器1140中。q~^1,0=1-(q~^f,12+q~^f,22+q~^f,32)-------(29)]]>q~^i,j=tan(π4*(sgn(q~i,j)*|q~i,j|2nKVQBit-1-1)]]>(i=2,…,nNumberOfKeyValue-1,j=1,2,3)此后,四元數(shù)乘法器1140接收旋轉(zhuǎn)差值 。在步驟S1154中,四元數(shù)乘法器1140通過(guò)將輸入的旋轉(zhuǎn)差值 根據(jù)等式(30)與前關(guān)鍵幀的旋轉(zhuǎn)變換值 進(jìn)行四元數(shù)相乘,來(lái)復(fù)原當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值 (其中Q^i=(q^i,.0,q^i,1,q^i,2,q^i,3)T.]]>Q^i=Q~^i×Q^i-1]]>(i=2,…nNumberOfKeyValue-1)在步驟S1156中,在復(fù)原旋轉(zhuǎn)變換值后,關(guān)鍵值數(shù)據(jù)譯碼器1100檢查該復(fù)原的旋轉(zhuǎn)變換值是否對(duì)應(yīng)于最后一個(gè)關(guān)鍵值數(shù)據(jù)。如果該復(fù)原的旋轉(zhuǎn)變換值不對(duì)應(yīng)于最后一個(gè)關(guān)鍵值數(shù)據(jù),則關(guān)鍵值數(shù)據(jù)譯碼器1100重復(fù)執(zhí)行步驟S1140至S1154。另一方面,如果該復(fù)原的旋轉(zhuǎn)變換值是最后一個(gè)關(guān)鍵值數(shù)據(jù)的旋轉(zhuǎn)變換值,則在步驟S1158中,關(guān)鍵值數(shù)據(jù)譯碼器1100將復(fù)原的旋轉(zhuǎn)變換值輸出。
如果DPCM的次數(shù)為0,逆循環(huán)DPCM算子1120將譯碼的量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù) (其中Q∪i=(q∪i,1,q∪i,2,q∪i,3)]]>))輸出到逆量化器1130中。然后,在步驟S1140中,通過(guò)對(duì)從逆循環(huán)DPCM算子1120輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù) 進(jìn)行逆量化,生成旋轉(zhuǎn)差值 (其中Q~^i=(q~^i,0,q~^i,1,q~^i,2,q~^i,3)T]]>),并將 輸出到四元數(shù)乘法器1140中。q~^1,0=1-(q~^i,12+q~^i,22+q~^i,32)-------(31)]]>q~^i,j=tan(π4*(sgn(q∪i-1,j)*|q∪i-1,j|2nKVQBit-1-1)]]>(i=1,…,nNumberOfKeyValue-1,j=1,2,3)
即使DPCM的次數(shù)為0,四元數(shù)乘法器1140將與DPCM的次數(shù)不為0時(shí)幾乎相同的方式(步驟S1150至S1158)來(lái)復(fù)原旋轉(zhuǎn)變換值。當(dāng)DPCM的次數(shù)不為0時(shí),四元數(shù)乘法器1140根據(jù)等式(32)執(zhí)行四元數(shù)乘法。Q^i=Q~^i×Q^i-1---(32)]]>(i=1,…nNumberOfKeyValue-1)圖13A至13E是描述SDL語(yǔ)言程序代碼的示例圖,其中實(shí)現(xiàn)了根據(jù)本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的裝置。下面,將描述在圖13A至13E中所示的每個(gè)變量的含義。
圖13A是描述類CompressedOrientationInterpolator的圖。CompressedOrientationInterpolator是用于讀取定向內(nèi)插器的編碼位流的最高類。OrilKeyValueHeader和OrilDPCMKeyValue是用于有關(guān)與常規(guī)定向內(nèi)插器中的關(guān)鍵值字段數(shù)據(jù)相應(yīng)的關(guān)鍵值數(shù)據(jù)的信息的類。函數(shù)qf_start()用來(lái)在讀取具有編碼的關(guān)鍵值數(shù)據(jù)的位流前初始化算術(shù)譯碼器。
圖13B是描述類OrilKeyValueHeader的圖。用在該類中的每個(gè)變量的含義如下。nKVQBit表示關(guān)鍵值數(shù)據(jù)的逆量化位大小。nNumKeyValueCodingBit表示關(guān)鍵值數(shù)據(jù)量。nKVDPCMOrder表示用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼的逆DPCM操作的次數(shù)。當(dāng)nKVDPCMOrder=0時(shí),不需要執(zhí)行逆循環(huán)DPCM操作。另一方面,當(dāng)nKVDPCMOrder=1時(shí),應(yīng)當(dāng)執(zhí)行逆循環(huán)DPCM操作。
圖13C是描述類OriDPCMKeyValueHeader的圖。用在該類中的每個(gè)變量的含義如下。firstQKV_S、firstQKV_X、firstQKV_Y以及firstQKV_Z分別表示四個(gè)分量s、x、y以及z的第一個(gè)值,構(gòu)成四元數(shù)(s,x,y,z)表示量化的關(guān)鍵值數(shù)據(jù)。nfirstXSign、nfirstYSign以及nfirstZSign分別表示firstQKV_X、firstQKV_Y以及firstQKV_Z的正負(fù)號(hào)。secondQKV_X、secondQKV_Y以及secondQKV_Z分別表示三個(gè)分量x、y以及z的第二個(gè)值,nsecondXSign、nsecondYSign以及nsecondZSign分別表示secondQKV_X、secondQKV_Y以及secondQKV_Z的正負(fù)號(hào)。blsMoreTwoKVs表示在應(yīng)當(dāng)執(zhí)行逆循環(huán)DPCM時(shí)是否有兩個(gè)以上的待譯碼的關(guān)鍵值數(shù)據(jù)。x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag表示每個(gè)分量x、y以及z的所有量化值是否相同。
圖13D是描述類OrilKeyValueCodingBit的圖。用在該類中的每個(gè)變量的含義如下。nKVCodingBit表示用來(lái)存儲(chǔ)除內(nèi)部關(guān)鍵值數(shù)據(jù)(在類OrilDPCMKeyValueHeader中的firstQKV_S、firstQKV_X、firstQKV_Y、firstQKV_Z、secondQKV_X、secondQKV_Y以及secondQKV_Z)外的所有四元數(shù)關(guān)鍵值數(shù)據(jù)的各分量的位數(shù)。
nAllKeyValue表示當(dāng)將用于各分量的keyvalue_flag設(shè)置為0時(shí)所有關(guān)鍵值數(shù)據(jù)的各分量的量化值。nSign表示nAllKeyValue的正負(fù)號(hào)。blsUnaryAAC表示用于對(duì)每個(gè)分量x、y和z的量化值進(jìn)行譯碼的自適應(yīng)算術(shù)量化方法。如果將blsUnaryAAC設(shè)置為“true”,則使用unaryAAC譯碼函數(shù)。另一方面,如果將blsUnaryAAC設(shè)置為“false”,則使用binaryAAC譯碼函數(shù)。
圖13E是描述類OrilDPCMKeyValue的圖。用在該類中的每個(gè)變量的含義如下。用DeltaKeyValue來(lái)以四元數(shù)的形式存儲(chǔ)包括三個(gè)分量x、y和z的量化的關(guān)鍵值數(shù)據(jù)。用函數(shù)decodeUnaryAAC或decodeSignedAAC從位流中對(duì)存儲(chǔ)在DeltaKeyValue中的量化的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼。
kVXSignContext、kVYSignContext、kVZSignContext是用于在使用函數(shù)decodeUnaryAAC或decodeSignedAAC對(duì)DeltaKeyValue的三個(gè)分量x、y和z進(jìn)行譯碼時(shí)的語(yǔ)境。
kVXUnaryContext、kVYUnaryContext、kVZUnaryContext是用于在使用函數(shù)decodeUnaryAAC對(duì)DeltaKeyValue的三個(gè)分量x、y和z進(jìn)行譯碼的語(yǔ)境。
kVXContext、kVYContext、kVZContext是用于在使用函數(shù)deeodeedAAC對(duì)DeltaKeyValue的三個(gè)分量x、y和z進(jìn)行譯碼的語(yǔ)境。
下面,將描述根據(jù)本發(fā)明第三實(shí)施例的測(cè)量原始旋轉(zhuǎn)差值與通過(guò)在量化器1000包括的誤差測(cè)量單元1050中對(duì)量化的旋轉(zhuǎn)差值進(jìn)行逆量化來(lái)復(fù)原的旋轉(zhuǎn)差值間的誤差的方法。
根據(jù)本發(fā)明,該測(cè)量原始旋轉(zhuǎn)差值與復(fù)原旋轉(zhuǎn)差值間誤差的方法還可以用于測(cè)量編碼前的定向內(nèi)插器關(guān)鍵值數(shù)據(jù)與通過(guò)對(duì)編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼而獲得的該定向內(nèi)插器關(guān)鍵值數(shù)據(jù)間的誤差。因此,在以下根據(jù)本發(fā)明的誤差測(cè)量方法的描述中,原始的旋轉(zhuǎn)差值與復(fù)原的旋轉(zhuǎn)差值將分別與編碼前的原始關(guān)鍵值數(shù)據(jù)與通過(guò)對(duì)編碼的關(guān)鍵值數(shù)據(jù)進(jìn)行譯碼而獲得的關(guān)鍵值數(shù)據(jù)相對(duì)應(yīng)。
在對(duì)定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的過(guò)程中,量化期間會(huì)在原始的關(guān)鍵值數(shù)據(jù)和復(fù)原的關(guān)鍵值數(shù)據(jù)間產(chǎn)生誤差。此時(shí),該原始的關(guān)鍵值數(shù)據(jù)與該復(fù)原的關(guān)鍵值數(shù)據(jù)間的誤差是由用該原始關(guān)鍵值數(shù)據(jù)獲得的旋轉(zhuǎn)角與由該復(fù)原關(guān)鍵值數(shù)據(jù)獲得的旋轉(zhuǎn)角間的差值來(lái)定義的。
換句話說(shuō),假定包含在定向內(nèi)插器節(jié)點(diǎn)中的一個(gè)關(guān)鍵值數(shù)據(jù)與其在譯碼器中的復(fù)原關(guān)鍵值數(shù)據(jù)分別稱為 和 ,其中 表示旋轉(zhuǎn)軸,θ表示旋轉(zhuǎn)角并滿足θ∈[-π,π],且通過(guò)旋轉(zhuǎn)變換,在三維空間中的對(duì)象分別基于 和 從任意位置 移動(dòng)到任意位置 和從 移動(dòng)到任意位置 ,則量化誤差是 和 間的差值,并滿足e→(x→)=y→-y→^]]>,以四元數(shù)形式表示的 和 如等式(33)所示。X=(0,x→),Y=(0,y→),Y^=(0,y→^)------(33)]]>當(dāng)表示 和 的四元數(shù)稱為Q和 時(shí),可導(dǎo)出以下等式。
Y=Q×X×Q*…(34)X=Q*×Y×Q此時(shí),A×B表示四元數(shù)乘法,以及A*表示A的共軛?;诘仁?33)和(34),可導(dǎo)出以下等式。Y^=Q^×X×Q*^=Q^×Q*×Y×Q×Q*^=Qerror×Y×Qerror*-------(35)]]>此時(shí),Qerror是表示 和 間在旋轉(zhuǎn)變換方面的關(guān)系,并由以下等式定義。Qerror=Q^×Q*-----(36)]]>當(dāng) 和 間的差分旋轉(zhuǎn)角稱為θerror時(shí),用四元數(shù)變換公式以及等式(36)可獲得θerror。θerror=2cos-1q0,error=2cos-1(Q^·Q)-----θerror∈
------(37)]]>此時(shí),●表示內(nèi)積操作。等式(37)定義在預(yù)定時(shí)刻出現(xiàn)在所有動(dòng)畫(huà)關(guān)鍵幀中的瞬時(shí)量化誤差,可由以下等式定義預(yù)定時(shí)刻(t)的瞬時(shí)量化誤差,以便從等式(37)導(dǎo)出用于獲得在整個(gè)動(dòng)畫(huà)間隔中的量化誤差的公式。e(t)=2arccos{Q(t)·Q^(t)}------(38)]]>
通過(guò)將公式(38)大量地應(yīng)用到整個(gè)關(guān)鍵幀間隔,可以導(dǎo)出平均誤差Em以及最大誤差Ep,在該間隔期間,用定向內(nèi)插器來(lái)執(zhí)行動(dòng)畫(huà)。
此時(shí),為了獲得平均誤差Em,必須首先獲得時(shí)間間隔[ti-1,ti]中誤差的部分和 ,如圖14所示。下面,與原始關(guān)鍵值數(shù)據(jù)Qi-1和Qi相對(duì)應(yīng)的譯碼的關(guān)鍵值數(shù)據(jù)將分別稱為 和 由于動(dòng)畫(huà)路徑在三維空間中會(huì)出現(xiàn)失真,因此必須將時(shí)間間隔[ti-1,ti]必劃分為兩個(gè)子間隔[ti-1,ti”]和[ti-1”,ti],且該兩子間隔必須彼此分開(kāi)計(jì)算。此時(shí),假定將兩個(gè)動(dòng)畫(huà)路徑間,即一組Qi值與一組 值間的距離在間隔[ti-1,ti]的ti”減至最小。用以下等式計(jì)算在ti-1和ti時(shí)的瞬時(shí)誤差。ei-1=2arccos(Q′i-1·Q^i-1)-----(39)]]>ei=2arccos(Q′i·Q^i)]]>另外,間隔[ti-1,ti]中的ti”與 成比例,如等式(40)所示。ti′′=ti-1+ei-1ei-1+ei(ti-ti-1)------(40)]]>用等式(41)計(jì)算中間四元數(shù)值以及在ti”時(shí)的瞬時(shí)誤差。Qi′′=SLERP(Qi-1,Qi,ti′′-ti-1ti-ti-1)---(41)]]>Q^i′′=SLERP(Q^i-1,Q^i,ti′′-ti-1ti-ti-1)]]>ei′′=2·arccos(Qi′′·Q^i′′)]]>但是,用下述等式(42)獲得在任意時(shí)刻(t)的一瞬時(shí)誤差。e(t)=2·arccos(Q(t)·Q^(t))------(42)]]>此時(shí),Q(t)=SLERP(Qi-1,Qi,t-ti-1ti-ti-1)]]>以及Q^(t)=SLERP(Q^i-1,Q^i,t-ti-1ti-ti-1)]]>。但是,計(jì)算在任意時(shí)刻(t)的瞬時(shí)誤差e(t)并不容易。因此,使用近似法(43)所示的線性近似來(lái)確定e(t)。 也可以用近似法(43)和(44)來(lái)獲得時(shí)間間隔[ti-1,ti]中的誤差的部分和 以及時(shí)間間隔[ti-1,ti]中的最大誤差的部分和 近似法(45)可以重新整理如下。 最后,用以下的近似法(46)計(jì)算時(shí)間間隔[tmin,tmax]中的平均誤差Em以及最大誤差Ep。Em≅1tmax-tminΣiEim]]>Ep≅maxiEip]]>因此,根據(jù)本發(fā)明的第三實(shí)施例,量化器1000中的誤差測(cè)量單元1050用等式(37)計(jì)算原始關(guān)鍵值數(shù)據(jù)與復(fù)原關(guān)鍵值數(shù)據(jù)間的誤差,并可以更精確地測(cè)量在四元數(shù)空間中由于量化誤差而引起的圖像失真的程度。
圖15是本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法與用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的常規(guī)方法相比較的性能圖。如圖15所示,根據(jù)本發(fā)明的用于對(duì)關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法,當(dāng)給定編碼所需的預(yù)定位數(shù)量時(shí),與常規(guī)的MPEG-4 BIFS PMFC方法相比,可以大大降低圖像失真的程度。
本發(fā)明能以寫(xiě)在計(jì)算機(jī)可讀記錄介質(zhì)上的計(jì)算機(jī)可讀代碼來(lái)實(shí)現(xiàn)。在這里,計(jì)算機(jī)可讀記錄介質(zhì)包括能由計(jì)算機(jī)系統(tǒng)讀取的任何種類的記錄介質(zhì)。例如,該計(jì)算機(jī)可讀記錄介質(zhì)包括ROM、RAM、CD-ROM、磁帶、軟盤(pán)、光數(shù)據(jù)存儲(chǔ)器以及載波(通過(guò)Internet傳輸)。可將該計(jì)算機(jī)可讀記錄介質(zhì)分散到通過(guò)網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)中,計(jì)算機(jī)能以分散方式讀取該記錄介質(zhì)。
盡管本發(fā)明是參照其優(yōu)選實(shí)施例來(lái)描述的,但本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離由所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)的各種改變。
根據(jù)本發(fā)明,用于對(duì)定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼和譯碼的方法可以通過(guò)對(duì)表示關(guān)鍵幀的旋轉(zhuǎn)變換值間的差值的旋轉(zhuǎn)差值進(jìn)行編碼來(lái)有效降低待編碼的連續(xù)關(guān)鍵值數(shù)據(jù)間的冗余。
另外,根據(jù)本發(fā)明,通過(guò)直接校正對(duì)象的旋轉(zhuǎn)方向,可以防止由于量化誤差而將對(duì)象復(fù)原為在與原始方向相反的方向上旋轉(zhuǎn)。
此外,由于在本發(fā)明中,在構(gòu)成表示關(guān)鍵值數(shù)據(jù)的四元數(shù)的四個(gè)分量中只對(duì)具有相對(duì)較小值的第二至第四分量進(jìn)行編碼,并用該第二至第四分量來(lái)復(fù)原第一分量,調(diào)節(jié)第二至第四分量從而將第一分量復(fù)原為實(shí)數(shù),可以大大降低編碼所需的數(shù)據(jù)大小。
權(quán)利要求
1.一種用于對(duì)表示關(guān)鍵幀中的對(duì)象旋轉(zhuǎn)變換的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的裝置,包括旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器,利用當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值和前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換與通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在前關(guān)鍵幀中該對(duì)象的旋轉(zhuǎn)變換之間的最大差異來(lái)旋轉(zhuǎn)所述對(duì)象,并通過(guò)量化該旋轉(zhuǎn)差值來(lái)輸出旋轉(zhuǎn)差分?jǐn)?shù)據(jù);熵編碼器,對(duì)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。
2.如權(quán)利要求1所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器通過(guò)將所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值的共軛進(jìn)行四元數(shù)相乘來(lái)生成所述旋轉(zhuǎn)差值。
3.如權(quán)利要求1所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器執(zhí)行非線性量化,通過(guò)該操作,可以將具有較小旋轉(zhuǎn)差值的區(qū)域量化為比具有較大旋轉(zhuǎn)差值的區(qū)域具有更大的分辨率。
4.如權(quán)利要求1所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器調(diào)節(jié)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的分量值,從而可以通過(guò)逆量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的量化分量值將旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的未量化分量值復(fù)原為實(shí)數(shù)。
5.如權(quán)利要求4所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器通過(guò)將預(yù)定調(diào)節(jié)范圍內(nèi)的變量增加到所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量值或所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值,或者從所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量值或所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值中減去預(yù)定調(diào)節(jié)范圍內(nèi)的變量來(lái)生成所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
6.如權(quán)利要求1所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器包括量化器,通過(guò)量化所述旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);量化數(shù)據(jù)調(diào)節(jié)器,調(diào)節(jié)輸入到其中的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;逆量化器,對(duì)該調(diào)節(jié)分量值進(jìn)行逆量化;旋轉(zhuǎn)差值復(fù)原器,用該三個(gè)逆量化的分量值來(lái)復(fù)原未量化的分量值,并因此生成復(fù)原的旋轉(zhuǎn)差值;誤差測(cè)量單元,測(cè)量輸入到所述量化器中的旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的誤差,并輸出具有調(diào)節(jié)分量值的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),從而可以將該誤差減至最小。
7.如權(quán)利要求6所述的裝置,其中,如果所述當(dāng)前誤差小于所述調(diào)節(jié)誤差,則所述誤差測(cè)量單元利用輸入到所述量化器中的所述旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的當(dāng)前誤差來(lái)更新調(diào)節(jié)誤差,如果所述調(diào)節(jié)誤差小于最終誤差,則用所述調(diào)節(jié)誤差更新最終誤差,并將與所述調(diào)節(jié)誤差相應(yīng)的所述調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到所述量化數(shù)據(jù)調(diào)節(jié)器中。
8.如權(quán)利要求1所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器包括第一四元數(shù)乘法器,用所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值和所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成所述旋轉(zhuǎn)差值;量化器,通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);逆量化器,通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原的旋轉(zhuǎn)差值;第二四元數(shù)乘法器,通過(guò)將該復(fù)原的旋轉(zhuǎn)差值與所述前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成所述當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)差值。
9.如權(quán)利要求8所述的裝置,其中,所述量化器只量化由四元數(shù)表示的所述旋轉(zhuǎn)差值的第一至第四分量值中的三個(gè)分量值。
10.如權(quán)利要求1所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器生成所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的旋轉(zhuǎn)變換值間的第一旋轉(zhuǎn)差值,所述前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值間的第二旋轉(zhuǎn)差值,以及所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值間的第三旋轉(zhuǎn)差值,并檢測(cè)是否出現(xiàn)了旋轉(zhuǎn)方向誤差,以致使該對(duì)象在與原始方向相反的方向上旋轉(zhuǎn)。
11.如權(quán)利要求10所述的裝置,其中,當(dāng)從所述第一旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的該對(duì)象的旋轉(zhuǎn)方向相反,從第二旋轉(zhuǎn)差值獲得的該對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的該對(duì)象的旋轉(zhuǎn)方向相反,以及從第一至第三旋轉(zhuǎn)差值獲得的旋轉(zhuǎn)角超過(guò)預(yù)定的臨界旋轉(zhuǎn)角時(shí),所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器確定出現(xiàn)了所述旋轉(zhuǎn)方向誤差。
12.如權(quán)利要求1所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器包括旋轉(zhuǎn)方向誤差檢測(cè)器,基于所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值以及所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)檢測(cè)是否出現(xiàn)了旋轉(zhuǎn)方向誤差,以致使所述對(duì)象的原始旋轉(zhuǎn)方向與其譯碼的旋轉(zhuǎn)方向相反;旋轉(zhuǎn)方向校正器,調(diào)節(jié)所述旋轉(zhuǎn)差值,從而使所述對(duì)象的譯碼的旋轉(zhuǎn)方向與其原始旋轉(zhuǎn)方向相同;旋轉(zhuǎn)方向選擇器,根據(jù)從所述旋轉(zhuǎn)方向誤差檢測(cè)器輸入的檢測(cè)結(jié)果,將所述旋轉(zhuǎn)差值或從所述旋轉(zhuǎn)方向校正器輸入的旋轉(zhuǎn)差值選擇為待量化的差分?jǐn)?shù)據(jù)。
13.如權(quán)利要求12所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器進(jìn)一步包括量化單元,量化由所述旋轉(zhuǎn)方向選擇器選擇的差值,并輸出該量化的差值,該量化單元包括量化器,通過(guò)量化輸入到其中的旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);量化數(shù)據(jù)調(diào)節(jié)器,調(diào)節(jié)輸入到其中的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;逆量化器,逆量化該調(diào)節(jié)分量值;旋轉(zhuǎn)差值復(fù)原器,通過(guò)用該三個(gè)逆量化的分量值復(fù)原未量化的分量值,來(lái)生成復(fù)原的旋轉(zhuǎn)差值;誤差測(cè)量單元,測(cè)量輸入到所述量化單元中的旋轉(zhuǎn)差值與該復(fù)原旋轉(zhuǎn)差值間的誤差,并基于該測(cè)量誤差來(lái)輸出調(diào)節(jié)的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
14.如權(quán)利要求13所述的裝置,其中,量化數(shù)據(jù)調(diào)節(jié)器通過(guò)將預(yù)定調(diào)節(jié)范圍內(nèi)的變量增加到從所述量化器輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量值或從所述誤差測(cè)量單元輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值,或者從所述誤差測(cè)量單元輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值或從所述誤差測(cè)量單元輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值中減去預(yù)定調(diào)節(jié)范圍內(nèi)的變量來(lái)生成調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
15.如權(quán)利要求13所述的裝置,其中,所述誤差測(cè)量單元利用輸入到所述量化器中的所述旋轉(zhuǎn)差值與所述復(fù)原的旋轉(zhuǎn)差值間的當(dāng)前誤差來(lái)更新調(diào)節(jié)誤差,如果該當(dāng)前誤差小于該調(diào)節(jié)誤差;如果該調(diào)節(jié)誤差小于最終誤差,則用該調(diào)節(jié)誤差更新該最終誤差,并將與該調(diào)節(jié)誤差相應(yīng)的所述調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到所述量化數(shù)據(jù)調(diào)節(jié)器中。
16.如權(quán)利要求1所述的裝置,進(jìn)一步包括循環(huán)DPCM算子,通過(guò)對(duì)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行線性DPCM操作以及然后對(duì)該線性DPCM的差分?jǐn)?shù)據(jù)和量化范圍內(nèi)的最大值進(jìn)行預(yù)定操作,生成其大小被減小的差分?jǐn)?shù)據(jù),其中,所述熵編碼器對(duì)循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。
17.如權(quán)利要求16所述的裝置,其中,所述循環(huán)DPCM算子輸出所述線性DPCM的差分?jǐn)?shù)據(jù)和所述線性DPCM差分?jǐn)?shù)據(jù)與所述量化范圍內(nèi)的最大值的差值間的較小者。
18.如權(quán)利要求16所述的裝置,其中,所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器包括第一四元數(shù)乘法器,用當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值和前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成所述旋轉(zhuǎn)差值;量化器,通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);逆量化器,通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原的旋轉(zhuǎn)差值;第二四元數(shù)乘法器,通過(guò)將該復(fù)原的旋轉(zhuǎn)差值與所述前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成所述當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)差值。
19.如權(quán)利要求1所述的裝置,其中,所述熵編碼器將待編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)編碼為第一數(shù)字序列,其數(shù)量與該待編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的大小相應(yīng),以及用于表示該第一數(shù)字序列結(jié)束的一比特的第二數(shù)字。
20.如權(quán)利要求1所述的裝置,其中,所述熵編碼器對(duì)在各位平面上待編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行編碼。
21.一種用于對(duì)位流進(jìn)行譯碼的裝置,其中將表示關(guān)鍵幀中的對(duì)象旋轉(zhuǎn)變換的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)編碼為該位流,該裝置包括熵譯碼器,通過(guò)對(duì)該位流進(jìn)行熵譯碼來(lái)生成循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)或量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù);逆循環(huán)DPCM算子,根據(jù)從該位流譯碼的DPCM次數(shù),通過(guò)對(duì)從所述熵譯碼器輸入的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆循環(huán)DPCM操作來(lái)生成量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù);逆量化器,通過(guò)對(duì)量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆量化來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù),該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)用來(lái)根據(jù)通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換與通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在前關(guān)鍵幀中該對(duì)象的旋轉(zhuǎn)變換之間的最大差異來(lái)旋轉(zhuǎn)所述對(duì)象;四元數(shù)乘法器,通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)差值與前關(guān)鍵幀的譯碼的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成該當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值。
22.如權(quán)利要求21所述的裝置,其中,如果從所述位流中譯碼的關(guān)鍵值標(biāo)志顯示所有關(guān)鍵幀差分?jǐn)?shù)據(jù)的每個(gè)分量均具有相同值,則所述熵譯碼器將所述關(guān)鍵幀關(guān)鍵值數(shù)據(jù)的每個(gè)分量均譯碼為從所述位流中譯碼的預(yù)定值。
23.如權(quán)利要求21所述的裝置,其中,所述逆循環(huán)DPCM算子通過(guò)對(duì)所述循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)和該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)量化范圍內(nèi)的最大值進(jìn)行預(yù)定操作來(lái)生成逆循環(huán)DPCM的循環(huán)差分?jǐn)?shù)據(jù)。
24.如權(quán)利要求21所述的裝置,其中,所述逆量化器通過(guò)逆量化單位四元數(shù)的三個(gè)分量值并利用該三個(gè)復(fù)原的分量值復(fù)原另一個(gè)分量值,來(lái)生成旋轉(zhuǎn)差值。
25.一種用于生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的裝置,其生成表示每幀中對(duì)象旋轉(zhuǎn)的旋轉(zhuǎn)變換值的差分?jǐn)?shù)據(jù),包括第一四元數(shù)乘法器,生成旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值應(yīng)用于該當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換與通過(guò)前關(guān)鍵幀的旋轉(zhuǎn)變換值應(yīng)用于該前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換間的最大差異來(lái)旋轉(zhuǎn)所述對(duì)象;量化單元,通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);逆量化單元,通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原的旋轉(zhuǎn)差值;第二四元數(shù)乘法器,通過(guò)將該復(fù)原的旋轉(zhuǎn)差值與所述前一幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成復(fù)原的旋轉(zhuǎn)變換值。
26.如權(quán)利要求25所述的裝置,其中,所述第一四元數(shù)乘法器通過(guò)將所述當(dāng)前幀的旋轉(zhuǎn)變換值與所述前一幀的復(fù)原旋轉(zhuǎn)變換值的共軛進(jìn)行四元數(shù)相乘來(lái)生成旋轉(zhuǎn)差值。
27.如權(quán)利要求25所述的裝置,其中,所述量化單元執(zhí)行非線性量化,通過(guò)該操作,可以將具有較小旋轉(zhuǎn)差值的區(qū)域量化為比具有較大旋轉(zhuǎn)差值的區(qū)域具有更大的分辨率。
28.如權(quán)利要求25所述的裝置,其中,所述量化單元只量化由四元數(shù)表示的所述旋轉(zhuǎn)差值的第一至第四分量中的三個(gè)分量。
29.如權(quán)利要求25所述的裝置,其中,所述量化單元調(diào)節(jié)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的分量,從而可以將用該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)分量值復(fù)原的還未量化的旋轉(zhuǎn)差值分量值轉(zhuǎn)換為實(shí)數(shù),并輸出該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的調(diào)節(jié)分量。
30.如權(quán)利要求29所述的裝置,其中,所述量化單元通過(guò)將預(yù)定調(diào)節(jié)范圍內(nèi)的變量增加到所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量或所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量,或者從所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量或從所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量中減去預(yù)定調(diào)節(jié)范圍內(nèi)的變量來(lái)生成最終旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
31.如權(quán)利要求25所述的裝置,其中,所述量化單元包括量化器,通過(guò)量化輸入到其中的旋轉(zhuǎn)差值的三個(gè)分量來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);量化數(shù)據(jù)調(diào)節(jié)器,調(diào)節(jié)輸入到其中的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;逆量化器,逆量化該調(diào)節(jié)分量值;旋轉(zhuǎn)差值復(fù)原器,通過(guò)該三個(gè)逆量化的分量值來(lái)復(fù)原未被量化的分量值,從而生成復(fù)原的旋轉(zhuǎn)差值;誤差測(cè)量單元,測(cè)量輸入到所述量化單元中的旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的誤差,并輸出具有調(diào)節(jié)分量的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),從而可以將該誤差減至最小。
32.如權(quán)利要求31所述的裝置,其中,所述誤差測(cè)量單元用輸入到所述量化單元中的所述旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的當(dāng)前誤差來(lái)更新調(diào)節(jié)誤差,如果該當(dāng)前誤差小于該調(diào)節(jié)誤差;如果該調(diào)節(jié)誤差小于最終誤差,則用該調(diào)節(jié)誤差來(lái)更新該最終誤差,并將與該調(diào)節(jié)誤差相應(yīng)的調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)輸出到所述量化數(shù)據(jù)調(diào)節(jié)器中。
33.如權(quán)利要求25所述的裝置,其中,所述逆量化器對(duì)量化的分量值進(jìn)行逆量化,并用該逆量化的分量值來(lái)復(fù)原未量化的分量值。
34.如權(quán)利要求25所述的裝置,進(jìn)一步包括旋轉(zhuǎn)方向誤差檢測(cè)器,生成所述當(dāng)前幀的旋轉(zhuǎn)變換值與所述前一幀的旋轉(zhuǎn)變換值間的第一旋轉(zhuǎn)差值,所述前一幀的旋轉(zhuǎn)變換值與從所述第二四元數(shù)乘法器輸入的所述前一幀的復(fù)原旋轉(zhuǎn)變換值間的第二旋轉(zhuǎn)差值,以及所述當(dāng)前幀的旋轉(zhuǎn)變換值與所述前一幀的復(fù)原旋轉(zhuǎn)變換值間的第三旋轉(zhuǎn)差值,并檢測(cè)是否出現(xiàn)了旋轉(zhuǎn)方向誤差。
35.如權(quán)利要求34所述的裝置,其中,當(dāng)從所述第一旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向相反,從第二旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向相反,以及從第一至第三旋轉(zhuǎn)差值獲得的旋轉(zhuǎn)角超過(guò)預(yù)定的臨界旋轉(zhuǎn)角時(shí),所述旋轉(zhuǎn)方向誤差檢測(cè)器確定出現(xiàn)了所述旋轉(zhuǎn)方向誤差。
36.如權(quán)利要求25所述的裝置,進(jìn)一步包括旋轉(zhuǎn)方向誤差檢測(cè)器,從所述第二四元數(shù)乘法器接收所述當(dāng)前幀的旋轉(zhuǎn)變換值以及所述前一幀的復(fù)原旋轉(zhuǎn)變換值,并檢測(cè)是否出現(xiàn)了旋轉(zhuǎn)方向誤差,以致所述對(duì)象的原始旋轉(zhuǎn)方向與其譯碼的旋轉(zhuǎn)方向相反;旋轉(zhuǎn)方向校正器,調(diào)節(jié)從所述第一四元數(shù)乘法器輸入的所述旋轉(zhuǎn)差值,從而可以使所述對(duì)象的原始旋轉(zhuǎn)方向與其譯碼的旋轉(zhuǎn)方向相同,并輸出已調(diào)節(jié)的旋轉(zhuǎn)差值;旋轉(zhuǎn)方向選擇器,根據(jù)在所述旋轉(zhuǎn)方向誤差檢測(cè)器中執(zhí)行的檢測(cè)結(jié)果,將從所述第一四元數(shù)乘法器輸入的所述旋轉(zhuǎn)差值或從所述旋轉(zhuǎn)方向校正器輸入的調(diào)節(jié)旋轉(zhuǎn)差值輸出到所述量化單元中。
37.如權(quán)利要求36所述的裝置,其中,所述量化單元包括量化器,通過(guò)量化輸入到其中的旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);量化數(shù)據(jù)調(diào)節(jié)器,調(diào)節(jié)輸入到其中的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;逆量化器,逆量化該調(diào)節(jié)分量值;旋轉(zhuǎn)差值復(fù)原器,通過(guò)該三個(gè)逆量化的分量值來(lái)復(fù)原未量化的分量值,從而生成復(fù)原的旋轉(zhuǎn)差值;誤差測(cè)量單元,測(cè)量輸入到所述量化單元中的旋轉(zhuǎn)差值與復(fù)原旋轉(zhuǎn)差值間的誤差,并輸出具有調(diào)節(jié)分量值的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),從而將該誤差減至最小。
38.一種用于對(duì)表示各關(guān)鍵幀中對(duì)象旋轉(zhuǎn)的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法,包括(a)生成復(fù)原的旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換與通過(guò)關(guān)鍵值數(shù)據(jù)應(yīng)用于在前關(guān)鍵幀中該對(duì)象的旋轉(zhuǎn)變換之間存在的最大差異旋轉(zhuǎn)所述對(duì)象,通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成待熵編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),以及(c)對(duì)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。
39.如權(quán)利要求38所述的方法,其中在步驟(a)中,通過(guò)將所述當(dāng)前關(guān)鍵幀的所述旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的所述復(fù)原旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成所述旋轉(zhuǎn)差值。
40.如權(quán)利要求38所述的方法,其中在步驟(a)中,執(zhí)行非線性量化,從而可以將具有較小旋轉(zhuǎn)差值的區(qū)域量化為比具有較大旋轉(zhuǎn)差值的區(qū)域具有更大的分辨率。
41.如權(quán)利要求38所述的方法,其中在步驟(a)中,調(diào)節(jié)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的分量值,從而可以將通過(guò)逆量化旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的量化分量而復(fù)原的未量化的旋轉(zhuǎn)差值分量值轉(zhuǎn)換為實(shí)數(shù)。
42.如權(quán)利要求41所述的方法,其中在步驟(a)中,通過(guò)將預(yù)定調(diào)節(jié)范圍內(nèi)的變量增加到所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量值或所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值,或者從所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量值或所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值中減去預(yù)定調(diào)節(jié)范圍內(nèi)的變量來(lái)生成待熵編碼的所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
43.如權(quán)利要求38所述的方法,其中步驟(a)包括(a1)通過(guò)量化所述旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(a2)調(diào)節(jié)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;(a3)逆量化該調(diào)節(jié)分量值;(a4)通過(guò)用該三個(gè)逆量化的分量值復(fù)原一個(gè)分量值來(lái)生成復(fù)原的旋轉(zhuǎn)差值;(a5)測(cè)量所述旋轉(zhuǎn)差值和所述復(fù)原旋轉(zhuǎn)差值間的誤差,并確定具有調(diào)節(jié)分量值的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),從而可以將該誤差最小化為待熵編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
44.如權(quán)利要求43所述的方法,其中步驟(a5)包括(a51)用所述旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的當(dāng)前誤差來(lái)更新調(diào)節(jié)誤差,如果該當(dāng)前誤差小于該調(diào)節(jié)誤差;(a52)重復(fù)執(zhí)行步驟(a2)至(a51),直到添加到或從所述旋轉(zhuǎn)差值減去的變量超過(guò)所述預(yù)定調(diào)節(jié)范圍;(a53)如果該調(diào)節(jié)誤差小于最終誤差,則用該調(diào)節(jié)誤差更新該最終誤差,對(duì)與所述調(diào)節(jié)誤差相應(yīng)的調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行步驟(a2)至(a52),并將與所述最終誤差相應(yīng)的調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)確定為待熵編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
45.如權(quán)利要求38所述的方法,其中步驟(a)包括(a1)用所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值以及所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成所述旋轉(zhuǎn)差值;(a2)通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(a3)通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原的旋轉(zhuǎn)差值;(a4)通過(guò)將該復(fù)原的旋轉(zhuǎn)差值與所述前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成所述當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值。
46.如權(quán)利要求38所述的方法,其中在步驟(a2)中,只量化由四元數(shù)表示的所述旋轉(zhuǎn)差值的第一至第四分量中的三個(gè)分量。
47.如權(quán)利要求38所述的方法,其中在步驟(a)中,生成所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的旋轉(zhuǎn)變換值間的第一旋轉(zhuǎn)差值,所述前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值間的第二旋轉(zhuǎn)差值,以及所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值間的第三旋轉(zhuǎn)差值,并檢測(cè)是否出現(xiàn)了導(dǎo)致所述對(duì)象的譯碼旋轉(zhuǎn)方向與其原始旋轉(zhuǎn)方向相反的旋轉(zhuǎn)方向誤差。
48.如權(quán)利要求47所述的方法,其中在步驟(a)中,當(dāng)從所述第一旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的旋轉(zhuǎn)方向相反,從第二旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的旋轉(zhuǎn)方向相反,以及從第一至第三旋轉(zhuǎn)差值獲得的旋轉(zhuǎn)角超過(guò)預(yù)定的臨界旋轉(zhuǎn)角時(shí),確定出現(xiàn)了所述旋轉(zhuǎn)方向誤差。
49.如權(quán)利要求38所述的方法,其中步驟(a)包括(a1)根據(jù)所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值與所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)檢測(cè)是否出現(xiàn)了旋轉(zhuǎn)方向誤差,以致使所述對(duì)象的原始旋轉(zhuǎn)方向與其譯碼的旋轉(zhuǎn)方向相反;(a2)調(diào)節(jié)該旋轉(zhuǎn)差值,從而可以使所述對(duì)象的原始旋轉(zhuǎn)方向與其譯碼的旋轉(zhuǎn)方向相同;(a3)根據(jù)步驟(a1)中執(zhí)行的檢測(cè)結(jié)果,選擇該旋轉(zhuǎn)差值或步驟(a2)中的所述調(diào)節(jié)旋轉(zhuǎn)差值作為待量化的差分?jǐn)?shù)據(jù)。
50.如權(quán)利要求49所述的方法,其中步驟(a)進(jìn)一步包括(a4)量化步驟(a3)中選擇的所述旋轉(zhuǎn)差值,步驟(a4)包括(a41)通過(guò)量化選擇的旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(a42)調(diào)節(jié)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)量化分量值;(a43)逆量化該調(diào)節(jié)分量值;(a44)通過(guò)用該三個(gè)逆量化的分量值復(fù)原未量化的分量值,來(lái)生成復(fù)原的旋轉(zhuǎn)差值;(a45)測(cè)量所述旋轉(zhuǎn)差值與該復(fù)原旋轉(zhuǎn)差值間的誤差,并基于該誤差來(lái)更新待熵編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
51.如權(quán)利要求50所述的方法,其中在步驟(a42)中,通過(guò)將預(yù)定調(diào)節(jié)范圍內(nèi)的變量增加到步驟(a41)中生成的所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各分量值或步驟(a45)中更新的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各分量值,或者從步驟(a41)中生成的所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各分量值或步驟(a45)中更新的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各分量值中減去預(yù)定調(diào)節(jié)范圍內(nèi)的變量來(lái)調(diào)節(jié)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量。
52.如權(quán)利要求50所述的方法,其中步驟(a45)包括(a451)用所述旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的當(dāng)前誤差來(lái)更新調(diào)節(jié)誤差,如果該當(dāng)前誤差小于該調(diào)節(jié)誤差;(a452)重復(fù)執(zhí)行步驟(a42)至(a451),直到添加到或從所述旋轉(zhuǎn)差值減去的變量超過(guò)所述預(yù)定調(diào)節(jié)范圍為止;(a453)如果該調(diào)節(jié)誤差小于最終誤差,則用該調(diào)節(jié)誤差更新該最終誤差,對(duì)與該調(diào)節(jié)誤差相應(yīng)的調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行步驟(a42)至(a452),并將與該最終誤差相應(yīng)的調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)確定為待熵編碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
53.如權(quán)利要求38所述的方法,進(jìn)一步包括(c)通過(guò)對(duì)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行線性DPCM操作,并對(duì)所述線性DPCM的差分?jǐn)?shù)據(jù)以及步驟(a)和(c)間的量化范圍內(nèi)的最大值執(zhí)行預(yù)定操作來(lái)生成其大小被減小的差分?jǐn)?shù)據(jù),其中在步驟(c)中,對(duì)在步驟(b)中其大小被減小的差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。
54.如權(quán)利要求53所述的方法,其中在步驟(b)中,輸出所述線性DPCM的差分?jǐn)?shù)據(jù)與所述線性DPCM的差分?jǐn)?shù)據(jù)和所述量化范圍內(nèi)的所述最大值的差值間的較小者。
55.如權(quán)利要求53所述的方法,其中步驟(a)包括(a1)利用所述當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值和所述前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成所述旋轉(zhuǎn)差值;(a2)通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(a3)通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原的旋轉(zhuǎn)差值;(a4)通過(guò)將該復(fù)原的旋轉(zhuǎn)差值與所述前關(guān)鍵幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成所述當(dāng)前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值。
56.如權(quán)利要求38所述的方法,其中在步驟(c)中,將旋轉(zhuǎn)差分?jǐn)?shù)據(jù)編碼為第一數(shù)字序列,其數(shù)量與旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的大小相應(yīng),以及表示該第一數(shù)字序列結(jié)束的一比特第二數(shù)字。
57.如權(quán)利要求38所述的方法,其中在步驟(c)中,在每個(gè)位平面上對(duì)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行編碼。
58.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求38所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
59.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求43所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
60.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求45所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
61.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求49所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
62.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求53所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
63.一種用于對(duì)位流進(jìn)行譯碼的方法,其中表示每個(gè)關(guān)鍵幀中對(duì)象旋轉(zhuǎn)的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)被編碼為該位流,該方法包括(a)通過(guò)從該位流熵譯碼關(guān)鍵值數(shù)據(jù)來(lái)生成循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)或量化的旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(b)根據(jù)從該位流譯碼的DPCM次數(shù),通過(guò)對(duì)熵譯碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行逆循環(huán)DPCM操作來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(c)通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)各關(guān)鍵幀的四元數(shù)關(guān)鍵值數(shù)據(jù)應(yīng)用于所述對(duì)象的旋轉(zhuǎn)變換間的最大差異旋轉(zhuǎn)所述對(duì)象;(d)通過(guò)將當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)差值與前關(guān)鍵幀的譯碼旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成該當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值。
64.如權(quán)利要求63所述的方法,其中在步驟(a)中,如果從所述位流譯碼的關(guān)鍵字標(biāo)志顯示所有關(guān)鍵幀的差分?jǐn)?shù)據(jù)的各分量具有相同值,則所述各關(guān)鍵幀的關(guān)鍵值數(shù)據(jù)的每個(gè)分量均被譯碼為從所述位流譯碼的預(yù)定值。
65.如權(quán)利要求63所述的方法,其中在步驟(b)中,通過(guò)對(duì)循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)和所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的量化范圍內(nèi)的最大值執(zhí)行逆循環(huán)DPCM操作來(lái)生成具有擴(kuò)大范圍的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
66.如權(quán)利要求63所述的方法,其中在步驟(c)中,通過(guò)逆量化所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)復(fù)原旋轉(zhuǎn)差值的三個(gè)分量值以及用該三個(gè)復(fù)原的分量值來(lái)復(fù)原一個(gè)分量值,生成該由單位四元數(shù)表示的旋轉(zhuǎn)差值。
67.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求63所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
68.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求66所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
69.一種用于生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的方法,生成表示每幀中對(duì)象旋轉(zhuǎn)的旋轉(zhuǎn)變換值的差分?jǐn)?shù)據(jù),該方法包括(a)用當(dāng)前幀的旋轉(zhuǎn)變換值和前一幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成旋轉(zhuǎn)差值,用來(lái)根據(jù)應(yīng)用到每幀中所述對(duì)象的旋轉(zhuǎn)變換間的最大差值來(lái)旋轉(zhuǎn)所述對(duì)象;(b)通過(guò)量化該旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(c)通過(guò)逆量化該旋轉(zhuǎn)差值來(lái)生成復(fù)原的旋轉(zhuǎn)差值;(d)通過(guò)將該復(fù)原的旋轉(zhuǎn)差值與前一幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成當(dāng)前幀的復(fù)原旋轉(zhuǎn)變換值,并對(duì)所述當(dāng)前幀的復(fù)原旋轉(zhuǎn)變換值和下一幀的旋轉(zhuǎn)變換值再次執(zhí)行步驟(a)至(d)。
70.如權(quán)利要求69所述的方法,其中在步驟(a)中,通過(guò)將所述當(dāng)前幀的旋轉(zhuǎn)變換值與所述前一幀的復(fù)原旋轉(zhuǎn)變換值的共扼進(jìn)行四元數(shù)相乘來(lái)生成旋轉(zhuǎn)差值。
71.如權(quán)利要求69所述的方法,其中在步驟(b)中,執(zhí)行非線性量化,從而可以將具有較小旋轉(zhuǎn)差值的區(qū)域量化為比具有較大旋轉(zhuǎn)差值的區(qū)域具有更大的分辨率。
72.如權(quán)利要求69所述的方法,其中在步驟(b)中,只量化由四元數(shù)表示的所述旋轉(zhuǎn)差值的第一至第四分量值中的三個(gè)分量值。
73.如權(quán)利要求69所述的方法,其中在步驟(b)中,調(diào)節(jié)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的量化分量值,從而可以通過(guò)逆量化所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的分量值將旋轉(zhuǎn)差值的未量化分量值復(fù)原為實(shí)數(shù)。
74.如權(quán)利要求73所述的方法,其中在步驟(b)中,通過(guò)將預(yù)定調(diào)節(jié)范圍內(nèi)的變量增加到所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量值或所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值,或者從所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各量化分量值或所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各調(diào)節(jié)分量值減去預(yù)定調(diào)節(jié)范圍內(nèi)的變量來(lái)生成最終旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
75.如權(quán)利要求69所述的方法,其中步驟(b)包括(b1)通過(guò)量化所述旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(b2)調(diào)節(jié)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;(b3)逆量化該調(diào)節(jié)分量值;(b4)通過(guò)用該三個(gè)逆量化的分量值復(fù)原未量化的分量值,來(lái)生成復(fù)原的旋轉(zhuǎn)差值;(b5)測(cè)量所述旋轉(zhuǎn)差值與該復(fù)原旋轉(zhuǎn)差值間的誤差,并輸出具有調(diào)節(jié)分量值的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),從而可以將該誤差減至最小。
76.如權(quán)利要求75所述的方法,其中(b5)包括(b51)用所述旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的當(dāng)前誤差更新調(diào)節(jié)誤差,如果該當(dāng)前誤差小于該調(diào)節(jié)誤差;(b52)重復(fù)執(zhí)行步驟(b2)至(b51),直到步驟(b2)中添加到或從所述旋轉(zhuǎn)差值減去的變量超過(guò)所述預(yù)定調(diào)節(jié)范圍;(b53)如果該調(diào)節(jié)誤差小于最終誤差,則用該調(diào)節(jié)誤差更新該最終誤差,對(duì)與該調(diào)節(jié)誤差相應(yīng)的調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行步驟(b2)至(b52),并輸出與該最終誤差相應(yīng)的調(diào)節(jié)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
77.如權(quán)利要求69所述的方法,其中在步驟(c)中,通過(guò)逆量化所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)復(fù)原未量化的旋轉(zhuǎn)差值的分量值。
78.如權(quán)利要求69所述的方法,其中步驟(a)進(jìn)一步包括(a2)通過(guò)生成所述當(dāng)前幀的旋轉(zhuǎn)變換值與所述前一幀的旋轉(zhuǎn)變換值間的第一旋轉(zhuǎn)差值,所述前一幀的旋轉(zhuǎn)變換值與其復(fù)原的旋轉(zhuǎn)變換值間的第二旋轉(zhuǎn)差值,以及所述當(dāng)前幀的旋轉(zhuǎn)變換值與所述前一幀的復(fù)原旋轉(zhuǎn)變換值間的第三旋轉(zhuǎn)差值來(lái)檢測(cè)旋轉(zhuǎn)方向誤差。
79.如權(quán)利要求78所述的方法,其中在步驟(a2)中,當(dāng)從所述第一旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向相反,從第二旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向與從所述第三旋轉(zhuǎn)差值獲得的所述對(duì)象的旋轉(zhuǎn)方向相反,以及從第一至第三旋轉(zhuǎn)差值獲得的旋轉(zhuǎn)角超過(guò)預(yù)定的臨界旋轉(zhuǎn)角時(shí),確定出現(xiàn)了所述旋轉(zhuǎn)方向誤差。
80.一種用于生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的方法,生成表示每幀中對(duì)象旋轉(zhuǎn)的旋轉(zhuǎn)變換值的差分?jǐn)?shù)據(jù),該方法包括(a)用當(dāng)前幀的旋轉(zhuǎn)變換值和前一幀的復(fù)原旋轉(zhuǎn)變換值生成旋轉(zhuǎn)差值,用來(lái)根據(jù)應(yīng)用于每幀中所述對(duì)象的旋轉(zhuǎn)變換間的最大差值來(lái)旋轉(zhuǎn)所述對(duì)象;(b)根據(jù)所述當(dāng)前幀的旋轉(zhuǎn)變換值和所述前一幀的復(fù)原旋轉(zhuǎn)變換值,檢測(cè)是否出現(xiàn)了旋轉(zhuǎn)方向誤差,以致使所述對(duì)象的原始旋轉(zhuǎn)方向與其譯碼的旋轉(zhuǎn)方向相反;(c)調(diào)節(jié)步驟(a)中生成的旋轉(zhuǎn)差值,從而使所述對(duì)象的原始旋轉(zhuǎn)方向與其譯碼的旋轉(zhuǎn)方向相同;(d)根據(jù)步驟(b)中執(zhí)行的檢測(cè)結(jié)果,選擇在步驟(a)中生成的旋轉(zhuǎn)差值或該調(diào)節(jié)的旋轉(zhuǎn)差值;(e)通過(guò)量化所選擇的旋轉(zhuǎn)差值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(f)通過(guò)逆量化該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)來(lái)生成復(fù)原的旋轉(zhuǎn)差值;(g)通過(guò)將該復(fù)原的旋轉(zhuǎn)差值與所述前一幀的旋轉(zhuǎn)變換值進(jìn)行四元數(shù)相乘來(lái)生成所述當(dāng)前幀的復(fù)原旋轉(zhuǎn)變換值。
81.如權(quán)利要求80所述的方法,其中步驟(e)包括(e1)通過(guò)量化所選擇的旋轉(zhuǎn)差值的三個(gè)分量值來(lái)生成旋轉(zhuǎn)差分?jǐn)?shù)據(jù);(e2)調(diào)節(jié)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的三個(gè)分量值;(e3)逆量化該調(diào)節(jié)分量值;(e4)通過(guò)用該三個(gè)逆量化的分量值復(fù)原未量化的分量值,生成復(fù)原的旋轉(zhuǎn)差值;(e5)測(cè)量所選擇的旋轉(zhuǎn)差值與所述復(fù)原旋轉(zhuǎn)差值間的誤差,并輸出具有調(diào)節(jié)分量值的旋轉(zhuǎn)差分?jǐn)?shù)據(jù),從而將該誤差減至最小。
82.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求69所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
83.一種計(jì)算機(jī)可讀記錄介質(zhì),其中如權(quán)利要求80所述的方法以計(jì)算機(jī)可讀程序代碼的方式被記錄。
84.一種位流,其中表示每關(guān)鍵幀中對(duì)象旋轉(zhuǎn)的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)被編碼為該位流,該位流包括通過(guò)量化用來(lái)根據(jù)各關(guān)鍵幀的四元數(shù)關(guān)鍵值數(shù)據(jù)應(yīng)用于所述對(duì)象的旋轉(zhuǎn)變換間的最大差值來(lái)旋轉(zhuǎn)所述對(duì)象的旋轉(zhuǎn)差值而被熵譯碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù);熵譯碼信息,包括表示對(duì)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行的熵譯碼方法的熵譯碼模式;逆循環(huán)DPCM信息,包括顯示是否將對(duì)根據(jù)該熵譯碼模式被熵譯碼的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行逆循環(huán)DPCM操作的逆循環(huán)DPCM操作次數(shù);逆量化位,用來(lái)通過(guò)根據(jù)逆循環(huán)DPCM操作次數(shù)對(duì)逆循環(huán)DPCM的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行逆量化來(lái)復(fù)原旋轉(zhuǎn)差值。
85.如權(quán)利要求84所述的位流,其中,對(duì)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行編碼,從而只量化由四元數(shù)表示的旋轉(zhuǎn)差值的三個(gè)分量。
86.如權(quán)利要求84所述的位流,其中所述熵譯碼信息進(jìn)一步包括關(guān)鍵值標(biāo)志,顯示該關(guān)鍵值數(shù)據(jù)的各分量的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)是否具有相同值;預(yù)定旋轉(zhuǎn)差分?jǐn)?shù)據(jù),當(dāng)該關(guān)鍵值標(biāo)志顯示該關(guān)鍵值數(shù)據(jù)的各分量的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)具有相同值時(shí),將該預(yù)定旋轉(zhuǎn)差分?jǐn)?shù)據(jù)譯碼到所有關(guān)鍵值數(shù)據(jù)的旋轉(zhuǎn)差分?jǐn)?shù)據(jù)的各分量中。
87.如權(quán)利要求84所述的位流,其中,所述逆循環(huán)DPCM信息進(jìn)一步包括用于對(duì)所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)執(zhí)行逆循環(huán)DPCM操作的內(nèi)部旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。
全文摘要
提供一種用于對(duì)表示關(guān)鍵幀圖像中對(duì)象旋轉(zhuǎn)的定向內(nèi)插器的關(guān)鍵值數(shù)據(jù)進(jìn)行編碼的方法和裝置。該裝置包括旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器、循環(huán)DPCM算子以及熵編碼器。所述旋轉(zhuǎn)差分?jǐn)?shù)據(jù)生成器利用當(dāng)前關(guān)鍵幀的旋轉(zhuǎn)變換值和前關(guān)鍵幀的復(fù)原旋轉(zhuǎn)變換值來(lái)生成旋轉(zhuǎn)差值,用來(lái)根據(jù)通過(guò)關(guān)鍵值數(shù)據(jù)而應(yīng)用于該當(dāng)前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換和通過(guò)關(guān)鍵值數(shù)據(jù)而應(yīng)用于該前關(guān)鍵幀中所述對(duì)象的旋轉(zhuǎn)變換間的最大差值來(lái)旋轉(zhuǎn)所述對(duì)象,并通過(guò)量化該旋轉(zhuǎn)差值來(lái)輸出旋轉(zhuǎn)差分?jǐn)?shù)據(jù)。所述循環(huán)DPCM算子對(duì)旋轉(zhuǎn)差分?jǐn)?shù)據(jù)有選擇地執(zhí)行線性DPCM操作或循環(huán)DPCM操作。所述熵編碼器對(duì)該旋轉(zhuǎn)差分?jǐn)?shù)據(jù)進(jìn)行熵編碼。
文檔編號(hào)G06T9/00GK1428745SQ0215423
公開(kāi)日2003年7月9日 申請(qǐng)日期2002年11月27日 優(yōu)先權(quán)日2001年11月27日
發(fā)明者金道均, 鄭錫潤(rùn), 張義善, 禹相玉, 李信俊, 韓萬(wàn)鎮(zhèn), 張敬子 申請(qǐng)人:三星電子株式會(huì)社
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
江山市| 穆棱市| 禄丰县| 上杭县| 松潘县| 安仁县| 临漳县| 名山县| 山阴县| 雅江县| 福清市| 潮安县| 望城县| 资源县| 宁阳县| 瑞昌市| 福州市| 沙湾县| 遵义市| 什邡市| 兖州市| 南昌市| 台山市| 阿拉善右旗| 山阳县| 汝城县| 萨迦县| 灵川县| 洪雅县| 河间市| 浦县| 怀集县| 富源县| 西藏| 德清县| 庆云县| 伊金霍洛旗| 汕头市| 磐石市| 洛隆县| 岫岩|