国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于對定向內(nèi)插器進行編碼和譯碼的方法和裝置的制作方法

      文檔序號:7521980閱讀:285來源:國知局
      專利名稱:用于對定向內(nèi)插器進行編碼和譯碼的方法和裝置的制作方法
      技術領域
      本發(fā)明涉及一種用于編碼和譯碼三維動畫數(shù)據(jù)的方法和裝置,更準確地說,涉及一種用于對定向內(nèi)插器進行編碼和譯碼的方法和裝置,該定向內(nèi)插器表示有關動畫中的對象的旋轉的信息。
      背景技術
      MPEG-4BIFS,是國際多媒體標準之一,利用具有動畫地關鍵字和關鍵字值的內(nèi)插器節(jié)點支持一種基于關鍵幀的動畫。
      為盡可能自然和平滑地使用這樣一種基于關鍵幀動畫技術來表示動畫,要求相當多的關鍵字和相當多的關鍵字值數(shù)據(jù),并且關鍵幀間的現(xiàn)場數(shù)據(jù)是由內(nèi)插器填充的。在虛擬現(xiàn)實造型語言(VRML)中的內(nèi)插器包含線性或球性內(nèi)插。
      在時間軸上關鍵字和關鍵字值近似原始的動畫曲線。圖1是根據(jù)在三維球性的表面上的時間推移由定向內(nèi)插器節(jié)點所表示的動畫數(shù)據(jù)的二維軌跡的圖。如圖1所示,常規(guī)的MPEG-4BIFS支持關鍵幀間的球性線性內(nèi)插器,并且動畫路徑看起來與表示該動畫數(shù)據(jù)的變化的一組片段類似。
      在由BIFS提供的定向內(nèi)插器節(jié)點中,關鍵字數(shù)據(jù)使用-8和8間的間斷數(shù)字表示在動畫所處的時間軸上的預定時間瞬間。關鍵字值數(shù)據(jù)表示在由關鍵字數(shù)據(jù)所表示的預定的時間瞬間在合成圖像中有關該對象的旋轉的信息。在不是由關鍵字數(shù)據(jù)所表示的在另一預定時間瞬間上的對象的旋轉信息是通過球性線形內(nèi)插來利用與兩個時間瞬間相對應的、與預定時間瞬間最鄰近的關鍵字數(shù)據(jù)而獲得的。
      在球性線性內(nèi)插器中,由旋轉軸和旋轉角來表示旋轉信息。象虛擬現(xiàn)實造型語言(VRML)一樣,MPEG4-BIFS利用定向內(nèi)插器節(jié)點來支持由旋轉軸和旋轉角所表示的旋轉信息。當利用在球性線性內(nèi)插器中的關鍵字值數(shù)據(jù)來生成平滑動畫時,關鍵幀間的關鍵字值數(shù)據(jù)的微分值彼此非常相關,這導致了數(shù)據(jù)間的冗余。因此,使用數(shù)據(jù)的微分值來編碼關鍵字值數(shù)據(jù)的一種方法是很有效的。
      MPEG-4 BIFS提供用于編碼由定向內(nèi)插器節(jié)點的關鍵字和關鍵字值數(shù)據(jù)所表示的現(xiàn)場數(shù)據(jù)的兩種不同的方法。一種是利用脈碼調(diào)制(PCM)來編碼現(xiàn)場數(shù)據(jù)的方法,另一種是利用差分脈碼調(diào)制(DPCM)和熵編碼來編碼現(xiàn)場數(shù)據(jù)的方法。
      在利用PCM來編碼現(xiàn)場數(shù)據(jù)的方法中,僅在將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)上執(zhí)行量化處理。由于將被編碼的數(shù)據(jù)的特征在本方法中不被考慮,該方法被認為無效。在利用PCM來編碼現(xiàn)場數(shù)據(jù)的方法中,輸入定向內(nèi)插器節(jié)點的現(xiàn)場數(shù)據(jù),并且現(xiàn)場數(shù)據(jù)的關鍵字值數(shù)據(jù)被變換成在四元數(shù)空間中的值。接著,量化關鍵字和關鍵字值數(shù)據(jù)。量化的現(xiàn)場數(shù)據(jù)以二進制數(shù)據(jù)的形式被輸出。為測量與原始現(xiàn)場數(shù)據(jù)相比四元數(shù)變換的結果可視失真的程度,二進制數(shù)據(jù)被復原成由旋轉軸和旋轉角組成的關鍵字值數(shù)據(jù)。存儲并在屏幕上輸出定向內(nèi)插器節(jié)點的復原后的現(xiàn)場數(shù)據(jù)。利用復原后的數(shù)據(jù)測量由四元數(shù)誤差所引起的圖像的可視失真的程度是可能的。圖像的失真可用以下等式(1)來計算。
      在等式(1)中,N表示現(xiàn)場數(shù)據(jù)的數(shù)量,以及εi表示在一四元數(shù)時間中復原編碼關鍵字值數(shù)據(jù)Qi以及關鍵字值數(shù)據(jù)
      間的一差分值。
      另一方面,在用于使用DPCM和熵編碼來編碼現(xiàn)場數(shù)據(jù)的方法中,連續(xù)數(shù)據(jù)間的一關聯(lián)被考慮,因此在編碼效率方面,這種方法被認為比利用PCM來編碼現(xiàn)場數(shù)據(jù)的方法更有效。在這種方法中,在將被編碼的先前復原關鍵字值和關鍵字值數(shù)據(jù)間的一差分值在一量化處理前被計算,然后量化該差分值,從而通過利用在該差分值中所示的數(shù)據(jù)的特性提高編碼效率。
      圖2A和2B分別是利用線性DPCM和熵編碼的一MPEG-4PMFC以及利用線性衰減DPCM和熵編碼的一MPEG-4PMFC譯碼器的框圖。在圖2A中所示的一線性DPCM運算符用以下等式(2)來計算當前關鍵字值數(shù)據(jù)和先前復原關鍵字值數(shù)據(jù)間的差分數(shù)據(jù)
      在等式(2)中,Qi表示在一預定時間瞬間(t)的原始關鍵字值數(shù)據(jù),其是由一四元數(shù)來表示,以及
      表示在一預定時間瞬間(t-1)的關鍵字值數(shù)據(jù),其是從一誤差補償電路復原。
      然而,在圖2A中所示的在用于編碼關鍵字值數(shù)據(jù)的裝置中執(zhí)行的編碼方法沒有一高的編碼效率。通過分析關鍵字值數(shù)據(jù)很容易指出該編碼方法的缺點是什幺是可能的,其確定在一四元數(shù)時間中一對象的旋轉。關鍵字值數(shù)據(jù)由以下等式中的一四元數(shù)來表示。
      例如,當一個四元數(shù)的分量具有相同的絕對值以作為在一四元數(shù)時間中不同標記的另一四元數(shù)的它們的相應的分量,如等式(3)中所示時,兩個四元數(shù)被認為是相同的。換句話說,這兩個四元數(shù)在一3D時間的一對象的旋轉變換方面提供相同的效果,這表示影響一對象的旋轉變換的因素是一旋轉軸的一方向以及一旋轉角,而不是該旋轉軸的矢量。然而,象在MPEG4BIFS中,如果關鍵字值數(shù)據(jù)由使用等式(3)的一四元數(shù)表示以及一差分值通過計算連續(xù)關鍵字值數(shù)據(jù)間的矢量中的差值被線性計算,該差分值不為0,這表示線性差分值沒有很好地反映在旋轉變換中的冗余。因此,使用如等式(1)中所示用于測量圖像的失真程度的方法精確地測量圖像質(zhì)量是不可能的。

      發(fā)明內(nèi)容
      為解決上述和其它問題,本發(fā)明的一個方面是提供一種用于編碼和譯碼一定向內(nèi)插器的方法和裝置,編碼和譯碼由從一原始定向內(nèi)插器抽取的斷點組成的一抽取定向內(nèi)插器以便防止抽取定向內(nèi)插器與原始定向內(nèi)插器間的一誤差大于一允許誤差極限,從而提供具有一高壓縮比的高質(zhì)量動畫。
      本發(fā)明的另一方面是提供一種用于編碼和譯碼一定向內(nèi)插器的方法和裝置,通過計算一旋轉差分比,能提供具有一高壓縮比的高質(zhì)量動畫,能充分地反映在旋轉變換中的冗余,并能使用該旋轉差分值來編碼一定向內(nèi)插器的關鍵字值數(shù)據(jù)。
      本發(fā)明的另一方面提出了一種由根據(jù)本發(fā)明的對一定向內(nèi)插器進行編碼和譯碼的方法和裝置來編碼和譯碼的一位流,這能提供具有一高壓縮比的高質(zhì)量的動畫。
      因此,為實現(xiàn)本發(fā)明的上述和其它目的,提供一種對一定向內(nèi)插器進行編碼的裝置,該定向內(nèi)插器包括用于表示在一時間軸上關鍵幀位置的關鍵字值以及用于表示一對象的旋轉的關鍵字值數(shù)據(jù)。該裝置包括一斷點抽取器、一關鍵字數(shù)據(jù)編碼器、一關鍵字值數(shù)據(jù)編碼器。該斷點抽取器從由輸入到其中的一定向內(nèi)插器所組成的第一動畫路徑中抽取一最少數(shù)的斷點,這能產(chǎn)生不大于所述第一動畫路徑和由抽取斷點所生成的一第二動畫路徑間的一預定誤差極限的一誤差。一關鍵字數(shù)據(jù)編碼器,編碼從斷點抽取器輸入的關鍵字數(shù)據(jù)。一關鍵字值數(shù)據(jù)編碼器,編碼從所述斷點抽取器輸入的關鍵字值數(shù)據(jù)。
      最好,本發(fā)明進一步包括一重新采樣器以及一選擇器。該重新采樣器將第一動畫路徑采樣到具有一預定時間量間隔的多個預定部分中,并輸出包括重新采樣關鍵字數(shù)據(jù)以及重新采樣關鍵字值數(shù)據(jù)的一定向內(nèi)插器。該選擇器響應一外部輸入信號,將輸入到其中的一定向內(nèi)插器輸出到該重新采樣器以及該斷點抽取器中。
      為實現(xiàn)本發(fā)明的上述和其它目的,提供一種對一定向內(nèi)插器進行編碼的裝置,該定向內(nèi)插器包括用于表示在一時間軸上關鍵幀位置的關鍵字值以及用于表示一對象的旋轉的關鍵字值數(shù)據(jù)。該裝置包括一重新采樣器、一關鍵字數(shù)據(jù)編碼器、一關鍵字值數(shù)據(jù)編碼器。該重新采樣器將由一輸入定向內(nèi)插器組成的一動畫路徑采樣到具有一預定時間量間隔的多個預定部分中并輸出包括采樣關鍵字數(shù)據(jù)和采樣關鍵字值數(shù)據(jù)。該關鍵字數(shù)據(jù)編碼器,編碼從該重新采樣器輸入的關鍵字數(shù)據(jù)。該關鍵字值數(shù)據(jù)編碼器,生成一旋轉差分值,該差分值用來按幾乎等于通過一當前關鍵幀的關鍵字值數(shù)據(jù)應用到該對象的旋轉變換以及通過一前關鍵幀的關鍵字值數(shù)據(jù)應用到該對象的旋轉變換間的一差值來旋轉該對象,并因此編碼從該重新采樣器輸入的關鍵字值數(shù)據(jù)。
      最好,斷點抽取器包括一線性內(nèi)插器、一誤差計算器、以及一確定單元。該線性內(nèi)插器抽取一輸入動畫路徑的一開始路徑點以及一結束路徑點,在開始和結束路徑點間的選擇路徑點,以及利用所選擇的路徑點內(nèi)插還沒有被選擇的其它路徑點。該誤差計算器,計算輸入動畫路徑和由線性內(nèi)插器利用內(nèi)插所生成的一內(nèi)插動畫路徑間的一誤差。該確定單元抽取斷點,通過該操作,能最小化輸入動畫路徑與內(nèi)插動畫路徑間的一誤差,并輸出選擇的斷點,如果相應誤差小于一預定誤差極限。
      最好,關鍵字值編碼器包括一旋轉差分數(shù)據(jù)生成器以及一熵編碼器。該旋轉差分數(shù)據(jù)生成器利用一當前關鍵幀的一旋轉變換值以及一前關鍵幀的一復原旋轉變換值來生成一旋轉差分值,該差分值被用來按幾乎等于通過關鍵字值數(shù)據(jù)而應用到在該當前關鍵幀中的該對象的旋轉變換以及通過關鍵字值數(shù)據(jù)而應用到前關鍵幀中的該對象的旋轉變換間的一差值來旋轉該對象,并通過量化該旋轉差分值來輸出旋轉差分數(shù)據(jù)。該熵編碼器,熵編碼該旋轉差分數(shù)據(jù)。
      最好,旋轉差分數(shù)據(jù)生成器包括一第一四元數(shù)乘法器,一量化器,一逆量化器,以及一第二四元數(shù)乘法器。該第一四元數(shù)乘法器利用該當前關鍵幀的旋轉變換值以及前關鍵幀的復原旋轉變換值來生成旋轉差分值。該一量化器通過量化該旋轉差分值來生成旋轉差分數(shù)據(jù)。該逆量化器通過逆量化該旋轉差分數(shù)據(jù)來生成一復原旋轉差分值。該一第二四元數(shù)乘法器通過將復原旋轉差分值四元數(shù)乘以前關鍵幀的一旋轉變換值來生成當前關鍵幀的一復原旋轉變換值。
      最好,關鍵字數(shù)據(jù)編碼器包括一第一量化器,一第一DPCM處理器,一DND處理器,以及一第一熵編碼器。該第一量化器利用預定量化位來量化一定向內(nèi)插器的關鍵字數(shù)據(jù)。該第一DPCM處理器,生成量化關鍵字數(shù)據(jù)的差分數(shù)據(jù)。該DND處理器,根據(jù)差分數(shù)據(jù)與一最大值的關系以及它們間一最小值在該差分數(shù)據(jù)上執(zhí)行一DND操作。該第一熵編碼器,熵編碼從DND處理器輸入的有效期分數(shù)據(jù)。
      為實現(xiàn)本發(fā)明的上述和其它目的,提供一種用于對一位流進行譯碼的裝置,將包括用于表示在一時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)以及用于表示一對象的旋轉的關鍵字值數(shù)據(jù)的一定向內(nèi)插器進行編碼。該裝置包括一關鍵字數(shù)據(jù)譯碼器,一關鍵字值數(shù)據(jù)譯碼器,一定向內(nèi)插器合成器。該關鍵字數(shù)據(jù)譯碼器譯碼來自一輸入位流的關鍵字數(shù)據(jù)。該關鍵字值數(shù)據(jù)譯碼器,譯碼來自該輸入位流的關鍵字值數(shù)據(jù)。該定向內(nèi)插器合成器,通過合成譯碼關鍵字值數(shù)據(jù)和利用該譯碼關鍵字值數(shù)據(jù)球性線性內(nèi)插的關鍵字值數(shù)據(jù)來生成一定向內(nèi)插器。
      最好,關鍵字值數(shù)據(jù)譯碼器包括一熵譯碼器,一逆循環(huán)DPCM運算符,一逆量化器,以及一四元數(shù)乘法器。該熵譯碼器通過熵譯碼來自該位流的關鍵字值數(shù)據(jù)來生成循環(huán)DPCM旋轉差分數(shù)據(jù)或量化旋轉差分數(shù)據(jù)。該逆循環(huán)DPCM運算符,通過在從該位流譯碼的DPCM的次數(shù)操作后在從熵譯碼器輸入的旋轉差分數(shù)據(jù)上執(zhí)行一逆循環(huán)DPCM操作來生成量化旋轉差分數(shù)據(jù)。該逆量化器,按幾乎等于通過逆量化量化旋轉差分數(shù)據(jù)的每個關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)應用到該對象的旋轉變換間的一差值來旋轉該對象。該四元數(shù)乘法器,通過將當前關鍵幀的一旋轉差分值四元數(shù)乘以一前關鍵幀的一復原旋轉變換值來生成一當前關鍵幀的一旋轉變換值。
      為實現(xiàn)本發(fā)明的上述和其它目的,提供一種對包括用于表示在一時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示一對象的旋轉的關鍵字值數(shù)據(jù)的一定向內(nèi)插器進行編碼的方法。該方法包括(b)通過從由該定向內(nèi)插器組成的第一動畫路徑抽取一最少的斷點來生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù),能產(chǎn)生小于第一動畫路徑和通過抽取斷點生成的一第二動畫間的一預定誤差極限的一誤差,(d)編碼在步驟(b)中生成的關鍵字數(shù)據(jù),以及(e)編碼在步驟(b)中生成的關鍵字值數(shù)據(jù)。
      最好,步驟(b)包括(b1)選擇第一動畫路徑的一開始路徑點和一結束路徑點,(b2)依次選擇開始和結束路徑點間的路徑點并利用所選擇的路徑點內(nèi)插仍未被選擇的其它路徑點,(b3)計算第一動畫路徑與通過內(nèi)插在步驟(b2)中生成的一第二動畫路徑間的一誤差,以及(b4)選擇斷點,通過該操作第一動畫路徑和第二動畫路徑間的一誤差能被最小化,核對相應的誤差是否小于一預定誤差極限,并確定將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      最好,用于編碼一定向內(nèi)插器的方法可進一步包括在步驟(b)之前的(a),通過將第一動畫路徑采樣到具有一預定時間量間隔的多個預定部分中,生成包括重新采樣關鍵字數(shù)據(jù)以及重新采樣關鍵字值數(shù)據(jù)的一定向內(nèi)插器,或可能進一步包括步驟(b)之后的(c),通過將利用抽取斷點所構成的第二動畫路徑采樣到具有一預定時間量間隔的多個預定部分中來生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      為實現(xiàn)本發(fā)明的上述和其它目的,提供一種對包括用于表示在一時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示一對象的旋轉的關鍵字值數(shù)據(jù)的一定向內(nèi)插器進行編碼的方法。該方法包括(a)將由定向內(nèi)插器所構成的一動畫路徑采樣到具有一預定時間量間隔的多個預定部分中,并因此生成包括重新采樣關鍵字數(shù)據(jù)和重新采樣關鍵字值數(shù)據(jù)的一定向內(nèi)插器,(d)減小在步驟(a)中采樣的關鍵字數(shù)據(jù)的范圍并編碼關鍵字數(shù)據(jù),以及(e)通過生成和編碼一旋轉差分值來編碼在步驟(a)中采樣的關鍵字值數(shù)據(jù),該旋轉差分值被用來按幾乎等于通過一當前關鍵幀的關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換與通過一前關鍵幀的關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換間的一差值來旋轉該對象。
      最好,步驟(d)包括用一預定數(shù)據(jù)的量化位來量化關鍵字數(shù)據(jù),通過在量化數(shù)據(jù)上執(zhí)行一預定DPCM操作來生成差分數(shù)據(jù),以及熵編碼該差分數(shù)據(jù)。
      最好,步驟(e)包括(e1)生成一旋轉差分值,該差分值用來通過利用當前關鍵幀的一旋轉變換值以及前關鍵幀的一復原旋轉變換值按幾乎等于通過當前和前關鍵幀的關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換間的一差值來旋轉該對象并通過量化該旋轉差分值來生成旋轉差分數(shù)據(jù),(e2)在該旋轉差分數(shù)據(jù)上有選擇地執(zhí)行一線性DPCM或一循環(huán)DPCM操作,以及熵編碼該旋轉有效期分數(shù)據(jù)。
      最好,步驟(e1)包括(e11)利用當前關鍵幀的一旋轉變換值以及前關鍵幀的一復原旋轉變換值生成旋轉差分值,(e12)通過量化該旋轉差分值來生成旋轉差分數(shù)據(jù),(e13)通過逆量化旋轉差分數(shù)據(jù)來生成一復原旋轉差分值,以及(e14)通過將復原旋轉差分值四元數(shù)乘以前關鍵幀的一復原旋轉變換值來生成當前關鍵幀的一復原旋轉變換值。
      為實現(xiàn)本發(fā)明的上述和其它目的,提供對一位流進行譯碼的方法,將包括有用于表示在一時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和用于表示一對象的旋轉的關鍵字值數(shù)據(jù)的一定向內(nèi)插器編碼成該位流。本發(fā)明包括(a)譯碼來自一輸入位流的關鍵字數(shù)據(jù),(b)譯碼來自該輸入位流的關鍵字值數(shù)據(jù),以及(c)通過合成譯碼關鍵字值數(shù)據(jù)以及利用該譯碼關鍵字值數(shù)據(jù)球性線性內(nèi)插的關鍵字值數(shù)據(jù)來生成一定向內(nèi)插器。
      最好,在步驟(c)中,如果不對與關鍵字數(shù)據(jù)相對應的關鍵字值進行譯碼,該關鍵字數(shù)據(jù)當前附屬于定向內(nèi)插器合成,與關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)利用與當前合成關鍵字數(shù)據(jù)相對應的譯碼關鍵字值數(shù)據(jù)和與下一個將被合成的關鍵字數(shù)據(jù)相對應的譯碼關鍵字值數(shù)據(jù)被合成。
      最好,步驟(a)包括通過熵譯碼該輸入位流來生成差分數(shù)據(jù)以及通過在差分數(shù)據(jù)上執(zhí)行一預定的DPCM操作或一逆DND操作來生成量化關鍵字數(shù)據(jù)以及通過逆量化量化關鍵字值數(shù)據(jù)來生成復原關鍵字數(shù)據(jù)。
      最好,步驟(b)包括(b1)通過熵譯碼來自該位流的關鍵字值數(shù)據(jù)來生成循環(huán)DPCM旋轉差分數(shù)據(jù)或量化旋轉差分數(shù)據(jù),(b2)通過在從該位流譯碼的DPCM次數(shù)操作后在熵編碼旋轉差分數(shù)據(jù)上執(zhí)行一逆循環(huán)DPCM操作來生成旋轉差分數(shù)據(jù),(b3)生成一旋轉差分值,該差分值被用來按幾乎等于通過逆量化旋轉差分數(shù)據(jù)的每個關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換間的一差值來旋轉該對象,以及(b4)通過將當前關鍵幀的一旋轉差分值四元數(shù)乘以一前關鍵幀的一譯碼旋轉變換值來生成一當前關鍵幀的一旋轉變換值。
      為實現(xiàn)本發(fā)明的上述和其它目的,提供一位流,將包括有用于表示在一時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和用于表示一對象的旋轉的關鍵字值數(shù)據(jù)的一定向內(nèi)插器編碼成該位流。該位流包括關鍵字數(shù)據(jù)編碼/譯碼信息以及關鍵字值數(shù)據(jù)編碼/譯碼信息。將該關鍵字數(shù)據(jù)編碼/譯碼信息編碼成關鍵字數(shù)據(jù)和譯碼該關鍵字數(shù)據(jù)所必須的信息。將關鍵字值數(shù)據(jù)編碼/譯碼信息編碼成關鍵字值數(shù)據(jù)以及譯碼該關鍵字值數(shù)據(jù)所必須的信息被編碼。在這里,關鍵字數(shù)據(jù)編碼/譯碼信息包括逆DND操作信息,第一逆DPCM操作信息,第一逆量化信息。該逆DND操作信息包括表示將在通過熵譯碼該位流所生成的差分數(shù)據(jù)上執(zhí)行的逆DND的多個預定周期的逆DND的次數(shù)以便擴展該差分數(shù)據(jù)的范圍以及在每個逆DND操作周期中所使用的差分數(shù)據(jù)的最大和最小值。第一逆DPCM操作信息包括將在逆DND差分數(shù)據(jù)上執(zhí)行的逆DPCM操作操作的次數(shù)以便將逆DND差分數(shù)據(jù)轉換成每個逆DPCM操作周期的已量化關鍵字數(shù)據(jù)以及內(nèi)部關鍵字數(shù)據(jù)。第一逆量化信息用在逆量化中以通過逆量化已量化關鍵字數(shù)據(jù)來生成復原關鍵字數(shù)據(jù)。關鍵字值數(shù)據(jù)譯碼/編碼信息包括由量化用于通過幾乎等于通過每個關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換間的一差值來旋轉該對象的一旋轉差分數(shù)據(jù)熵編碼的旋轉差分數(shù)據(jù),熵譯碼信息包括表示將在旋轉差分數(shù)據(jù)上執(zhí)行的一熵譯碼方法的一熵譯碼模式,逆循環(huán)DPCM操作信息包括逆循環(huán)DPCM操作的次數(shù),其表示是否將在熵譯碼旋轉差分數(shù)據(jù)上用熵譯碼模式執(zhí)行一逆循環(huán)DPCM操作,以及第二逆量化信息包括多個預定逆量化位,用來通過逆量化量化關鍵字值數(shù)據(jù)來復原原始關鍵字值數(shù)據(jù)。
      最好,關鍵字數(shù)據(jù)編碼/譯碼信息進一步包括線性關鍵字譯碼信息,用于對包括在該位流中的一線性關鍵字部分進行譯碼,并且該線性關鍵字譯碼信息包括一特征位,該特征位表示是否存在線性關鍵字區(qū)域,包含在該線性關鍵字部分中的關鍵字數(shù)據(jù)的數(shù)量以及線性關鍵字部分的開始和結束關鍵字數(shù)據(jù)。上述區(qū)域中的關鍵字數(shù)據(jù)線性的增加到關鍵字數(shù)據(jù)中。


      本發(fā)明的上述目的和優(yōu)點將通過參考附圖詳細地描述其優(yōu)選實施例變得清楚,其中
      圖1是根據(jù)一三維球面上的時間推移,描述由一定向內(nèi)插器節(jié)點表示的動畫數(shù)據(jù)的二維軌跡圖2A和2B分別是使用線性DPCM和熵編碼的一MPEG-4PMFC編碼器以及使用線性衰減DPCM和熵譯碼的一MPEG-4PMFC的框圖3A是根據(jù)本發(fā)明的一優(yōu)選實施例,一種用于編碼一定向內(nèi)插器的裝置的框圖,以及圖3B是根據(jù)本發(fā)明的一優(yōu)選實施例,一種用于編碼一定向內(nèi)插器的方法的流程圖4A至4C是根據(jù)本發(fā)明的優(yōu)選實施例,一分析器的例子的框圖5A是如圖3B所示的一步驟S320的流程圖5B是根據(jù)本發(fā)明的一優(yōu)選實施例,一重新采樣方法的流程圖5C是根據(jù)本發(fā)明的一優(yōu)選實施例,抽取斷點的一方法的一流程圖6A是描述原始關鍵字數(shù)據(jù)以及重新采樣關鍵字數(shù)據(jù)的圖以及圖6B是描述一原始動畫路徑以及一重新采樣動畫路徑的圖。
      圖7A至7F是根據(jù)本發(fā)明的一優(yōu)選實施例,描述抽取斷點的一方法的一例子的圖8是描述在一斷點生成模式中從一斷點抽取器輸出的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的圖9A是根據(jù)本發(fā)明的一優(yōu)選實施例,一關鍵字數(shù)據(jù)編碼器的框圖9B是如圖9A所示的一DND處理器的框圖10A至10E是根據(jù)本發(fā)明的一優(yōu)選實施例,編碼關鍵字數(shù)據(jù)的一方法的流程圖11是描述一函數(shù)encodeSignedAAC的例子的圖12A至12J是根據(jù)本發(fā)明的一優(yōu)選實施例,描述在執(zhí)行編碼關鍵字數(shù)據(jù)的不同步驟后獲得的關鍵字數(shù)據(jù)的圖13A是根據(jù)本發(fā)明的一第一實施例,一關鍵字值數(shù)據(jù)編碼器的框圖,以及圖13B是根據(jù)本發(fā)明的一第一實施例,編碼關鍵字值數(shù)據(jù)的一方法的流程圖14A是描述在一旋轉差分值的每個分量中的一概率分布函數(shù)(PDF)的典型例子的圖14B是用于非線性量化的反正切曲線;
      圖15A是根據(jù)本發(fā)明的一優(yōu)選實施例,從包括在一關鍵字值數(shù)據(jù)譯碼器中的一量化器輸出的旋轉差分數(shù)據(jù)的例子;圖15B是描述在如圖15A所示的差分數(shù)據(jù)上執(zhí)行一線性DPCM操作的結果的圖;以及圖15C是描述在如圖15B所示的線性DPCM差分數(shù)據(jù)上執(zhí)行一循環(huán)DPCM操作的結果的圖16是描述用于熵編碼的一函數(shù)UnaryAAC()的一個例子的圖17是描述在使用一旋轉差分值來編碼四元數(shù)旋轉變換值期間產(chǎn)生的一旋轉方向誤差的圖18A是根據(jù)本發(fā)明的第二實施例,一關鍵字值數(shù)據(jù)編碼器的一旋轉DPCM運算符的框圖,以及圖18B是如圖18A所示的一旋轉方向誤差計算器的框圖19A是根據(jù)本發(fā)明的第二實施例,一旋轉DPCM操作的流程圖;圖19B是描述如圖9A是所示的一旋轉方向誤差計算器、一旋轉方向誤差檢測器、以及一旋轉方向校正器的操作的流程圖20A是根據(jù)本發(fā)明的第三實施例的一關鍵字值數(shù)據(jù)編碼器的一量化器的框圖,以及圖20B是根據(jù)本發(fā)明的第三實施例的一量化器的操作的流程圖21A是根據(jù)本發(fā)明的一優(yōu)選實施例的用于譯碼一定向內(nèi)插器的裝置的框圖,以及圖21B是根據(jù)本發(fā)明的一優(yōu)選實施例,一種用于譯碼一定向內(nèi)插器的方法的流程圖22是根據(jù)本發(fā)明的一優(yōu)選實施例的一關鍵字數(shù)據(jù)譯碼器的框圖23A和23B是根據(jù)本發(fā)明的一優(yōu)選實施例的譯碼關鍵字數(shù)據(jù)的一種方法的流程圖24A是根據(jù)本發(fā)明的一優(yōu)選實施例的一關鍵字值數(shù)據(jù)譯碼器的框圖,以及圖24B是根據(jù)本發(fā)明的一優(yōu)選實施例的譯碼關鍵字值數(shù)據(jù)的方法的流程圖25是根據(jù)本發(fā)明的一優(yōu)選實施例,描述輸入到一關鍵字值數(shù)據(jù)譯碼器的一熵譯碼器的一位流的結構的圖26是根據(jù)本發(fā)明的一優(yōu)選實施例,合成一定向內(nèi)插器的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的方法的流程圖27是描述計算將被編碼的一定向內(nèi)插器以及一譯碼定向內(nèi)插器間的一誤差的方法的例子的圖28是用于將根據(jù)本發(fā)明用于編碼一定向內(nèi)插器的方法的性能與用于編碼一定向內(nèi)插器的常規(guī)方法的性能相比的圖29A至29J是SDL語言程序代碼,通過該代碼,根據(jù)本發(fā)明的一優(yōu)選實施例,用于譯碼一定向內(nèi)插器的裝置,實現(xiàn)譯碼關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      具體實施例方式
      根據(jù)本發(fā)明的一優(yōu)選實施例,將參考附圖來更詳細地描述一種用于編碼一定向內(nèi)插器的方法和裝置。
      圖3A根據(jù)本發(fā)明的一優(yōu)選實施例給出了一種用于編碼一定向內(nèi)插器的裝置的框圖。參考圖3A,用于編碼一定向內(nèi)插器的裝置包括一分析器40、一關鍵字值編碼器200、一關鍵字值數(shù)據(jù)編碼器300以及一標題編碼器400。
      圖3B根據(jù)本發(fā)明的一優(yōu)選實施例給出了用于編碼一定向內(nèi)插器的方法的流程圖。參考圖3B,在步驟S300中將將被編碼的一定向內(nèi)插器輸出到分析器40中。在步驟S320中,分析器40從由定向內(nèi)插器的x,y,z及θ(旋轉角)分量的關鍵字值數(shù)據(jù)組成的一第一動畫路徑抽取將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù),將抽取關鍵字數(shù)據(jù)輸出關鍵字數(shù)據(jù)編碼器200,并將抽取關鍵字值數(shù)據(jù)輸出到關鍵字值數(shù)據(jù)編碼器300。
      關鍵字數(shù)據(jù)編碼器200利用多個預定已量化位來量化從分析器40所輸入的關鍵字數(shù)據(jù),通過在已量化關鍵字數(shù)據(jù)上執(zhí)行一預定DPCM操作來生成差分數(shù)據(jù)以及在步驟S340中熵編碼該差分數(shù)據(jù)。
      關鍵字值數(shù)據(jù)編碼器300使用多個預定已量化位來量化從分析器40所輸入的關鍵字值數(shù)據(jù),通過在量化數(shù)據(jù)上執(zhí)行一預定DPCM操作來生成差分數(shù)據(jù)以及在步驟S360中編碼該差分數(shù)據(jù)。
      標題編碼器400從關鍵字數(shù)據(jù)編碼器200和關鍵字值數(shù)據(jù)編碼器300接收譯碼關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)所必須的信息并在步驟S380中編碼該信息。
      在下文中,將參考附圖更詳細地描述分析器40、關鍵字數(shù)據(jù)編碼器200以及關鍵字值數(shù)據(jù)編碼器300的結構和操作。
      圖4A根據(jù)本發(fā)明的第一實施例給出了分析器40的一個例子的框圖。即使使用分析器40在關鍵字值數(shù)據(jù)的所有分量(x,y,z及θ)上可執(zhí)行抽取將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的處理,該處理將在下面的圖中,為了方便說明僅考慮關鍵字值數(shù)據(jù)(定向內(nèi)插器)的分量中的一個。
      參考圖4A,根據(jù)本發(fā)明的第一實施例,該分析器包括一重新采樣器43、一斷點抽取器42和一選擇器41。重新采用器基于一輸入定向內(nèi)插器,將一第一動畫路徑采樣成具有一預定時間量的間隔的多個部分并將所采樣的動畫路徑輸出到一關鍵字編碼器200、一關鍵字值編碼器300、以及一標題編碼器400中。該斷點抽取器42抽取一最小量的斷點,通過該操作,第一動畫路徑與基于從第一動畫路徑抽取的斷點生成的一第二動畫路徑間的一誤差能防止超過一預定誤差極限,并將抽取斷點輸出到關鍵字數(shù)據(jù)編碼器200、關鍵字值數(shù)據(jù)編碼器300以及標題編碼器400中。該選擇器41響應一外部輸入信號,將輸入定向內(nèi)插器輸出到重新采樣器43或斷點抽取器42中。斷點抽取器42包括一線性內(nèi)插器42a、一誤差計算器42b以及一確定單元42c。
      圖5A根據(jù)本發(fā)明第一實施例給出了分析器40的操作流程圖。參考圖5A,選擇器41在步驟S325從外部接收一定向內(nèi)插器以及一設定信號。該設定信號包括用來確定將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的方法的一生成方法設置信息以及用來確定用于生成將被譯碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的模式的一生成模式設置信息。
      首先在下面的段路中描述用于生成關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的模式。
      分析器40通過減小輸入到其中的一定向內(nèi)插器的關鍵幀的數(shù)量來降低將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)量。根據(jù)從外面輸入其中的一模式設定信號,假定分析器40具有一動畫路徑保存模式或一動畫關鍵字保存模式。
      在一動畫路徑保存模式中,一定向內(nèi)插器僅被用來描述一動畫路徑的內(nèi)插,且不必隨機存取關鍵幀。為有效編碼在動畫路徑保存模式中的一定向內(nèi)插器,可移除在一預定誤差范圍內(nèi)與一動畫路徑共存的一定向內(nèi)插器的關鍵字數(shù)據(jù)和與該關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)。
      另一方面,在一動畫關鍵字保存模式中,使用MPEG-4BIFS命令,如’replace’,’delete’或‘insert’隨機存取關鍵幀是必要的。在動畫關鍵字保存模式中,不能改變一定向內(nèi)插器的關鍵字數(shù)據(jù)的數(shù)量。下面將更詳細地描述動畫路徑保存模式以及動畫關鍵字保存模式。
      再參考圖5A,選擇器41在從外面輸入一生成模式后,選擇用于生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的模式。在步驟S330中,選擇器41將輸入定向內(nèi)插器輸出到斷點抽取器42中,如果輸入生成模式是一動畫關鍵字保存模式。如果輸入模式是一動畫路徑保存模式,向應從外面輸入的一生成方法設定信號,選擇器41在步驟S330中將輸入定向內(nèi)插器連同生成關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)所必需的信息輸出到重新采樣器43或斷點抽取器42中。
      特別地,在通過重新采樣生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的情況下,選擇器41將關鍵字數(shù)據(jù)的數(shù)量(即時間間隔)和一生成模式連同定向內(nèi)插器輸出到該重新采樣器43中。在通過抽取斷點生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的情況下,選擇器41將在一原始動畫路徑和通過抽取斷點生成的一路徑間的一臨界誤差以及該生成模式輸出到斷點抽取器42。
      在步驟S335中,重新采樣器43在多個預定時間間隔通過采樣由從選擇器41輸入的定向內(nèi)插器生成的一動畫路徑生成的采樣關鍵字數(shù)據(jù)和采樣關鍵字值數(shù)據(jù),以及斷點抽取器42抽取一最少斷點,通過該操作,能防止由輸入定向內(nèi)插器生成的一動畫路徑和由抽取斷點生成的一動畫路徑間的一誤差超過一預定誤差極限。
      圖5B根據(jù)本發(fā)明的一優(yōu)選實施例給出了重新采樣器43的操作流程圖。參考圖5B,重新采樣器43在步驟S502中從選擇器41接收將被重新采樣的一定向內(nèi)插器和關鍵字數(shù)據(jù)的數(shù)量(m)。將被重新采樣的關鍵字數(shù)據(jù)的數(shù)量(m)可由一用戶任意設置或預先被設置為一預定值上。
      在步驟S504中,重新采樣器43選擇由輸入定向內(nèi)插器生成的一原始動畫路徑的一第一路徑點和一最終路徑點并將將被重新采樣的該關鍵字數(shù)據(jù)的初始值(i)設置為1。
      此后,在步驟S506,重新采樣器43在多個預定時間的一間隔上生成第I個關鍵字數(shù)據(jù)。
      圖6A是描述原始關鍵字數(shù)據(jù)和重新采樣關鍵字數(shù)據(jù)的圖。由于該輸入定向內(nèi)插器的關鍵字數(shù)據(jù)表示在一時間軸上關鍵幀的位置,如圖6A所示,關鍵字數(shù)據(jù)單調(diào)地增加,而該關鍵字數(shù)據(jù)中的間隔卻沒有規(guī)律。
      因此,如圖6A所示,重新采樣器43通過按將被重新采樣的關鍵字數(shù)據(jù)的數(shù)量來劃分分別表示在步驟S504中選擇的第一路徑點和最終路徑點的關鍵字數(shù)據(jù)間的一差值來獲得多個預定時間的一間隔并因此在多個預定時間的間隔上重新采樣將被重新采樣的關鍵字數(shù)據(jù)。
      在步驟S508中,重新采樣器43通過使用原始動畫路徑按線性內(nèi)插器重新采樣生成的與該關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)。換句話說,與重新采樣關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)使用正好在重新采樣關鍵字數(shù)據(jù)后與關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)以及正好在重新采樣關鍵字數(shù)據(jù)前與關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)被線性內(nèi)插。
      此后,在步驟S510中,重新采樣器43驗證是否已經(jīng)在所有將被重新采樣的關鍵字數(shù)據(jù)上執(zhí)行重新采樣處理并重復執(zhí)行步驟S506和S508直到重新采樣所有關鍵字數(shù)據(jù)以及他們相應的關鍵字值數(shù)據(jù)。
      圖5C根據(jù)本發(fā)明的第一實施例給出了一種抽取斷點的方法流程圖,圖7A至7F根據(jù)本發(fā)明的一優(yōu)選實施例給出了從一定向內(nèi)插器抽取斷點的每個步驟的框圖。
      參考圖4A,5C以及7A至7F,斷點抽取器42的線性內(nèi)插器42a在步驟S520從選擇器41接收一定向內(nèi)插器和一臨界誤差eth。由輸入定向內(nèi)插器所構成的一動畫路徑如圖7A所示。
      在步驟S522中,線性內(nèi)插器42a抽取由輸入定向內(nèi)插器所組成的動畫路徑的第一路徑點Q0以及最終路徑點Qn,如圖7A所示,并將一計數(shù)器(i)設置為1。
      在步驟S524中,線性內(nèi)插器42a在第一Q0和最終路徑點Qn間依次地任意或順序選擇路徑點。接著,在步驟S526中,線性內(nèi)插器42a利用所選擇的路徑點線性地內(nèi)插還未被選擇的路徑點并將所選擇的路徑點和內(nèi)插路徑點輸出到誤差計算器42b中。
      在步驟S528中,誤差計算器42b計算原始動畫路徑和由選擇路徑點和內(nèi)插路徑點所構成的一候選動畫路徑間的一誤差(e)并將該誤差(e)輸出到確定單元42c中。下面將描述計算誤差(e)的方法。
      誤差計算器42b核對在未被線性內(nèi)插器42a所選擇的路徑點中,是否仍然存在當計算誤差(e)時未被考慮的路徑點。如果有當計算誤差(e)時未被考慮的路徑點,誤差計算器42b通過重復執(zhí)行步驟S524至S528在步驟S530中計算路徑點與原始動畫路徑間的一誤差。
      圖7C是描述步驟S524至S530的圖。參考圖7C,線性內(nèi)插器42a抽取與在預定時間瞬間k1的關鍵字數(shù)據(jù)相對應的一斷點Q1并通過線性內(nèi)插第一路徑點Q0和斷點Q1間的路徑點來生成一第一候選動畫路徑。誤差計算器42b計算原始動畫路徑與第一候選動畫路徑間的一誤差e1。此后,用相同的方式,線性內(nèi)插器選擇另一斷點Qk并通過線性內(nèi)插在第一路徑點Q0與斷點Qk間和斷點Qk和最終路徑點Qn間的路徑點來生成第k個候選動畫路徑。誤差計算器42b計算原始動畫路徑與第k個候選動畫路徑間的一誤差(ek)。
      如果步驟S524至S530已經(jīng)在未被線性內(nèi)插器42a選擇的所有路徑點上執(zhí)行過,原始動畫路徑和在步驟S524至S530生成的每個候選動畫路徑間的誤差被輸出到確定單元42c。然后,在步驟S532中,確定單元42c選擇形成具有最小誤差和原始動畫路徑的一候選動畫路徑的一斷點,并將計數(shù)器(i)值加1。
      在步驟S534中,確定單元42c核對原始動畫路徑和由抽取斷點構成的候選動畫路徑間的一誤差(e)是否大于臨界誤差eth以及計數(shù)器(i)的值是否大于關鍵字數(shù)據(jù)的數(shù)量(n)即第一路徑點Q0與最終路徑點Qn的路徑點的數(shù)量。
      如果誤差(e)小于臨界誤差eth,它表示已經(jīng)抽取要求編碼的所有斷點。如果最終選擇作為將被編碼的斷點的數(shù)量等于“n”,表示完成抽取所有路徑點的斷點的處理。
      然而,如果抽取斷點的數(shù)量小于n以及誤差(e)大于臨界誤差eth,這表示還存在將被抽取的斷點,將所選擇的斷點輸出到線性內(nèi)插器42a,然后再執(zhí)行步驟S524至S532。
      在下文中,在下面的段路中將描述當生成模式是一動畫路徑保存模式時,假定從重新采樣器43和斷點抽取器42輸出到關鍵字值數(shù)據(jù)譯碼器的數(shù)據(jù)。
      重新采樣器43將采樣的關鍵字數(shù)據(jù)和采樣的關鍵字值數(shù)據(jù)分別輸出到關鍵字數(shù)據(jù)編碼器200和關鍵字值數(shù)據(jù)編碼器300中分別作為將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      在下文中,將參考圖8來描述根據(jù)一生成模式從斷點抽取器42輸出的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      如圖8所示,假定最終抽取斷點被稱為0,3,6和8,與斷點0,3,6和8相對應的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)連同一關鍵字選擇特征位被輸出,如下表如示。
      表2
      上面已經(jīng)根據(jù)本發(fā)明的第一實施例描述過分析器40的結構。然而,對本領域的技術人員來說,分析器40可僅由斷點抽取器42而沒有選擇器41和重新采樣器43或僅由重新采樣器43而沒有選擇器41和斷點抽取器42組成。
      在下文中,將根據(jù)本發(fā)明的第二實施例來描述分析器40的另一例子。
      參考圖4B,根據(jù)本發(fā)明第二實施例的分析器40包括一重新采樣器45以及一斷點抽取器46。該重新采樣器45接收和重新采樣一定向內(nèi)插器。該斷點抽取器46抽取重新采樣的定向內(nèi)插器的斷點并輸出將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。在本發(fā)明的第二實施例中,斷點抽取器46象在本發(fā)明的第一實施例中一樣,也包括一線性內(nèi)插器46a、一誤差計算器46b、以及一確定單元46c。
      當一定向內(nèi)插器被輸入到分析器40中時,重新采樣器45將由該定向內(nèi)插器所組成的一第一動畫路徑重新采樣成彼此之間具有多個預定時間的一間隔的多個預定部分。
      重新采樣器45將由采樣關鍵字數(shù)據(jù)和采樣關鍵字值數(shù)據(jù)組成的定向內(nèi)插器輸出到斷點抽取器46的線性內(nèi)插器46a。
      線性內(nèi)插器46a通過執(zhí)行如圖5C所示的步驟S522至S526來內(nèi)插一定向內(nèi)插器并將該內(nèi)插的定向內(nèi)插器輸出到誤差計算器46b中。誤差計算器46b通過執(zhí)行步驟S528至S530計算第一動畫路徑和由內(nèi)插的定向內(nèi)插器所構成的一第二動畫路徑間的一誤差。確定單元46c選擇將導致第一和第二動畫路徑間的一最小誤差的一路徑點,驗證相應的誤差是否大于一臨界誤差eth以及是否已經(jīng)選擇第一動畫路徑的所有路徑點并生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      如上所述,在根據(jù)本發(fā)明的第二實施例的分析器40中,除斷點抽取器46接收由從重新采樣器45輸出的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)構成的一定向內(nèi)插器以及在由從重新采樣器45輸入的定向內(nèi)插器構成的一動畫路徑上執(zhí)行抽取斷點的處理外,重新采樣器45和斷點抽取器46的操作與在本發(fā)明的第一實施例中的相應組件的操作相同。
      在下文中,根據(jù)本發(fā)明的第三實施例,參考圖4C來描述分析器40的一個例子。
      參考圖4C,分析器40包括一斷點抽取器48,其接收一定向內(nèi)插器,從由該定向內(nèi)插器構成的一第一動畫路徑抽取斷點并輸入關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù),以及一重新采樣器49,其在一預定時間間隔采樣由包括從斷點抽取器48輸入的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的一定向內(nèi)插器構成的一第二動畫路徑。斷點抽取器48,與在本發(fā)明的第一和第二實施例中一樣,也包括一線性內(nèi)插器48a、一誤差計算器48b以及一確定單元48c。
      斷點抽取器48,與本發(fā)明第一實施例中的一樣,將從第一動畫路徑中所抽取的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)輸出到重新采樣器49中。
      重新采樣器49在預定時間間隔重新采樣由包括從斷點抽取器48所輸入的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)的一定向內(nèi)插器所構成的一動畫路徑并輸出將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。重新采樣器49的功能與在本發(fā)明的第一和第二實施例中相同,因此這里不再重復描述。
      在本發(fā)明的第一到第三實施例中從分析器40輸出的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)被分別輸出到關鍵字數(shù)據(jù)編碼器200和關鍵字值數(shù)據(jù)編碼器300。
      在下文中,將參考圖9A至12J來描述關鍵字數(shù)據(jù)編碼器200的結構和操作。
      圖9A根據(jù)本發(fā)明的一優(yōu)選實施例給出了一關鍵字數(shù)據(jù)編碼器的框圖。參考圖9A,一關鍵字數(shù)據(jù)編碼器200包括一線性關鍵字編碼器900、一量化器910、一DPCM處理器920、一移位器930、一折疊處理器940、一DND處理器950以及一熵編碼器960。
      線性關鍵字編碼器900識別在整個關鍵字數(shù)據(jù)范圍內(nèi)部關鍵字數(shù)據(jù)線性增加的一部分并編碼該部分。量化器910利用能最小化一量化誤差的一量化方法來量化輸入到其中的關鍵字數(shù)據(jù)。DPCM處理器920接收量化關鍵字數(shù)據(jù)并生成關鍵字數(shù)據(jù)的差分數(shù)據(jù)。移位器930從差分數(shù)據(jù)中減去在所有差分數(shù)據(jù)中具有最大頻率的一差分數(shù)據(jù)。折疊處理器940將所有差分數(shù)據(jù)傳送到一正數(shù)區(qū)或一負數(shù)區(qū)。DND處理器950通過執(zhí)行一劃分操作然后有選擇地執(zhí)行一分割操作或向下分割操作來減小關鍵字數(shù)據(jù)的差分數(shù)據(jù)的范圍。熵編碼器960在每個位平面上使用一函數(shù)SignedAAC或UnsignedAAC來編碼差分數(shù)據(jù)。
      在下文中,將參考圖10A來更詳細地描述關鍵字數(shù)據(jù)編碼器200的操作。圖10A是根據(jù)本發(fā)明的一優(yōu)選實施例的編碼關鍵字數(shù)據(jù)的方法的流程圖。當將關鍵字數(shù)據(jù)輸入到用于編碼一定向內(nèi)插器的一裝置中時,信息如關鍵字數(shù)據(jù)的數(shù)量以及每個關鍵字數(shù)據(jù)的數(shù)字的數(shù)量被輸入到標題編碼器400中并被編碼。在步驟S9000中,線性關鍵字編碼器900在該輸入關鍵字數(shù)據(jù)中查找在某一時間間隔中存儲關鍵幀的一區(qū)域,關鍵字數(shù)據(jù)具有相同的差值,以及關鍵字數(shù)據(jù)線性改變,以及所查找的線性部分被首先編碼。
      著名的3D應用軟件,如3DMax或Maya,利用在特定區(qū)域間具有預定時間間隔的關鍵字來生成基于動畫的關鍵幀。在這種情況下,有可能很容易使用一線性關鍵字數(shù)據(jù)區(qū)域的開始和結尾關鍵字數(shù)據(jù)以及存在于它們間的關鍵幀的數(shù)量來編碼關鍵字數(shù)據(jù)。因此,線性預測對使用一定向器來編碼在某一區(qū)域中的關鍵字非常有用。
      下面的等式用于線性預測。
      在這里,tS表示一部分線性區(qū)域開始的一關鍵字的數(shù)據(jù),tE表示該部分線性區(qū)域結束的一關鍵字的數(shù)據(jù),S表示tS的一指數(shù),以及E表示tE的一指數(shù)。在從第S個關鍵字數(shù)據(jù)到第E個關鍵字數(shù)據(jù)的特定區(qū)域中的實際關鍵字數(shù)據(jù)與用等式(4)線性預測的關鍵字數(shù)據(jù)間的誤差能用下面的等式計算。
      如果在使用等式(5)計算的誤差中的一最大值不大于一預定誤差極限,ti能被認為在區(qū)域[tS,tE]或在某一誤差范圍內(nèi)共線。使用下述等式(6)能確定最大誤差值ti是否與特定區(qū)域共線。
      如果ti是與區(qū)域[tS,tE]共線。此時,nBits表示用于編碼的位的數(shù)量。
      如果線性關鍵字編碼器900查找部分線性區(qū)域,將部分線性關鍵字數(shù)據(jù)區(qū)域的開始和結尾關鍵字數(shù)據(jù)輸出到浮點數(shù)轉換器905中。包含在線性關鍵字數(shù)據(jù)區(qū)域中的關鍵字的數(shù)量被輸出到標題編碼器400中并被編碼。使用線性編碼有可能相當大地降低將被編碼的數(shù)據(jù)量。
      使用浮點數(shù)變換來編碼開始關鍵字數(shù)據(jù)和結尾關鍵字數(shù)據(jù),這將在下面描述。
      浮點數(shù)轉換器905將用二進制表示的關鍵字數(shù)據(jù)轉換成十進制以便編碼開始關鍵字數(shù)據(jù)和結尾關鍵字數(shù)據(jù)。
      一計算機將浮點數(shù)存儲為32位二進制數(shù)。如果給出用二進制表示的浮點數(shù),浮點數(shù)轉換器905將浮點數(shù)轉換成十進制的一尾數(shù)和一指數(shù),該處理用下面的等式來表示。
      例如,一浮點數(shù)12.34能用一計算機轉換成一二進制數(shù),如下所示。
      0 10001010111000010100011 10000010
      1 2 3
      1特征位
      2二進制的尾數(shù)
      3二進制的指數(shù)
      用等式(7)能將一二進制數(shù)轉換成一十進制數(shù),如下所示。
      0 1234 2
      12 3
      1特征位
      2十進制的尾數(shù)
      3十進制的指數(shù)
      為在一位流中包括十進制的一尾數(shù)和一指數(shù),必須計算為表示該尾數(shù)和指數(shù)而所需的位的數(shù)量。指數(shù)具有在-38到38間的一值,因此能用7位來表示它及其特征位。為表示尾數(shù)而所需的位的數(shù)量由位數(shù)而定。尾數(shù)值以及為表示尾數(shù)而所需的位的數(shù)量如下表所示。
      表4
      在圖10B中所示的下述編碼處理來編碼利用上述處理已經(jīng)查找過和轉換過的線性關鍵字數(shù)據(jù)區(qū)域的開始和結尾關鍵字數(shù)據(jù),并輸出到報文編碼器400,且在該位流中存儲。
      圖10B表示在浮點數(shù)轉換器905中執(zhí)行的編碼兩個輸入浮點數(shù)的一處理。參考圖10B來描述浮點數(shù)轉換器905編碼一浮點數(shù)的方法。
      浮點數(shù)轉換器905接收原始關鍵字數(shù)據(jù)、開始關鍵字數(shù)據(jù)S以及結尾關鍵字數(shù)據(jù)E的數(shù)字數(shù)Kd并在步驟S9040中用等式(7)將轉換它們。
      浮點數(shù)轉換器905首先編碼S。具體來說,浮點數(shù)轉換器905核對S的數(shù)字數(shù)目是否不同與Kd。如果S的數(shù)字數(shù)目與Kd不同,在步驟S9042中獲得S的數(shù)字數(shù)目并輸出到標題編碼器400。利用函數(shù)Digit(),浮點數(shù)轉換器905獲得S的數(shù)字數(shù)目。
      如果S的數(shù)字數(shù)目大于7,在步驟S9043中使用多個預定位(在本發(fā)明中,用IEEE754標準的一浮點數(shù)方式使用32位)將S輸出到標題編碼器以便將能S的數(shù)字數(shù)目包括在該位流中。
      在步驟S9100中,量化誤差最小化器915使用用于控制一量化范圍的方法來預先量化或逆量化該輸入關鍵字數(shù)據(jù)以便能最小化該量化誤差。
      具體來說,如果用于量化的一混合最大值用Max表示,用于量化所控制的一最小值用Min表示,一輸入值用Xi表示,以及用于量化的位的數(shù)量用nQuantBit表示,那幺能使用下面的等式來獲得一量化輸入值
      一逆量化值
      以及一誤差ei。
      有兩種用于最小化誤差和∑ei的方法。一種方法是通過連續(xù)控制Min來降低誤差和直到誤差和最小化為止的方法。另一下如下。
      首先,假定Xi=(i+n)ΔX+εi,其中Xi表示一輸入關鍵字數(shù)據(jù)序列,Δx表示輸入數(shù)據(jù)的基本步長,n是一任意整數(shù),以及εi表示零平均值隨機噪聲。
      接著,當di=Xi-Xi-1=ΔX+(εi-εi-1)時,Δ′x=E[di]以及Min=Max-Δ′x*(2nQuantBit-1)。
      Min能使最小化一量化誤差成為可能,以及Max能被輸入到量化器910中并被用于關鍵字值數(shù)據(jù)的量化。
      在步驟S9200中量化器910接收最大和最小值Max以及能最小化一量化誤差的Min并用下述等式(9)量化關鍵字數(shù)據(jù)fKeyi。
      在這里,i表示已量化關鍵字數(shù)據(jù)的一指數(shù),nQkeyi表示已量化關鍵字數(shù)據(jù)的一整數(shù)數(shù)組,fKeyi表示已量化關鍵字數(shù)據(jù)的一浮點數(shù)數(shù)組,fKeyMax表示從量化誤差最小化器915輸入的一最大值,fKeyMin表示從量化誤差最小化器輸入的一最小值,以及nKeyQBit表示一量化步長。在等式(9)中,函數(shù)floor(v)是輸出不大于某一浮點值v的一最大整數(shù)的一函數(shù)。
      本發(fā)明的量化器910可能不使用用于降低一量化誤差的這種算術,在這種情況下,簡單使用輸入關鍵字數(shù)據(jù)中的最大和最小值fKeyMax和fKeyMin來執(zhí)行量化。
      參考圖10C來更全面地描述本發(fā)明的量化處理。
      量化器910在步驟S9210中接收關鍵字數(shù)據(jù)并在步驟S9220中核對最大和最小值MAX和MIN是否從量化誤差最小化器915中輸入。
      如果輸入MAX和MIN,在步驟S3230中量化器910設置最大和最小值fKeyMax和fKeyMin分別用作量化的MAx和MIN并將新設置的最大和最小值fKeyMax和fKeyMin輸出到浮點數(shù)轉換器905中。通過上述浮點數(shù)轉換方法來轉換和編碼最大和最小值fKeyMax和fKeyMin并輸出到標題編碼器400中以便它們能被包括在用在編碼中的一關鍵字標題中。
      如果沒有值從量化誤差最小化器915中輸入,在步驟S9240中,量化器910設置第一關鍵字數(shù)據(jù)fKey0和最終關鍵字數(shù)據(jù)fKeyN-1分別作為最小fKeyMin和最大值fKeyMax。如果最大值fKeyMax不小于1或不大于0,將最大和最小值fKeyMax和fKeyMin輸出到浮點數(shù)轉換器905中并通過上述浮點數(shù)轉換方法轉換和編碼。接著,在步驟S9260中,已經(jīng)被轉換和編碼的最大和最小值fKeyMax和fKeyMin被包括在關鍵字標題中以便它們能被用在譯碼中。
      另一方面,如果最大值fKeyMax小于1且最小值fKeyMin大于0,在步驟S9270中核對表示最大和最小值fKeyMax和fKeyMin是否將被包括在正用在譯碼中的關鍵字標題中的一標志位。如果該標志位被設置以致最大和最小值fKeyMax和fKeyMin能被包括在關鍵字標題中,執(zhí)行步驟S9260以便最大和最小值fKeyMax和fKeyMin能被輸出到標題編碼器400中。如果標志位未被設置,量化器910不允許將最大和最小值fKeyMax和fKeyMin包括在關鍵字標題中。
      在最大和最小值fKeyMax和fKeyMin未被包括在關鍵字標題中的情況下,關鍵字數(shù)據(jù)編碼器和關鍵字數(shù)據(jù)譯碼器被假定分別執(zhí)行編碼和譯碼、分別將最大和最小值fKeyMax和fKeyMin設置為1和0。在這種情況下,在步驟S9280中,量化器910分別將最大和最小值fKeyMax和fKeyMin設置為1和0。對關鍵字數(shù)據(jù)譯碼器來說最大和最小值fKeyMax和fKeyMin已經(jīng)公知以致它們不需要被包括在關鍵字標題中。
      在步驟S9290中,量化器910通過將通過上述處理設置的最大和最小值fKeyMax和fKeyMin代入等式(9)中來量化輸入關鍵字數(shù)據(jù)并將量化關鍵字數(shù)據(jù)輸出到一DPCM處理器920中。
      DPCM處理器920接收量化關鍵字數(shù)據(jù)并在多個預定時間在量化關鍵字數(shù)據(jù)上執(zhí)行DPCM。接著,DPCM處理器920輸出DPCM的次數(shù),通過該操作,在離散的程序中獲得一最小值以及在每個DPCM周期中獲得的內(nèi)部關鍵字數(shù)據(jù)到標題編碼器400中。在步驟S9300中,DPCM處理器920將由DPCM生成的差分數(shù)據(jù)輸出到移位器930中。
      參考圖10D,在步驟S9310中,DPCM處理器920在多個預定時間在輸入關鍵字數(shù)據(jù)上執(zhí)行DPCM并存儲DPCM的周期的數(shù)量作為DPCM的次數(shù)。在本發(fā)明的一優(yōu)選實施例中,DPCM能被執(zhí)行三次。
      此后,在步驟S9250中,量化器910核對最大值fKeyMax是否小于1而大于0以及最小值是fKeyMin否大于0。在這里,離散度可由離散、標準偏差或四分位差以及在本發(fā)明的一優(yōu)選實施例中,可使用四分位差。
      接著,DPCM處理器920選擇一DPCM周期,通過該DPCM周期可獲得離散度中的一最小位,并將選擇的DPCM次數(shù)的結果輸出到移位器930中。選擇的DPCM周期、每個DPCM周期的內(nèi)部關鍵字數(shù)據(jù)以及DPCM所要求的其它信息均在步驟S9330中被輸出到標題譯碼器400中。然而,在本發(fā)明的一優(yōu)選實施例中,如果關鍵字的數(shù)量小于5,則僅執(zhí)行DPCM一次。例如,DCPM的第一周期用等式(10)來執(zhí)行。
      Δi=nQkeyi+1-nQkeyi…(10)
      在這里,i表示量化關鍵字數(shù)據(jù)的一指數(shù),nQKeyi表示一整數(shù)數(shù)組,以及Δi表示差分數(shù)據(jù)。
      DPCM處理器920計算為編碼DPCM的選擇周期的結果以及在步驟S9340中在一預定存儲器(nQStep DPCM0中由DPCM所生成的關鍵字數(shù)據(jù)的差分數(shù)據(jù)而所需的位的數(shù)量。為進行編碼而所需的位的數(shù)量的計算也可在后來的選擇將被編碼的關鍵字數(shù)據(jù)的步驟中執(zhí)行,這對本領域的技術人員是顯而易見的。
      移位器930從DPCM處理器輸入的差分數(shù)據(jù)中選擇具有最高頻率的一差分數(shù)據(jù)(在下文中,稱為一模式)。然后,移位器930在步驟S9400中從所有差分數(shù)據(jù)中減去該模式以便將被編碼的大多數(shù)數(shù)據(jù)排列在0周期以及能減小為進行編碼而所需的位的數(shù)量。
      通過從所有已量化關鍵字數(shù)據(jù)中減去一模式nKeyShift,來執(zhí)行這種移位操作,用下述等式來表示。
      shift(nQKeyi)=nQkeyi-nKeyShift …(11)
      在這里,i表示已量化關鍵字數(shù)據(jù)的一指數(shù),nQKeyi表示一整數(shù)數(shù)組,以及nKeyShin表示一模式值。作為該移位操作的結果,具有最高頻率的差分數(shù)據(jù)變?yōu)?以便能相當大地減小為進行編碼而所需的位的數(shù)量。
      通過移位操作的關鍵字數(shù)據(jù)被輸出到折疊處理器940和DND處理器950中,以及模式值nKeyShift被輸出到標題編碼器400以便被包括在關鍵字標題中。
      在步驟S9500中,折疊處理器940在移位器930的輸出上執(zhí)行一折疊操作并將折疊操作的結果輸出到DND處理器950中。
      折疊操作被用來通過將它們集中到正或負數(shù)區(qū)域中來減小在一正數(shù)區(qū)域和一負數(shù)區(qū)域上廣泛離散的差分數(shù)據(jù)的范圍。在本發(fā)明實施例中,折疊操作用等式(12)來執(zhí)行以在正數(shù)區(qū)域中集中該差分數(shù)據(jù)。
      fold(nQKeyi)=2·nQKeyi (nQKeyi≥0) …(12)
      =2|nQKeyi|-1 (nQKeyi<0)
      在這里,i表示量化關鍵字數(shù)據(jù)的一指數(shù),nQKeyi表示一整數(shù)數(shù)組。作為折疊操作的結果,正差分數(shù)據(jù)被轉換成偶數(shù),以及負差分數(shù)據(jù)被轉換成奇數(shù)。
      折疊處理器940計算為對經(jīng)過折疊操作的差分數(shù)據(jù)進行編碼而所需的位的數(shù)量并將其存儲在一預定存儲器nQStep fold。在該步驟中,編碼所需的位的數(shù)量的計算可在后面的選擇將被熵編碼的差分數(shù)據(jù)的步驟后執(zhí)行,這對本領域的技術人員來說是顯而易見的。通過在折疊處理器940中的折疊操作生成的數(shù)據(jù)被輸出給DND處理器950。
      為提高熵編碼的效率,DND處理器950在關鍵字數(shù)據(jù)的輸入差分數(shù)據(jù)上執(zhí)行一DND操作一預定次數(shù),從而在步驟S9600中減小差分數(shù)據(jù)的范圍。
      參考圖9B,DND處理器950包括一DND運算符952,一第一差分數(shù)據(jù)選擇器954,一上移運算符956,以及一第二差分數(shù)據(jù)選擇器958。該DND運算符952在差分數(shù)據(jù)上執(zhí)行一DND操作。該第一差分數(shù)據(jù)選擇器954基于用于編碼的位的數(shù)量來選擇將被熵編碼的差分數(shù)據(jù)。該上移運算符956在通過一DND操作的差分數(shù)據(jù)上執(zhí)行一上移操作。該第二差分數(shù)據(jù)選擇器958從具有僅通過DND操作的差分數(shù)據(jù)和通過上移操作的差分數(shù)據(jù)上選擇具有一較低離散度的一個并將所選擇的差分數(shù)據(jù)輸出到熵編碼器960。
      下面描述將在DND運算符952中執(zhí)行的DND操作。
      當在折疊處理器940中通過折疊操作的差分數(shù)據(jù)被輸入到DND運算符952中時,它們被劃分成二組,比另一差分數(shù)據(jù)組具有一較高范圍的一組差分數(shù)據(jù)通過一劃分函數(shù)被移動到正數(shù)區(qū)域中。劃分函數(shù)由下述等式來定義。
      divide(nQKeyj,nKeyMax) …(13)
      =nQKeyj-(nKeyMax+1)
      =nQKeyj
      在這里,j表示輸入差分數(shù)據(jù)的一指數(shù),nQKeyj表示一整數(shù)數(shù)組,以及nKeyMax表示通過折疊操作的差分數(shù)據(jù)間的一最大值。特別地,在大多數(shù)差分數(shù)據(jù)沿所有差分數(shù)據(jù)占用的整個區(qū)域的邊界被密集地填充的情況下,使用該劃分操作有可能相當大地減小所有差分數(shù)據(jù)的整個區(qū)域。
      在劃分操作后,計算離散度,在這種情況下,編碼所需的位的大小被用作離散度的一度量以便選擇用于編碼的位的大小中的一最小值。
      在DND操作后,不同類型的DND操作,即一上劃操作或一下劃操作被進一步執(zhí)行。根據(jù)差分數(shù)據(jù)的一正范圍的大小以及差分數(shù)據(jù)的一負范圍的大小,確定將進一步執(zhí)行一上劃操作還是一下劃操作。
      如果具有正值的差分數(shù)據(jù)的范圍大于具有負值的差分數(shù)據(jù)的范圍,執(zhí)行由下述等式定義的一下劃操作。
      divide-dwon(nQKeyj,nKeyMax) …(14)
      =-2(nKeyMax-nQKeyj+1)+1
      =nQKeyj
      =2·nQKeyj (nQKeyj<0)
      另一方面,如果具有正值的差分數(shù)據(jù)的范圍大于具有負值的差分數(shù)據(jù)的范圍,執(zhí)行由下述等式定義的一上劃操作。
      divide-up(nQKeyj,nKeyMin) …(15)
      =nQKeyj (nQKeyj≥0)
      =2·nQKeyj
      =2(nKeyMin-nQKeyj-1)+1
      在等式(14)和(15)中,j表示量化關鍵字數(shù)據(jù)的一指數(shù),nQKeyj表示一整數(shù)數(shù)組,nKeyMax表示nQKeyj的一最大值,以及nKeyMin表示nQKeyj的一最小值。
      下面將參考圖10E來描述DND運算符952的操作。
      當從折疊處理器940輸入關鍵字數(shù)據(jù)的差分數(shù)據(jù)時,DND運算符952在步驟S9610中獲得輸入差分數(shù)據(jù)間的最大值nKeyMax和最小值nKeyMin。然后,在步驟S9620中,DND運算符將nKeyMax的絕對值與nKeyMin的絕對值比較。如果nKeyMax不小于nKeyMin的絕對值,DND運算符952在步驟S9622中將nKeyMax設置為在DND操作的當前周期中的一最大值。
      DND運算符952核對DND操作的次數(shù)是否為1,換句話說,如果DND的次數(shù)為1,在步驟S9624中,如果它是,則DND運算符952在步驟S9630中通過將最大值nKeyMax代入等式(13)中來在輸入差分數(shù)據(jù)上執(zhí)行一劃分操作。
      此后,在步驟S9640中,使用函數(shù)getQBit(),DND運算符952使用劃分操作來測量用于編碼已經(jīng)被減小的差分數(shù)據(jù)范圍的位的大小。在步驟S9650中,如果DND操作的次數(shù)變?yōu)?,編碼所需的位的大小被存儲為表示用于編碼的最小位的大小的一值nQBitDND,以及在步驟S9655中將DND操作的次數(shù)加1。
      接著,DND處理器952再次執(zhí)行步驟S9610至S9622。如果在步驟S9624中DND操作的次數(shù)不為1,則在步驟S9634中,DND運算符952通過將最大值nKeyMax代入等式(14)來執(zhí)行一下劃操作。在步驟S9640中,DND運算符952計算用于編碼通過下劃操作的差分數(shù)據(jù)的位的數(shù)量。如果該數(shù)量小于在先前DND操作周期中存儲的最小值nQBitDND,在步驟S9658中,在DND操作后,它替換要求用于編碼的最小的位的大小。
      如果在步驟S9620中,最小值nKeyMin的絕對值似乎大于最大值nKeyMax的絕對值,在步驟S9623中,在當前DND操作的周期中的最大值被更新為一最小值,然后,在步驟S9628中,通過將最小值nKeyMin代入等式(15)中來執(zhí)行一上劃操作。此后,DND運算符952在步驟S9640中計算用于編碼通過上劃操作的差分數(shù)據(jù)的位的數(shù)量。在步驟S9652中,如果計算結果變?yōu)樾∮谠谙惹癉ND操作周期中存儲的nQBitDND,在步驟S9658中,在DND操作后,它替換要求用于編碼的位的最小數(shù)nQBitDND。
      DND處理器952執(zhí)行預定次數(shù)的DND操作,以及DND操作的性能的數(shù)量可改變。例如,在本發(fā)明實施例中,執(zhí)行7次DND操作。DND運算符952將nQBitDND和與nQBitDND相對應的差分數(shù)據(jù)輸出到第一差分數(shù)據(jù)選擇器954中。DND運算符952將通過其生成相應差分數(shù)據(jù)的DND次數(shù)輸出到標題編碼器400中并允許它們包括在位流中。
      第一差分數(shù)據(jù)選擇器954接收經(jīng)過移位操作的差分數(shù)據(jù)、經(jīng)過折疊操作的差分數(shù)據(jù)以及經(jīng)過DND操作的差分數(shù)據(jù)并在它們?nèi)齻€中確定將被熵編碼的差分數(shù)據(jù)。
      參考圖10A,在步驟S9710中,如果在DND操作后為進行編碼而所需的位的最小數(shù)nQBitDND不小于在步驟S9700DPCM操作后用于編碼的大小nQBitDND,則第一差分數(shù)據(jù)選擇器954選擇DPCM的結果并在它們上執(zhí)行一移位操作。接著,第一差分數(shù)據(jù)選擇器954將位移操作的結果輸出給熵編碼器960并允許在步驟S9710中編碼它們。在這種情況下,DND操作的次數(shù)被設置為-1,被輸出到標題編碼器400并被包括在關鍵字標題中。
      然而,如果在步驟S9720中出現(xiàn)nQBitDND小于nQStep-DPCM并不小于在折疊操作后用于編碼的位的大小,第一差分數(shù)據(jù)選擇器954將經(jīng)過折疊操作的差分數(shù)據(jù)輸出到熵編碼器960中并在步驟S9730中允許熵編碼它們,在這種情況下,DND操作的次數(shù)被設置為0,輸出到標題編碼器400,從而包括在關鍵字標題中。
      如果在DND操作后用于編碼差分數(shù)據(jù)的位的數(shù)量是最小的,第一差分數(shù)據(jù)選擇器954將經(jīng)過DND操作的差分數(shù)據(jù)輸出到上移運算符956中,然后在步驟S9740中上移運算符956計算從第一差分數(shù)據(jù)選擇器954輸入的差分數(shù)據(jù)的第一離散度。接著,上移運算符956在步驟S9800在經(jīng)過DND操作的差分數(shù)據(jù)上執(zhí)行用下述等式定義的上移操作并在步驟S9810中計算上移操作的結果的第二離散度。
      shift-up(nQKeyj,nkeyMax) …(16)
      =nQKeyj (nQKeyj≥0)
      =nKeyMax-nQKeyj (nQKeyj<0)
      在這里,j表示量化關鍵值數(shù)據(jù)的差分數(shù)據(jù)的一指數(shù),nQKeyj表示一整數(shù)數(shù)組,以及nKeyMax表示差分數(shù)據(jù)間的一最大值。
      當輸入經(jīng)過DND操作的差分數(shù)據(jù)以及經(jīng)過上移操作的差分數(shù)據(jù)時,在步驟S9900中,第二差分數(shù)據(jù)選擇器958將第一離散度與第二離散度進行比較。如果第二離散度小于第一離散度,第二離散數(shù)據(jù)選擇器958將經(jīng)過上移操作的差分數(shù)據(jù)輸出到熵編碼器960并在步驟S9910中允許熵編碼它們。第二差分數(shù)據(jù)選擇器958輸出用在DND操作中的最大和最小值nKeyMax和nKeyMin。在本發(fā)明的一優(yōu)選實施例中,標準偏差可被用作第一和第二離散度的一度量。
      熵編碼器960根據(jù)差分數(shù)據(jù)的特點在差分數(shù)據(jù)上執(zhí)行兩個不同的函數(shù)。例如,經(jīng)過一DPCM操作和一移位操作的差分數(shù)據(jù)以及僅經(jīng)過一劃分操作的差分數(shù)據(jù)具有正和負值,因此它要求執(zhí)行編碼每個差分數(shù)據(jù)的特征位和差分數(shù)據(jù)本身的一處理。另一方面,由于經(jīng)過一折疊操作的差分數(shù)據(jù)僅具有正值,執(zhí)行僅編碼差分數(shù)據(jù)的一處理。
      在本發(fā)明的一優(yōu)選實施例中,函數(shù)encodeSignedAAC被用于編碼差分數(shù)據(jù)以及它們的特征位,以及函數(shù)encodeUnsignedAAC被用于僅編碼差分數(shù)據(jù)。
      圖11是函數(shù)encodeSignedAAC()的例子的圖。參考圖11,當一輸入值是74以及用于編碼該輸入值的位的數(shù)量為8時,其特征位為0,以及它與二進制數(shù)1001010相同。特征位以及所有位平面用下述方法編碼。
      第一步在每個位平面上按從其最高有效位(MSB)到其最低有效位的順序編碼一二進制數(shù);
      第二步核對當前正被編碼的位是否為0;
      第三步如果當前正被編碼的位不是0,接著編碼該二進制數(shù)的特征位;以及
      第四步編碼該二進制數(shù)據(jù)的其余位;
      使用與這些值有關的環(huán)境,函數(shù)encodeUnsignedAAC將不具有一特征位的這些值編碼成一自適應算術編碼位流。該函數(shù)除存在一特征位上下文(sign context)外,幾乎與函數(shù)encodeSignedAAC()相同。
      圖12A至12J是根據(jù)本發(fā)明的一優(yōu)選實施例,表示經(jīng)過操作的關鍵字數(shù)據(jù)的圖。在圖12A至12J,X軸表示每個關鍵字數(shù)據(jù)的指數(shù),以及Y軸表示關鍵字數(shù)據(jù)的值。
      圖12A是表示輸入到本發(fā)明的編碼器中的原始關鍵字數(shù)據(jù)的圖。如圖12A所示的關鍵字數(shù)據(jù)被輸出到量化器910中,然后與9個量化位一起被量化以便獲得如圖12B所示的量化關鍵字數(shù)據(jù)。如果在如圖12B所示的量化關鍵字數(shù)據(jù)上執(zhí)行DPCM,獲得如圖12C所示的差分數(shù)據(jù)。
      接著,使用約為7的一模式值來移位該量化關鍵字數(shù)據(jù)的差分數(shù)據(jù)以便獲得如圖12D所示的差分數(shù)據(jù)。此后,如果在移位差分數(shù)據(jù)上執(zhí)行一折疊操作,獲得如圖12E所示的僅為正值的數(shù)據(jù)。
      在如圖12E所示的折疊數(shù)據(jù)上執(zhí)行一DND操作的結果如圖12F至12H所示。具體來說,在折疊數(shù)據(jù)上執(zhí)行一劃分操作的結果如圖12F所示。如圖12F所示,正關鍵字數(shù)據(jù)值范圍從0至28,負關鍵字數(shù)據(jù)值范圍從-28至0,這表示負關鍵字數(shù)據(jù)值的范圍大于正關鍵字值數(shù)據(jù)的范圍。因此,要求在如圖12F所示的數(shù)據(jù)上執(zhí)行一上劃操作,以及上劃操作的結果如圖12G所示。
      作為上劃分操作的結果,相當大地減小了負關鍵字數(shù)據(jù)值的范圍以便它遠小于正關鍵字數(shù)據(jù)值的范圍。在DND操作的下一周期,在上劃操作的結果上執(zhí)行一下劃操作。圖12H是表示在如圖12G所示的差分數(shù)據(jù)上執(zhí)行一下劃操作的結果。在如圖12H所示的關鍵字數(shù)據(jù)上執(zhí)行一上移操作的結果如圖12I所示。
      如圖12A至12G所示,逐漸減小關鍵字數(shù)據(jù)和差分數(shù)據(jù)的范圍。然而,如圖12H和12I所示,在上移操作后增加的差分數(shù)據(jù)的范圍大于在上移操作前,這表示經(jīng)過劃分操作的差分數(shù)據(jù),如圖12H所示,是將被最終編碼的差分數(shù)據(jù),如圖12J所示。
      在標題編碼器400中編碼以及在關鍵字標題中存儲的信息如下所述。
      當輸入將被編碼的關鍵字數(shù)據(jù)時,標題編碼器400編碼將編碼的關鍵字數(shù)據(jù)的數(shù)字數(shù)和關鍵字數(shù)。接著,標題編碼器400從線性關鍵字編碼器900接收有關是否存在經(jīng)過線性關鍵字對輸入關鍵字數(shù)據(jù)進行編碼的一線性關鍵字數(shù)據(jù)區(qū)域以及在該線性關鍵字數(shù)據(jù)區(qū)域中的關鍵字數(shù)據(jù)的數(shù)量的信息并從浮點數(shù)轉換器905接收經(jīng)過浮點數(shù)轉換的線性關鍵字數(shù)據(jù)的開始和結尾關鍵字數(shù)據(jù)。
      在浮點數(shù)轉換器接收能帶來一最小量化誤差的最小和最大值并將它們轉換成浮點數(shù)的情況下,轉換的最大和最小值被從浮點數(shù)轉換器905輸入到標題編碼器400以便它們能被再次用于逆量化。另外,量化位的大小也能被輸入到標題編碼器400中并被包括在關鍵字標題中。
      關鍵字標題編碼器400從DPCM處理器920接收DPCM的次數(shù)以及在每個DPCM循環(huán)中的內(nèi)部關鍵字數(shù)據(jù)并從移位器930接收已經(jīng)用于一移位操作的一模式值。另外,標題編碼器400從DND處理器950接收有關是否已經(jīng)執(zhí)行一上移操作以及DND次數(shù)的信息,通過該操作,能減小差分數(shù)據(jù)的離散度,以及在每個DND操作周期中的最大和最小值。
      最后,標題編碼器從熵編碼器960接收用于編碼的位的數(shù)量并將其編碼為一關鍵字標題。
      在下文中,參考圖13A至20B,根據(jù)本發(fā)明的第一實施例來更全面地描述一關鍵字值數(shù)據(jù)編碼器300的結構和操作。
      圖13A是根據(jù)本發(fā)明第一實施例的一關鍵字值數(shù)據(jù)編碼器300的框圖。參考圖13A,關鍵字值數(shù)據(jù)編碼器300包括一旋轉DPCM運算符1300,一循環(huán)DPCM運算符,一熵編碼器1450,以及一標題編碼器。旋轉DPCM運算符1300計算在連續(xù)關鍵幀中一對象的旋轉變換值間的旋轉差分值,將關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)應用到它們各自的對象上,量化該旋轉差分值,并輸出旋轉差分值。該循環(huán)DPCM運算符在量化旋轉差分數(shù)據(jù)上有選擇地執(zhí)行一線性DPCM或一循環(huán)DPCM操作。該熵編碼器1450對旋轉DPCM或循環(huán)DPCM旋轉差分數(shù)據(jù)進行熵旋轉。該標題編碼器編碼為譯碼已編碼的動畫內(nèi)插器節(jié)點的關鍵字值數(shù)據(jù)所需的信息。
      旋轉DPCM編碼器1300包括一第一四元數(shù)乘法器1310,一量化器1340,一逆量化器1350,一第二四元數(shù)乘法器1370,以及一延遲器1390。該第一四元數(shù)乘法器1310計算在一前關鍵幀的一對象的一旋轉變換值與在一當前關鍵幀中該對象的一旋轉變換值間的一旋轉差分值,通過將在當前關鍵幀中的該對象的旋轉變換值四元數(shù)乘以在前關鍵幀中的該對象的旋轉轉換值。該量化器1340通過非線性量化從第一四元數(shù)乘法器1310輸入的旋轉差分數(shù)據(jù)來生成量化差分數(shù)據(jù)。該逆量化器1350通過逆量化已量化旋轉差分數(shù)據(jù)來生成在當前關鍵幀中的該對象的復原旋轉差分數(shù)據(jù)。該第二四元數(shù)乘法器1370通過將在當前關鍵幀中的該對象的旋轉差分值四元數(shù)乘以通過累加旋轉差分數(shù)據(jù)所計算的在前關鍵幀中該對象的旋轉變換值來復原在當前關鍵幀中的該對象的旋轉變換值。該延遲器1390當輸入在下一關鍵幀中的該對象的一旋轉變換值時,將在當前關鍵幀中的該對象的復原旋轉變換值輸出到第一四元數(shù)乘法器。
      在下文中,將更詳細地描述根據(jù)本發(fā)明的在一旋轉DPCM運算符中執(zhí)行的一旋轉DPCM操作。
      在已經(jīng)在常規(guī)MPEG-4PMFC中采用的一線性DPCM方法中,用下面的等式(17)來計算表示在一當前關鍵幀中一對象的旋轉變換(或表示在一當前關鍵幀中一對象被旋轉變換的程度)的一四元數(shù)旋轉變換值Q1(Q1=(q1,0,q1,1,q1,2,q1,3))與表示在下一關鍵幀中該對象的旋轉變換的一四元數(shù)旋轉變換值Q2(Q2=(q2,0,q2,1,q2,2,q2,3))間的一差分值。
      QlinearDPCM=(q1,0-q2,0,q1,1-q2,1,q1,2-q2,2,q1,3-q2,3)…(17)
      然而,線性DPCM方法僅計算四元數(shù)分量間的一差分值,這不能反映任何有意義的旋轉差分值,即一實際的旋轉差分值。因此,線性DPCM方法不能有效地減少將被編碼的連續(xù)關鍵字值數(shù)據(jù)間的冗余。另外,在線性DPCM方法中,除具有最大值的一個分量之外,編碼一四元數(shù)的三個分量。因此,有必要另外編碼在未被編碼的該一個分量上的2比特的長信息,并將該2比特的長信息從一編碼器傳送到一譯碼器。
      為利用通過減小在連續(xù)關鍵字值數(shù)據(jù)間的冗余的傳統(tǒng)線性DPCM方法來解決上述問題,根據(jù)本發(fā)明的第一實施例,關鍵字值數(shù)據(jù)編碼器提供一旋轉的DPCM操作,其中考慮到實際的旋轉差分值。

      表示一基準矢量,該基準矢量表示在一當前關鍵幀中的一對象的一基準位置,
      表示當關鍵字值等于ki-1時的關鍵字值數(shù)據(jù),以及
      通過旋轉變換在當前關鍵幀中的對象獲得的
      的一位移矢量,在一四元數(shù)空間中的旋轉變換能用下面的等式表示。
      在等式(18)中,X0,Yi-1,Qi-1以及
      分別表示
      以及
      的單位四元數(shù)(unit quarternion)。另外,
      表示Qi-1的一四元數(shù)復共扼,以及×表示四元數(shù)乘法。
      用這種方式,當關鍵字數(shù)據(jù)等于ki時,在一四元數(shù)空間中的旋轉變換能用下面的等式來表示。
      可用以下等式(20)來計算連續(xù)關鍵字值數(shù)據(jù)的連續(xù)旋轉變換值間的一旋轉差分值。
      因此,能通過由等式(5)和(6)導出的下面的等式來定義一旋轉差分值。
      為防止一量化誤差擴展到下一旋轉差分值,根據(jù)本發(fā)明的一實施例,關鍵字值數(shù)據(jù)編碼器300利用在下一關鍵幀中的一旋轉變換值以及前關鍵幀中的一復原旋轉變換值
      來重新定義由等式(21)定義的該旋轉差分值,如等式(22)中所示。
      在下文中,將參考圖13B來描述一種用于根據(jù)本發(fā)明的第一實施例編碼關鍵字值數(shù)據(jù)的方法。圖13B是根據(jù)本發(fā)明的第一實施例的用于編碼關鍵字值數(shù)據(jù)的方法。
      根據(jù)本發(fā)明的第一實施例,關鍵字值數(shù)據(jù)編碼器在步驟S1300中接收DPCM次數(shù)、一熵編碼模式以及關鍵字值數(shù)據(jù)。
      接著,在步驟S13050中,第一四元數(shù)乘法器1310接收用一四元數(shù)表示的關鍵字值數(shù)據(jù)Qi并核對輸入的關鍵字值數(shù)據(jù)Qi是否是第一關鍵字值數(shù)據(jù)Q0。如果輸入的關鍵字值數(shù)據(jù)Qi是第一關鍵字值數(shù)據(jù)Q0,表示沒有用于四元數(shù)乘法的累加的四元數(shù)變換值。因此,第一四元數(shù)乘法器1310將輸入關鍵字值數(shù)據(jù)Qi輸出到量化器1340中。如果輸入關鍵字值數(shù)據(jù)Qi不是第一關鍵字值數(shù)據(jù)Qo,在步驟S13100中,通過將前關鍵幀中的復原四元數(shù)變換值
      的復共扼)四元數(shù)乘以由一四元數(shù)變換值表示的輸入關鍵字值數(shù)據(jù)Qi
      第一四元數(shù)乘法器1310計算一四元數(shù)差分值
      其是當前關鍵幀的關鍵字值數(shù)據(jù)與前關鍵幀的復原關鍵字值數(shù)據(jù)間的一差分值。
      在步驟13300中,量化器1340從第一四元數(shù)乘法器1310接收第一關鍵字值數(shù)據(jù)Q0或四元數(shù)旋轉差分值
      并使用一預定數(shù)量的量化位來量化該輸入。
      由于所有旋轉四元數(shù)差分值均由單位四元數(shù)表示,表示一旋轉差分值的一四元數(shù)的一范數(shù)總是為1。因此,在未被編碼的一四元數(shù)的四個分量中的一分量能使用其它三個分量來譯碼。根據(jù)本發(fā)明的第一實施例,關鍵字值數(shù)據(jù)編碼器300僅編碼一四元數(shù)的四個分量中的三個以便將被編碼的數(shù)據(jù)量。因此,量化器1340僅量化將被編碼的三個分量。
      根據(jù)本發(fā)明,量化器1340執(zhí)行非線性量化而不是一般的線性量化,以及下面將參考圖14A描述該原因。
      圖14A是描述在一旋轉差分值的每個分量中的一概率分布函數(shù)(PDF)的一個典型的例子的圖。如圖14A所示,旋轉差分值的分量值一般集中在0左右,這被稱為能源壓縮并表示有可能有效地降低旋轉信息片中的冗余。因此,為量化旋轉差分值,更充分地反映每個旋轉差分值的較低的分量值,需要更完善地在較低分量值上執(zhí)行量化,這就是為什幺根據(jù)本發(fā)明的量化器1340執(zhí)行非線性量化的原因。此時,量化器1340使用一反正切曲線以便將一非線性比例因子分配給每個旋轉差分值。
      圖14B根據(jù)本發(fā)明給出用于量化的一反正切曲線。如圖14B所示,該反正切曲線向較高輸入值提供一適當?shù)姆直媛什⑾蜉^低輸入值提供一更高的分辨率。量化器1340使用如下所示的等式的一非線性比例函數(shù)來量化在步驟S13300中的一旋轉差分值。
      此時,
      表示輸入到該量化器1340中的旋轉差分值的每個分量,qi′表示
      的一比例值,nQBits表示用于量化的預定數(shù)量的量化位,以及floor(x)表示用于將一輸入值x變換成不大于x的一最大整數(shù)的一函數(shù)。
      量化器1340在輸入旋轉差分值上執(zhí)行量化,然后核對量化的旋轉差分數(shù)據(jù)是否與將被編碼的最后一個關鍵字值數(shù)據(jù)相對應。如果量化后的旋轉差分數(shù)據(jù)與最后一個關鍵字值數(shù)據(jù)相對應,該量化器1340將量化后的旋轉差分數(shù)據(jù)輸出到循環(huán)DPCM運算符1400中。如果量化后的旋轉差分數(shù)據(jù)不與最后的關鍵字值數(shù)據(jù)相對應,量化器1340將量化后的旋轉差分數(shù)據(jù)輸出到逆量化器1350中。
      在步驟S13400中,反量化器1350相反地量化從量化器1340輸入的量化后的旋轉差分數(shù)據(jù)并在步驟S1350中輸出一復原旋轉差分數(shù)據(jù)。
      如上所述,根據(jù)本發(fā)明的第一實施例,關鍵字值數(shù)據(jù)編碼器通過量化除第一分量外的三個分量,僅編碼表示一旋轉差分值的一四元數(shù)的三個分量。一關鍵字數(shù)據(jù)譯碼器的一逆量化器2430,如圖21A所示,以及在上面描述過的逆量化器1350被假定使用三個編碼過的分量來復原在旋轉差分值的四個分量中未被編碼的其它的一個。由于所有旋轉差分值每個均由一單位四元數(shù)表示,表示一旋轉差分值的一四元數(shù)的范數(shù)始終為1。因此,使用下述等式來復原旋轉差分值的四個分量中的第一分量是可能的。
      在等式(24)中,
      以及
      表示一旋轉差分值的三個復原分量,以及
      表示使用三個復原分量
      以及
      而復原的第一分量。
      為利用等式(11)來復原第一分量
      第一分量
      必須具有一正值,并且該條件可通過利用當將一四元數(shù)應用到在一13D空間中的一對象的旋轉變換中時所出現(xiàn)的一四元數(shù)的特征來滿足,并如等式(25)所示。
      Y=Q×X×Q*=(-Q)×X×(-Q)* …(25)
      等式(25)表示當將旋轉變換應用到在一3D空間的一對象時旋轉變換值Q和-Q具有相同的物理含義。因此,如果根據(jù)本發(fā)明的第一實施例,在關鍵字值數(shù)據(jù)編碼器300中一旋轉差分值的第一分量能通過將該旋轉差分值的每個分量乘以-1容易被轉換成一正值。然而,在這種情況下,除第一分量外一復原旋轉差分值的每個分量的平方和由于一量化誤差可能超過1。在這種情況下,不能由等式(24)確定
      并被認為是接近0以及小于能被量化器1340量化的一最小值的一值。
      具有這樣一值的事實表示該對象已經(jīng)通過幾乎等于約180度被旋轉變換。因此,一個用于譯碼一定向內(nèi)插器的裝置需要用于確定
      的一種方法同時減小復原第一分量值
      在三個復原分量值
      以及
      上的影響,并且該方法將被應用到用于根據(jù)本發(fā)明的第一實施例的關鍵字值數(shù)據(jù)編碼器300的逆量化器1350中。例如,能由量化器1340量化的最小值乘以一預定整數(shù)可被確定為
      下面的等式可被用來確定
      在等式(26)中,’a’表示一任意常數(shù),以及m表示一預定數(shù)量的量化位。
      當在常規(guī)MPEG-4BIFS PMFC方法中要求有關每個關鍵字值數(shù)據(jù)的2比特長的信息用于譯碼時,該2比特長信息在本發(fā)明不是必須的,因此當編碼N個關鍵字值數(shù)據(jù)時,將被編碼的位的數(shù)量能被減少差不多2N。
      從該逆量化器350輸出的復原旋轉差分值被輸入到第二四元數(shù)乘法器1370中,以及在步驟S13600中該第二四元數(shù)乘法器1370核對一輸入關鍵幀是否是將被編碼的一第一關鍵幀。如果該輸入關鍵幀是將被編碼的第一關鍵幀時,第二四元數(shù)乘法器1370累加從該逆量化器輸入的第一關鍵幀的復原旋轉變換值并在步驟S13800中將累加值輸出到該延遲器1390中。
      如果該輸入關鍵幀不是將被編碼的第一關鍵幀時,在步驟S13700中,通過將當前關鍵幀的一旋轉差分值
      與一前關鍵幀的一復原旋轉變換值
      四元數(shù)相乘第二四元數(shù)乘法器1370復原一當前關鍵幀的一旋轉變換值
      第二四元數(shù)乘法器1370將當前關鍵幀的復原旋轉變換值
      輸出給延遲器1370,然后延遲器1390保持該
      直到下一關鍵幀的一旋轉變換值被輸出以便
      等于
      然后將
      輸出到第一四元數(shù)乘法器1310中。
      當一當前關鍵幀的一旋轉變換值Qi被輸入到第一四元數(shù)乘法器1310中時,第一四元數(shù)乘法器1310也從延遲器1390接收一前關鍵幀的復原旋轉變換值
      并在步驟S13100中通過將前關鍵幀中的復原四元數(shù)變換值
      四元數(shù)乘以Qi
      來生成當前關鍵幀的旋轉變換值與前關鍵幀的復原旋轉變換值間的一旋轉差分值Qi。
      生成的旋轉差分值被輸出到量化器1340中,然后在步驟S13300中,按如下所述,由量化器1340量化。在步驟S13400中,如果所輸入的旋轉差分值與最后一個關鍵字值數(shù)據(jù)相對應,量化器1340將通過量化一旋轉差分值所生成的旋轉差分數(shù)據(jù)輸出到循環(huán)DPCM運算符400中。
      循環(huán)DPCM運算符1400核對從量化器1340輸入的量化的旋轉差分數(shù)據(jù)的DPCM的次數(shù)是否為0。在步驟S14000中,如果DPCM的次數(shù)為0,循環(huán)DPCM運算符1400將量化的旋轉差分數(shù)據(jù)輸出到熵編碼器1450中而不執(zhí)行一線性DPCM操作和一循環(huán)DPCM操作。如果DPCM的次數(shù)不為0,在步驟S14100中,循環(huán)DPCM運算符1400在該量化旋轉差分數(shù)據(jù)上執(zhí)行一線性DPCM操作以及一循環(huán)DPCM操作。
      圖15A是描述從該量化器1340輸出的差分數(shù)據(jù)的例子的圖,以及圖15B是描述在從量化器1340輸出的差分數(shù)據(jù)上執(zhí)行一線性DPCM操作的結果的圖。
      如圖15B所示,作為一線性DPCM操作的結果,將被編碼的差分數(shù)據(jù)的范圍可比它過去增加二倍。循環(huán)DPCM操作的性能的目的是將差分數(shù)據(jù)的范圍保持在量化的差分數(shù)據(jù)的范圍內(nèi)。
      循環(huán)DPCM操作是在假定在一量化范圍內(nèi)的一最大值和一最小值被循環(huán)地彼此連接之下執(zhí)行的。因此,如果在兩個連續(xù)量化數(shù)據(jù)上執(zhí)行線性DPCM的結果的差分數(shù)據(jù)大于在量化范圍內(nèi)的最大值的一半時,通過從差分數(shù)據(jù)減去最大值,可用較小值來表示它們。
      如果差分數(shù)據(jù)小于在量化范圍內(nèi)中的最小值的一半時,通過將在量化范圍內(nèi)的最大值加到該差分數(shù)據(jù)上,可用較小值甚至更大的來表示它們。


      分別表示在兩個連續(xù)時間瞬間ti和ti-1的量化旋轉差分數(shù)據(jù),在下面的等式(27)的兩個連續(xù)量化旋轉并非分數(shù)據(jù)

      上執(zhí)行一線性DPCM操作。
      另外,在下面的等式(27)、(28)獲得的差分數(shù)據(jù)上執(zhí)行一循環(huán)DPCM操作。
      (如果Xi≥0)(相反)
      在等式(28)中,nQBits表示一預定數(shù)量的量化位。圖15C是描述在如圖15B所示的DPCM差分數(shù)據(jù)上執(zhí)行一循環(huán)DPCM操作的結果的圖。如圖15C所示,循環(huán)DPCM差分數(shù)據(jù)的范圍越小于線性DPCM差分數(shù)據(jù)的范圍。
      熵編碼器1450根據(jù)旋轉差分數(shù)據(jù)的DPCM的次數(shù)從循環(huán)DPCM運算符1400接收旋轉差分數(shù)據(jù)或循環(huán)DPCM旋轉差分數(shù)據(jù),然后通過移除位冗余來編碼輸入差分數(shù)據(jù)。
      再參考圖13B,熵編碼器1450在步驟S14500中核對一熵編碼模式。
      如果熵編碼模式是一二進制熵編碼模式,則在步驟S14600中熵編碼器1450使用一函數(shù)SignedAAC()來編碼該輸入差分數(shù)據(jù)。如果熵編碼模式是一一元熵編碼模式,則在步驟S14700中使用一函數(shù)UnaryAAC()來編碼該輸入差分數(shù)據(jù)。
      函數(shù)SignedAAC()被用來利用一自適應的二進制算術編碼器來編碼差分數(shù)據(jù),函數(shù)SignedAAC()在每個位平面上編碼該差分數(shù)據(jù)的標記和大小,并且編碼方法已經(jīng)參考圖11在上面描述過。
      另一方面,函數(shù)UnaryAAC()被用來通過將被編碼的一值轉換成一系列0、表示該0系列結束的一特征位位1以及表示該值的標記的另一位來編碼符號,0系列的數(shù)量與該值的大小相對應。
      在下文中,函數(shù)UnaryAAC()將參考圖16B在下面更全面地描述。例如,2156被編碼成一系列位,這些位由256個Os,表示Os系列結束的一特征位位1,以及表示256的標記的0,即函數(shù)UnaryAAC()的一加號標記組成。由于UnaryAAC(),表示將被編碼的符號的位間的冗余增加,這提高了編碼該符號的有效性。
      在下文中,將描述根據(jù)本發(fā)明的第二實施例的一關鍵字值數(shù)據(jù)編碼器300。根據(jù)本發(fā)明的第二實施例的關鍵字值數(shù)據(jù)編碼器300包括一裝置,用于校正在量化期間產(chǎn)生的一旋轉方向誤差以及用于根據(jù)本發(fā)明的第一實施例編碼的關鍵字值數(shù)據(jù)編碼器300的所有組件。
      圖17是描述在使用旋轉差分值編碼四元數(shù)旋轉變換值期間生成的一旋轉方向誤差的圖。由于在根據(jù)本發(fā)明的關鍵字值數(shù)據(jù)編碼器300中執(zhí)行的四元數(shù)編碼方法是有損編碼方法(loss encoding method),從而導致旋轉方向誤差。
      在圖17中,當Qi,Qi-1,

      分別表示當前正被應用到在一第I關鍵幀中的一對象的一旋轉變換值、應用到在一前關鍵幀中的該對象的一旋轉變換值、從QI復原一值以及從Qi-1復原一值時,通過幾乎等于分別由Qi,Qi-1,

      表示的旋轉變換旋轉的該對象的位置可由四個不同區(qū)域表示,如圖17所示。
      換句話說,如果該對象沿一最短弧線從Qi-1旋轉到Qi因此在由Qi和Qi-1旋轉后,該對象位于區(qū)1和區(qū)3中,該對象被認為按逆時鐘方向從Qi-1旋轉到Qi。此時,如果該對象沿一最短路線從Qi-1旋轉到Qi因此在按Qi-1和Qi旋轉后,該對象位于區(qū)2和區(qū)4中,該對象被認為按順時針方向從Qi-1旋轉到Qi。
      另一方面,如果已經(jīng)被編碼,然后被譯碼的旋轉信息旋轉該對象,用于譯碼一定向內(nèi)插器的一種裝置利用分別與Qi,Qi-1相對應的

      來旋轉該對象。因此,如果相對于由
      所旋轉的該對象的位置而言,由
      所旋轉的對象的相對位置是區(qū)2或3,該對象逆時針旋轉。如果相對于由
      所旋轉的該對象的位置而言,由
      所旋轉的對象的相對位置是區(qū)1或4,該對象順時針旋轉。在區(qū)1和2中,當利用一原始旋轉變換值時,該對象的旋轉方向可能與當利用一譯碼的旋轉變換值的該對象的旋轉方向相反,因為Qi和
      與被執(zhí)行以編碼四元數(shù)旋轉變換值的損失編碼是不同的。為解決該問題,需要減小該對象在與所需要的方向相反的一錯誤方向中所旋轉的程度或當該對象在一錯誤方向中旋轉時校正該對象的旋轉方向以便該對象在一需要的方向中旋轉。在本發(fā)明中,采用用于校正該對象的旋轉方向的方法以便使該對象在一需要的方向中旋轉。
      再參考圖17,在下文中將簡單地描述根據(jù)本發(fā)明的校正一旋轉方向誤差的原理。如果檢測到一旋轉方向誤差,如在區(qū)1和2中產(chǎn)生的現(xiàn)象,將被編碼的四元數(shù)旋轉差分值被控制以便在一正確方向中旋轉,在這種情況下在區(qū)2中仍然會發(fā)生在旋轉方向中的不一致性。然而,在區(qū)2中,不象在區(qū)1中,原始四元數(shù)值以及復原四元數(shù)值間的差值相比較小。因此,根據(jù)本發(fā)明第二實施例的旋轉方向校正僅在區(qū)1上執(zhí)行。
      在下文中,將參考圖18A至19B來描述根據(jù)本發(fā)明第二實施例的執(zhí)行旋轉方向校正的關鍵字值數(shù)據(jù)編碼器300。根據(jù)本發(fā)明第二實施例的關鍵字值數(shù)據(jù)編碼器300與根據(jù)本發(fā)明第一實施例的關鍵字值數(shù)據(jù)編碼器300的結構幾乎相同。它們間的唯一區(qū)別是一旋轉DPCM運算符的結構,因此在下面將僅描述根據(jù)本發(fā)明第二實施例的關鍵字值數(shù)據(jù)編碼器300中的一旋轉DPCM運算符的結構。
      圖18A根據(jù)本發(fā)明第二實施例給出了旋轉DPCM運算符1800的框圖,并且圖18B是如圖18A所示的一旋轉方向誤差計算器1820的一框圖。
      參考圖18A,該旋轉DPCM運算符1800包括一旋轉方向誤差計算器1820,一旋轉方向誤差檢測器1830,一旋轉方向校正器1815,以及一旋轉方向選擇器1835。旋轉方向誤差計算器1820接收在一當前關鍵幀中的一對象的一旋轉變換值以及在一前關鍵幀中該對象的一復原旋轉變換值并計算旋轉方向誤差。該旋轉方向誤差檢測器1830基于從旋轉方向誤差計算器1820輸入的旋轉方向誤差檢測在譯碼過程中是否足以改變該對象的旋轉方向的一誤差已經(jīng)發(fā)生。該旋轉方向校正器1815校正和輸出從第一四元數(shù)乘法器1810輸入的一旋轉差分值以便通過采用前關鍵幀的一譯碼旋轉變換值的一變換來定位的該對象能進一步在一原始旋轉方向中旋轉約180度。該旋轉方向選擇器1835根據(jù)從旋轉方向誤差檢測器1830輸入的一值來選擇從旋轉方向校正器1815輸入的旋轉差分值或從第一四元數(shù)乘法器1810輸入的旋轉差分值并將所選擇的值輸出到該量化器1840中。
      參考圖18B,如圖18A所示的旋轉方向誤差計算器1820包括一延遲器1822,一第三四元數(shù)乘法器1824,一第四四元數(shù)乘法器1826,以及一第五四元數(shù)乘法器1828。該延遲器1822存儲一輸入旋轉變換值直到下一關鍵幀的一旋轉變換值被輸入為止。該第三四元數(shù)乘法器1824接收該輸入旋轉變換值以及從該延遲器1822輸出的一前關鍵幀的一旋轉變換值并通過四元數(shù)乘法計算該輸入旋轉變換值以及前關鍵幀的旋轉變換值間的一旋轉差分值。該第四四元數(shù)乘法器1826計算從延遲器1822輸出的前關鍵幀的旋轉變換值和該前關鍵幀的復原旋轉變換值間的一旋轉差分值。該第五四元數(shù)乘法器1828在輸入旋轉變換值與前關鍵幀的復原旋轉變換值間計算。
      在下文中,參考圖19A來更詳細地描述根據(jù)本發(fā)明的第二實施例的一旋轉DPCM操作。
      在步驟S19000中,打算被編碼的一定向內(nèi)插器節(jié)點的關鍵字值數(shù)據(jù)Qi被輸入到第一四元數(shù)乘法器1810以及該旋轉DPCM運算符1800的旋轉方向誤差計算器1820中。
      第一四元數(shù)乘法器1810,象根據(jù)本發(fā)明第一實施例的關鍵字值數(shù)據(jù)編碼器300中的第一四元數(shù)乘法器一樣,通過將一當前關鍵幀的一輸入旋轉變換值四元數(shù)乘以從第二四元數(shù)乘法器1870輸入的一前關鍵幀的一復原旋轉變換值
      來生成一旋轉差分值
      并在步驟S19100中將所生成的旋轉差分值
      輸出到該旋轉方向校正器1815和旋轉方向選擇器1835中。
      旋轉方向校正器1815按等式(29)校正輸入到其中的一旋轉差分值并將校正的旋轉差分值Qs輸出到校正方向選擇器1835中。旋轉方向誤差計算器1820接收當前關鍵幀的旋轉變換值Qi以及從第二四元數(shù)乘法器1870中輸入的前關鍵幀的復原旋轉變換值
      并計算旋轉變換值QA,QB以及QC,這將在以后描述。旋轉方向誤差檢測器1830利用從旋轉方向誤差計算器1820所輸入的旋轉差分值來檢測是否已經(jīng)發(fā)生一旋轉方向誤差并在步驟S19200中將檢測結果輸出到旋轉方向選擇器1835中。
      在等式(29)中,δr表示非常接近0的一常數(shù),并且(qR,0,qR,1,qR,2,qR,3)T表示從第一四元數(shù)乘法器1810輸出的旋轉差分值
      旋轉方向誤差計算器1820、旋轉方向誤差檢測器1830以及旋轉方向校正器1815將參考圖19B描述如下。
      旋轉方向選擇器1835核對是否已經(jīng)發(fā)生一旋轉方向誤差以便當使用從旋轉方向誤差檢測器1830輸入的一邏輯值來譯碼一編碼關鍵字值數(shù)據(jù)時該對象在相反方向中旋轉到一需要的方向。如果一旋轉方向誤差沒有發(fā)生,在步驟S19300中,旋轉方向選擇器1835將從第一四元數(shù)乘法器1810輸入的旋轉差分值輸出到量化器1840中。如果一旋轉方向誤差已經(jīng)發(fā)生,旋轉方向選擇器1835在步驟S19300中將從旋轉方向校正器1815輸入的校正旋轉并分值輸出。
      量化器1840在步驟S19400和S19500中用與本發(fā)明的第一實施例中相同的量化方法量化原始旋轉差分數(shù)據(jù)
      或校正的旋轉差分數(shù)據(jù)Qs。
      量化器1840在步驟S19600中核對量化的旋轉差分數(shù)據(jù)
      是否屬于最后一個關鍵字值數(shù)據(jù)。如果量化的旋轉差分數(shù)據(jù)
      與最后一個關鍵字值數(shù)據(jù)相對應,量化器1840在步驟S19700中將量化的旋轉差分數(shù)據(jù)
      輸出到一循環(huán)DPCM運算符1400中。如果量化的旋轉差分數(shù)據(jù)
      不與最后一個關鍵字值數(shù)據(jù)相對應,量化器1840將量化的旋轉差分數(shù)據(jù)
      輸出到逆量化器1850中。
      逆量化器1850在步驟S19800中用與本發(fā)明的第一實施例相同的逆量化方法逆量化該量化的旋轉差分數(shù)據(jù)
      并將復原旋轉差分數(shù)據(jù)
      輸出到第二四元數(shù)乘法器1870。
      第二四元數(shù)乘法器1870通過將復原旋轉差分數(shù)據(jù)
      四元數(shù)乘以一前關鍵幀的一旋轉變換值
      生成一當前關鍵幀的一復原旋轉變換值
      第二四元數(shù)乘法器1870在步驟S19900中經(jīng)延遲器1890將一當前關鍵幀的一旋轉變換值輸出到第一四元數(shù)乘法器1810和旋轉方向誤差計算器1820中。
      在下文中,將參考圖19B來描述旋轉方向誤差計算器1820、旋轉方向誤差檢測器1830以及旋轉方向校正器1815的操作。
      旋轉方向誤差計算器1820計算與區(qū)2至4相對應的旋轉誤差值,這已經(jīng)參考圖17描述過。
      旋轉方向誤差計算器1820接收與將被編碼的一關鍵幀的關鍵字值數(shù)據(jù)相對應的一旋轉變換值,接收在當前關鍵幀前的一前關鍵幀的一復原旋轉變換值并在步驟S19220中計算一旋轉方向誤差。
      與當前關鍵幀的一定向內(nèi)插器的關鍵字值數(shù)據(jù)相對應的旋轉變換值被直接輸入到第三四元數(shù)乘法器1824和第五四元數(shù)乘法器1828中并且當一下一關鍵幀的一旋轉變換值被輸入時經(jīng)延遲器1822被輸入到第四四元數(shù)乘法器1826中。另外,從第二四元數(shù)乘法器1870輸出的復原旋轉變換值被輸入到第四四元數(shù)乘法器1826和第五四元數(shù)乘法器1828中。
      第三四元數(shù)乘法器1824通過將當前關鍵幀的旋轉變換值四元數(shù)乘以前關鍵幀的旋轉變換值生成旋轉差分值QA并將QA輸出到旋轉方向誤差檢測器1830中。旋轉差分值QA表示在一時間間隔[ti-1,ti]間一對象的一原始旋轉方向。
      第四四元數(shù)乘法器1826通過將前關鍵幀的旋轉變換值四元數(shù)乘以前關鍵幀的復原旋轉變換值生成旋轉差分值QB并將QB輸出到旋轉方向誤差檢測器1830中。通過第四四元數(shù)乘法器1826計算的旋轉差分值QB表示由一量化誤差在一預定時間瞬間ti-1引起的一對象的旋轉方向誤差和旋轉方向并與如圖17所示的區(qū)2相對應。
      第五四元數(shù)乘法器1828通過將當前關鍵幀的旋轉變換值四元數(shù)乘以前關鍵幀的復原旋轉變換值生成旋轉差分值QC并將QC輸出到旋轉方向誤差檢測器1830。由第五四元數(shù)乘法器1828計算的旋轉差分值QC表示在預定時間瞬間ti被編碼的一旋轉差分值且與如圖17所示的區(qū)4相對應。
      旋轉方向誤差檢測器1830在步驟S19240中使用從旋轉方向誤差計算器1820輸入的旋轉差分值QA、QB和QC來核對在譯碼編碼的關鍵字值數(shù)據(jù)的過程中該對象是否在與一原始方向相反的方向中旋轉。為完成該功能,旋轉方向誤差檢測器1830核對旋轉差分值QA、QB和QC是否滿足不等式(30)至(34)。首先,旋轉方向誤差檢測器1830核對旋轉差分值QA和QC是否滿足不等式(30)。
      在不等式(30)中,當從旋轉方向誤差計算器1820輸入的旋轉差分值QA由QA=(qA,0,qA,1,qA,2,qA,3)T時,
      表示QA的四個分量qA,0,qA,1,qA,2,qA,3除第一分量qA,0所組成的一三維矢理(qA,1,qA,2,qA,3)T。
      表示由QC的四個分量qC,0,qC,1,qC,2,qC,3除第一分量qC,0外組成的一三維矢量(qC,1,qC,2,qC,3)T。不等式(30)表示兩個3D矢量(qA,1,qA,2,qA,3)T和(qC,1,qC,2,qC,3)T的一內(nèi)積小于0的一條件。
      如果不等式(30)中的內(nèi)積小于0,一對象的旋轉方向當使用QA時與當使用QC時的旋轉方向相反。當內(nèi)積小于0時,在不等式(30)中所示的一邏輯表達式的一值被設置為“true”。當內(nèi)積大于0時,該邏輯表達式的值被設置為“false”。
      在不等式(31)中,當從旋轉方向誤差計算器1820輸入的旋轉差分值QB由QB=(qB,0,qB,1,qB,2,qB,3)T時,
      表示QB的四個分量qB,0,qB,1,qB,2,qB,3除第一分量qB,0組成的一三維矢理(qB,1,qB,2,qB,3)T。
      表示由QC的四個分量qC,0,qC,1,qC,2,qC,3除第一分量qC,0外組成的一三維矢量(qC,1,qC,2,qC,3)T。不等式(31)表示兩個3D矢量(qB,1,qB,2,qB,3)T和(qC,1,qC,2,qC,3)T的一內(nèi)積小于0的一條件。
      如果不等式(31)中的內(nèi)積小于0,一對象的旋轉方向當使用QB時與當使用QC時的旋轉方向相反。當內(nèi)積小于0時,在不等式(31)中所示的一邏輯表示達的一值被設置為“true”。當內(nèi)積大于0時,該邏輯表達式的值被設置為“false”。
      ATH<2cos-1|qA,0| ...(32)
      在不等式(32)中,qA,0表示旋轉差分值QA的第一分量,以及ATH被設置為接近0的一預定常數(shù)。當在不等式(32)中,2cos-1|qA,0|大于ATH時,在不等式(32)中所示的一邏輯表達式的一值被設定為“true”。當2cos-1|qA,0|不大于ATH時,邏輯表達式的值被設定為“false”。當不等式(32)被設置為“false”時,這表示當根據(jù)本發(fā)明實現(xiàn)關鍵字值數(shù)據(jù)編碼器300時小于預定常數(shù)ATH的一旋轉角θ(=2cos-1|qA,0|)能被忽略。即使存在一旋轉方向誤差幾乎等于旋轉角θ,旋轉方向誤差不能導致對人眼來說嚴重失真的圖像,特別是當使用由本發(fā)明建議的一誤差測量方法。
      ATH<2cos-1|qB,0| ...(33)
      在不等式(33)中,qB,0表示旋轉差分值QB的第一分量,并且ATH是與不等式(32)中相應的一個相同。當在不等式(33)中,2cos-1|qB,0|大于ATH時,在不等式(33)中所示的一邏輯表達式的一值被設定為“true”。當2cos-1|qB,0|不大于ATH時,該邏輯表達式的值被設定為“false”。
      ATH<2cos-1|qC,0| ...(34)
      在不等式(34)中,qC,0表示旋轉差分值QC的第一分量,以及ATH是與不等式(32)中相應的一個相同。當在不等式(34)中,2cos-1|qC,0|大于ATH時,在不等式(34)中所示的一邏輯表達式的一值被設定為“true”。當2cos-1|qC,0|不大于ATH時,該邏輯表達式的值被設定為“false”。
      旋轉方向誤差檢測器1830在不等式(30)至(34)的邏輯值上執(zhí)行一AND操作并將該AND操作的結果輸出到旋轉方向選擇器1835中。
      在一預定時間瞬間t,該第一四元數(shù)乘法器1810具有兩個輸入值Qi和
      第一四元數(shù)乘法器1810使用兩個輸入值Qi和
      將一旋轉差分值輸出。如上所述,在區(qū)1中,接收旋轉差分數(shù)據(jù)的用于譯碼已編碼關鍵字值數(shù)據(jù)的裝置順時針旋轉一對象。然而,該對象必須從在按由Qi-1表示的預定度數(shù)旋轉后當前所處的一位置旋轉到假定在按由Qi表示的預定度數(shù)旋轉后所處的一位置,從而該對象的原始旋轉方向必須是一逆時針方向。
      因此,旋轉方向校正器1815校正該對象的旋轉方向以便該對象能在基于
      所旋轉的相同方向旋轉等于由
      所表示的一旋轉角,如圖17所示,即,因此該對象能從基于
      旋轉后的當前所處的位置逆時針旋轉到假定按等于由
      表示的一旋轉角旋轉后所處的位置。
      為此,該旋轉方向校正器1815建立新的旋轉信息以使該對象按差不多1180度逆時針從在按
      的預定角度旋轉后當前所處的位置旋轉。因此,該對象的旋轉方向被校正成與最初方向相同,以及能最小化一旋轉方向誤差。該旋轉方向校正器1815在步驟S19260中接收來自該第一四元數(shù)乘法器1810的當前關鍵幀的旋轉差分數(shù)據(jù)
      生成具有一校正的旋轉方向的旋轉差分數(shù)據(jù),并將該校正的旋轉差分數(shù)據(jù)輸出到旋轉方向選擇器1835中。
      參考圖19A,在步驟S19300中,旋轉方向選擇器1835核對從旋轉方向誤差檢測器1830輸入的邏輯值是否為真。如果輸入的邏輯值為真,在步驟S19400中,該旋轉方向選擇器1835確定如圖17所示的區(qū)1發(fā)生的相同的現(xiàn)象已經(jīng)發(fā)生并將由等式(29)定義的校正的旋轉差分值Qs輸出到量化器1840中。
      另一方面,如果輸入的邏輯值是假,在步驟S19500中,旋轉方向選擇器1835確定沒有發(fā)生在區(qū)1中發(fā)生的相同的現(xiàn)象并將從第一四元數(shù)乘法器1810輸入的旋轉差分值
      輸出到量化器1840中。
      在下文中,將描述一種根據(jù)本發(fā)明第三實施例的關鍵字值數(shù)據(jù)編碼器300。
      由于根據(jù)本發(fā)明的第一和第二實施例的關鍵字值數(shù)據(jù)編碼器300僅編碼一旋轉差分值的四個分量中的三個分量,因為一量化誤差它們不能使用等式(24)來復原該四元數(shù)的一第一分量值,例如,一復原旋轉差分值的一第一分量可能是一虛數(shù)。
      為防止由于僅編碼一四元數(shù)的三個分量所帶來的問題,根據(jù)本發(fā)明第三實施例的關鍵字值數(shù)據(jù)編碼器300包括一量化器,其能適當?shù)卣{(diào)節(jié)三個量化的分量值以便當譯碼編碼的關鍵字值數(shù)據(jù)時,另一分量能被復原成一正實數(shù)并減小圖像的矢真。
      根據(jù)本發(fā)明第三實施例的關鍵字值數(shù)據(jù)編碼器300,除一量化器2000的結構外,與根據(jù)本發(fā)明的第一或第二實施例的關鍵字值數(shù)據(jù)編碼器相同,因此下面將僅描述該量化器2000的結構。
      圖20A是包含在根據(jù)本發(fā)明第三實施例的關鍵字值數(shù)據(jù)編碼器300中的一量化器2000的框圖。參考圖20A,一量化器2000包括一量化單元2010,一量化數(shù)據(jù)調(diào)節(jié)器2020,一逆量化器2030,以及一誤差測量單元2050。該量化單元2010量化輸入到其中的一旋轉差分值。該量化數(shù)據(jù)調(diào)節(jié)器2020逆調(diào)節(jié)一量化旋轉差分數(shù)據(jù)。該逆量化器2030逆量化已量化的旋轉差分數(shù)據(jù)。該旋轉差分值復原器2040通過使用逆量化分量來復原量化的旋轉差分數(shù)據(jù)的一第一分量來復原所有量化的旋轉差分數(shù)據(jù)的分量值。該誤差測量單元2050測量一復原差分值與一原始輸入的旋轉差分值間的一誤差并更新量化的旋轉差分值。
      圖20B是量化器2010的操作流程圖。參考圖20B,當從第一四元數(shù)乘法器輸入一旋轉差分值
      時,在步驟S20050中,該量化器2010使用等式(23)量化輸入的旋轉差分值
      并將量化的旋轉差分數(shù)據(jù)
      輸出到量化數(shù)據(jù)調(diào)節(jié)器2020中。
      量化數(shù)據(jù)調(diào)節(jié)器2020在步驟S20100中用下面的等式(35)來調(diào)節(jié)量化旋轉差分數(shù)據(jù)
      的三個分量。
      i,j,k,和d是整數(shù)) …(35)在等式(35)中,i,j,k均是變量,其將能被添加到旋轉差分數(shù)據(jù)上以便調(diào)節(jié)旋轉差分數(shù)據(jù),并被用于定義i,j,k的范圍。量化旋轉差分數(shù)據(jù)
      的三個調(diào)節(jié)分量被輸出到逆量化器2030中。
      在步驟S00200中,逆量化器2030逆量化調(diào)節(jié)量化旋轉差分數(shù)據(jù)Iijk并將逆量化的旋轉差分值
      (或逆量化的結果)輸出到旋轉差分值復原器2040中。
      在步驟S20300中,接收逆量化的旋轉差分值
      的三個分量的旋轉差分值復原器2040用等式(24)復原旋轉差分數(shù)據(jù)的一第一分量并將一復原旋轉差分值輸出到誤差測量單元2050中。
      誤差測量單元2050核對輸入到其中的一旋轉差分值的一第一分量值。在步驟S20400中,如果該第一分量值是一實數(shù),則誤差測量單元2050執(zhí)行誤差測量。另一方面,如果該第一分量值是一虛數(shù),則該方法轉入步驟S20600。
      當該輸入旋轉差分值的第一分量是一實數(shù)時,誤差測量單元2050在步驟S20450中測量在一原始旋轉差分值和一復原旋轉差分值間的一誤差eijk并在步驟S20500中核對eijk是否小于一調(diào)節(jié)誤差
      下面將參考圖27來描述測量原始旋轉差分值與復原旋轉差分值間的eijk的方法。
      如果測量誤差eijk小于調(diào)節(jié)誤差
      在步驟S20550中eijk替換
      然后在步驟S0060中核對變量i,j以及k是否屬于一調(diào)節(jié)范圍[-d,+d]。如果變量i,j以及k屬于調(diào)節(jié)范圍[-d,+d],則誤差測量單元2040重復執(zhí)行步驟S20100至S20550在步驟S20100中,在步驟S20100至S20550的每個循環(huán)間,在一嵌套的循環(huán)方式中,將量化的旋轉差分數(shù)據(jù)的二至4個分量加1。
      例如,一量化的數(shù)據(jù)調(diào)節(jié)器2020保持第二和第三分量,試圖通過增加k值到第四分量值上,同時在k值超過+d之前通過連續(xù)將k值加1來逐步增加k值使復原第一分量成為一實數(shù),然后找出第四個調(diào)節(jié)分量值,這能最小化一輸入旋轉差分值與一復原旋轉差分值間的一誤差。
      如果k值到達+d,該量化數(shù)據(jù)調(diào)節(jié)器2020試圖通過用-d來初始化k值并將一j值加到第三分量值上同時通過將j(-d≤j≤+d)值加1來增加j值并將一k值加到第四分量值上同時在k值超過+d前通過連續(xù)地將k(-d≤k≤+d)值加1來逐步地增加k值來使該復原第一分量變成一實數(shù)值,然后找到第四調(diào)節(jié)分量值,這能減少一輸入的旋轉差分值與一復原旋轉差分值間的一誤差。
      如果j值到達+d,該量化數(shù)據(jù)調(diào)節(jié)器2020試圖通過用-d來初始化j和k值并將一i值加到第二分量值上同時通過將i(-d≤i≤+d)值加1來增加i值并將一j值加到第三分量值和將一k值加到第四分量上同時在k值超過+d前通過連續(xù)地將k(-d≤k≤+d)值加1來逐步地增加k值來使該復原第一分量變成一實數(shù)值,然后找到第四調(diào)節(jié)分量值,這能減少一輸入的旋轉差分值與一復原旋轉差分值間的一誤差。
      重復上述處理直到i,j,k達到+d為止然后找出能減少一輸入的旋轉差分值與一復原旋轉差分值間的一誤差的四個調(diào)節(jié)分量值。
      誤差測量單元2050在步驟S20700中核對調(diào)節(jié)誤差
      是否小于一最終誤差
      同時改變第二至第四分量值。如果
      小于
      代替
      同時在步驟S20750中用下面的等式(36)來校正量化的旋轉差分數(shù)據(jù)。
      此后,誤差測量單元2050將校正的旋轉差分數(shù)據(jù)輸出到量化的數(shù)據(jù)調(diào)節(jié)器2020中。
      量化的數(shù)據(jù)調(diào)節(jié)器2020將變量i,j,k值設置為-d并在輸入到其中的旋轉差分數(shù)據(jù)上再次執(zhí)行步驟S20100至S20600。然后,量化數(shù)據(jù)調(diào)節(jié)器2020用輸入旋轉差分數(shù)據(jù)來核對是否存在一具有比在前存儲的最終誤差更小的誤差的旋轉差分數(shù)據(jù)。
      如果調(diào)節(jié)誤差
      大于最終誤差
      誤差測量單元2050在步驟S20800中將與當前存儲的最終端誤差
      相對應的量化的旋轉差分數(shù)據(jù)輸出到一循環(huán)DPCM運算符中。
      在下文中,將參考圖21A至25來更全面地描述一種根據(jù)本發(fā)明一優(yōu)選實施例對一位流進行譯碼的裝置和方法,將一定向內(nèi)插器進行譯碼成上述位流。
      圖21A是根據(jù)本發(fā)明一優(yōu)選實施例的用于譯碼一定向內(nèi)插器的裝置的框圖,以及圖21B根據(jù)本發(fā)明一優(yōu)選實施例給出了一種用于編碼一定向內(nèi)插器的方法流程圖。
      參考圖21A,用于譯碼一定向內(nèi)插器的裝置包括一關鍵字數(shù)據(jù)譯碼器2120,一關鍵字值數(shù)據(jù)譯碼器2150,一標題譯碼器2110,以及一定向內(nèi)插器合成器2180。該關鍵字數(shù)據(jù)譯碼器2120譯碼來自一輸入位流的關鍵字數(shù)據(jù)。該關鍵字值數(shù)據(jù)譯碼器2150譯碼來自該輸入位流的關鍵字值數(shù)據(jù)。該標題譯碼器2110譯碼來自該輸入位流的標題信息并將該譯碼標題信息輸出到關鍵字數(shù)據(jù)譯碼器2120和關鍵字值數(shù)據(jù)譯碼器2150。該一定向內(nèi)插器合成器2180合成譯碼關鍵字數(shù)據(jù)和譯碼關鍵字值數(shù)據(jù)并輸出一譯碼定向內(nèi)插器。
      參考圖21B,由用于編碼如圖3所示的一定位內(nèi)插器的裝置所編碼的一位流在步驟S21000中被輸入到關鍵字數(shù)據(jù)譯碼器2120、關鍵字值數(shù)據(jù)譯碼器2150以及標題譯碼器2110中。
      在步驟S21100中,標題譯碼器2110譯碼來自該輸入位流的標題信息并將譯碼標題信息提供給關鍵字數(shù)據(jù)譯碼器、關鍵字值數(shù)據(jù)譯碼器2150以及定向內(nèi)插器合成器2180中。
      關鍵字數(shù)據(jù)譯碼器2120熵譯碼來自輸入位流的關鍵字數(shù)據(jù),通過執(zhí)行一預定逆DND操作、一逆折疊操作以及一逆移位操作來生成譯碼關鍵字數(shù)據(jù)以及將譯碼關鍵字數(shù)據(jù)輸出到定向內(nèi)插器合成器2180中。關鍵字值數(shù)據(jù)譯碼器2150熵譯碼來自輸入位流的關鍵字值數(shù)據(jù),生成一旋轉差分值,該旋轉差分值用來通過幾乎等于旋轉變換間的一差值來旋轉一對象,通過逆量化譯碼旋轉差分數(shù)據(jù)的每個關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)將該旋轉變換應用到該對象,通過將一當前關鍵幀的一旋轉差分值四元數(shù)乘以一前關鍵幀的一旋轉變換值來復原該當前關鍵幀的一旋轉變換值并在步驟S21200中將該當前關鍵幀的旋轉變換值輸出到該定向內(nèi)插器合成器2180。
      定向內(nèi)插器合成器2180通過將輸入到其中的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)用一浮點生成模式和從標題譯碼器2110輸入的一關鍵字選擇特征位來復原一定向內(nèi)插器,并在步驟S21400中將復原的定向內(nèi)插器輸出。
      在下文中,將參考圖22至23B來描述根據(jù)本發(fā)明一優(yōu)選實施例的一關鍵字數(shù)據(jù)譯碼器2120以及根據(jù)本發(fā)明一優(yōu)選實施例的一種譯碼關鍵字數(shù)據(jù)的方法。
      圖22是關鍵字數(shù)據(jù)譯碼器2120的一框圖。關鍵字數(shù)據(jù)譯碼器2120接收一編碼位流以及通過譯碼將其重建成關鍵字數(shù)據(jù)。
      關鍵字數(shù)據(jù)譯碼器2120包括一熵譯碼器2260、一逆DND處理器2250、一逆折疊處理器2240、一逆移位器2230、一逆DPCM處理器2220、一逆量化器2210、一線性關鍵字譯碼器2200、以及一浮點數(shù)逆轉換器2205。
      圖23A是根據(jù)本發(fā)明一優(yōu)選實施例的一種用于譯碼關鍵字數(shù)據(jù)的方法流程圖。參考圖22和23A,將關鍵字數(shù)據(jù)壓縮成其的一位流被輸入到標題譯碼器2110以及熵譯碼器2260中。
      在步驟S23000中,標題譯碼器2110譯碼用于譯碼所需的每個步驟的信息片并將它們提供給譯碼它們的相應步驟。用每個譯碼步驟來描述由標題譯碼器2110譯碼的信息。
      熵譯碼器2260從標題譯碼器2110接收將被譯碼的差分數(shù)據(jù)的數(shù)量以及已經(jīng)用于編碼的位的數(shù)量即將被用于譯碼的的位的數(shù)量,以及在步驟S23100中譯碼輸入位流。差分數(shù)據(jù)的數(shù)量等于從關鍵字數(shù)據(jù)的數(shù)量減去通過執(zhí)行DPCM獲得的內(nèi)部關鍵字數(shù)據(jù)的數(shù)量的結果。
      熵譯碼器2260識別基于包括在該位流中的預定信息,如在本實施例中的bSignedAACFlag來識別將被譯碼的差分數(shù)據(jù)是否具有負值或正值。如果編碼的差分數(shù)據(jù)具有負值,熵譯碼器2260使用函數(shù)decodeSignedAAC()來譯碼它們。另一方面,如果編碼差分數(shù)據(jù)僅具有正值,熵譯碼器2260使用函數(shù)decodeUnsignedAAC()來譯碼它們。然后,將譯碼差分數(shù)據(jù)傳送到逆DND處理器2250。
      逆DND處理器2250從標題譯碼器2110接收在每個DND周期中的DND的次數(shù)以及一最大值nKeyMax。
      如果DND的次數(shù)為-1,這表示正被譯碼的編碼差分數(shù)據(jù)已經(jīng)經(jīng)過一DPCM操作以及一移位操作而不是經(jīng)過DND被熵譯碼,以及該方法直接進入到執(zhí)行一逆移位操作的步驟上。如果DND的次數(shù)為0,這表示正被譯碼的編碼差分數(shù)據(jù)已經(jīng)經(jīng)過一折疊操作而不是經(jīng)過DND被熵譯碼,因此該方法直接進入到執(zhí)行一逆折疊操作的步驟上。如果DND次數(shù)大于0,在步驟S23200中執(zhí)行一逆DND操作。
      逆DND處理器2250在步驟S23300中確定正被譯碼的編碼差分數(shù)據(jù)是否已經(jīng)經(jīng)過一上移操作被編碼。在本發(fā)明的一優(yōu)選實施例中,通過核對包括在一位流中的nKeyInvertDown是否大于0來確定正被譯碼的編碼差分數(shù)據(jù)經(jīng)過一上移操作被編碼。
      如果正被譯碼的編碼差分數(shù)據(jù)沒有經(jīng)過一上移操作,該方法進入到執(zhí)行一逆DND的步驟上。另一方面,如果正被譯碼的編碼差分數(shù)據(jù)已經(jīng)經(jīng)過一上移操作,通過執(zhí)行一上移操作已經(jīng)從一正數(shù)區(qū)域轉移到一負數(shù)區(qū)域的差分數(shù)據(jù)在步驟S23400中被移回到負數(shù)區(qū)域。在本發(fā)明一優(yōu)選實施例中,已經(jīng)經(jīng)過一上移操作的差分數(shù)據(jù)通過執(zhí)行用下面的等式來表示的一下移操作(一反轉操作)被復原。
      invert-down(v) …(37)
      =v (v≤nKeyInvertDown)
      =nKeyInvertDown-v (v>nKeyInvertDown)
      在這里,nKeyInvertDown與用在上移操作中的最大值nKeyMax具有相同值。作為下移操作的結果,具有超過nKeyInvertDown的一值的差分數(shù)據(jù)被轉換成低于-1的負值。
      根據(jù)在每個DND周期中的最大值nKeyMax在經(jīng)過下移操作的差分數(shù)據(jù)上有選擇地執(zhí)行一逆下劃操作或一逆上劃操作。
      參考圖23B,逆DND處理器2250執(zhí)行與該差分數(shù)據(jù)在編碼期間經(jīng)過的一DND操作一樣的多次逆DND操作。換句話說,逆DND處理器2250設置等于DND的次數(shù)的逆DND的次數(shù)的一初始值。接著,當逆DND處理器2250每次執(zhí)行一逆DND操作時,從逆DND次數(shù)的初值值減1并繼續(xù)執(zhí)行逆DND操作直到逆DND的次數(shù)變?yōu)?為止。逆DND處理器2250在每個DND周期中查找nKeyMax以及在步驟S23510中核對每個nKeyMax是否小于0。
      如果nKeyMax小于0,它表示在編碼過程中已經(jīng)執(zhí)行一上劃操作,因此,在步驟S23530中,通過執(zhí)行一逆上劃操作,逆DND處理器2250將正被編碼的差分數(shù)據(jù)的范圍擴展到一負數(shù)區(qū)域。在本發(fā)明的一優(yōu)選實施例中,可使用由下述等式(38)定義的一逆上劃操作。
      inverse-divide-up(v) …(38)
      =v (v≥0)
      然而,如果nKeyMax不小于0,逆DND處理器2250核對逆DND的次數(shù)是否為1。如果逆DND的次數(shù)不為1,它表示對編碼過程中所譯碼的差分數(shù)據(jù)執(zhí)行一下劃操作,因此逆DND處理器2250通過執(zhí)行一逆下劃操作將差分數(shù)據(jù)的范圍擴展到一正數(shù)區(qū)域。
      在本發(fā)明的一優(yōu)選實施例中,可使用由下述等式定義的一逆下劃操作。
      inverse-divide-down(v) …(39)
      =v (if v≥0)
      如果nKeyMax不小于0且逆DND的次數(shù)為1,在步驟S23590中,逆DND處理器2250在執(zhí)行一逆分割操作后結束整個逆DND操作。在本發(fā)明的一優(yōu)選實施例中,可使用由下述等式(40)定義的一逆分割操作。
      inverse-divide(v)…(40)
      =v (v≥0)
      =v+(nKeyMax0+1) (v<0)
      已經(jīng)經(jīng)過逆DND操作的關鍵字數(shù)據(jù)的差分數(shù)據(jù)被輸入到逆折疊處理器2240中,以及逆折疊處理器2240在該差分數(shù)據(jù)上執(zhí)行一逆折疊操作以便過去僅在一正數(shù)區(qū)域中的差分數(shù)據(jù)在步驟S23600中被劃分成正值和負值。在本發(fā)明的一優(yōu)選實施例中,可使用由等式(41)定義的一逆折疊操作。
      已經(jīng)經(jīng)過逆折疊操作的差分數(shù)據(jù)被輸出到逆移位器2230,以及在步驟S23700中,逆移位器2230將用在編碼過程中并從標題譯碼器2110輸入的一模式nKeyShift添加到從逆折疊處理器2240輸入的差分數(shù)據(jù)上。該操作由下述等式來表示。
      inverse-shift(v)=v+nKeyshift …(42)
      逆DPCM處理器在步驟S23800中使用從標題編碼器2110輸入的DPCM的次數(shù)將從逆移位器2230輸入的差分數(shù)據(jù)復原成量化關鍵字數(shù)據(jù)。逆移位器2230用下述等式(43)執(zhí)行與DPCM的次數(shù)同樣多次數(shù)的一逆DPCM操作。
      v(i+1)=v(i)+delta(i) …(43)
      在這里,i表示差分數(shù)據(jù)和關鍵字數(shù)據(jù)的一指數(shù),v表示一整數(shù)數(shù)組,以及delta(i)表示差分數(shù)據(jù)。
      已經(jīng)經(jīng)過逆DPCM操作的量化關鍵字數(shù)據(jù)被輸入到逆量化器2210中。然后,逆量化器2210從標題譯碼器2110接收有關量化位的大小nKeyQbit以及用于逆量化的最大和最小值是否已經(jīng)被浮點數(shù)轉換器905編碼的信息并在步驟S23900k使用下述等式將量化關鍵字數(shù)據(jù)轉換成逆量化關鍵字數(shù)據(jù)。
      如果在編碼關鍵字數(shù)據(jù)的過程中,用于量化的最大和最小值沒有被浮點數(shù)轉換器905轉換,將在等式(44)中所示的fKeyMin和fKeyMax分別設置為0和1。然而,如果浮點數(shù)轉換器905已經(jīng)轉換用于量化的最大和最小值,被浮點數(shù)逆轉換器2205逆轉換的最大和最小值被分別用作用于逆量化的最大和最小值。
      下面將描述實現(xiàn)逆量化逆DND操作的程序代碼的例子。
      從逆量化器2210輸出的譯碼關鍵字數(shù)據(jù)被添加到在線性關鍵字譯碼器2200中譯碼的關鍵字數(shù)據(jù)中,從而構成譯碼關鍵字數(shù)據(jù)。
      在下文中,下面將描述一線性關鍵字譯碼過程。
      標題譯碼器2110譯碼來自一位流的關鍵字標題信息。如果有關一線性關鍵字數(shù)據(jù)的信息存在于該位流中,標題譯碼器2110將要求用于譯碼該線性關鍵字數(shù)據(jù)區(qū)域的開始和結尾關鍵字輸出到浮點數(shù)逆轉換器2205中并將被編碼為線性關鍵字的關鍵字的數(shù)量輸出到線性關鍵字譯碼器2200中。
      浮點數(shù)逆轉換器2205將用十進制數(shù)表示的線性關鍵字數(shù)據(jù)區(qū)域的開始和結尾關鍵字逆轉換成二進制數(shù)并將該二進制數(shù)輸出到線性關鍵字譯碼器2200中。
      假定將被譯碼的兩個浮點數(shù)被稱為fKeyMin和fKeyMax,譯碼fKeyMin的過程如下。
      標題譯碼器2110從一位流讀取fKeyMin的位數(shù)。如果fKeyMin的位數(shù)為0,則fKeyMin被設置為0,以及從該位流讀取fKeyMax的位數(shù)以便譯碼fKeyMax。如果fKeyMax的位數(shù)不小于8,這表示fKeyMax已經(jīng)用IEEE標準754編碼過。因此,浮點數(shù)fKeyMax在讀取其32位后被編碼。
      然而,如果fKeyMax的位數(shù)在1和7之間,標題譯碼器2110從該位流讀取一特征位。在本發(fā)明的一優(yōu)選實施例中,如果特征位為1,MinKeyMantissaSign被設置為-1。另一方面,如果特征位為0,MinKeyMantissaSign被設置為1。此后,參考表1獲得要求用于編碼的位的數(shù)量,該表示出了一尾數(shù)的位數(shù)與編碼所需的位的數(shù)量間的關系。接著,讀取與編碼所需的位的數(shù)量一樣多的該位流的數(shù)量并存儲在MinKeyMantissa。然后讀取該位流的下一位被用與存儲在MinKeyMantissa中的尾數(shù)的特征位的相同的方式來存儲在MinKeyExponentSign中。與一指數(shù)值相對應的該位流的接下來六位被讀取并存儲在MinKeyExponent中。
      通過將從標題譯碼器2110輸入的值代入等式(45)中來復原fKeyMin。
      復原fKeyMax的過程與復原fKeyMin的過程相同。具體來說,在從該位流讀取fKeyMax的指數(shù)前,確定與fKeyMin的指數(shù)相同的值是否被用作fKeyMax的指數(shù)。如果與fKeyMin的指數(shù)相同的值不被用作fKeyMax的指數(shù),與從該位流讀取fKeyMin的指數(shù)相同的方式從該位流讀取fKeyMax的指數(shù)。
      線性關鍵字譯碼器2200從浮點數(shù)逆轉換器2205接收線性關鍵字數(shù)據(jù)區(qū)域的開始和結尾關鍵字并用下述等式(46)譯碼線性關鍵字數(shù)據(jù)區(qū)域。
      (i=0,…nNumberOfLinearKey-1)
      在這里,fKeyMin和fKeyMax分別表示該線性關鍵字數(shù)據(jù)區(qū)域的開始和結尾關鍵字數(shù)據(jù)。
      在線性關鍵字數(shù)據(jù)區(qū)域中利用上述方法所譯碼的關鍵字數(shù)據(jù)被添加到從逆量化器2210輸出的關鍵字數(shù)據(jù)中,然后將添加結果輸出作為最終關鍵字數(shù)據(jù)。
      在下文中,將參考圖24A至25來描述根據(jù)本發(fā)明一優(yōu)選實施例的用于譯碼一定向內(nèi)插器的裝置以及根據(jù)本發(fā)明一優(yōu)選實施例的用于編碼關鍵字值數(shù)據(jù)的方法。
      圖24A是根據(jù)本發(fā)明一優(yōu)選實施例的一種用于譯碼一定向內(nèi)插器的裝置的框圖。參考圖24A,用于譯碼一定向內(nèi)插器的裝置包括一標題譯碼器2110,一熵譯碼器2410,一逆循環(huán)DPCM運算符2420,一逆量化器2430,以及一四元數(shù)乘法器2440。該標題譯碼器2110對為譯碼由來自一輸入位流的一四元數(shù)所表示的關鍵字值數(shù)據(jù)所需的標題信息進行譯碼并將該譯碼的標題信息提供給一關鍵字值數(shù)據(jù)譯碼器2150。該熵譯碼器2410通過熵譯碼來自該輸入位流的熵編碼關鍵字值數(shù)據(jù)來生成一循環(huán)的DPCM旋轉差分數(shù)據(jù)或量化的旋轉差分數(shù)據(jù)。該逆循環(huán)DPCM運算符2420通過在輸入到其中的循環(huán)DPCM旋轉差分數(shù)據(jù)上執(zhí)行一逆循環(huán)DPCM操作來生成量化的旋轉差分數(shù)據(jù)。該逆量化器2430通過逆量化已量化的旋轉以及差分數(shù)據(jù)來生成一旋轉差分值。該一四元數(shù)乘法器2440通過將當前關鍵幀的一旋轉差分值四元數(shù)乘以一前關鍵幀的一旋轉變換值來生成一當前關鍵幀的一旋轉變換值。
      圖24B是根據(jù)本發(fā)明一優(yōu)選實施例的用于譯碼關鍵字值數(shù)據(jù)的方法流程圖。參考圖24B,一位流被輸入到標題譯碼器2110以及關鍵字值數(shù)據(jù)譯碼器2150的熵譯碼器2140中,利用根據(jù)本發(fā)明的用于編碼一定向內(nèi)插器的裝置將關鍵字值數(shù)據(jù)編碼成上述位流。
      在步驟S24100中,標題譯碼器2110譯碼用于譯碼來自該輸入位流的關鍵字值數(shù)據(jù)所要求的標題信息并將該譯碼的標題信息提供給關鍵字值數(shù)據(jù)譯碼器2150中。
      在標題信息中,對基于DPCM次數(shù)的已被量化成四元數(shù)中的第一和第二內(nèi)部關鍵字值數(shù)據(jù)以及多個用來譯碼其它關鍵字值數(shù)據(jù)的特征位進行編碼。
      如果DPCM的次數(shù)為1(例如,如果多個特征位之一的nKVDPCMOrder被設置為0),將第一量化的關鍵字值數(shù)據(jù)包括在標題信息中作為內(nèi)部關鍵字值數(shù)據(jù)。如果第一逆量化的關鍵字值數(shù)據(jù)的一四元數(shù)值滿足第一逆量化關鍵字值數(shù)據(jù)用下述等式(48)來計算。
      在等式(48)中,僅當類OrilDPCMKeyValueHeader中的nFirstXSign為1或在其它條件下為-1時,xSign為1。Ysign和zSign分別與nFirstYSign和nFirstZSign具有如xSign與nFirstXSign間的關系相同的關系。
      由等式(48)定義的復原四元數(shù)分量值被轉換成將被用作一定向內(nèi)插器的一角位移。從關鍵字值數(shù)據(jù)復原每個角位移能用一四維矢量表示,其中i表示當前關鍵字數(shù)據(jù),
      表示一旋轉軸的矢量,以及
      表示一逆時針旋轉角。因此,復原四元數(shù)分量值用下面的等式(49)被轉換成角位移。
      如果DPCM的次數(shù)為2,例如,如果nKVDPCMOrder被設置為1,第一和第二量化的關鍵字值數(shù)據(jù)被包括在標題信息中。用與上面描述的相同的方式復原第一量化的關鍵字值數(shù)據(jù)。然后,用一種不同的方法復原第二關鍵字值數(shù)據(jù)。換句話說,僅將第二量化關鍵字值數(shù)據(jù)的第三分量與一編碼的位流一起被傳送以及它們的值不是內(nèi)部關鍵字值數(shù)據(jù)而是具有第一關鍵字值數(shù)據(jù)的不同的數(shù)據(jù)假定表示逆量化的關鍵字值數(shù)據(jù)的第二關鍵字值數(shù)據(jù)的一四元數(shù)滿足
      用下面的等式(50)來計算。
      在等式(50)中,僅當類OrilDPCMKeyValueHeader中的nSecondXSign為1或在其它條件下為-1時,secondXSign為1。secondYsign和secondZSign分別與nSecondYSign和nSecondZSign具有如xSign與nSecondXSign間的關系相同的關系。如果表示第二逆量化的關鍵字值數(shù)據(jù)的一四元數(shù)
      滿足
      是通過
      乘以
      計算得出的。換句話說,
      標題譯碼器2110將譯碼的關鍵字值數(shù)據(jù)和譯碼的標題信息輸出給關鍵字值譯碼器2150。
      熵譯碼器2410接收一位流并利用在步驟S24120至S24128中由標題譯碼器2110所編碼的譯碼信息對輸入的位流進行熵編碼,其中關鍵字值數(shù)據(jù)的差分數(shù)據(jù)被編碼成上述位流。
      圖25是描述輸入到熵譯碼器2140中的一位流的結構圖。在圖25中,假定N(nNumberOfKeyValue)表示編碼的關鍵字值數(shù)據(jù)的數(shù)量,當DPCM的次數(shù)為0時,包括在一位流中的每個分量的旋轉差分數(shù)據(jù)的數(shù)量為N-1(0,1,...,nNumberOfKeyValue-2)。當DPCM的次數(shù)為1時,包括在位流中的每個分量的旋轉差分數(shù)據(jù)的數(shù)量為N-2(0,1,...,nNumberOfKeyValue-3)。
      熵譯碼器2410接收來自標題譯碼器2110的x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag并在步驟S24120中核對x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag每個是否被設定為1。
      在步驟S24l22中,當x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag每個均被設定為0時,被認為所有量化的關鍵字值數(shù)據(jù)或每個分量的所有差分數(shù)據(jù)同在類OrilKeyValueCodingBit中的nAllKeyValues相同。因此,熵譯碼器2410將每個分量的關鍵字值數(shù)據(jù)譯碼成與從標題譯碼器2110輸入的nAllKeyValues的相同值并將譯碼的關鍵字值數(shù)據(jù)輸出到逆循環(huán)DPCM運算符2420中。
      如果x_keyvalue_fiag、y_keyvalue_flag以及z_keyvalue_flag不是設定為0,例如,如果x_keyvalue_flag、y_keyvalue_flag以及z_keyvalue_flag被設定為1,熵譯碼器2410核對從關鍵字值標題譯碼器2110輸入的一熵譯碼模式以便在步驟S24124中譯碼輸入的關鍵字值數(shù)據(jù)的每個分量
      當熵譯碼模式是一二進制譯碼模式時,在步驟S24126中,熵譯碼器2420使用如表3所示的一函數(shù)decodeSignedAAC()譯碼一自適應的算術上的編碼的位流并將量化的旋轉差分數(shù)據(jù)輸出到逆循環(huán)DPCM運算符2420中。
      表3
      另一方面,當熵譯碼模式不是一二進制譯碼模式時,在步驟S24128中,熵譯碼器2410使用一函數(shù)decodeUnaryAAC()譯碼輸入位流。函數(shù)decodeUnaryAAC()通過連續(xù)地讀取0直到從該位流中讀出1為止、將連續(xù)Os的數(shù)量轉換成它的絕對值,讀取與位“1”鄰近的一位,并將該位轉換成一特征位來譯碼該輸入位流,然后將量化的旋轉差分值輸出到逆循環(huán)DPCM運算符2420中。函數(shù)decodeUnaryAAC()的例子如表4所示。
      表4
      在上述函數(shù)decodeSignedAAC()和decodeUnaryAAC()中所采用的qf_decode()被用來從一自適應的算術上的編碼的位流中讀取位1并且由國際標準組織授權的文獻ISO/IEC14496-21999Coding of Audio-VisualObjectVisual定義。
      逆循環(huán)DPCM運算符2420從熵譯碼器2410接收熵譯碼的關鍵字值數(shù)據(jù)并核對從關鍵字值標題譯碼器2110輸入的DPCM的次數(shù)。如果DPCM的次數(shù)為0,在步驟S24130中,逆循環(huán)DPCM運算符2420將譯碼的旋轉差分數(shù)據(jù)
      輸出到逆量化器2430中,因為從熵譯碼器2410輸入的熵譯碼的關鍵字值數(shù)據(jù)是量化的旋轉差分數(shù)據(jù)。
      另一方面,如果DPCM的次數(shù)為1,逆循環(huán)DPCM運算符2420在步驟S24135執(zhí)行一逆循環(huán)DPCM操作,因為從熵譯碼器2410輸入的熵譯碼關鍵字值數(shù)據(jù)是循環(huán)的DPCM旋轉差分數(shù)據(jù)。
      假定nKVQBit表示逆量化位,逆循環(huán)DPCM運算符2420在旋轉差分數(shù)據(jù)
      上用等式(51)執(zhí)行一逆循環(huán)DPCM操作并在步驟S24135中生成量化的循環(huán)差分數(shù)據(jù)
      (i=2,…nNumberOfKeyValue-1)
      此后,逆循環(huán)DPCM運算符2420分別使用

      獲得一逆DPCM值A以及一逆DPCM值B,如等式(52)所示。
      (i=2,…,nNumberOfKeyValue-1)
      如果B+(2nKVQBit-1-1)位于0和在一量化范圍內(nèi)的一最大值之間,逆循環(huán)DPCM運算符2420將B輸出作為逆循環(huán)DPCM數(shù)據(jù)
      另一方面,如果B+(2nKVQBit-1-1)小于0或大于在量化范圍內(nèi)的最大值時,逆循環(huán)DPCM運算符2420輸出A作為
      C十十程序代碼的一個例子,其中寫出了逆循環(huán)DPCM運算符2420的上述操作,如圖3所示。
      表5逆量化器2430接收由執(zhí)45-一逆循環(huán)DPCM操作的逆循環(huán)DPCM運算符2420生成的量化的旋轉差分數(shù)據(jù)通過在
      上用等式(53)執(zhí)行一逆量化操作來復原一旋轉差分值將在步驟S24140中旋轉差分值
      輸出到四元數(shù)乘法器2440中。
      (f=2,…,nNumberOfKeyValue-1,j=1,2,3)
      此后,四元數(shù)乘法器2440接收旋轉差分值
      四元數(shù)乘法器2440在步驟S24154中通過將輸入旋轉差分值
      按下面的等式(54)四元數(shù)乘以一前關鍵幀的一旋轉變換值
      復原一當前關鍵幀的旋轉變換值
      (i=2,…nNumberOfKeyValue-1)
      在復原一旋轉變換值后,關鍵字值數(shù)據(jù)譯碼器2400在步驟S24156中核對復原旋轉變換值是否與最后一個關鍵字值數(shù)據(jù)相對應。如果復原旋轉變換值與最后一個關鍵字值數(shù)據(jù)不相對應,關鍵字值數(shù)據(jù)譯碼器2400重復執(zhí)行步驟S24140至S24154。另一方面,如果復原旋轉變換值是最后一個關鍵字值數(shù)據(jù),則在步驟S24158中,關鍵字值數(shù)據(jù)譯碼器2400將復原旋轉變換值輸出。
      如果DPCM的次數(shù)為0,逆循環(huán)DPCM運算符2420將譯碼的量化的旋轉差分數(shù)據(jù)
      (其中
      )輸出到逆量化器2430中。然后,通過逆量化從逆循環(huán)DPCM運算符2420輸入的旋轉差分數(shù)據(jù)
      來生成一旋轉差分值
      (其中并在步驟S24140中將Qi輸出到四元數(shù)乘法器2440中。
      (i=1,…,nNumberOfKeyValue-1,j=1,2,3)
      即使當DPCM的次數(shù)為0,四元數(shù)乘法器2440將與當DPCM的次數(shù)不為0時的幾乎相同的方式(步驟S24150至S24158)來復原旋轉變換值。當DPCM的次數(shù)不為0時,四元數(shù)乘法器2440用等式(56)執(zhí)行四元數(shù)乘法。
      (i=1,…nNumberOfKeyValue-1)
      在下文中,將描述定向內(nèi)插器合成器2180的操作。
      圖26是定向內(nèi)插器合成器2180的操作流程圖。參考圖26,在步驟S26000中,定向內(nèi)插器合成器2180接收譯碼關鍵字數(shù)據(jù)和譯碼關鍵字值數(shù)據(jù)并從標題譯碼器2110接收關鍵字數(shù)據(jù)的數(shù)量以及一斷點生成模式以及關鍵字選擇特征位。
      在步驟S26100中,當斷點生成模式是一動畫路徑保存模式時,定向內(nèi)插器合成器2180輸出譯碼關鍵字數(shù)據(jù)和譯碼關鍵字值數(shù)據(jù)。在一動畫路徑保存模式中已經(jīng)抽取斷點的情況下,關鍵字數(shù)據(jù)與關鍵字值數(shù)據(jù)相對應,因此,沒有必要使用內(nèi)插生成新的關鍵字值數(shù)據(jù)。然而,如果在一動畫關鍵字保存模式中已經(jīng)抽取斷點,這表示僅與斷點相對應的關鍵字值數(shù)據(jù)被編碼同時所有關鍵字數(shù)據(jù)已經(jīng)被編碼和譯碼。因此,在這種情況下,關鍵字數(shù)據(jù)與關鍵字值數(shù)據(jù)不相對應,因此有必要內(nèi)插將在下述段路中描述的關鍵字值數(shù)據(jù)。
      當斷點生成模式是一動畫關鍵字保存模式時,在步驟S26200中,表示關鍵字選擇特征位的數(shù)據(jù)的一指數(shù)的一計數(shù)器被設置從而與關鍵字數(shù)據(jù)相對應,以便計算與該關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)是否存在。
      定向內(nèi)插器合成器2180在步驟S26300中核對如果與由該計數(shù)器表示的關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)存在的話,則轉入步驟S26500。
      如果沒有與由計數(shù)器表示的關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù),在步驟S26400中,通過使用與由兩個連續(xù)斷點表示的關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù),線性內(nèi)插當前關鍵字值數(shù)據(jù),定向內(nèi)插器合成器2180生成關鍵字值數(shù)據(jù),這兩個連續(xù)斷點包括在由該計數(shù)器所表示的關鍵字數(shù)據(jù)前的一個斷點以及在由該計數(shù)器表示的關鍵字數(shù)據(jù)后的另一個斷點。
      此后,定向內(nèi)插器合成器2180核對所有關鍵字值數(shù)據(jù)是否具有它們相應的關鍵字值數(shù)據(jù)并且在步驟S26500中對所有不具有與其相應的關鍵字值數(shù)據(jù)的關鍵字數(shù)據(jù)執(zhí)行線性操作。如果仍然存在還沒有被核對的關鍵字數(shù)據(jù),定向內(nèi)插器合成器2180更新計數(shù)器并再次執(zhí)行步驟S26300至S26500。如果已經(jīng)核對所有關鍵字數(shù)據(jù),定向內(nèi)插器合成器2180在步驟S26600中輸出合成關鍵字數(shù)據(jù)和合成關鍵字值數(shù)據(jù)作為一定向內(nèi)插器。
      在下文中,將描述SDL語言程序代碼的例子,通過該SDL語言程序代碼,可實現(xiàn)用于根據(jù)本發(fā)明的譯碼一定向內(nèi)插器的裝置,該定向內(nèi)插器譯碼關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      圖29是描述一類CompressedOrientationInterpolator的圖。CompressedOrientationInterpolator是一個用于讀取一定向內(nèi)插器的一編碼的位流的一最高類。KeyHeader、KeySelectionFlag和Key均是用于從一位流讀取與在一常規(guī)內(nèi)插器的關鍵字現(xiàn)場數(shù)據(jù)相對應的關鍵字數(shù)據(jù)信息的類。OrilKeyValueHeader和OrilDPCMKeyValue是用于讀取有關與在一常規(guī)的定向內(nèi)插器中關鍵字值現(xiàn)場數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)的信息的類。函數(shù)qf_start()是使用自適應算術編碼(AAC),用來在讀取一位流前初始化算術譯碼器,其中編碼關鍵字值數(shù)據(jù)。
      圖29B給出了對譯碼所需的一關鍵字標題進行譯碼的一關鍵字標題類的圖。
      關鍵字標題類包括關鍵字數(shù)據(jù)的數(shù)量、量化位、內(nèi)部關鍵字數(shù)據(jù)、一DND標題以及實際用于譯碼譯碼的位的數(shù)量。nKeyQBit表示用在逆量化中來復原浮點關鍵字值的量化位。nNumKeyCodingBit表示nNumberOfKey的一位長,nNumberOfKey表示關鍵字數(shù)據(jù)的數(shù)量。nkeyDigit表示原始關鍵字數(shù)據(jù)的多個最高有效位并用來舍入譯碼值。
      當有關線性關鍵字子區(qū)域的信息被包括在一關鍵字標題中時,一特征位blsLinearKeySubRegion被設置為1。在這種情況下,使用其后的一特征位blsLinearKeySubRegion的譯碼標題信息能計算包括在一整個關鍵字區(qū)域的特定線性關鍵字子區(qū)域中的關鍵字。bRangeFlag表示關鍵字數(shù)據(jù)范圍是否從0到1。如果關鍵字數(shù)據(jù)范圍不是從0到1,在關鍵字數(shù)據(jù)范圍中的最小和最大值被從一類KeyMinMax類被譯碼。KeyMinMax重新獲得要求用于逆量化的最小和最大值。上述每個值能被劃分成它們各自的尾數(shù)和指數(shù)。
      nBitSize是nQIntraKey的位的大小,以及nKeyShift是nKeyMax的一初始位的大小。nQIntraKey表示第一量化內(nèi)部數(shù)據(jù)的大小并與表示nQIntraKey的一特征位的nQintraKeySign結合。nQintraKey被用作為復原其它量化關鍵字數(shù)據(jù)所需的一基數(shù)。在用在內(nèi)插器壓縮中的所有特征位中,一值“0”表示一正號,以及一值“1”表示一負號。nKDPCMOrder表示一值,該值是DPCM的次數(shù)減1。DPCM的次數(shù)可是1、2或3。量化內(nèi)部數(shù)據(jù)的數(shù)量與DPCM的次數(shù)相同。
      nKeyShift以及一符號位nKeyShiftSign是表示在一關鍵字數(shù)據(jù)譯碼器中的位移量的一整數(shù)。如果bShiftFlag被設置為“true”,譯碼nKeyShift以及nKeyShiftSign。nDNDOrder是二次劃分(DND)操作的次數(shù)。DND操作在上面已經(jīng)結合一關鍵字數(shù)據(jù)譯碼器描述過。如果nDNDOrder的值為7,則譯碼bNoDND。bNoDND表示是否將執(zhí)行一逆DND操作。nKeyMax是在一逆DND操作的連續(xù)周期期間所使用的一最大值或一最小值。nKeyCodingBit表示用于編碼關鍵字數(shù)據(jù)的位。
      bSignedAACFlag表示在AAC譯碼期間將執(zhí)行的一譯碼過程。如果bSignedAACFlag被設置為0,將執(zhí)行一無符號的AAC譯碼過程。否則,將執(zhí)行一帶符號的AAC譯碼過程。bKeyInvertDownFlag是表示是否將使用nKeyInvertDown的一布爾值。nKeyInvertDown是用來將大于其自身的所有量化關鍵字數(shù)據(jù)轉換成不小于-1的負數(shù)值的一整數(shù)。如果nKeyInvertDown被設置為-1,那幺將不執(zhí)行一下移操作。
      圖29C是表示一類LinearKey的圖。在圖29C中,nNumLinearKeyCodingBit是表示對多個預定線性預測關鍵字進行編碼所必須的位的數(shù)量。nNumberOfLinearKey是表示線性預測關鍵字的一值。
      圖29D是描述一類KeyMinMax的圖。在圖29D中,bMinKeyDigitSame是表示所有關鍵字的最高有效位的數(shù)量(nKeyDigit)和在關鍵字中的一最小值的最高有效位的數(shù)量是否相同的一特征位。nMinKeyDigit是表示在關鍵字中最小值的最高有效位的數(shù)量的一值。nMinKeyMantissaSign是表示nMinKeyMantissa的一特征位的一值。nMinKeyMantissa是表示在關鍵字中最小值的尾數(shù)的一值。nMinKeyExponentSign是表示nMinKeyExponent的一特征位的一值。
      nMinKeyExponent是表示在關鍵字中最小值的尾數(shù)的一值。
      fKeyMin是表示在關鍵字中最小值的一值。bMaxKeyDigitSame是表示所有關鍵字的最高有效位的數(shù)量nKeyDigit和在關鍵字中的一最大值的最高有效位的數(shù)量是否相同的一特征位。nMaxKeyDigit是表示在關鍵字中最大值的最高有效位的數(shù)量的一值。nMaxnKeyMantissaSign是表示nMaxnKeyMantissa的一特征位的一值。nMaxnKeyMantissa是表示在關鍵字中最大值的尾數(shù)的一值。
      bSameExponent是表示在關鍵字中最大值的尾數(shù)是否與nMinKeyExponent相同的一特征位。nMaxKeyExponentSign是表示nMaxKeyExponent的一特征位的一值。nMaxKeyExponent是表示在關鍵字中最大值的尾數(shù)的一值。FkeyMax是表示在關鍵字中最大值的一值。
      圖29E是描述一類OrilKeyValueHeader的圖。用在該類中的每個變量的含義如下。bPreserverKey表示一當前譯碼模式是否是一動畫關鍵字保存模式或一動畫路徑保存模式。當bPreserverKey被設置為“true”時,當前譯碼模式是一動畫關鍵字保存模式。
      nKVQBit表示關鍵字值數(shù)據(jù)的一逆量化位的大小。nKVDPCMOrder表示用于譯碼關鍵字值數(shù)據(jù)的逆DPCM操作的次數(shù)。當nKVDPCMOrder=0時,不需要執(zhí)行一逆循環(huán)DPCM操作。另一方面,當nKVDPCMOrder=1時,應該執(zhí)行一具有2次方的逆循環(huán)DPCM操作。
      圖29F是描述一類OriDPCMKeyValueHeader的圖。用在該類中的每個變量的含義如下。firstQKV_S、firstQKV_X、firstQKV_Y以及firstQKV_Z分別表示四個分量s,x,y以及z的第一值,構成一四元數(shù)(s,x,y,z)表示量化的關鍵字值數(shù)據(jù)。nfirstXSign,nfirstYSign以及nfirstZSign分別表示firstQKV_X、firstQKV_Y以及firstQKV_Z的特征位。secondQKV_X、secondQKV_Y以及secondQKV_Z分別表示三個分量x,y以及z的第二值,以及nsecondXSign,nsecondYSign以及nsecondZSign分別表示secondQKV_X、secondQKV_Y以及secondQKV_Z的特征位。BblsMoreTwoKVs表示當必須執(zhí)行一逆循環(huán)DPCM時是否有將被譯碼的兩個以上的關鍵字值數(shù)據(jù)。x_keyvalue_flag、y_keyValue_flag以及z_keyvalue_flag表示每個分量x,y以及z的所有量化值是否相同。
      圖29G是描述一類OrilKeyValueCodingBit的圖。在該類中每個變量的含義如下。NnKVCodingBit表示用來存儲量化后除內(nèi)部關鍵字值數(shù)據(jù)(在類OrilDPCMKeyValueHeader中的firstQKV_S、firstQKV_X、firstQKV_Y、firstQKV_Z、secondQKV_X、secondQKV_Y以及secondQKV_Z外的所有量化關鍵字值數(shù)據(jù)的位的數(shù)量。
      nAllKeyValue表示當用于每個分量的keyvalue_flag設置為0時所有關鍵字值數(shù)據(jù)的每個分量的一量化的值。nSign表示nAllKeyValue的特征位。BlsUnaryAAC表示用于譯碼每個分量x,y和z的量化值的一種自適應算術量化方法。如果BlsUnaryAAC被設置為“true”,將使用一unaryAAC譯碼函數(shù)。另一方面,如果BlsUnaryAAC被設置為“false”,則將使用一binaryAAC譯碼函數(shù)。
      圖29H是描述一類KeySelectionFlag的圖。在該類KeySelectionFlag中,keyFlag表示是否已經(jīng)編碼第i個關鍵字數(shù)據(jù)。nNumOfKeyValue是表示將被譯碼的關鍵字值數(shù)據(jù)的數(shù)量的一整數(shù)。
      圖29I是描述一類Key的圖。在該類Key中,nQKey是從一位流譯碼的量化關鍵數(shù)據(jù)的一數(shù)組。KeyContext是用于讀取nQKey的一大小的一環(huán)境(context)。KeySignContext是用于讀取nQKey的一符號的一環(huán)境。
      DecodeUnsignedAAc是用來執(zhí)行具有一給定環(huán)境的自適應算術編碼的一不帶符號的譯碼過程的一函數(shù),這將在下面描述。DecodeSignedAAC是用于執(zhí)行具有一給定環(huán)境的自適應算術編碼的一帶符號的譯碼過程的一函數(shù),這將在下面描述。
      圖29J是描述一類OrilDPCMKeyValue的圖。在該類中每個變量的含義如下。DeltaKeyValue被用來以四元數(shù)的形式存儲包括三個分量x,y和z的量化的關鍵字值數(shù)據(jù)。存儲在DeltaKeyValue中的量化的關鍵字值數(shù)據(jù)使用一函數(shù)decodeUnaryAAC或decodeSignedAAC從一位流中被譯碼。
      kVXSignContext,kVYSignContext,kVZSignContext是用于使用函數(shù)decodeUnaryAAC或decodeSignedAAC來譯碼DeltaKeyValue三個分量x,y和z的環(huán)境。
      kVXUnaryContext,kVYUnaryContext,kVZUnaryContext是用于使用函數(shù)decodeUnaryAAC來譯碼DeltaKeyValue三個分量x,y和z的環(huán)境。
      kVXContext,kVYContext,kVZContext是用于使用函數(shù)decodeedAAC來譯碼DeltaKeyValue三個分量x,y和z的環(huán)境。
      在下文中,將參考本發(fā)明第三實施例來描述在包含在根據(jù)本發(fā)明第三實施例的量化器2000中的誤差測量單元2050中所執(zhí)行的用于測量一原始旋轉差分數(shù)據(jù)值與一旋轉差分數(shù)據(jù)值間的一誤差的方法,以及用于測量一原始旋轉差分值與一旋轉差分值間的一誤差的方法,上述旋轉差分數(shù)據(jù)值是通過對分別包含在如圖4A至4C所示的斷點抽取器42、46、48中的誤差計算器42b,46b以及48b中的已量化旋轉差分值進行逆量化而復原的,上述旋轉差分值是通過對已量化旋轉差分值進行逆量化而復原的。
      根據(jù)本發(fā)明,測量一原始旋轉差分值和一復原旋轉差分值間的一誤差的方法也能被用來測量編碼前的一原始定向內(nèi)插器與通過譯碼一編碼定向內(nèi)插器生成的一定向內(nèi)插器間的誤差。因此,一定向內(nèi)插器的一動畫路徑,將由斷點抽取器42、46或48從其抽取斷點,以及用在誤差測量單元250中的原始旋轉差分值將被描述成與編碼前的一定向內(nèi)插器相對應。同樣,由抽取斷點所構成的一定向內(nèi)插器的一動畫路徑以及用在誤差測量單元2050中的復原旋轉差分值將被描述成與譯碼定向內(nèi)插器的關鍵字值數(shù)據(jù)相對應。
      在編碼一定向內(nèi)插器的過程中,在量化期間在原始定向內(nèi)插器和一復原定向內(nèi)插器間產(chǎn)生一誤差。在這里,原始定向內(nèi)插器和復原定向內(nèi)插器間的誤差是由使用在原始旋轉變換和復原旋轉變換間的角度中的一差值定義。
      換句話說,假定包含在一定向內(nèi)插器節(jié)點中的一關鍵字值數(shù)據(jù)與在一譯碼器中的其復原關鍵字值數(shù)據(jù)分別被稱為

      其中
      表示一旋轉軸,以及θ表示一旋轉角并滿足θ∈[-π,π],通過旋轉變換,在一三維空間中的一對象基于

      被分別從一任意位置
      移動到一任意位置
      以及從
      移動到一任意位置
      一量化誤差是

      間的差值并滿足以四元數(shù)形式表示的

      如等式(57)中所示。
      當表示

      的四元數(shù)被稱為Q和
      時,可導出下述等式。
      Y=Q×X×Q* …(58)
      X=Q*×Y×Q
      此時,A×B表示四元數(shù)乘法,以及A*表示A的一復共軛。基于等式(57)和(58),可導出下述等式。
      此時,Qerror是表示在旋轉變換方面

      間的關系以及由下述等式來定義。


      間的一差分旋轉角被稱為θerror時,使用一四元數(shù)變換公式以及等式(61)可獲得θerror。
      此時,·表示一內(nèi)積操作。等式(61)定義在一預定時間瞬間在所有動畫關鍵幀中發(fā)生的瞬時量化誤差,因此,根據(jù)本發(fā)明的第三實施例,包括在量化器2000中的誤差測量單元2050用等式(61)計算一原始定向內(nèi)插器和一復原定向內(nèi)插器間的一誤差。
      另外,可用下述等式定義在預定時間瞬間(t)的一瞬時量化誤差以便從等式(62)導出用于獲得在一整個動畫間隔中的一量化誤差的一公式。
      通過大量地將公式(62)應用到整個關鍵幀間隔來導出一平均誤差Em以及一最大誤差Ep,在這期間,可使用一定向內(nèi)插器來執(zhí)行一動畫。
      此時,為獲得平均誤差Em,必須首先獲得在間隔[ti-1,ti]中誤差的部分和
      如圖27所示。在下文中,當在預定時間ti-1和ti與原始關鍵字數(shù)據(jù)相對應的譯碼關鍵字數(shù)據(jù)存在時,預定時間將分別被稱為

      與原始關鍵字值數(shù)據(jù)Qi-1和Qi相對應的譯碼的關鍵字值數(shù)據(jù)將被分別稱為

      由于在編碼關鍵字數(shù)據(jù)期間生成的噪音,不可能直接計算一原始定向內(nèi)插器的原始動畫路徑Qi′與一譯碼定向內(nèi)插器的一動畫路徑
      間的一誤差,如圖27所示。因此,間隔[ti-1,ti]必須被劃分成三個子間隔

      接著,使用等式(63)來獲得在

      的四元數(shù)值。
      在等式(63)中,函數(shù)SLERP()被用來執(zhí)行球性線性內(nèi)插。
      由于在一三維空間中一動畫路徑必然矢真的事實,如圖27所示,間隔
      必須被劃分成兩個子間隔

      然后這兩個子間隔必須彼此分開計算。此時,假定兩個動畫路徑間,即一組Qi值與一組
      值間的一距離在間隔
      中的ti”被減小。使用下述等式來計算在

      間的瞬時誤差。
      另外,在間隔
      中的ti“與
      成比例,如等式(65)所示。
      用下述等式(66)來計算中間四元數(shù)值以及在ti”處的一瞬時誤差。然而,用下述等式(67)獲得在任意時間瞬間(t)的一瞬時誤差。
      此時,以及然而,計算在任意時間瞬間(t)的一瞬時誤差e(t)并不容易。因此,使用如近似法(68)所示的線性近似確定e(t)。
      在間隔[ti-1,ti]中的誤差的部分和
      以及在間隔
      中的最大誤差的一部分和
      也能使用近似法(69)和(70)來獲得。
      近似法(69)能被重新整理如下。
      最后,在一時間間隔[tmin,tmax]中的一平均Em以及一最大誤差Ep用以下的近似法(71)計算。
      因此,包括在如圖4A至4C所示的斷點抽取器42、46和48中的誤差計算器42b、46b和48b分別使用等式(71)計算一原始定向內(nèi)插器和一復原定向內(nèi)插器中的一誤差并能更精確地測量由于由于一量化誤差所帶來的在一四元數(shù)空間中圖像矢真的程序。
      圖28是與用于編碼關鍵字值數(shù)據(jù)的一常規(guī)方法相比的根據(jù)本發(fā)明的用于編碼關鍵字值數(shù)據(jù)的方法的性能的圖形。如圖28所示,根據(jù)用于編碼本發(fā)明的一定向內(nèi)插器方法,當給定要求用于編碼的一預定數(shù)量位時,與在常規(guī)的MPEG-4BIFS PMFC方法相比,圖像矢真的程序能被相當大地降低。
      本發(fā)明能按寫在一計算機可讀記錄介質(zhì)上的計算機可讀代碼來實現(xiàn)。在這里,計算機可讀記錄介質(zhì)包括能由一計算機系統(tǒng)讀取的任何種類的記錄介質(zhì)。例如,該計算機可讀記錄介質(zhì)可能包括一ROM、一RAM、一CD-ROM、一磁帶、一軟盤、一光數(shù)據(jù)存儲器、載波(通過Internet傳輸)等等。計算機可讀記錄介質(zhì)能被分散到連接到網(wǎng)絡上的計算機系統(tǒng),以及一計算機能用一分散的方式讀取該記錄介質(zhì)。
      根據(jù)本發(fā)明,用于編碼一定向內(nèi)插器的方法和裝置能以高效率編碼動畫關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)同時保持高質(zhì)量動畫。另外,根據(jù)本發(fā)明,通過利用測量動畫數(shù)據(jù)路徑間的一誤差的方法來保持高質(zhì)量動畫是可能的,而且通過利用重新采樣方法和本發(fā)明的斷點抽取,也可能相當大地減小將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)量。
      另外,通過計算一旋轉差分值,有可能提供具有一高壓縮比的高質(zhì)量動畫,該旋轉差分值能充分反映在與一定向內(nèi)插器的關鍵字數(shù)據(jù)相對應的旋轉變換中的冗余,并因此編碼該定向內(nèi)插器的關鍵字值數(shù)據(jù)。
      同時本發(fā)明已經(jīng)明確表示和參考其優(yōu)選實施例描述過,對本領域的普通技術人員來說在不脫離由附加權利要求限定的本發(fā)明的精神和范圍的情況下可對形式和細節(jié)做出改變。
      權利要求
      1、一種用于編碼定向內(nèi)插器的裝置,所述定向內(nèi)插器包括表示在時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示對象的旋轉的關鍵字值數(shù)據(jù),該裝置包括
      斷點抽取器,從由輸入到其中的定向內(nèi)插器組成的第一動畫路徑抽取最小數(shù)量的斷點,能產(chǎn)生不大于所述第一動畫路徑和由抽取的斷點生成的第二動畫間的預定誤差極限的誤差;
      關鍵字數(shù)據(jù)編碼器,編碼從所述斷點抽取器輸入的關鍵字數(shù)據(jù);
      關鍵字值數(shù)據(jù)編碼器,通過生成旋轉差分數(shù)據(jù)來編碼從所述斷點抽取器輸入的關鍵字值數(shù)據(jù),通過關鍵字值數(shù)據(jù)編碼器,所述對象按幾乎等于當前關鍵幀的旋轉變換值和前關鍵幀的旋轉變換值間的差值被旋轉變換。
      2、如權利要求1所述的裝置,進一步包括
      重新采樣器,將所述第一動畫路徑采樣成具有預定時間量間隔的多個預定部分,并輸出包括重新采樣關鍵字數(shù)據(jù)和重新采樣關鍵字值數(shù)據(jù)的定向內(nèi)插器;以及
      選擇器,根據(jù)外部輸入信號,將輸入到其中的定向內(nèi)插器輸出到所述重新采樣器或所述斷點抽取器。
      3、如權利要求1所述的裝置,進一步包括重新采樣器,將所述第一動畫路徑采樣成具有預定時間量間隔的多個預定部分,并輸出包括重新采樣關鍵字數(shù)據(jù)和重新采樣關鍵字值數(shù)據(jù)的定向內(nèi)插器,
      其中所述斷點抽取器從由從所述重新采樣器輸入的定向內(nèi)插器組成的動畫路徑抽取斷點。
      4、如權利要求1所述的裝置,進一步包括重新采樣器,將由從所述斷點抽取器抽取的定向內(nèi)插器組成的動畫路徑采樣成具有預定時間量間隔的多個預定部分,并將包括重新采樣關鍵字數(shù)據(jù)和重新采樣關鍵字值數(shù)據(jù)的定向內(nèi)插器輸出到所述關鍵字數(shù)據(jù)編碼器和所述關鍵字值編碼器。
      5、如權利要求2至4中任何一個所述的裝置,其中所述重新采樣器將由定向內(nèi)插器的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)組成的動畫路徑劃分成具有預定時間量間隔的多個預定部分,并輸出每個部分的終點作為將被編碼的關鍵字數(shù)據(jù),并輸出存在于每個部分中的動畫路徑上的關鍵字值數(shù)據(jù)以作為將被編碼的關鍵字值數(shù)據(jù)。
      6、如權利要求1至4中任何一個所述的裝置,其中所述斷點抽取器包括
      線性內(nèi)插器,抽取輸入動畫路徑的開始路徑點和結束路徑點,在所述開始和結束路徑點間選擇路徑點,以及利用所選擇的路徑點和所抽取的路徑點來球性線性內(nèi)插還沒有被選擇的其它路徑點;
      誤差計算器,計算所述輸入動畫路徑與由所述線性內(nèi)插器使用內(nèi)插所生成的內(nèi)插動畫路徑間的誤差;
      確定單元,抽取斷點,通過該操作,能最小化所述輸入動畫路徑與所述內(nèi)插動畫路徑間的誤差,并且如果所述相應誤差不大于預定誤差極限,則輸出抽取的斷點。
      7、如權利要求6所述的裝置,其中如果所述輸入動畫路徑與由抽取斷點所組成的所述內(nèi)插動畫路徑間的誤差大于所述預定誤差極限,則線性內(nèi)插器依次選擇除從所述確定單元輸入的斷點外的所有路徑點并在所選擇的路徑點上執(zhí)行球性線性內(nèi)插。
      8、如權利要求6所述的裝置,其中基于構成它們的路徑點的一個基準分量,所述誤差計算器將所述輸入動畫路徑和通過球性線性內(nèi)插所生成的動畫路徑分割成多個預定部分,并通過測量每個部分的區(qū)域來計算所述輸入動畫路徑和在每個部分中所生成的動畫路徑間的誤差。
      9、如權利要求1所述的裝置,其中關鍵字數(shù)據(jù)編碼器使用預定量化位量化從所述斷點抽取器輸入的關鍵字數(shù)據(jù),通過在已量化關鍵字數(shù)據(jù)上執(zhí)行預定DPCM操作來生成差分數(shù)據(jù),以及編碼所述差分數(shù)據(jù)。
      10、如權利要求1所述的裝置,其中所述關鍵字數(shù)據(jù)編碼器包括
      第一量化器,使用預定量化位來量化定向內(nèi)插器的關鍵字數(shù)據(jù);
      第一DPCM處理器,生成所述量化關鍵字數(shù)據(jù)的差分數(shù)據(jù);
      DND處理器,根據(jù)所述差分數(shù)據(jù)與其中的最大值和最小值間的關系,在所述差分數(shù)據(jù)上執(zhí)行DND操作;
      第一熵編碼器,熵編碼從所述DND處理器輸入的所述差分數(shù)據(jù)。
      11、如權利要求1所述的裝置,其中所述關鍵字數(shù)據(jù)編碼器進一步包括線性關鍵字編碼器,其識別和編碼所有輸入其中的關鍵字數(shù)據(jù)都線性增長的區(qū)域。
      12、如權利要求10所述的裝置,其中所述關鍵字數(shù)據(jù)編碼器進一步包括
      移位器,獲得在從所述第一DPCM處理器所輸入的差分數(shù)據(jù)中具有最高頻率的差分數(shù)據(jù)(模式)并從所述差分數(shù)據(jù)減去該模式;以及
      折疊處理器,將所述移位差分數(shù)據(jù)轉換成正數(shù)或負數(shù),以及DND處理器根據(jù)要求用于編碼的位的數(shù)量,從所述移位器輸入的差分數(shù)據(jù)、從所述折疊處理器輸入的差分數(shù)據(jù)以及DND差分數(shù)據(jù)中選擇一個,并輸出選擇的差分數(shù)據(jù)。
      13、如權利要求1所述的裝置,其中所述關鍵字值編碼器包括
      旋轉差分數(shù)據(jù)生成器,使用當前關鍵幀的旋轉變換值和前關鍵幀的復原旋轉變換值來生成旋轉差分數(shù)據(jù),所述旋轉差分值被用來按幾乎等于通過關鍵字值數(shù)據(jù)而應用到當前關鍵幀中的所述對象的旋轉變換與通過關鍵字值數(shù)據(jù)而應用到前關鍵幀中的所述對象的旋轉變換間的差值來旋轉所述對象,并通過量化所述旋轉差分值來輸出旋轉差分數(shù)據(jù);以及
      熵編碼器,熵編碼所述旋轉差分數(shù)據(jù)。
      14、如權利要求13所述的裝置,其中所述旋轉差分數(shù)據(jù)生成器包括
      量化器,通過量化所述旋轉差分值的三個分量值來生成旋轉差分數(shù)據(jù);
      量化數(shù)據(jù)調(diào)節(jié)器,調(diào)節(jié)輸入到其中的旋轉差分數(shù)據(jù)的三個分量值;
      逆量化器,逆量化所述調(diào)節(jié)分量值;
      旋轉差分值復原器,使用所述三個逆量化分量值來復原未被量化的一個分量值,從而生成復原旋轉差分值;以及
      誤差測量單元,測量輸入到所述量化器中的旋轉差分值和所述復原旋轉差分值間的誤差,并輸出具有已調(diào)節(jié)分量值的旋轉差分數(shù)據(jù),以便能最小化該誤差。
      15、如權利要求13所述的裝置,其中所述旋轉差分數(shù)據(jù)生成器包括
      第一四元數(shù)乘法器,使用所述當前關鍵幀的旋轉變換值和所述前關鍵幀的復原旋轉變換值來生成所述旋轉差分值;
      量化器,通過量化所述旋轉差分值來生成旋轉差分數(shù)據(jù);
      逆量化器,通過逆量化所述旋轉差分數(shù)據(jù)來生成復原旋轉差分值;以及
      第二四元數(shù)乘法器,通過將所述復原旋轉差分值四元數(shù)乘以所述前關鍵幀的旋轉變換值來生成所述當前關鍵幀的復原旋轉差分值。
      16、如權利要求13所述的裝置,其中所述旋轉差分數(shù)據(jù)生成器包括
      旋轉方向誤差檢測器,基于所述當前關鍵幀的旋轉變換值以及所述前關鍵幀的復原旋轉變換值來檢測是否已經(jīng)出現(xiàn)旋轉方向誤差,以致所述對象的原始旋轉方向與所述對象的譯碼旋轉方向相反;
      旋轉方向校正器,調(diào)節(jié)所述旋轉差分值以便所述對象的譯碼旋轉方向能與所述對象的原始旋轉方向相同;以及
      旋轉方向選擇器,根據(jù)從所述旋轉方向誤差檢測器輸入的檢測結果,選擇所述旋轉差分值或從所述旋轉方向校正器輸入的所述旋轉差分值以作為將被量化的差分數(shù)據(jù)。
      17、一種用于編碼定向內(nèi)插器的裝置,所述定向內(nèi)插器包括表示在時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示對象的旋轉的關鍵字值數(shù)據(jù),該裝置包括
      重新采樣器,將由輸入定向內(nèi)插器組成的動畫路徑采樣成具有預定時間量間隔的多個預定部分,并輸出包括重新采樣關鍵字數(shù)據(jù)和重新采樣關鍵字值數(shù)據(jù)的定向內(nèi)插器;
      關鍵字數(shù)據(jù)編碼器,編碼從所述重新采樣器輸入的關鍵字數(shù)據(jù);以及
      關鍵字值數(shù)據(jù)編碼器,生成旋轉差分值,所述旋轉差分值用來按幾乎等于通過當前關鍵幀的關鍵字值數(shù)據(jù)而應用到對象的旋轉變換和通過前關鍵幀的關鍵字值數(shù)據(jù)而應用到所述對象的旋轉變換間的差值來旋轉所述對象,從而編碼從所述重新采樣器所輸入的關鍵字值數(shù)據(jù)。
      18、如權利要求17所述的裝置,其中所述重新采樣器將由定向內(nèi)插器的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)所組成的動畫路徑劃分成具有預定時間量間隔的多個預定部分,并輸出每個部分的終點以作為將被編碼的關鍵字數(shù)據(jù),并輸出存在于每個部分中的動畫路徑上的關鍵字值數(shù)據(jù)以作為將被編碼的關鍵字值數(shù)據(jù)。
      19、如權利要求17所述的裝置,其中所述關鍵字數(shù)據(jù)編碼器包括線性關鍵字編碼器,其識別和編碼所有輸入其中的關鍵字數(shù)據(jù)都線性增長的區(qū)域。
      20、如權利要求17所述的裝置,其中所述關鍵字值編碼器包括
      旋轉差分數(shù)據(jù)生成器,使用當前關鍵幀的旋轉變換值和前關鍵幀的復原旋轉變換值來生成旋轉差分值,所述旋轉差分值被用來按幾乎等于通過關鍵字值數(shù)據(jù)而應用到當前關鍵幀中的所述對象的旋轉變換和通過關鍵字值數(shù)據(jù)而應用到前關鍵幀中的所述對象的旋轉變換間的差值來旋轉所述對象,并通過量化所述旋轉差分值來輸出旋轉差分數(shù)據(jù);以及
      熵編碼器,熵編碼所述旋轉差分數(shù)據(jù)。
      21、如權利要求20所述的裝置,其中所述旋轉差分數(shù)據(jù)生成器包括
      量化器,通過量化所述旋轉差分值的三個分量值來生成旋轉差分數(shù)據(jù);
      量化數(shù)據(jù)調(diào)節(jié)器,調(diào)節(jié)輸入到其中的旋轉差分數(shù)據(jù)的三個分量值;
      逆量化器,逆量化所述調(diào)節(jié)分量值;
      旋轉差分值復原器,使用所述三個逆量化分量值來復原未被量化的一個分量值,從而生成復原旋轉差分值;以及
      誤差測量單元,測量輸入到所述量化器中的旋轉差分值和所述復原旋轉差分值間的誤差,并輸出具有已調(diào)節(jié)分量值的旋轉差分數(shù)據(jù)以便能最小化該誤差。
      22、如權利要求20所述的裝置,其中所述旋轉差分數(shù)據(jù)生成器包括
      第一四元數(shù)乘法器,使用所述當前關鍵幀的旋轉變換值和所述前關鍵幀的復原旋轉變換值來生成所述旋轉差分值;
      量化器,通過量化所述旋轉差分值來生成旋轉差分數(shù)據(jù);
      逆量化器,通過逆量化所述旋轉差分數(shù)據(jù)來生成復原旋轉差分值;以及
      第二四元數(shù)乘法器,通過將所述復原旋轉差分值四元數(shù)乘以所述前關鍵幀的旋轉變換值來生成所述當前關鍵幀的復原旋轉差分值。
      23、如權利要求20所述的裝置,其中所述旋轉差分數(shù)據(jù)生成器包括
      旋轉方向誤差檢測器,基于所述當前關鍵幀的旋轉變換值以及所述前關鍵幀的復原旋轉變換值來檢測是否已經(jīng)出現(xiàn)旋轉方向誤差,以致所述對象的原始旋轉方向與所述對象的譯碼旋轉方向相反;
      旋轉方向校正器,調(diào)節(jié)所述旋轉差分值,以便所述對象的譯碼旋轉方向能與所述對象的原始旋轉方向相同;以及
      旋轉方向選擇器,根據(jù)從所述旋轉方向誤差檢測器所輸入的檢測結果,選擇所述旋轉差分值或從所述旋轉方向校正器輸入的所述旋轉差分值以作為將被量化的差分數(shù)據(jù)。
      24、一種用于譯碼位流的裝置,其中將定向內(nèi)插器編碼成該位流,該定向內(nèi)插器包括表示在時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示對象的旋轉的關鍵字值數(shù)據(jù),該裝置包括
      關鍵字數(shù)據(jù)譯碼器,譯碼來自輸入位流的關鍵字數(shù)據(jù);
      關鍵字值數(shù)據(jù)譯碼器,譯碼來自所述輸入位流的關鍵字值數(shù)據(jù);以及
      定向內(nèi)插器合成器,通過合成已譯碼的關鍵字值數(shù)據(jù)和使用所述譯碼關鍵字值數(shù)據(jù)而球性線性內(nèi)插的關鍵字值數(shù)據(jù)來生成定向內(nèi)插器。
      25、如權利要求24所述的裝置,其中如果不存在與當前正在受到定向內(nèi)插器合成的關鍵字數(shù)據(jù)相對應的已譯碼的關鍵字值數(shù)據(jù),則所述定向內(nèi)插器合成器利用與先前合成的關鍵字數(shù)據(jù)相對應的譯碼關鍵字值數(shù)據(jù)以及與下一個將被合成的關鍵字數(shù)據(jù)相對應的譯碼關鍵字值數(shù)據(jù)來內(nèi)插與當前正在受到定向內(nèi)插器合成的所述關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)。
      26、如權利要求24所述的裝置,其中所述關鍵字數(shù)據(jù)譯碼器包括
      熵譯碼器,通過熵譯碼所述輸入位流來生成差分數(shù)據(jù);
      逆DPCM處理器,通過在所述差分數(shù)據(jù)上執(zhí)行預定逆DPCM操作來生成量化關鍵字數(shù)據(jù);
      逆量化器,通過逆量化所述量化關鍵字數(shù)據(jù)來生成復原關鍵字數(shù)據(jù)。
      27、如權利要求24所述的裝置,其中所述關鍵字值譯碼器包括
      熵譯碼器,通過熵譯碼來自所述位流的關鍵字值數(shù)據(jù)來生成循環(huán)的DPCM旋轉差分數(shù)據(jù)或量化旋轉差分數(shù)據(jù);
      逆循環(huán)DPCM運算符,通過在從所述熵譯碼器輸入的旋轉差分數(shù)據(jù)上依據(jù)從所述位流譯碼的DPCM操作的次數(shù)來執(zhí)行逆循環(huán)DPCM操作,以生成量化旋轉差分數(shù)據(jù);
      逆量化器,通過逆量化所述量化旋轉差分數(shù)據(jù)來生成旋轉差分數(shù)據(jù),所述旋轉差分數(shù)據(jù)被用來按幾乎等于通過每個關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)而應用到對象的旋轉變換間的差值來旋轉所述對象;以及
      四元數(shù)乘法器,通過將當前關鍵幀的旋轉差分值四元數(shù)乘以前關鍵幀的復原旋轉變換差分值來生成所述當前關鍵幀的旋轉變換值。
      28、一種用于編碼定向內(nèi)插器的方法,所述定向內(nèi)插器包括表示在時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示對象的旋轉的關鍵字值數(shù)據(jù),所述方法包括
      (b)通過從由所述定向內(nèi)插器組成的第一動畫路徑抽取最少量的斷點來生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù),能產(chǎn)生不大于所述第一動畫路徑和將由抽取的斷點生成的第二動畫間的預定誤差極限的誤差;
      (d)編碼在步驟(b)中生成的所述關鍵字數(shù)據(jù);
      (e)通過生成旋轉差分數(shù)據(jù)來編碼在步驟(b)中生成的關鍵字值數(shù)據(jù),通過該操作,所述對象按幾乎等于當前關鍵幀的旋轉變換值和前關鍵幀的旋轉變換值間的差值旋轉變換。
      29、如權利要求28所述的方法,其中步驟(b)包括
      (b1)抽取所述第一動畫路徑的開始路徑點和結束路徑點;
      (b2)利用所選擇的路徑點和所提取的路徑點來依次選擇開始和結束路徑點之間的路徑點,并球性線性內(nèi)插仍未被選擇的的其它路徑點;
      (b3)計算所述第一動畫路徑和通過在步驟(b2)中內(nèi)插生成的第二動畫路徑間的誤差;
      (b)抽取斷點,通過該操作,能最小化所述第一動畫路徑和所述第二動畫路徑間的誤差,檢查所述相應誤差是否不大于預定誤差極限,并確定將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      30、如權利要求28所述的方法,進一步包括在步驟(b)之前的(a),通過將所述第一動畫路徑采樣成具有預定時間量間隔的多個預定部分來生成包括重新采樣關鍵字數(shù)據(jù)和重新采樣關鍵字值數(shù)據(jù)的定向內(nèi)插器,
      其中在步驟(b)中,從由在步驟(a)中所生成的所述定向內(nèi)插器構成的動畫路徑抽取斷點。
      31、如權利要求30所述的方法,其中在步驟(a)中,所述第一動畫路徑被分割成具有預定時間量間隔的多個預定部分,每個部分的終點被設置成采樣關鍵字數(shù)據(jù),以及存在于每個部分中的第一動畫路徑上的關鍵字值數(shù)據(jù)被設置成采樣關鍵字值數(shù)據(jù)。
      32、如權利要求28所述的方法,進一步包括在步驟(b)之后的(c),通過將利用所抽取的斷點而組成的所述第二動畫路徑采樣成具有預定時間量間隔的多個預定部分來生成將被編碼的關鍵字數(shù)據(jù)和關鍵字值數(shù)據(jù)。
      33、如權利要求28所述的方法,其中步驟(d)包括
      利用預定數(shù)量的量化位量化所述關鍵字數(shù)據(jù);
      通過在量化數(shù)據(jù)上執(zhí)行預定DPCM操作來生成差分數(shù)據(jù);以及
      熵編碼所述差分數(shù)據(jù)。
      34、如權利要求28所述的方法,其中步驟(e)包括
      (e1)使用所述當前關鍵幀的一旋轉變換值以及所述前關鍵幀的復原旋轉變換值來生成旋轉差分值,所述旋轉差分值用來按幾乎等于通過當前和前關鍵幀的關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換間的差值來旋轉所述對象,以及通過量化所述旋轉差分值來生成旋轉差分數(shù)據(jù);以及
      (e2)熵編碼所述旋轉差分數(shù)據(jù)。
      35、如權利要求34所述的方法,其中步驟(e1)包括
      (e11)通過量化所述旋轉差分值的三個分量值來生成旋轉差分數(shù)據(jù);
      (e12)調(diào)節(jié)所述旋轉差分數(shù)據(jù)的三個分量值;
      (e13)逆量化所述調(diào)節(jié)分量值;
      (e14)通過利用所述三個逆量化分量值而復原一個分量值來生成復原旋轉差分值;
      (e15)測量所述旋轉差分值和所述復原旋轉差分值間的誤差并確定具有已調(diào)節(jié)分量值的旋轉差分數(shù)據(jù),以便所述誤差能被最小化為將被熵編碼的旋轉差分數(shù)據(jù)。
      36、如權利要求34所述的方法,其中步驟(e1)包括
      (e11)使用所述當前關鍵幀的旋轉變換值和所述前關鍵幀的復原旋轉變換值來生成所述旋轉差分值;
      (e12)通過量化所述旋轉差分值來生成旋轉差分數(shù)據(jù);
      (e13)通過逆量化所述旋轉差分數(shù)據(jù)來生成復原旋轉差分值;
      (e14)通過將所述復原旋轉差分值四元數(shù)乘以所述前關鍵幀的旋轉變換值來生成所述當前關鍵幀的復原旋轉變換值。
      37、如權利要求34所述的方法,其中步驟(e1)包括
      (e11)基于所述當前關鍵幀的旋轉變換值以及所述前關鍵幀的復原旋轉變換值來檢測是否已經(jīng)發(fā)生旋轉方向誤差以致所述對象的原始旋轉方向與所述對象的譯碼旋轉方向相反;
      (e12)調(diào)節(jié)所述旋轉差分值,以便所述對象的原始旋轉方向能與所述對象的譯碼旋轉方向相同;以及
      (e13)根據(jù)在步驟(e11)中執(zhí)行的檢測結果,選擇所述旋轉差分值或在步驟(e12)中的所述調(diào)節(jié)旋轉差分值作為將被量化的差分數(shù)據(jù)。
      38、一種用于編碼定向內(nèi)插器的方法,所述定向內(nèi)插器包括表示在時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示對象的旋轉的關鍵字值數(shù)據(jù),所述方法包括
      (a)將由所述定向內(nèi)插器所構成的動畫路徑采樣成具有預定時間量間隔的多個預定部分,從而生成包括重新采樣關鍵字數(shù)據(jù)和重新采樣關鍵字值數(shù)據(jù)的定向內(nèi)插器;
      (d)減小在步驟(a)中采樣的所述關鍵字數(shù)據(jù)的范圍并編碼所述關鍵字數(shù)據(jù);以及
      (e)通過生成和編碼旋轉差分值來編碼在步驟(a)中采樣的所述關鍵字值數(shù)據(jù),所述旋轉差分值被用來按幾乎等于通過當前關鍵幀的關鍵字值數(shù)據(jù)應用到所述對象的旋轉變換和通過前關鍵幀的關鍵字值數(shù)據(jù)而應用到所述對象的旋轉變換間的差值來旋轉所述對象。
      39、如權利要求38所述的方法,其中步驟(a)包括將所述動畫路徑分割成具有預定時間量間隔的多個預定部分,將每個部分的終點設置成所述采樣關鍵字數(shù)據(jù),以及將存在于在每個部分的所述第一動畫路徑上的關鍵字值數(shù)據(jù)設置為所述采樣關鍵字值數(shù)據(jù)。
      40、如權利要求38所述的方法,其中所述步驟(e)包括
      (e1)使用所述當前關鍵幀的一旋轉變換值以及所述前關鍵幀的復原旋轉變換值來生成旋轉差分值,所述旋轉差分值用來按幾乎等于通過當前和前關鍵幀的關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換間的差值來旋轉所述對象,以及通過量化所述旋轉差分值來生成旋轉差分數(shù)據(jù);以及
      (e2)熵編碼所述旋轉差分數(shù)據(jù)。
      41、如權利要求40所述的方法,其中步驟(e1)包括
      (e11)通過量化所述旋轉差分值的三個分量值來生成旋轉差分數(shù)據(jù);
      (e12)調(diào)節(jié)所述旋轉差分數(shù)據(jù)的三個分量值;
      (e13)逆量化所述調(diào)節(jié)分量值;
      (e14)通過利用所述三個逆量化分量值而復原一個分量值來生成復原旋轉差分值;
      (e15)測量所述旋轉差分值和所述復原旋轉差分值間的誤差并確定具有已調(diào)節(jié)分量值的旋轉差分數(shù)據(jù),以便所述誤差能被最小化為將被熵編碼的旋轉差分數(shù)據(jù)。
      42、如權利要求40所述的方法,其中步驟(e1)包括
      (e11)使用所述當前關鍵幀的旋轉變換值和所述前關鍵幀的復原旋轉變換值來生成所述旋轉差分值;
      (e12)通過量化所述旋轉差分值來生成旋轉差分數(shù)據(jù);
      (e13)通過逆量化所述旋轉差分數(shù)據(jù)來生成復原旋轉差分值;
      (e14)通過將所述復原旋轉差分值四元數(shù)乘以所述前關鍵幀的旋轉變換值來生成所述當前關鍵幀的復原旋轉變換值。
      43、如權利要求40所述的方法,其中步驟(e1)包括
      (e11)基于所述當前關鍵幀的旋轉變換值以及所述前關鍵幀的復原旋轉變換值來檢測是否已經(jīng)發(fā)生旋轉方向誤差以致所述對象的原始旋轉方向與所述對象的譯碼旋轉方向相反;
      (e12)調(diào)節(jié)所述旋轉差分值,以便所述對象的原始旋轉方向能與所述對象的譯碼旋轉方向相同;以及
      (e13)根據(jù)在步驟(e11)中執(zhí)行的檢測結果,選擇所述旋轉差分值或在步驟(e12)中的所述調(diào)節(jié)旋轉差分值作為將被量化的差分數(shù)據(jù)。
      44、一種計算機可讀記錄介質(zhì),記錄可實現(xiàn)權利要求28至43中任何一個的方法的計算機可讀程序代碼。
      45、一種用于譯碼位流的方法,定向內(nèi)插器被編碼成該位流,該定向內(nèi)插器包括表示在時間軸上關鍵幀的位置的關鍵字數(shù)據(jù)和表示對象的旋轉的關鍵字值數(shù)據(jù),所述方法包括
      (a)譯碼來自輸入位流的關鍵字數(shù)據(jù);
      (b)譯碼來自所述輸入位流的關鍵字值數(shù)據(jù);以及
      (c)通過合成已譯碼的關鍵字值數(shù)據(jù)和利用所述已譯碼關鍵字值數(shù)據(jù)所球性線性內(nèi)插的關鍵字值數(shù)據(jù)來生成定向內(nèi)插器。
      46、如權利要求45所述的方法,其中在步驟(c)中,如果沒有與當前正在受到定向內(nèi)插器合成的關鍵字數(shù)據(jù)相對應的譯碼關鍵字值數(shù)據(jù),則利用與先前已合成的關鍵字數(shù)據(jù)相對應的譯碼關鍵字值數(shù)據(jù)以及與下一個將被合成的關鍵字數(shù)據(jù)相對應的已譯碼關鍵字值數(shù)據(jù)來內(nèi)插與當前正在受到定向內(nèi)插器合成的所述關鍵字數(shù)據(jù)相對應的關鍵字值數(shù)據(jù)。
      47、如權利要求45所述的方法,其中步驟(a)包括
      通過熵譯碼所述輸入位流來生成差分數(shù)據(jù);
      通過在所述差分數(shù)據(jù)上執(zhí)行預定DPCM操作和逆DND操作來生成量化關鍵字數(shù)據(jù);
      通過逆量化所述量化關鍵字數(shù)據(jù)來生成復原關鍵字數(shù)據(jù)。
      48、如權利要求45所述的方法,其中步驟(b)包括
      (b)通過熵譯碼來自所述位流的關鍵字值數(shù)據(jù)來生成循環(huán)DPCM旋轉差分數(shù)據(jù)或量化旋轉差分數(shù)據(jù);
      (b)通過在從所述熵譯碼器輸入的旋轉差分數(shù)據(jù)上依據(jù)從所述位流譯碼的DPCM操作的次數(shù)來執(zhí)行逆循環(huán)DPCM操作以生成旋轉差分數(shù)據(jù);
      (b)通過逆量化所述量化旋轉差分數(shù)據(jù)來生成旋轉差分值,所述旋轉差分值被用來按幾乎等于通過每個關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)而應用到對象的旋轉變換間的差值來旋轉所述對象;以及
      (b)通過將當前關鍵幀的旋轉差分值四元數(shù)乘以前關鍵幀的譯碼旋轉變換差分值來生成所述當前關鍵幀的旋轉變換值。
      49、一種計算機可讀記錄介質(zhì),記錄可實現(xiàn)權利要求45至49中任何一個的方法的計算機可讀程序代碼。
      50、一種位流,定向內(nèi)插器被編碼成該位流,該定向內(nèi)插器包括表示在時間軸上關鍵幀位置的關鍵字數(shù)據(jù)和表示對象的旋轉的關鍵字值數(shù)據(jù),所述位流包括
      關鍵字數(shù)據(jù)編碼/譯碼信息,關鍵字數(shù)據(jù)和譯碼所述關鍵字數(shù)據(jù)所需的信息被編碼成該信息;以及
      關鍵字值數(shù)據(jù)編碼/譯碼信息,關鍵字值數(shù)據(jù)和譯碼所述關鍵字值數(shù)據(jù)所需的信息被編碼成該信息,
      其中所述關鍵字數(shù)據(jù)編碼/譯碼信息包括
      逆DND操作信息,包括表示將在差分數(shù)據(jù)上執(zhí)行的逆DND的多個預定周期的逆DND的次數(shù),所述差分數(shù)據(jù)是通過熵譯碼所述位流生成的,以便擴展所述差分數(shù)據(jù)和用在每個逆DND操作周期中的差分數(shù)據(jù)中的最大和最小值的范圍;
      第一逆DPCM操作信息,包括將在所述逆DND差分數(shù)據(jù)上執(zhí)行的逆DPCM操作的次數(shù),以便將逆DND差分數(shù)據(jù)轉換成用于每個逆DPCM操作周期的量化關鍵字數(shù)據(jù)和內(nèi)部關鍵字數(shù)據(jù);以及
      第一逆量化信息,用在逆量化中,以便通過逆量化所述量化關鍵字數(shù)據(jù)來生成復原關鍵字數(shù)據(jù);以及
      關鍵字數(shù)據(jù)編碼/譯碼信息,包括
      通過量化旋轉差分值熵編碼的旋轉差分數(shù)據(jù),所述旋轉差分值被用來按幾乎等于通過每個關鍵幀的四元數(shù)關鍵字值數(shù)據(jù)而應用到該對象的旋轉變換間的差值來旋轉所述對象;
      熵譯碼信息,包括表示將在所述旋轉差分數(shù)據(jù)上執(zhí)行的熵譯碼方法的熵譯碼模式;
      逆循環(huán)DPCM操作信息,包括逆循環(huán)DPCM操作的次數(shù),表示是否將在熵譯碼旋轉差分數(shù)據(jù)上依據(jù)所述熵譯碼模式執(zhí)行逆循環(huán)DPCM操作;以及
      第二逆量化信息,包括多個預定逆量化位,用來通過逆量化所述量化關鍵字值數(shù)據(jù)復原原始關鍵字值數(shù)據(jù)。
      51、如權利要求50所述的位流,其中所述逆DND操作信息進一步包括表示是否將在經(jīng)逆DND操作的差分數(shù)據(jù)上執(zhí)行上移操作的標志位。
      52、如權利要求50所述的位流,其中所述第一逆量化信息包括當逆量化所述量化關鍵字數(shù)據(jù)時所使用的逆量化位大小以及在量化關鍵字數(shù)據(jù)中的最大和最小值。
      53、如權利要求52所述的位流,其中調(diào)節(jié)在所述量化關鍵字數(shù)據(jù)中的最大和最小值,以便最小化所述量化關鍵字數(shù)據(jù)的量化誤差。
      54、如權利要求50所述的位流,其中所述關鍵字數(shù)據(jù)編碼/譯碼信息進一步包括在對包括在位流中的線性關鍵字區(qū)域進行譯碼而使用的線性關鍵字譯碼信息,并且所述線性關鍵字譯碼信息包括表示是否存在所述線性關鍵字區(qū)域的標志位,包括在所述線性關鍵字區(qū)域中的關鍵字數(shù)據(jù)的數(shù)量、以及所述線性關鍵字區(qū)域的開始和結尾關鍵字數(shù)據(jù),其中該線性關鍵字區(qū)域中的關鍵字數(shù)據(jù)線性增加。
      55、如權利要求50所述的位流,其中所述旋轉差分數(shù)據(jù)被編碼,以便由四元數(shù)表示的旋轉差分數(shù)據(jù)的僅三個分量被量化。
      56、如權利要求50所述的位流,其中所述熵編碼信息進一步包括
      關鍵字值標志位,表示所述關鍵字值數(shù)據(jù)的每個分量的旋轉差分數(shù)據(jù)是否具有相同值;以及
      預定旋轉差分數(shù)據(jù),當所述關鍵字值標志位表示所述關鍵字值數(shù)據(jù)的每個分量的旋轉差分數(shù)據(jù)具有相同值時,將被譯碼成所有關鍵字值數(shù)據(jù)的旋轉差分數(shù)據(jù)的每個分量。
      57、如權利要求50所述的位流,其中逆循環(huán)DPCM信息進一步包括用于在所述旋轉差分數(shù)據(jù)上執(zhí)行逆循環(huán)DPCM操作的內(nèi)部旋轉差分數(shù)據(jù)。
      全文摘要
      本發(fā)明提供一種用于對定向內(nèi)插器進行編碼和譯碼的方法和裝置,該定向內(nèi)插器指出了在時間軸上關鍵幀的位置以及在每一個關鍵幀中的對象的旋轉。用于編碼定向內(nèi)插器的裝置包括斷點抽取器,從由輸入到其中的定向內(nèi)插器組成的第一動畫路徑中抽取最小數(shù)量的斷點,能產(chǎn)生不大于所述第一動畫路徑與由抽取的斷點所生成的第二動畫間的預定誤差極限;關鍵字數(shù)據(jù)編碼器,編碼從所述斷點抽取器輸入的關鍵字數(shù)據(jù);關鍵字值數(shù)據(jù)編碼器,通過生成旋轉差分數(shù)據(jù)來編碼從所述斷點抽取器輸入的關鍵字值數(shù)據(jù),通過該操作,所述對象按幾乎等于當前關鍵幀的旋轉變換值和前關鍵幀的旋轉變換值間的差值被旋轉變換。
      文檔編號H03M7/40GK1441387SQ0216111
      公開日2003年9月10日 申請日期2002年11月27日 優(yōu)先權日2001年11月27日
      發(fā)明者金道均, 鄭錫潤, 張義善, 禹相玉, 李信俊, 韓萬鎮(zhèn), 張敬子 申請人:三星電子株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1