專利名稱:用于編碼和解碼三維數(shù)據(jù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及編碼和解碼三維(3D)數(shù)據(jù),尤其涉及一種用于編碼和解碼由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)組成的3D數(shù)據(jù)的方法和裝置。
背景技術(shù):
3D圖形通常需要大量的數(shù)據(jù)??梢詫Ⅻc(diǎn)紋理數(shù)據(jù)轉(zhuǎn)換成體素?cái)?shù)據(jù)和八叉樹(shù)數(shù)據(jù),這同樣需要大量的數(shù)據(jù)。這樣大量的數(shù)據(jù)需要大容量的存儲(chǔ)器和高速的數(shù)據(jù)處理能力。因此,需要高效的數(shù)據(jù)壓縮,并且數(shù)據(jù)處理的成本是昂貴的。
當(dāng)前3D圖形領(lǐng)域中所研究的是創(chuàng)建逼真的圖形圖像的技術(shù)。這些技術(shù)中的一種技術(shù)是基于圖像的著色方法。與傳統(tǒng)的3D數(shù)據(jù)建模方法中使用的多邊形網(wǎng)格模型相比,這種方法的優(yōu)勢(shì)在于可以減少數(shù)據(jù)的數(shù)量以及處理時(shí)間。另外,該基于圖像的著色方法能夠提供更逼真的圖像。
目前主要使用多邊形網(wǎng)格模型來(lái)表示3D對(duì)象??梢岳萌切?、矩形或其它多邊形來(lái)表示某些3D形狀。目前在3D圖形軟件和硬件技術(shù)中的發(fā)展已經(jīng)導(dǎo)致了通過(guò)在靜態(tài)或動(dòng)態(tài)圖像中使用多邊形模型來(lái)實(shí)時(shí)顯示復(fù)雜的對(duì)象和場(chǎng)景。
同時(shí),為了克服在利用多邊形模型表示實(shí)際對(duì)象中的困難、在著色中由于高復(fù)雜度導(dǎo)致的長(zhǎng)處理時(shí)間以及在產(chǎn)生像照片那樣的逼真圖像中的困難,現(xiàn)已積極地在進(jìn)行對(duì)其它3D表示方法的研究。
某些應(yīng)用需要巨量的多邊形。例如,人體的詳細(xì)模型通常需要超過(guò)百萬(wàn)個(gè)多邊形,因此難于處理這些多邊形。雖然,當(dāng)前在像3D掃描儀那樣的3D測(cè)量系統(tǒng)中的發(fā)展允許獲得帶有許可誤差的高密度3D數(shù)據(jù),但獲得連續(xù)和完美的多邊形模型是困難且昂貴的。另外,用于獲得與照片的分辨率相同的高分辨率的著色技術(shù)需要復(fù)雜的處理過(guò)程,這使得實(shí)時(shí)著色變得困難。
基于圖像的深度表示(DIBR)是一種用組合的幾何形狀表示并著色3D對(duì)象的新方法,而且已經(jīng)在MPEG-4動(dòng)畫(huà)結(jié)構(gòu)擴(kuò)展(AFX)中采用了該深度表示。取代用多邊網(wǎng)格表示對(duì)象,如通常在計(jì)算機(jī)圖形中所進(jìn)行的,DIBR用一組覆蓋其可見(jiàn)表面的一組參考圖像來(lái)表示3D對(duì)象。通過(guò)對(duì)應(yīng)的深度圖來(lái)表示每一個(gè)參考圖像,該深度圖是一個(gè)從圖像平面中的像素到對(duì)象表面的距離陣列。DIBR的優(yōu)勢(shì)之一是參考圖像可以提供對(duì)象的高質(zhì)量顯像(visualization)而無(wú)需使用復(fù)雜的多邊形模型。另外,著色DIBR視圖的復(fù)雜度僅僅與該視圖中像素的數(shù)量有關(guān)(即,視圖的分辨率),而與場(chǎng)景的復(fù)雜度無(wú)關(guān)。DIBR具有三種主要格式單個(gè)紋理、點(diǎn)紋理和八叉樹(shù)圖像。點(diǎn)紋理利用從單個(gè)照相機(jī)位置看到的像素陣列來(lái)表示對(duì)象。每一個(gè)點(diǎn)紋理像素由其色彩、深度(從像素到照相機(jī)的距離)和一些補(bǔ)充點(diǎn)紋理著色的其它特性來(lái)表示。沿著每一條視線都存在多個(gè)像素,因此點(diǎn)紋理通常由多個(gè)層組成。圖1顯示了一維點(diǎn)紋理的一個(gè)簡(jiǎn)單實(shí)例。點(diǎn)紋理通常需要大量的數(shù)據(jù)。逼真圖像需要較高的采樣密度和巨量的數(shù)據(jù)。因此,應(yīng)該有效地執(zhí)行點(diǎn)紋理圖像的壓縮。圖2顯示了一個(gè)點(diǎn)紋理節(jié)點(diǎn)說(shuō)明。應(yīng)該在圖2的節(jié)點(diǎn)說(shuō)明中壓縮深度和色彩字段。
目前對(duì)點(diǎn)紋理的研究很少。DUAN和LI提出一種用于壓縮點(diǎn)紋理圖像的算法,即一種對(duì)分層的深度圖像(LDI)進(jìn)行壓縮的算法[J.Duan和J.Li,“壓縮疊層深度圖像(Compression of the Layered Depth Image)”,IEEE Trans.圖像處理,第12卷,編號(hào)3,第365-372頁(yè),2003年3月]。這種算法使用JPEG-LS算法來(lái)壓縮深度數(shù)據(jù)。同樣,通過(guò)使用現(xiàn)有的編碼標(biāo)準(zhǔn)來(lái)壓縮色彩數(shù)據(jù)。然而,這個(gè)算法并不支持累進(jìn)的壓縮和傳送。
C.S.Kim和S.U.Lee于2002年在IEEE Trans的圖像處理的第11卷、編號(hào)8的第932-943頁(yè)的“基于圖案編碼表示壓縮編碼3D體素表面(CompactEncoding of 3D Voxel Surface Based on Pattern Code Representation)”中提出一種用于基于圖案編碼表示(PCR)來(lái)壓縮3D體素表面模型的算法。然而,這種算法并不利用分層的八叉樹(shù)結(jié)構(gòu),也不支持累進(jìn)的壓縮。
在MPEG-4 AFX中,在ISO/IEC JTC1/SC29/WG11 14496-162003的信息技術(shù)中“編碼音頻視頻對(duì)象”的第16部分“動(dòng)畫(huà)結(jié)構(gòu)擴(kuò)展(AFX)(ISO/IECJTC1/SC29/WG11 14496-162003,Information Technology-Coding of Audio-Visual Objects-Part 16Animation Framework eXtension(AFX))中提出了一種基于通過(guò)部分匹配預(yù)測(cè)(PPM)方案對(duì)八叉樹(shù)進(jìn)行壓縮的算法。然而,這種算法沒(méi)有創(chuàng)建累進(jìn)的比特流。而且,這種算法使用一種八叉樹(shù)壓縮算法,它只能壓縮具有固定分辨率的體積數(shù)據(jù),即在寬度、高度和深度中相等數(shù)量的像素。換言之,這種算法不能壓縮具有某一分辨率的數(shù)據(jù),即寬度、高度和深度中不同數(shù)量的像素。
發(fā)明內(nèi)容
本發(fā)明提供了一種使用累進(jìn)壓縮來(lái)有效地編碼3D數(shù)據(jù)的方法和裝置。
本發(fā)明還提供了一種用于按照自適應(yīng)八叉樹(shù)通過(guò)使用累進(jìn)解壓縮而高效地解碼3D數(shù)據(jù)的方法和裝置。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種編碼3D數(shù)據(jù)的方法,該方法包括(a)將由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成給中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)數(shù)據(jù);(b)對(duì)自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)進(jìn)行編碼;以及(c)根據(jù)所編碼的數(shù)據(jù)生成一個(gè)比特流。操作步驟(a)可以包括將由點(diǎn)紋理或體素?cái)?shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成八叉樹(shù);以及將八叉樹(shù)轉(zhuǎn)換成給中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)。
操作步驟(a)中將3D數(shù)據(jù)轉(zhuǎn)換成自適應(yīng)八叉樹(shù)數(shù)據(jù)可以包括通過(guò)使用3D邊界體積來(lái)將3D數(shù)據(jù)轉(zhuǎn)換成體素?cái)?shù)據(jù);以及用預(yù)定的標(biāo)記來(lái)區(qū)分與其中3D對(duì)象存在的位置相關(guān)的體素和與其中3D對(duì)象不存在的位置相關(guān)的體素。所述標(biāo)記可以被用來(lái)指示表示3D數(shù)據(jù)的樹(shù)的節(jié)點(diǎn)由子節(jié)點(diǎn)組成的情況“S”、節(jié)點(diǎn)由不具有對(duì)象的體素組成的情況“W”、節(jié)點(diǎn)由具有對(duì)象的體素組成的情況“B”,通過(guò)PPM(部分匹配預(yù)測(cè))算法對(duì)節(jié)點(diǎn)內(nèi)的體素值進(jìn)行編碼的情況“P”、以及節(jié)點(diǎn)的體素空間不存在的情況“E”。
操作步驟(b)可以包括節(jié)點(diǎn)的編碼包括(b1)選擇將要編碼的自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)的次序;(b2)選擇用于指示是否應(yīng)該將要編碼的節(jié)點(diǎn)編碼為“S”節(jié)點(diǎn)或“P”節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型信息;以及(b3)如果節(jié)點(diǎn)類(lèi)型信息為“S”則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼,而如果節(jié)點(diǎn)類(lèi)型信息為“P”則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼。操作步驟(b1)可以通過(guò)參考3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)中的標(biāo)記,以廣度優(yōu)先的搜索方式和以從根節(jié)點(diǎn)開(kāi)始的自頂向下的方式一個(gè)接一個(gè)地選擇將要編碼的節(jié)點(diǎn)。操作步驟(b2)可以包括計(jì)算用于每一個(gè)“S”節(jié)點(diǎn)和“P”節(jié)點(diǎn)編碼操作的熵并選擇具有更小熵的編碼操作;以及執(zhí)行所選擇的“S”或“P”節(jié)點(diǎn)的標(biāo)記的從C(自適應(yīng)算術(shù)編碼器)編碼操作。操作步驟(b3)中的對(duì)“S”節(jié)點(diǎn)的編碼可以對(duì)色彩信息的平均值以及子節(jié)點(diǎn)的標(biāo)記進(jìn)行編碼,其中色彩信息的編碼執(zhí)行將在當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的體素的平均色彩AAC編碼成R(紅)、G(綠)和B(藍(lán))值的操作,以及對(duì)子節(jié)點(diǎn)的標(biāo)記的編碼執(zhí)行將當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)的標(biāo)記AAC編碼成“B”或“W”值的操作。在操作步驟(b3)中對(duì)“P”節(jié)點(diǎn)的編碼可以對(duì)深度信息和色彩信息進(jìn)行編碼,其中對(duì)深度信息的編碼執(zhí)行通過(guò)使用預(yù)定數(shù)量的上下文以光柵掃描次序?qū)Ξ?dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)進(jìn)行PPM或AAC編碼操作,以及對(duì)色彩信息的編碼執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G和B值的DPCM(差分脈沖編碼調(diào)制)以及AAC編碼操作。
操作步驟(c)可以產(chǎn)生包含3D對(duì)象的邊界體積的分辨率信息以及支持有損編碼方案和無(wú)損編碼方案的累進(jìn)(progressive)比特流,其中有損編碼方案僅僅編碼從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn),而無(wú)損編碼方案編碼從開(kāi)始到結(jié)束的全部節(jié)點(diǎn)。
根據(jù)本發(fā)明的另一方面,提供了一種用于編碼3D數(shù)據(jù)的裝置,該裝置包括自適應(yīng)八叉樹(shù)生成單元,用于將由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成對(duì)中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)數(shù)據(jù);節(jié)點(diǎn)編碼單元,用于對(duì)自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)進(jìn)行編碼;以及比特流生成單元,用于根據(jù)節(jié)點(diǎn)編碼單元中編碼的數(shù)據(jù)生成比特流。所述自適應(yīng)八叉樹(shù)生成單元可以包括體積數(shù)據(jù)輸入單元,用于將由點(diǎn)紋理或體素?cái)?shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成八叉樹(shù);以及自適應(yīng)八叉樹(shù)轉(zhuǎn)換單元,用于將八叉樹(shù)轉(zhuǎn)換成對(duì)中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)。
所述節(jié)點(diǎn)編碼單元可以包括節(jié)點(diǎn)次序選擇單元,用于選擇將要編碼的自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)的次序;節(jié)點(diǎn)SOP選擇單元,用于選擇指示是否應(yīng)該把要編碼的節(jié)點(diǎn)編碼成“S”或“P”的節(jié)點(diǎn)類(lèi)型信息;“S”節(jié)點(diǎn)編碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“S”,則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼;以及“P”節(jié)點(diǎn)編碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“P”,則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼。所述節(jié)點(diǎn)次序選擇單元可以通過(guò)參考3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)中的標(biāo)記,以廣度優(yōu)先的搜索方式以及以從根節(jié)點(diǎn)開(kāi)始的自頂向下的方式一個(gè)接一個(gè)地選擇將要編碼的節(jié)點(diǎn)。所述節(jié)點(diǎn)SOP選擇單元可以對(duì)每一個(gè)“S”節(jié)點(diǎn)和“P”節(jié)點(diǎn)編碼操作計(jì)算熵和選擇具有小熵的編碼操作,以及執(zhí)行對(duì)所選擇的“S”或“P”節(jié)點(diǎn)的標(biāo)記的AAC編碼操作。所述“S”節(jié)點(diǎn)編碼單元可以對(duì)色彩信息的平均值以及子節(jié)點(diǎn)的標(biāo)記進(jìn)行編碼,以及所述“P”節(jié)點(diǎn)編碼單元對(duì)深度信息和色彩信息進(jìn)行編碼。所述比特流生成單元可以產(chǎn)生包含3D對(duì)象的邊界體積的分辨率信息和支持有損編碼方案和無(wú)損編碼方法的累進(jìn)(progressive)比特流,其中有損編碼方案僅僅編碼從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn),而無(wú)損編碼方案編碼全部節(jié)點(diǎn)。
根據(jù)本發(fā)明的另一方面,提供了一種解碼3D數(shù)據(jù)的方法,該方法包括(w)從3D數(shù)據(jù)的比特流中讀取構(gòu)成樹(shù)的節(jié)點(diǎn);(x)對(duì)讀取的節(jié)點(diǎn)進(jìn)行解碼;(y)從解碼的節(jié)點(diǎn)中恢復(fù)自適應(yīng)八叉樹(shù);以及(z)從自適應(yīng)八叉樹(shù)中恢復(fù)八叉樹(shù)、體素和點(diǎn)紋理數(shù)據(jù)中的任何一種數(shù)據(jù)。操作步驟(w)還可以包括讀取3D對(duì)象的邊界體積的分辨率信息;以及操作步驟(x)可以包括通過(guò)使用分辨率信息對(duì)僅僅從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn)進(jìn)行解碼。
操作步驟(w)還可以包括讀取3D對(duì)象的邊界體積的分辨率信息;以及操作步驟(x)可以包括通過(guò)使用分辨率信息解碼從開(kāi)始到結(jié)束的全部節(jié)點(diǎn)。操作步驟(x)可以包括(x1)選擇將要解碼的節(jié)點(diǎn)的次序;(x2)選擇用于指示將要解碼的節(jié)點(diǎn)是“S”節(jié)點(diǎn)還是“P”節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型信息;以及(x3)如果節(jié)點(diǎn)類(lèi)型信息為“S”則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼,而如果節(jié)點(diǎn)類(lèi)型信息為“P”則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼。
操作步驟(x1)可以從根節(jié)點(diǎn)開(kāi)始以廣度優(yōu)先的搜索方式一個(gè)接一個(gè)地選擇將要解碼的節(jié)點(diǎn),同時(shí)以自頂向下的方式恢復(fù)3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)。操作步驟(x2)可以確定是否將“S”或“P”標(biāo)記反向AAC解碼為“S”或“P”節(jié)點(diǎn)。在操作步驟(x3)中對(duì)“S”節(jié)點(diǎn)的解碼包括對(duì)色彩信息的平均值進(jìn)行解碼;以及對(duì)子節(jié)點(diǎn)的標(biāo)記進(jìn)行解碼。在色彩信息的解碼中,可以使用反向AAC來(lái)對(duì)當(dāng)前節(jié)點(diǎn)中的體素的平均R、G和B值進(jìn)行解碼,以及,在子節(jié)點(diǎn)的標(biāo)記的解碼中,可以通過(guò)反向AAC來(lái)將子節(jié)點(diǎn)的標(biāo)記解碼為“B”或“W”值。在操作步驟(x3)中對(duì)“P”節(jié)點(diǎn)的解碼包括對(duì)深度信息進(jìn)行解碼;以及對(duì)色彩信息進(jìn)行解碼。對(duì)深度信息的編碼可以通過(guò)使用預(yù)定數(shù)量的上下文,以光柵掃描次序執(zhí)行當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)的反向PPM解碼或反向AAC解碼操作,以及對(duì)色彩信息的編碼可以執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G和B值的反向AAC解碼和反向DPCM解碼操作。
在操作步驟(y)中對(duì)自適應(yīng)八叉樹(shù)的恢復(fù)中,通過(guò)預(yù)定的標(biāo)記來(lái)區(qū)分與3D對(duì)象存在的位置相關(guān)的體素和與3D對(duì)象不存在的位置相關(guān)的體素。
根據(jù)本發(fā)明的另一方面,提供了一種用于解碼3D數(shù)據(jù)的裝置,該裝置包括(w)比特流讀取單元,用于從3D數(shù)據(jù)的比特流中讀取構(gòu)成樹(shù)的節(jié)點(diǎn);(x)節(jié)點(diǎn)解碼單元,用于對(duì)讀取的節(jié)點(diǎn)進(jìn)行解碼;(y)自適應(yīng)八叉樹(shù)恢復(fù)單元,用于從節(jié)點(diǎn)解碼單元中所解碼的節(jié)點(diǎn)中恢復(fù)自適應(yīng)八叉樹(shù);以及(z)體積數(shù)據(jù)恢復(fù)單元,用于從輸入的自適應(yīng)八叉樹(shù)中恢復(fù)八叉樹(shù)、體素和點(diǎn)紋理數(shù)據(jù)中的任何一種數(shù)據(jù)。
比特流讀取單元可以讀取3D對(duì)象的邊界體積的分辨率信息和節(jié)點(diǎn);以及所述節(jié)點(diǎn)解碼單元可以對(duì)僅僅從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn)進(jìn)行解碼或?qū)拈_(kāi)始到結(jié)束的所有節(jié)點(diǎn)進(jìn)行解碼。
節(jié)點(diǎn)解碼單元可以包括節(jié)點(diǎn)次序選擇單元,用于選擇將要解碼的節(jié)點(diǎn)的次序;節(jié)點(diǎn)SOP選擇單元,用于選擇指示是否應(yīng)該把將要解碼的節(jié)點(diǎn)解碼為“S”節(jié)點(diǎn)或“P”節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型信息;“S”節(jié)點(diǎn)解碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“S”則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼;以及“P”節(jié)點(diǎn)解碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“P”則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼。
節(jié)點(diǎn)次序選擇單元可以以廣度優(yōu)先的搜索方式從根節(jié)點(diǎn)開(kāi)始一個(gè)接一個(gè)地選擇將要解碼的節(jié)點(diǎn),同時(shí)以自頂向下的方式恢復(fù)3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu),以及節(jié)點(diǎn)SOP選擇單元可以執(zhí)行將“S”或“P”標(biāo)記反向AAC解碼成“S”或“P”節(jié)點(diǎn)的反向AAC解碼操作?!癝”節(jié)點(diǎn)解碼單元可以對(duì)色彩信息的平均值和子節(jié)點(diǎn)的標(biāo)記進(jìn)行解碼,以及“P”節(jié)點(diǎn)解碼單元可以對(duì)深度信息和色彩信息進(jìn)行解碼。
對(duì)深度信息的解碼可以通過(guò)使用預(yù)定數(shù)量的上下文,以光柵掃描次序執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)進(jìn)行的反向PPM解碼或反向AAC解碼操作,以及對(duì)色彩信息的編碼可以執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G和B值的反向AAC解碼操作和反向DPCM解碼操作。
根據(jù)本發(fā)明的另一方面,提供了一種具有程序的計(jì)算機(jī)可讀記錄介質(zhì),該程序用于在計(jì)算機(jī)上執(zhí)行上述本發(fā)明。
通過(guò)參照附圖詳細(xì)地描述本發(fā)明的示范性實(shí)施例,本發(fā)明的上述和其它特征和優(yōu)點(diǎn)將變得更加明顯,其中圖1顯示了用于分層深度圖像的點(diǎn)紋理的一個(gè)實(shí)例;圖2顯示了一個(gè)點(diǎn)紋理節(jié)點(diǎn)說(shuō)明;圖3A是顯示一種根據(jù)本發(fā)明的用于編碼3D對(duì)象數(shù)據(jù)的裝置的方框圖;圖3B是顯示一種根據(jù)本發(fā)明的編碼3D對(duì)象數(shù)據(jù)的方法的流程圖;
圖4是顯示節(jié)點(diǎn)編碼單元的方框圖;圖5A是顯示一種根據(jù)本發(fā)明的用于解碼3D對(duì)象數(shù)據(jù)的裝置的結(jié)構(gòu)圖;圖5B是顯示一種根據(jù)本發(fā)明的用于解碼3D對(duì)象數(shù)據(jù)的方法的流程圖;圖6是顯示節(jié)點(diǎn)解碼單元的方框圖;圖7(a)至(b)顯示了樹(shù)中的一個(gè)父子關(guān)系圖;圖8(a)至(c)顯示了具有3×4分辨率的自適應(yīng)樹(shù)的一個(gè)實(shí)例;圖9(a)至(b)顯示了具有5×7分辨率的自適應(yīng)樹(shù)的一個(gè)實(shí)例;圖10(a)至(f)顯示了解釋節(jié)點(diǎn)編碼和解碼操作的一個(gè)實(shí)例;圖11是顯示編碼“S”節(jié)點(diǎn)的過(guò)程的流程圖;圖12是顯示編碼“P”節(jié)點(diǎn)的過(guò)程的流程圖;圖13(a)至(b)顯示了在PPM編碼和解碼過(guò)程中的上下文的使用;圖14顯示了節(jié)點(diǎn)的比特流結(jié)構(gòu);圖15是顯示解碼“S”節(jié)點(diǎn)的過(guò)程的流程圖;圖16是顯示解碼“P”節(jié)點(diǎn)的過(guò)程的流程圖;圖17(a)至(h)顯示了用于估算本發(fā)明的性能的測(cè)試模型。
具體實(shí)施例方式
以下將參照附圖詳細(xì)描述一種根據(jù)本發(fā)明的用于對(duì)由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)結(jié)構(gòu)中的任何一種數(shù)據(jù)組成的三維(3D)體數(shù)據(jù)進(jìn)行編碼/解碼的方法和裝置。
首先闡述一種根據(jù)本發(fā)明的用于編碼3D對(duì)象數(shù)據(jù)的方法和裝置。圖3A是顯示一種根據(jù)本發(fā)明的用于編碼3D對(duì)象數(shù)據(jù)的裝置的結(jié)構(gòu)的方框圖。該裝置包括體數(shù)據(jù)輸入單元300、自適應(yīng)八叉樹(shù)轉(zhuǎn)換單元320、節(jié)點(diǎn)編碼單元340以及比特流產(chǎn)生單元360。圖3B是顯示一種根據(jù)本發(fā)明的編碼3D對(duì)象數(shù)據(jù)的方法的流程圖。
體數(shù)據(jù)輸入單元300接收點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)作為輸入??梢詫Ⅻc(diǎn)紋理數(shù)據(jù)轉(zhuǎn)換成體素?cái)?shù)據(jù)或八叉樹(shù)數(shù)據(jù)。將點(diǎn)紋理數(shù)據(jù)轉(zhuǎn)換成體素?cái)?shù)據(jù),依次將其轉(zhuǎn)換成八叉樹(shù)數(shù)據(jù)。將體素?cái)?shù)據(jù)轉(zhuǎn)換成八叉樹(shù)數(shù)據(jù)(操作步驟32)。不用任何轉(zhuǎn)換而使用八叉樹(shù)數(shù)據(jù)。
為了將點(diǎn)紋理的深度信息轉(zhuǎn)換成體素?cái)?shù)據(jù),首先創(chuàng)建邊界體積。該邊界體積具有與點(diǎn)紋理相同的分辨率。例如,如果點(diǎn)紋理是X×Y分辨率的圖像且每個(gè)像素的深度分辨率是Z,則創(chuàng)建X×Y×Z的邊界體積。該邊界體積的原點(diǎn)位于前左下角。右體素具有大于左體素的X值,上體素具有大于下體素的Y值,以及后體素具有大于前體素的z值。直接將深度信息轉(zhuǎn)換成二進(jìn)制體數(shù)據(jù)。用白色(0)值來(lái)初始化體積數(shù)據(jù)中的所有體素。然后,如果用點(diǎn)紋理中的體素填充該體素的位置,則將該體素設(shè)置為黑色(1)值。
圖7顯示了數(shù)狀結(jié)構(gòu)中的父子關(guān)系。圖7A是一個(gè)四叉樹(shù)的實(shí)例,而圖7B是一個(gè)八叉樹(shù)的實(shí)例。八叉樹(shù)具有這樣一種結(jié)構(gòu),其中一個(gè)根節(jié)點(diǎn)具有8個(gè)子節(jié)點(diǎn),且每個(gè)子節(jié)點(diǎn)可以具有8個(gè)子節(jié)點(diǎn)或葉節(jié)點(diǎn)。節(jié)點(diǎn)可以具有白色值或黑色值,其中具有黑色值的葉節(jié)點(diǎn)指示占用的體素,而具有白色值的葉節(jié)點(diǎn)指示空體素。除了葉節(jié)點(diǎn)以外的具有黑色值的中間節(jié)點(diǎn)指示在其子節(jié)點(diǎn)中存在具有被占用體素的節(jié)點(diǎn),而具有白色值的中間節(jié)點(diǎn)指示子節(jié)點(diǎn)都為空。這種八叉樹(shù)是一種用于表示3D數(shù)據(jù)的典型結(jié)構(gòu)。
自適應(yīng)八叉樹(shù)轉(zhuǎn)換單元320根據(jù)體數(shù)據(jù)輸入單元300中的八叉樹(shù)數(shù)據(jù)生成自適應(yīng)八叉樹(shù)(操作步驟34)。該自適應(yīng)八叉樹(shù)具有這樣一種結(jié)構(gòu),其中一個(gè)根節(jié)點(diǎn)具有8個(gè)子節(jié)點(diǎn),其中每個(gè)子節(jié)點(diǎn)可以具有8個(gè)子節(jié)點(diǎn)或葉節(jié)點(diǎn)。這些節(jié)點(diǎn)帶有五種標(biāo)記。在本發(fā)明中,術(shù)語(yǔ)“自適應(yīng)八叉樹(shù)”被定義為具有這種特征的樹(shù)。
除了帶有標(biāo)記的中間節(jié)點(diǎn)之外,該自適應(yīng)八叉樹(shù)在結(jié)構(gòu)上與八叉樹(shù)相似。這五個(gè)標(biāo)記是“S(分叉)、“P”(PPM)、“B”(黑色)、“W”(白色)和“E”(空)節(jié)點(diǎn)。表1指示用于八叉樹(shù)節(jié)點(diǎn)的五個(gè)標(biāo)記。
表1
如下創(chuàng)建自適應(yīng)八叉樹(shù)。首先,如果用于3D對(duì)象的邊界體積包含對(duì)象,則用“S”來(lái)標(biāo)記該根節(jié)點(diǎn)并將該體積再分為8個(gè)大小相同的體積。如果再分的體積只包含白色體素或黑色體素,則分別用“W”或“B”來(lái)標(biāo)記相應(yīng)的節(jié)點(diǎn)。否則,將該節(jié)點(diǎn)設(shè)置為“S”并該體積被進(jìn)一步再分為8個(gè)更小的體積。重復(fù)進(jìn)行這個(gè)過(guò)程直到該樹(shù)成長(zhǎng)到預(yù)定的深度為止。在此深度處,如果節(jié)點(diǎn)包含黑色體素和白色體素這兩者,則用“P”標(biāo)記該節(jié)點(diǎn)并通過(guò)部分匹配預(yù)測(cè)(PPM)方案來(lái)編碼其體素值。
同時(shí),在將該邊界體積再分為8個(gè)大小相同的體積的情況中,如果不能把一個(gè)軸對(duì)半分成大小相等的長(zhǎng)度,則有規(guī)則地將所劃分的部分劃分成比另一相對(duì)部分長(zhǎng)的一個(gè)體素長(zhǎng)度。如果另一部分沒(méi)有體素空間,則將其定義為用“E”標(biāo)記的空體素。如果某些節(jié)點(diǎn)僅僅包含“B”和“W”節(jié)點(diǎn)同時(shí)還包括“E”節(jié)點(diǎn),則能將該節(jié)點(diǎn)作為“P”節(jié)點(diǎn)來(lái)處理并能利用PPM方案來(lái)編碼該體素值。
為了方便起見(jiàn),現(xiàn)在將詳細(xì)地描述一個(gè)四叉樹(shù)的實(shí)例。圖8和9顯示了用于更有效地解釋自適應(yīng)八叉樹(shù)的概念的自適應(yīng)四叉樹(shù)。圖8A顯示一個(gè)分辨率為3×4的二維圖像的四叉樹(shù),其具有寬度為3且高度為4。無(wú)色或白色體素指示空體素,而有色的體素指示被占用的體素。圖8C中的有色的節(jié)點(diǎn)與圖8A中具有相同色彩的體素相對(duì)應(yīng)。
當(dāng)將根節(jié)點(diǎn)再分為四個(gè)子節(jié)點(diǎn)的時(shí)候,則寬度3被再分為在一邊上為2以及在另一邊上為1,而在任意一邊將高度4再分為2。在圖8C的自適應(yīng)四叉樹(shù)中用“S”標(biāo)記的根節(jié)點(diǎn)指示子節(jié)點(diǎn)包含對(duì)象。用“S”、“S”、“W”和“B”標(biāo)記該根節(jié)點(diǎn)的四個(gè)子節(jié)點(diǎn)。第一和第二“S”節(jié)點(diǎn)借助于子節(jié)點(diǎn)來(lái)表示體素信息。第一“S”節(jié)點(diǎn)的子節(jié)點(diǎn)是“W”、“B”、“B”和“B”節(jié)點(diǎn),其與圖8B的左頂端上的四個(gè)體素區(qū)域相對(duì)應(yīng)?!癇”節(jié)點(diǎn)指示占用的體素,而“W”節(jié)點(diǎn)指示體素為空。將要編碼的信息是標(biāo)記為“B”或“W”的節(jié)點(diǎn)?!癊”節(jié)點(diǎn)指示沒(méi)有體素空間并因此不對(duì)其編碼。因此,“E”節(jié)點(diǎn)是通過(guò)使用整個(gè)邊界體積的分辨率信息來(lái)定位的虛節(jié)點(diǎn)?!癊”節(jié)點(diǎn)是在圖8B的右頂端上的四個(gè)體素之間用虛線描繪的兩個(gè)體素,其在圖8A中不存在。描繪這些虛“E”節(jié)點(diǎn)是用于創(chuàng)建一個(gè)虛的四叉樹(shù)就如同第一“S”節(jié)點(diǎn)具有四個(gè)子節(jié)點(diǎn)。
類(lèi)似地,當(dāng)在自適應(yīng)八叉樹(shù)中表示“S”節(jié)點(diǎn)的八個(gè)子節(jié)點(diǎn)時(shí),利用“B”或“W”來(lái)標(biāo)記具有體素空間的子節(jié)點(diǎn),并利用“E”來(lái)標(biāo)記沒(méi)有節(jié)點(diǎn)空間的子節(jié)點(diǎn)。當(dāng)該空間被再分為八個(gè)子節(jié)點(diǎn)的時(shí)候,有規(guī)則地將空間的一端劃分成比另一端長(zhǎng)的一個(gè)體素長(zhǎng)度,類(lèi)似于自適應(yīng)八叉樹(shù)。換言之,當(dāng)通過(guò)利用三個(gè)軸X,Y和Z來(lái)表示3D體積空間時(shí),給-X,-Y和-Z方向分配比+X,+Y和+Z方向長(zhǎng)的一個(gè)體素長(zhǎng)度。雖然相反的情況也是可能的,但是本發(fā)明將前者的規(guī)則應(yīng)用于所有節(jié)點(diǎn)。
圖8C中的根節(jié)點(diǎn)的第三個(gè)子節(jié)點(diǎn)“W”節(jié)點(diǎn)對(duì)應(yīng)于圖8B的左下端上的四個(gè)體素的區(qū)域,其指示體素都為空。圖8C中的根節(jié)點(diǎn)的第四個(gè)子節(jié)點(diǎn)“B”節(jié)點(diǎn)對(duì)應(yīng)于圖8B的右下端上的四個(gè)體素的區(qū)域,其指示占用了除虛“E”節(jié)點(diǎn)之外的所有體素。圖9顯示了自適應(yīng)樹(shù)的一個(gè)實(shí)例,其中圖9A顯示了一個(gè)分辨率為5×7的二維圖像,而圖9B顯示了對(duì)應(yīng)于圖9A的一個(gè)自適應(yīng)四叉樹(shù)。
同時(shí),可以集成體積數(shù)據(jù)輸入單元300和自適應(yīng)八叉樹(shù)轉(zhuǎn)換單元320。換言之,可以將這兩個(gè)單元合并到自適應(yīng)八叉樹(shù)生成單元30中,其直接地將由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成自適應(yīng)八叉樹(shù)數(shù)據(jù)。
節(jié)點(diǎn)編碼單元340對(duì)由自適應(yīng)八叉樹(shù)轉(zhuǎn)換單元320生成的自適應(yīng)八叉樹(shù)節(jié)點(diǎn)進(jìn)行編碼(操作步驟36)。如圖4中所示,節(jié)點(diǎn)編碼單元340包括節(jié)點(diǎn)次序選擇單元400、節(jié)點(diǎn)SOP選擇單元420、“S”節(jié)點(diǎn)編碼單元440以及“P”節(jié)點(diǎn)編碼單元460。
當(dāng)在自適應(yīng)八叉樹(shù)中順序地選擇每一個(gè)節(jié)點(diǎn)的時(shí)候,節(jié)點(diǎn)次序選擇單元400決定應(yīng)該編碼哪一個(gè)節(jié)點(diǎn)以輸出該節(jié)點(diǎn)的位置信息值。更具體地說(shuō),節(jié)點(diǎn)次序選擇單元4 00通過(guò)參考在3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)中的標(biāo)記來(lái)以從根節(jié)點(diǎn)開(kāi)始的從頂?shù)较碌姆绞揭粋€(gè)接一個(gè)地選擇將要編碼的節(jié)點(diǎn),并輸出這些節(jié)點(diǎn)的位置信息值。通過(guò)使用隊(duì)列以廣度優(yōu)先檢索(BFS)方案來(lái)決定將要編碼的節(jié)點(diǎn)的次序。在插入到該隊(duì)列之后,將根節(jié)點(diǎn)從該隊(duì)列刪除,同時(shí)對(duì)該根節(jié)點(diǎn)的子節(jié)點(diǎn)的標(biāo)記進(jìn)行編碼。在圖10A中,用squre“S”表示將要編碼的根節(jié)點(diǎn),其中將要編碼的節(jié)點(diǎn)的實(shí)際值是由矩形描繪的根節(jié)點(diǎn)的子節(jié)點(diǎn),其為“S”、“S”、“W”和“B”。
節(jié)點(diǎn)SOP選擇單元420選擇應(yīng)該把在節(jié)點(diǎn)次序選擇單元400中選擇的哪一個(gè)節(jié)點(diǎn)編碼成“S”節(jié)點(diǎn)或“P”節(jié)點(diǎn)。也就是說(shuō),節(jié)點(diǎn)SOP選擇單元420決定應(yīng)該把將要編碼的哪一個(gè)節(jié)點(diǎn)編碼成“S”節(jié)點(diǎn)或“P”節(jié)點(diǎn)。在計(jì)算用于每一個(gè)“S”節(jié)點(diǎn)和“P”節(jié)點(diǎn)編碼操作的熵之后,選擇具有小熵的編碼操作。對(duì)所選擇的“S”或“P”節(jié)點(diǎn)的標(biāo)記進(jìn)行AAC(自適應(yīng)算術(shù)編碼器)編碼。
“S”節(jié)點(diǎn)編碼單元440執(zhí)行一種分叉編碼(split-encoding)操作。根據(jù)如圖11中所示的流程,“S”節(jié)點(diǎn)編碼單元440編碼“S”節(jié)點(diǎn)。通過(guò)AAC首先編碼將要編碼的“S”節(jié)點(diǎn)的平均色彩(操作步驟1100),然后編碼子節(jié)點(diǎn)的標(biāo)記(操作步驟1120)。當(dāng)在圖10A中將根節(jié)點(diǎn)編碼成“S”節(jié)點(diǎn)時(shí),該根節(jié)點(diǎn)的子節(jié)點(diǎn)的標(biāo)記為“S”、S”、“W”和“B”,其為將要編碼的實(shí)際值。在子節(jié)點(diǎn)的標(biāo)記當(dāng)中,“B”節(jié)點(diǎn)被“S”節(jié)點(diǎn)所代替并對(duì)其進(jìn)行編碼。因此,將子節(jié)點(diǎn)的標(biāo)記編碼成像圖10B中的矩形內(nèi)的節(jié)點(diǎn)那樣的“B”、“B”、“W”和“B”。這些值與在解碼器中恢復(fù)的值相同。
“P”節(jié)點(diǎn)編碼單元460執(zhí)行一種PPM編碼操作。“P”節(jié)點(diǎn)編碼單元460根據(jù)圖12中所示的流程編碼“P”節(jié)點(diǎn)。對(duì)節(jié)點(diǎn)的體積區(qū)域中的深度信息,體素值,進(jìn)行PPM編碼(操作步驟1200),以及對(duì)每一個(gè)體素位置的色彩信息進(jìn)行DPCM(差分脈沖編碼調(diào)制)編碼和AAC編碼(操作步驟1220)。圖13顯示了用于PPM編碼體素的上下文。在右邊上的深度為“K”的二維平面是其中存在有以前編碼的體素和當(dāng)前將要編碼的體素的一部分,而在左邊上的深度為“k-1”的二維平面是其中存在有以前編碼的體素的一個(gè)相鄰部分。為了有效地進(jìn)行編碼,僅僅利用除了標(biāo)記為“X”的體素以外的10個(gè)圓形體素來(lái)形成一個(gè)上下文(context)并進(jìn)行PPM編碼。因此,在這種情況下,將上下文從“0011101000011”減少到“0111000011”。根據(jù)光柵掃描次序來(lái)枚舉(enumerate)該上下文的次序。Cleary和Witten最初為了以無(wú)損方式壓縮傳真數(shù)據(jù)而提議了PPM。
同時(shí),在圖3中所示的比特流產(chǎn)生單元360根據(jù)節(jié)點(diǎn)編碼單元340中編碼的節(jié)點(diǎn)來(lái)生成比特流(操作步驟38)。在該樹(shù)中的“S”節(jié)點(diǎn)的條件下產(chǎn)生分叉編碼(split-encoded)的比特流,以及在“P”節(jié)點(diǎn)的條件下產(chǎn)生PPM編碼的比特流。
參考圖14A,將頭信息編碼為寬度、高度和深度來(lái)產(chǎn)生比特流,其為包含3D對(duì)象的體積的分辨率信息。接著,從根節(jié)點(diǎn)開(kāi)始一個(gè)接一個(gè)順序地編碼節(jié)點(diǎn)來(lái)產(chǎn)生比特流??梢岳霉?jié)點(diǎn)-1、節(jié)點(diǎn)-2、…、節(jié)點(diǎn)-N來(lái)表示將要編碼的總數(shù)為“N”的節(jié)點(diǎn)。每一個(gè)節(jié)點(diǎn)的比特流都包括如圖14B中所示的“SOP”(“S”或“P”)和DIB(詳細(xì)的信息位)。
如果SOP表示當(dāng)前節(jié)點(diǎn)是“S”節(jié)點(diǎn),如圖14C中所示,則DIB包括當(dāng)前節(jié)點(diǎn)區(qū)域的平均色彩以及多達(dá)八個(gè)的表示子節(jié)點(diǎn)為“W”或否的標(biāo)記。這八個(gè)標(biāo)記可以被表示為Ch1、Ch2、…、Ch8,其指示存在八個(gè)體素區(qū)域。在沒(méi)有體素區(qū)域的節(jié)點(diǎn)的情況中,則減少數(shù)量相同的標(biāo)記??梢訟AC編碼將要編碼的標(biāo)記值。
如果SOP表示當(dāng)前節(jié)點(diǎn)是“P”節(jié)點(diǎn),如圖14D中所示,則對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的體素的深度信息進(jìn)行PPM編碼,以及對(duì)“B”體素的色彩信息順序進(jìn)行DPCM編碼和AAC編碼?,F(xiàn)在闡述PPM編碼操作。利用二進(jìn)制體素值來(lái)表示深度信息?!癢”體素表示透明的背景,同時(shí)“B”體素表示3D對(duì)象。通過(guò)將相鄰的體素值用作上下文來(lái)對(duì)“P”節(jié)點(diǎn)內(nèi)的二進(jìn)制體素值進(jìn)行PPM編碼。數(shù)據(jù)量過(guò)大而無(wú)法通過(guò)使用根據(jù)光柵掃描次序的鄰近體素的13個(gè)上下文來(lái)操作和處理。因此,必須有效地減少上下文的數(shù)量。去除三個(gè)幾乎不影響總熵的體素。在圖13中將這三個(gè)去除的體素標(biāo)記為“X”。使用這種上下文,通過(guò)基于上下文的AAC來(lái)編碼體素。
在編碼深度信息之后,以光柵掃描次序?qū)υ诋?dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G、B色彩值進(jìn)行DPCM編碼和AAC編碼。分別根據(jù)先前“B”體素的R、G、B色彩值來(lái)預(yù)測(cè)將要編碼的“B”體素的R、G、B色彩值,并用AAC編碼預(yù)測(cè)剩余值。
雖然關(guān)于在根據(jù)本發(fā)明的3D數(shù)據(jù)的編碼方案中的累進(jìn)編碼方案主要描述了3D對(duì)象數(shù)據(jù)的編碼操作,但也可以使用一種無(wú)損或有損編碼方案。在無(wú)損編碼方案中編碼將要編碼的所有3D對(duì)象數(shù)據(jù),而在有損編碼方案中僅僅將一些從根節(jié)點(diǎn)開(kāi)始的節(jié)點(diǎn)編碼為比特流。
節(jié)點(diǎn)解碼單元520根據(jù)所讀取的節(jié)點(diǎn)來(lái)解碼“S”或“P”節(jié)點(diǎn)。如圖6中所示,節(jié)點(diǎn)解碼單元520包括節(jié)點(diǎn)次序選擇單元600、節(jié)點(diǎn)SOP選擇單元620、“S”節(jié)點(diǎn)解碼單元640、以及“P”節(jié)點(diǎn)解碼單元660。當(dāng)在自適應(yīng)八叉樹(shù)中順序地恢復(fù)節(jié)點(diǎn)的時(shí)候,節(jié)點(diǎn)次序選擇單元600通知應(yīng)該解碼哪一個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)SOP選擇單元620確定對(duì)在節(jié)點(diǎn)次序選擇單元600中選擇的節(jié)點(diǎn)是否進(jìn)行“S”解碼或進(jìn)行“P”解碼。“S”節(jié)點(diǎn)解碼單元640執(zhí)行分叉解碼操作,而“P”節(jié)點(diǎn)解碼單元660執(zhí)行PPM解碼操作。
自適應(yīng)八叉樹(shù)恢復(fù)單元540從所恢復(fù)的節(jié)點(diǎn)中恢復(fù)自適應(yīng)八叉樹(shù),并依次將所恢復(fù)的自適應(yīng)八叉樹(shù)轉(zhuǎn)換成八叉樹(shù)。雖然自適應(yīng)八叉樹(shù)具有五種類(lèi)型的標(biāo)記,但是該八叉樹(shù)不具有這些標(biāo)記而只具有黑色值或白色值。
體積數(shù)據(jù)恢復(fù)單元560從輸入的八叉樹(shù)數(shù)據(jù)中恢復(fù)原始的3D對(duì)象數(shù)據(jù),其中該原始的3D對(duì)象數(shù)據(jù)是點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種。
現(xiàn)在闡述根據(jù)本發(fā)明的一種用于解碼3D對(duì)象數(shù)據(jù)的方法和裝置。圖5A是顯示根據(jù)本發(fā)明的一種用于解碼3D對(duì)象數(shù)據(jù)的裝置的方框圖。該裝置包括比特流讀取單元500、節(jié)點(diǎn)解碼單元520、自適應(yīng)八叉樹(shù)恢復(fù)單元540以及體積數(shù)據(jù)恢復(fù)單元560。圖5B是顯示根據(jù)本發(fā)明的一種解碼3D對(duì)象數(shù)據(jù)的方法的流程圖。
比特流讀取單元500從編碼的3D數(shù)據(jù)的比特流中讀取樹(shù)的節(jié)點(diǎn)(操作步驟50),其中讀取“S”節(jié)點(diǎn)作為分叉節(jié)點(diǎn),以及讀取“P”節(jié)點(diǎn)作為PPM節(jié)點(diǎn)。如圖14A中所示,將頭信息解碼為寬度、高度和深度以讀取比特流,該寬度、高度和深度為包含3D對(duì)象的體積的分辨率信息。接著,從根節(jié)點(diǎn)開(kāi)始一個(gè)接一個(gè)地順序地解碼節(jié)點(diǎn)以讀取比特流??梢杂霉?jié)點(diǎn)-1、節(jié)點(diǎn)-2、…、節(jié)點(diǎn)-N來(lái)表示將要解碼的總數(shù)為“N”的節(jié)點(diǎn)。讀取每一個(gè)節(jié)點(diǎn)的比特流來(lái)作為SOP(“S”或“P”)和DIB,如圖14B中所示。
如果SOP表示當(dāng)前節(jié)點(diǎn)是“S”節(jié)點(diǎn),如圖14C中所示,則將DIB解碼為當(dāng)前節(jié)點(diǎn)區(qū)域的平均色彩以及多達(dá)八個(gè)表示子節(jié)點(diǎn)是“W”與否的標(biāo)記。在沒(méi)有體素區(qū)域的節(jié)點(diǎn)的情況中,減少相同數(shù)量的標(biāo)記?!癊”節(jié)點(diǎn)是虛節(jié)點(diǎn),通過(guò)使用整個(gè)邊界體積的分辨率信息來(lái)定位該節(jié)點(diǎn)。
如果SOP表示當(dāng)前節(jié)點(diǎn)是“P”節(jié)點(diǎn),如圖14D所示,則對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的體素的深度信息進(jìn)行PPM解碼,并順序地對(duì)“B”體素的色彩信息進(jìn)行反向AAC解碼和反向DPCM解碼。通過(guò)使用相鄰的10個(gè)已解碼的體素值作為上下文來(lái)對(duì)“P”節(jié)點(diǎn)內(nèi)將要解碼的二進(jìn)制體素值進(jìn)行PPM解碼。
在解碼深度信息后,以光柵掃描次序?qū)Ξ?dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G、B色彩值進(jìn)行反向AAC解碼和反向DPCM解碼。分別從先前“B”體素的R、G、B色彩值來(lái)反向預(yù)測(cè)將要解碼的“B”體素的R、G、B色彩值,并用反向AAC對(duì)預(yù)測(cè)剩余值進(jìn)行解碼。
同時(shí),節(jié)點(diǎn)解碼單元520從讀取的節(jié)點(diǎn)中解碼“S”或“P”節(jié)點(diǎn)(操作步驟52)。如圖6中所示,節(jié)點(diǎn)解碼單元520包括節(jié)點(diǎn)次序選擇單元600、節(jié)點(diǎn)SOP選擇單元620、“S”節(jié)點(diǎn)解碼單元640以及“P”節(jié)點(diǎn)解碼單元660。
節(jié)點(diǎn)次序選擇單元600在順序地恢復(fù)自適應(yīng)八叉樹(shù)中的節(jié)點(diǎn)時(shí)通知應(yīng)該解碼哪一個(gè)節(jié)點(diǎn)。更具體地說(shuō),節(jié)點(diǎn)次序選擇單元600在以從頂?shù)较碌姆绞交謴?fù)3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)時(shí)從根節(jié)點(diǎn)開(kāi)始一個(gè)接一個(gè)地選擇將要解碼的節(jié)點(diǎn),并輸出這些節(jié)點(diǎn)的位置信息值。通過(guò)使用隊(duì)列以廣度優(yōu)先的搜索方式確定將要解碼的節(jié)點(diǎn)的次序。在插入到隊(duì)列中之后,從隊(duì)列中去除根節(jié)點(diǎn)并同時(shí)解碼該根節(jié)點(diǎn)的子節(jié)點(diǎn)的標(biāo)記。在圖10B中,用正方形“S”表示要解碼的根節(jié)點(diǎn),其中將要解碼的節(jié)點(diǎn)的實(shí)際值是由矩形表示的根節(jié)點(diǎn)的子節(jié)點(diǎn)“B”、“B”、“W”和“B”。
節(jié)點(diǎn)SOP選擇單元620確定在節(jié)點(diǎn)次序選擇單元600中選擇的節(jié)點(diǎn)是為“S”節(jié)點(diǎn)還是“P”節(jié)點(diǎn),并因此確定是否應(yīng)該把將要解碼的節(jié)點(diǎn)解碼成“S”節(jié)點(diǎn)或“P”節(jié)點(diǎn)。從在比特流讀取單元500中所解碼的值來(lái)選擇該值。
“S”節(jié)點(diǎn)解碼單元640解碼“S”節(jié)點(diǎn)的詳細(xì)信息,如果節(jié)點(diǎn)類(lèi)型信息是“S”的話,以及根據(jù)圖15中所示的處理過(guò)程來(lái)解碼“S”節(jié)點(diǎn)。使用反向AAC對(duì)“S”節(jié)點(diǎn)中的體素的平均R(紅)、G(綠)和B(藍(lán))值進(jìn)行初始化解碼(操作步驟1500)。借助于反向AAC將子節(jié)點(diǎn)的標(biāo)記解碼為“B”或“W”值。當(dāng)在圖10B中將根節(jié)點(diǎn)解碼成“S”節(jié)點(diǎn)時(shí),根節(jié)點(diǎn)的子節(jié)點(diǎn)的標(biāo)記是實(shí)際的解碼值“B”、“B”、“W”和“B”。由于“B”有可能是子節(jié)點(diǎn)的標(biāo)記當(dāng)中的一個(gè)臨時(shí)標(biāo)記,所以以后就可以將“B”轉(zhuǎn)變成“S”或“P”。
如果節(jié)點(diǎn)類(lèi)型信息是“P”,則“P”節(jié)點(diǎn)解碼單元660對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼,以及根據(jù)圖16中所示的處理過(guò)程對(duì)“P”節(jié)點(diǎn)進(jìn)行解碼。對(duì)節(jié)點(diǎn)區(qū)域內(nèi)的體素的深度信息進(jìn)行PPM解碼(操作步驟1600),并對(duì)體素的色彩信息進(jìn)行反向AAC解碼和反向DPCM解碼(操作步驟1650)。圖13顯示用于PPM解碼體素的上下文。在右端上的深度為“k”的二維平面是其中存在以前解碼的體素和當(dāng)前將要解碼的體素的部分,而在左端上的深度為“k-1”的二維平面是其中存在以前解碼的體素的相鄰部分。除了標(biāo)記為“X”的體素之外僅僅用10個(gè)圓形體素來(lái)形成上下文并進(jìn)行PPM解碼。因此,在這種情況下,上下文變成“0111000011”。根據(jù)光柵掃描次序來(lái)枚舉(enumerate)上下文的次序。借助于反向AAC和反向DPCM將色彩信息解碼成R、G、B值,其為當(dāng)前節(jié)點(diǎn)內(nèi)的“B”體素的色彩。
自適應(yīng)八叉樹(shù)恢復(fù)單元540從解碼的節(jié)點(diǎn)中恢復(fù)自適應(yīng)八叉樹(shù)(操作步驟54)。雖然自適應(yīng)八叉樹(shù)具有五種標(biāo)記時(shí),但八叉樹(shù)并不具有這些標(biāo)記而僅僅具有黑色值或白色值。自適應(yīng)八叉樹(shù)與編碼方法和裝置中所描述的相同,因此省略對(duì)其的詳細(xì)地描述。
體數(shù)據(jù)恢復(fù)單元560從自適應(yīng)八叉樹(shù)數(shù)據(jù)中恢復(fù)原始的3D對(duì)象數(shù)據(jù),其中原始的3D對(duì)象數(shù)據(jù)是點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種(操作步驟56)。可以將八叉樹(shù)轉(zhuǎn)換成體素和點(diǎn)紋理。
雖然已經(jīng)主要關(guān)于累進(jìn)的解碼方案描述了解碼3D對(duì)象數(shù)據(jù),但也可以使用無(wú)損或有損解碼方案。在無(wú)損解碼方案中解碼所有比特流,而在有損解碼方案中僅僅從開(kāi)端對(duì)部分比特流進(jìn)行編碼。
可以將本發(fā)明做成記錄在一個(gè)計(jì)算機(jī)可讀記錄介質(zhì)中的計(jì)算機(jī)可讀編碼。計(jì)算機(jī)可讀記錄介質(zhì)的實(shí)例包括所有類(lèi)型的其中存儲(chǔ)了將被一個(gè)計(jì)算機(jī)系統(tǒng)讀取的數(shù)據(jù)的記錄設(shè)備。計(jì)算機(jī)可讀記錄介質(zhì)包括ROM、RAM、CD-ROM、磁帶、軟盤(pán)和光存儲(chǔ)設(shè)備。另外,一種以載波形式(例如,經(jīng)由互聯(lián)網(wǎng)進(jìn)行傳輸)執(zhí)行的介質(zhì)也是計(jì)算機(jī)可讀記錄介質(zhì)的一個(gè)實(shí)例。另外,可以在通過(guò)網(wǎng)絡(luò)連接的的一個(gè)計(jì)算機(jī)系統(tǒng)中分布該計(jì)算機(jī)可讀記錄介質(zhì),或在一種分布方式的計(jì)算機(jī)中讀取并執(zhí)行。
根據(jù)本發(fā)明的用于編碼和解碼3D數(shù)據(jù)的方法和裝置,由于可以使用特定的分辨率和固定的分辨率來(lái)編碼該3D數(shù)據(jù),因此可以有效地對(duì)龐大數(shù)量的3D數(shù)據(jù)進(jìn)行編碼,并用少量數(shù)據(jù)來(lái)恢復(fù)高分辨率的3D數(shù)據(jù)。另外,由于產(chǎn)生了一個(gè)累進(jìn)的比特流,因而可以在解碼過(guò)程中累進(jìn)地顯示3D數(shù)據(jù)。
如圖17所示已經(jīng)使用測(cè)試模塊估算了根據(jù)本發(fā)明的用于編碼和解碼3D對(duì)象數(shù)據(jù)的方法。圖17A到17E中的模塊具有256×256×256的分辨率,圖17F到圖17H中的模塊具有512×512×512的分辨率。
雖然本發(fā)明已參考優(yōu)選實(shí)施例進(jìn)行了描述,但可以理解的是,本領(lǐng)域的技術(shù)人員可以在不背離所述權(quán)利要求所定義的本發(fā)明的范圍的情況下對(duì)具體的形式和細(xì)節(jié)作出各種改變。
權(quán)利要求
1.一種編碼3D數(shù)據(jù)的方法,包括將由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成對(duì)中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)數(shù)據(jù);對(duì)自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)進(jìn)行編碼;以及根據(jù)所編碼的數(shù)據(jù)生成比特流。
2.根據(jù)權(quán)利要求1所述的方法,其中,將3D數(shù)據(jù)轉(zhuǎn)換成自適應(yīng)八叉樹(shù)數(shù)據(jù)包括將由點(diǎn)紋理或體素?cái)?shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成八叉樹(shù);以及將八叉樹(shù)轉(zhuǎn)換成對(duì)中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其中,將3D數(shù)據(jù)轉(zhuǎn)換成自適應(yīng)八叉樹(shù)數(shù)據(jù)包括使用3D邊界體積將3D數(shù)據(jù)轉(zhuǎn)換成體素?cái)?shù)據(jù);以及用預(yù)定的標(biāo)記來(lái)區(qū)分與3D對(duì)象存在的位置相關(guān)的體素和與3D對(duì)象不存在的位置相關(guān)的體素。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述標(biāo)記被用來(lái)指示表示3D數(shù)據(jù)的樹(shù)的節(jié)點(diǎn)由子節(jié)點(diǎn)組成的情況“S”、節(jié)點(diǎn)由不具有對(duì)象的體素組成的情況“W”、節(jié)點(diǎn)由具有對(duì)象的體素組成的情況“B”、通過(guò)PPM(部分匹配預(yù)測(cè))算法對(duì)節(jié)點(diǎn)內(nèi)的體素值進(jìn)行編碼的情況“P”、以及節(jié)點(diǎn)的體素空間不存在的情況“E”。
5.根據(jù)權(quán)利要求4所述的方法,其中,節(jié)點(diǎn)的編碼包括選擇將要編碼的自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)的次序;選擇用于指示是否應(yīng)該把將要編碼的節(jié)點(diǎn)編碼成“S”節(jié)點(diǎn)或“P”節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型信息;以及如果節(jié)點(diǎn)類(lèi)型信息為“S”則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼,而如果節(jié)點(diǎn)類(lèi)型信息為“P”則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼。
6.根據(jù)權(quán)利要求5所述的方法,其中,次序的選擇通過(guò)參考3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)中的標(biāo)記,以廣度優(yōu)先的搜索方式和以從根節(jié)點(diǎn)開(kāi)始的自頂向下的方式一個(gè)接一個(gè)地選擇將要編碼的節(jié)點(diǎn)。
7.根據(jù)權(quán)利要求5所述的方法,其中,選擇節(jié)點(diǎn)類(lèi)型信息包括計(jì)算用于每一個(gè)“S”節(jié)點(diǎn)和“P”節(jié)點(diǎn)編碼操作的熵并選擇具有更小熵的編碼操作;以及執(zhí)行所選擇的“S”或“P”節(jié)點(diǎn)的標(biāo)記的AAC(自適應(yīng)算術(shù)編碼器)編碼操作。
8.根據(jù)權(quán)利要求5所述的方法,其中,“S”節(jié)點(diǎn)的編碼是對(duì)色彩信息的平均值以及子節(jié)點(diǎn)的標(biāo)記進(jìn)行編碼,其中色彩信息的編碼執(zhí)行將在當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的體素的平均色彩AAC編碼成R(紅)、G(綠)和B(藍(lán))值的AAC編碼操作,以及其中子節(jié)點(diǎn)的標(biāo)記的編碼執(zhí)行將當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)的標(biāo)記AAC編碼成“B”或“W”值的AAC編碼操作。
9.根據(jù)權(quán)利要求5所述的方法,其中,對(duì)“P”節(jié)點(diǎn)的編碼是對(duì)深度信息和色彩信息進(jìn)行編碼,其中對(duì)深度信息的編碼執(zhí)行通過(guò)使用預(yù)定數(shù)量的上下文以光柵掃描次序?qū)Ξ?dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)進(jìn)行的PPM或AAC編碼操作,以及其中對(duì)色彩信息的編碼執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G和B值的DPCM(差分脈沖編碼調(diào)制)以及AAC編碼操作。
10.根據(jù)權(quán)利要求1所述的方法,其中,生成一個(gè)比特流產(chǎn)生包含3D對(duì)象的邊界體積的分辨率信息以及支持有損編碼方案和無(wú)損編碼方案的累進(jìn)比特流,其中有損編碼方案僅僅編碼從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn),而無(wú)損編碼方案編碼從開(kāi)始到結(jié)束的全部節(jié)點(diǎn)。
11.一種用于編碼3D數(shù)據(jù)的裝置,包括自適應(yīng)八叉樹(shù)生成單元,用于將由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成對(duì)中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)數(shù)據(jù);節(jié)點(diǎn)編碼單元,用于對(duì)自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)進(jìn)行編碼;以及比特流生成單元,用于根據(jù)節(jié)點(diǎn)編碼單元中編碼的數(shù)據(jù)生成比特流。
12.根據(jù)權(quán)利要求11所述的裝置,其中,所述自適應(yīng)八叉樹(shù)生成單元包括體積數(shù)據(jù)輸入單元,用于將由點(diǎn)紋理或體素?cái)?shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成八叉樹(shù);以及自適應(yīng)八叉樹(shù)轉(zhuǎn)換單元,用于將八叉樹(shù)轉(zhuǎn)換成對(duì)中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)。
13.根據(jù)權(quán)利要求11所述的裝置,其中,通過(guò)使用3D邊界體積將3D數(shù)據(jù)轉(zhuǎn)換成體素?cái)?shù)據(jù)并用預(yù)定的標(biāo)記來(lái)區(qū)分3D對(duì)象所在的位置上的體素和3D對(duì)象所不存在的位置上的體素,來(lái)表示自適應(yīng)八叉樹(shù)生成單元中的自適應(yīng)八叉樹(shù)數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的裝置,其中,所述標(biāo)記被用來(lái)指示用于表示3D數(shù)據(jù)的樹(shù)節(jié)點(diǎn)由子節(jié)點(diǎn)組成的情況“S”、由不具有對(duì)象的體素組成的節(jié)點(diǎn)的情況“W”、由具有對(duì)象的體素組成的節(jié)點(diǎn)的情況“B”、利用PPM算法來(lái)對(duì)節(jié)點(diǎn)內(nèi)的體素值進(jìn)行編碼的情況“P”、以及節(jié)點(diǎn)的體素空間不存在的情況“E”
15.根據(jù)權(quán)利要求11所述的裝置,其中,所述節(jié)點(diǎn)編碼單元包括節(jié)點(diǎn)次序選擇單元,用于選擇將要編碼的自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)的次序;節(jié)點(diǎn)SOP選擇單元,用于選擇指示是否應(yīng)該把要編碼的節(jié)點(diǎn)編碼成“S”或“P”的節(jié)點(diǎn)類(lèi)型信息;“S”節(jié)點(diǎn)編碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“S”,則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼;以及“P”節(jié)點(diǎn)編碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“P”,則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行編碼。
16.根據(jù)權(quán)利要求15所述的裝置,其中,所述節(jié)點(diǎn)次序選擇單元通過(guò)參考3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)中的標(biāo)記,以廣度優(yōu)先的搜索方式以及以從根節(jié)點(diǎn)開(kāi)始的自頂向下的方式一個(gè)接一個(gè)地選擇將要編碼的節(jié)點(diǎn)。
17.根據(jù)權(quán)利要求15所述的裝置,其中,節(jié)點(diǎn)SOP選擇單元對(duì)每一個(gè)“S”節(jié)點(diǎn)和“P”節(jié)點(diǎn)編碼操作計(jì)算熵和選擇具有小熵的編碼操作,以及執(zhí)行對(duì)所選擇的“S”或“P”節(jié)點(diǎn)的標(biāo)記的AAC編碼操作。
18.根據(jù)權(quán)利要求15所述的裝置,其中,“S”節(jié)點(diǎn)編碼單元對(duì)色彩信息的平均值以及子節(jié)點(diǎn)的標(biāo)記進(jìn)行編碼,以及其中“P”節(jié)點(diǎn)編碼單元對(duì)深度信息和色彩信息進(jìn)行編碼。
19.根據(jù)權(quán)利要求11所述的裝置,其中,比特流生成單元產(chǎn)生包含3D對(duì)象的邊界體積的分辨率信息和支持有損編碼方案和無(wú)損編碼方案的累進(jìn)比特流,其中有損編碼方案僅僅編碼從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn),而無(wú)損編碼方案編碼全部節(jié)點(diǎn)。
20.一種解碼3D數(shù)據(jù)的方法,包括從3D數(shù)據(jù)的比特流中讀取構(gòu)成樹(shù)的節(jié)點(diǎn);對(duì)讀取的節(jié)點(diǎn)進(jìn)行解碼;從解碼的節(jié)點(diǎn)中恢復(fù)自適應(yīng)八叉樹(shù);以及從自適應(yīng)八叉樹(shù)中恢復(fù)八叉樹(shù)、體素和點(diǎn)紋理數(shù)據(jù)中的任何一種數(shù)據(jù)。
21.根據(jù)權(quán)利要求20所述的方法,其中,讀取節(jié)點(diǎn)還包括讀取3D對(duì)象的邊界體積的分辨率信息;以及其中節(jié)點(diǎn)的解碼包括有損解碼操作,即,通過(guò)使用分辨率信息對(duì)僅僅從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn)進(jìn)行解碼。
22.根據(jù)權(quán)利要求20所述的方法,其中,讀取節(jié)點(diǎn)還包括讀取3D對(duì)象的邊界體積的分辨率信息;以及其中節(jié)點(diǎn)的解碼包括無(wú)損解碼操作,即,通過(guò)使用分辨率信息對(duì)從開(kāi)始到結(jié)束的所有節(jié)點(diǎn)進(jìn)行解碼。
23.根據(jù)權(quán)利要求20所述的方法,其中,解碼節(jié)點(diǎn)包括選擇將要解碼的節(jié)點(diǎn)的次序;選擇指示要解碼的節(jié)點(diǎn)是“S”節(jié)點(diǎn)還是“P”節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型信息;以及如果節(jié)點(diǎn)類(lèi)型信息為“S”則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼,而如果節(jié)點(diǎn)類(lèi)型信息為“P”則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼。
24.根據(jù)權(quán)利要求23所述的方法,其中,次序的選擇從根節(jié)點(diǎn)開(kāi)始以廣度優(yōu)先的搜索方式一個(gè)接一個(gè)地選擇將要解碼的節(jié)點(diǎn),同時(shí)以自頂向下的方式恢復(fù)3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu)。
25.根據(jù)權(quán)利要求23所述的方法,其中,對(duì)節(jié)點(diǎn)類(lèi)型信息的選擇確定是否將“S”或“P”標(biāo)記反向AAC解碼為“S”或“P”節(jié)點(diǎn)。
26.根據(jù)權(quán)利要求23所述的方法,其中,對(duì)“S”節(jié)點(diǎn)的解碼包括對(duì)色彩信息的平均值進(jìn)行解碼;以及對(duì)子節(jié)點(diǎn)的標(biāo)記進(jìn)行解碼。
27.根據(jù)權(quán)利要求26所述的方法,其中,在解碼色彩信息的平均值時(shí),使用反向AAC來(lái)對(duì)當(dāng)前節(jié)點(diǎn)中的體素的平均R、G和B值進(jìn)行解碼,以及其中,在解碼子節(jié)點(diǎn)的標(biāo)記時(shí),通過(guò)反向AAC來(lái)將子節(jié)點(diǎn)的標(biāo)記解碼為“B”或“W”值。
28.根據(jù)權(quán)利要求23所述的方法,其中,解碼“P”節(jié)點(diǎn)包括對(duì)深度信息進(jìn)行解碼;以及對(duì)色彩信息進(jìn)行解碼。
29.根據(jù)權(quán)利要求23所述的方法,其中,對(duì)深度信息的解碼通過(guò)使用預(yù)定數(shù)量的上下文,以光柵掃描次序執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)的反向PPM解碼或反向AAC解碼操作,以及其中對(duì)色彩信息的編碼執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G和B值的反向AAC解碼和反向DPCM解碼操作。
30.根據(jù)權(quán)利要求20所述的方法,其中,在恢復(fù)自適應(yīng)八叉樹(shù)時(shí),通過(guò)預(yù)定的標(biāo)記來(lái)區(qū)分3D對(duì)象存在的位置上的體素和3D對(duì)象不存在的位置上的體素。
31.根據(jù)權(quán)利要求30所述的方法,其中,在利用標(biāo)記進(jìn)行的區(qū)分中,“S”表示用于指示要解碼的3D數(shù)據(jù)的樹(shù)節(jié)點(diǎn)由子節(jié)點(diǎn)組成,“W”表示節(jié)點(diǎn)由不具有對(duì)象的體素組成,“B”表示節(jié)點(diǎn)由具有對(duì)象的體素組成,“P”表示利用PPM算法來(lái)對(duì)節(jié)點(diǎn)內(nèi)的體素值進(jìn)行編碼,以及“E”表示節(jié)點(diǎn)的體素空間不存在。
32.一種用于解碼3D數(shù)據(jù)的裝置,包括比特流讀取單元,用于從3D數(shù)據(jù)的比特流中讀取構(gòu)成樹(shù)的節(jié)點(diǎn);節(jié)點(diǎn)解碼單元,用于對(duì)讀取的節(jié)點(diǎn)進(jìn)行解碼;自適應(yīng)八叉樹(shù)恢復(fù)單元,用于從節(jié)點(diǎn)解碼單元中所解碼的節(jié)點(diǎn)中恢復(fù)自適應(yīng)八叉樹(shù);以及體積數(shù)據(jù)恢復(fù)單元,用于從輸入的自適應(yīng)八叉樹(shù)中恢復(fù)八叉樹(shù)、體素和點(diǎn)紋理數(shù)據(jù)中的任何一種數(shù)據(jù)。
33.根據(jù)權(quán)利要求32所述的裝置,其中,所述比特流讀取單元讀取3D對(duì)象的邊界體積的分辨率信息和節(jié)點(diǎn);以及其中節(jié)點(diǎn)解碼單元對(duì)僅僅從開(kāi)始到預(yù)定節(jié)點(diǎn)的一部分節(jié)點(diǎn)進(jìn)行解碼或?qū)拈_(kāi)始到結(jié)束的所有節(jié)點(diǎn)進(jìn)行解碼。
34.根據(jù)權(quán)利要求32所述的裝置,其中,所述節(jié)點(diǎn)解碼單元包括節(jié)點(diǎn)次序選擇單元,用于選擇將要解碼的節(jié)點(diǎn)的次序;節(jié)點(diǎn)SOP選擇單元,用于選擇指示是否應(yīng)該把將要解碼的節(jié)點(diǎn)解碼為“S”節(jié)點(diǎn)或“P”節(jié)點(diǎn)的節(jié)點(diǎn)類(lèi)型信息;“S”節(jié)點(diǎn)解碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“S”則對(duì)“S”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼;以及“P”節(jié)點(diǎn)解碼單元,用于如果節(jié)點(diǎn)類(lèi)型信息為“P”則對(duì)“P”節(jié)點(diǎn)的詳細(xì)信息進(jìn)行解碼。
35.根據(jù)權(quán)利要求34所述的裝置,其中,所述節(jié)點(diǎn)次序選擇單元以廣度優(yōu)先的搜索方式從根節(jié)點(diǎn)開(kāi)始一個(gè)接一個(gè)地選擇將要解碼的節(jié)點(diǎn),同時(shí)以自頂向下的方式恢復(fù)3D對(duì)象的自適應(yīng)樹(shù)結(jié)構(gòu);以及其中節(jié)點(diǎn)SOP選擇單元執(zhí)行將“S”或“P”標(biāo)記反向AAC解碼成“S”或“P”節(jié)點(diǎn)的反向AAC解碼操作。
36.根據(jù)權(quán)利要求34所述的裝置,其中,“S”節(jié)點(diǎn)解碼單元對(duì)色彩信息的平均值和子節(jié)點(diǎn)的標(biāo)記進(jìn)行解碼,以及其中“P”節(jié)點(diǎn)解碼單元對(duì)深度信息和色彩信息進(jìn)行解碼。
37.根據(jù)權(quán)利要求36所述的裝置,其中,對(duì)深度信息的解碼通過(guò)使用預(yù)定數(shù)量的上下文,以光柵掃描次序執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)進(jìn)行的反向PPM解碼或反向AAC解碼操作,以及其中對(duì)色彩信息的編碼執(zhí)行對(duì)當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi)的“B”體素的R、G和B值的反向AAC解碼操作和反向DPCM解碼操作。
38.根據(jù)權(quán)利要求32所述的裝置,其中,通過(guò)預(yù)定的標(biāo)記來(lái)區(qū)分3D對(duì)象存在的位置上的體素和3D對(duì)象不存在的位置上的體素,來(lái)表示自適應(yīng)八叉樹(shù)恢復(fù)單元的自適應(yīng)八叉樹(shù)數(shù)據(jù),其中所述標(biāo)記被用來(lái)指示用于表示3D數(shù)據(jù)的樹(shù)節(jié)點(diǎn)由子節(jié)點(diǎn)組成的情況“S”、由不具有對(duì)象的體素組成的節(jié)點(diǎn)的情況“W”、由具有對(duì)象的體素組成的節(jié)點(diǎn)的情況“B”、利用PPM算法來(lái)對(duì)節(jié)點(diǎn)內(nèi)的體素值進(jìn)行編碼的情況“P”、以及節(jié)點(diǎn)的體素空間不存在的情況“E”。
39.一種在其上已經(jīng)記錄了程序的計(jì)算機(jī)可讀記錄介質(zhì),所述程序用于在計(jì)算機(jī)上執(zhí)行根據(jù)權(quán)利要求1至10、以及20至31中的任何一個(gè)權(quán)利要求所述的方法。
全文摘要
本發(fā)明提供了一種用于編碼和解碼三維(3D)數(shù)據(jù)的方法和裝置。編碼方法包括將由點(diǎn)紋理、體素和八叉樹(shù)數(shù)據(jù)中的任何一種數(shù)據(jù)組成的3D數(shù)據(jù)轉(zhuǎn)換成對(duì)中間節(jié)點(diǎn)提供標(biāo)記的自適應(yīng)八叉樹(shù)數(shù)據(jù),對(duì)自適應(yīng)八叉樹(shù)的節(jié)點(diǎn)進(jìn)行編碼,和根據(jù)編碼的數(shù)據(jù)生成比特流。解碼方法包括讀取根據(jù)3D數(shù)據(jù)的比特流構(gòu)成樹(shù)的節(jié)點(diǎn),對(duì)讀取的節(jié)點(diǎn)進(jìn)行解碼,從解碼的節(jié)點(diǎn)中恢復(fù)自適應(yīng)八叉樹(shù),和根據(jù)自適應(yīng)八叉樹(shù)恢復(fù)八叉樹(shù)、體素和點(diǎn)紋理數(shù)據(jù)中的任何一種數(shù)據(jù)。由于可以用某一分辨率以及固定分辨率來(lái)有效地編碼體積數(shù)據(jù),所以可以有效地對(duì)龐大數(shù)量的3D數(shù)據(jù)進(jìn)行編碼,并用少量數(shù)據(jù)來(lái)恢復(fù)高分辨率的3D數(shù)據(jù),另外,由于產(chǎn)生累進(jìn)的比特流,所以可以在解碼過(guò)程中累進(jìn)地顯示3D數(shù)據(jù)。
文檔編號(hào)H04N7/26GK1684109SQ20051007628
公開(kāi)日2005年10月19日 申請(qǐng)日期2005年2月17日 優(yōu)先權(quán)日2004年2月17日
發(fā)明者李信俊 申請(qǐng)人:三星電子株式會(huì)社