編碼網(wǎng)格模型的方法、已編碼網(wǎng)格模型和解碼網(wǎng)格模型的方法
【專利摘要】許多3D網(wǎng)格模型具有大量小的在不同的位置、規(guī)模和方向上重復(fù)的連接組件。相應(yīng)的位置由每個(gè)組件的至少一個(gè)參考點(diǎn)的位置來(lái)定義。為了增強(qiáng)編碼相應(yīng)的參考點(diǎn)的位置,給定的空間被劃分成段(Q1-Q4、r1-r3、sq1-sq3)并確定位于每個(gè)特定的段中的點(diǎn)的數(shù)量。當(dāng)至少具有n個(gè)點(diǎn)的單元格(Q2)被細(xì)分為子單元格(r1)時(shí),添加指示父單元格的所有點(diǎn)是否只在一個(gè)子單元格中的指示符。如果是這樣,則編碼唯一非空的子節(jié)點(diǎn)的索引,而否則,兩個(gè)子單元格之一中是的點(diǎn)的數(shù)量被遞減和編碼。本發(fā)明避免了單元格的無(wú)效細(xì)分,并因此提高了壓縮效率。
【專利說(shuō)明】編碼網(wǎng)格模型的方法、已編碼網(wǎng)格模型和解碼網(wǎng)格模型的 方法【技術(shù)領(lǐng)域】[0001]本發(fā)明涉及一種編碼網(wǎng)格模型的方法、相應(yīng)的編碼裝置、已編碼網(wǎng)格模型、解碼網(wǎng) 格模型的方法和相應(yīng)的解碼裝置?!颈尘凹夹g(shù)】[0002]20世紀(jì)90年代初以來(lái)已經(jīng)提出了各種算法來(lái)高效地壓縮3D網(wǎng)格。然而,早期的 工作但大多集中在壓縮具有光滑表面和小三角形的單一連接的3D模型。在大多數(shù)今天的 大型3D工程模型中有大量的小到中型尺寸的連接組件,每個(gè)組件具有平均高達(dá)數(shù)百個(gè)多 邊形。通常這種類型的模型具有多種幾何特征或在不同的位置、規(guī)模和方向上重復(fù)的組件。 這種模型被稱為多連接的。分別地壓縮組件導(dǎo)致相對(duì)低效的壓縮。通過(guò)去除不同的相連接 的組件之間的冗余可以大大地提高壓縮性能。已知用于在大型3D工程模型中自動(dòng)發(fā)現(xiàn)重 復(fù)的幾何特征的各種方法。他們各自的位置由每個(gè)組件的至少一個(gè)參考點(diǎn)的3D位置來(lái)定 義。然而,有一個(gè)問(wèn)題是如何編碼所述相應(yīng)參考點(diǎn)的位置。[0003]大多數(shù)用于空間點(diǎn)的高效壓縮算法是基于空間樹(shù)的,例如,基于kd_樹(shù)(如 [0G02]:0.Devillers, P.Gandoin 在 2OOO 年的 IEEE Visualization 第 319-326 頁(yè)的 “Geometric compression for interactive transmission,,)或基于八叉樹(shù)(如[PK05]: J.L.Peng、C._C.Jay Kuo在2005年的ACM計(jì)算機(jī)繪圖專業(yè)組/ACM學(xué)報(bào)上關(guān)于圖形學(xué)的第 24 (3),第 609-606 頁(yè)的 “Geometry-guided progressive lossless3D mesh coding with octree (OT) decomposition,,)。[0004]這些算法將給定空間劃分成段,并將輸入空間點(diǎn)的數(shù)量設(shè)置放在每個(gè)特定的分段 中。因此,他們通過(guò)隱含的空間樹(shù)組織輸入空間點(diǎn)。然后,他們遍歷該樹(shù)結(jié)構(gòu)并記錄用于稍 后重構(gòu)輸入點(diǎn)的必要信息。建立空間樹(shù)時(shí),單元格被遞歸地細(xì)分直到每個(gè)非空單元格足夠 小到只包含一個(gè)頂點(diǎn)和使得能夠足夠精確地重構(gòu)點(diǎn)位置。[0005]單元格對(duì)應(yīng)于節(jié)點(diǎn)。初始地,將所有3D點(diǎn)的整個(gè)邊界框視為一個(gè)單元格或節(jié)點(diǎn)。 由于可以從相應(yīng)單元格的邊界框重構(gòu)點(diǎn)位置,基于空間樹(shù)的算法可以以與單一分辨率壓縮 算法相同的壓縮比實(shí)現(xiàn)多分辨率壓縮。[0006][0G02]中所使用的方法的示例示于圖1。每當(dāng)父單元格被細(xì)分為兩個(gè)子單元格 時(shí),編碼兩個(gè)子單元格中的一個(gè)(例如左或上)中的點(diǎn)的數(shù)量。如果父單元格包含P個(gè)點(diǎn),可 以利用算術(shù)編碼器使用1g2 (P+1)比特來(lái)編碼一個(gè)子單元格中的點(diǎn)的數(shù)量。[0007]與上述不同,[PK05]將一個(gè)非空單元格細(xì)分為八個(gè)單元格,并且在每次單元格細(xì) 分后只編碼非空子單元格的索引。為了提高編碼效率,[PK05]估計(jì)將成為非空子單元格的 分組的各種T-元組的偽概率。子單元格的遍歷順序是依照概率降序的。[0008]然而,為了實(shí)現(xiàn)緊湊存儲(chǔ)和快速傳輸,如何提高壓縮算法的效率是一個(gè)持續(xù)的問(wèn) 題。
【發(fā)明內(nèi)容】
[0009]本發(fā)明是基于對(duì)以下事實(shí)的認(rèn)識(shí):通過(guò)空間樹(shù)組織和壓縮空間點(diǎn)的效率主要取決于每個(gè)子樹(shù)節(jié)點(diǎn)是否比其父樹(shù)節(jié)點(diǎn)包括更少的數(shù)據(jù)點(diǎn)。如果子節(jié)點(diǎn)包含與其父節(jié)點(diǎn)相同的數(shù)據(jù)點(diǎn)(或者分別與其父節(jié)點(diǎn)相同數(shù)量的數(shù)據(jù)點(diǎn)),則相應(yīng)的細(xì)分不是有效的。這種無(wú)效的細(xì)分增加了已編碼數(shù)據(jù)的量,從而降低了壓縮效率。無(wú)效的細(xì)分越多,壓縮比就越低。[0010]本發(fā)明的一個(gè)優(yōu)點(diǎn)是它可避免由無(wú)效的細(xì)分導(dǎo)致的壓縮效率的降低是,從而改善壓縮。[0011]根據(jù)本發(fā)明,首先根據(jù)其空間位置來(lái)聚類網(wǎng)格模型的輸入點(diǎn)。每個(gè)聚類包含已空間聚集的一組點(diǎn)。然后,使用空間樹(shù)(例如kd-樹(shù)或八叉樹(shù))壓縮每個(gè)聚類。對(duì)于每次細(xì)分, 確定步驟確定兩個(gè)條件--第一,父單元格中的點(diǎn)的數(shù)量,第二,該細(xì)分是否是有效的,即,所有的所生成的子節(jié)點(diǎn)是否具有比父節(jié)點(diǎn)少的數(shù)據(jù)點(diǎn)。在一個(gè)實(shí)施例中,如果父單元格總共擁有的點(diǎn)小于給定的點(diǎn)的最小數(shù)量,任何細(xì)分都被傳統(tǒng)化編碼,即,該代碼指示在所定義的一個(gè)子單元格中的點(diǎn)的數(shù)量。然而,對(duì)具有至少所述點(diǎn)的最小數(shù)量的父單元格的細(xì)分是進(jìn)行不同地編碼的。[0012]用于決定使用傳統(tǒng)編碼或具有模式指示的編碼模式之一的點(diǎn)的最小數(shù)量取決于每個(gè)父單元格和每次分割操作的子單元格的數(shù)量。為了將一個(gè)父單元格劃分為兩個(gè)子單元格,該最小數(shù)量為四。為了將一個(gè)父單元格劃分為多于兩個(gè)的子單元格,該最小數(shù)量大于四。因此,對(duì)于下面給出的所有示例,盡管在其上決定編碼模式的點(diǎn)的最小數(shù)量(或編碼模式?jīng)Q定極限值)是四,如果對(duì)于父單元格的劃分導(dǎo)致產(chǎn)生多于兩個(gè)子單元格,這個(gè)數(shù)量可以是不同的。[0013]如果父單元格一共有P個(gè)點(diǎn),P至少是四,并且細(xì)分是有效的,使得在所定義的一個(gè)子單元格中有P1個(gè)點(diǎn)((Kp,P),則通過(guò)P1-1 (即,子單元格中點(diǎn)的數(shù)量減去一)的已編碼值來(lái)編碼該有效的細(xì)分。[0014]如果父單元格一共有P個(gè)點(diǎn),P至少是四,并且細(xì)分是無(wú)效的,所有點(diǎn)只在一個(gè)子單元格中,則按照下面的方法對(duì)該細(xì)分進(jìn)行編碼:該代碼使用預(yù)定義的索引方案指示非空子節(jié)點(diǎn)的索引,而不是點(diǎn)的數(shù)量。[0015]為了在父單元格具有至少四個(gè)點(diǎn)時(shí)對(duì)兩種編碼模式進(jìn)行區(qū)分(即,有效或無(wú)效的細(xì)分),將每個(gè)樹(shù)節(jié)點(diǎn)的附加模式指示符插入到結(jié)果代碼或輸出數(shù)據(jù)流。模式指示符指示相應(yīng)的細(xì)分是否是有效的。[0016]編碼產(chǎn)生了一種新的編碼格式,其可被認(rèn)為是空間樹(shù)并包含每個(gè)具有至少四個(gè)點(diǎn)的樹(shù)節(jié)點(diǎn)的指示相應(yīng)的細(xì)分是否有效(即,已劃分的父單元格的所有點(diǎn)是否僅在一個(gè)子單元格中)的指示符。對(duì)于每次細(xì)分,隨后是上述格式中的壓縮數(shù)據(jù),即,一個(gè)子單元格中的點(diǎn)的數(shù)量(如果父單元格中的點(diǎn)的總數(shù)小于四),或子單元格中的點(diǎn)的數(shù)量減去一(如果父單元格中點(diǎn)的總數(shù)至少是四并且細(xì)分是有效的),或唯一非空子節(jié)點(diǎn)的索引(如果父單元格中點(diǎn)的總數(shù)至少是四并且細(xì)分是無(wú)效的)。有利地,如果點(diǎn)的數(shù)量至少是四,所述索引比編碼的點(diǎn)的數(shù)量使用更少的比特。[0017]在解碼根據(jù)本發(fā)明的編碼格式的數(shù)據(jù)過(guò)程中,遍歷空間樹(shù)時(shí),為每次細(xì)分計(jì)算或確定當(dāng)前父單元格中的點(diǎn)的數(shù)量,并分析指示符(例如,I比特)以便檢測(cè)當(dāng)前細(xì)分`是否是有效的。[0018]在一個(gè)實(shí)施例中,本發(fā)明涉及一種編碼網(wǎng)格模型的點(diǎn)的方法,該方法包括以下步 驟:確定點(diǎn)的總數(shù)并在代碼中插入所確定的點(diǎn)的總數(shù),其中,使用預(yù)定義的碼字長(zhǎng)度,根據(jù) 其空間坐標(biāo)將各點(diǎn)聚類成一個(gè)或多個(gè)聚類,并使用分層的樹(shù)來(lái)編碼所聚類的點(diǎn),其中,所述 編碼包括以下步驟:定義所述聚類周圍(即,模型的所有點(diǎn)的周圍)的邊界框,遞歸地劃分該 邊界框,其中,每個(gè)劃分步驟將父單元格劃分為預(yù)定義數(shù)量的子單元格(至少兩個(gè)),并且對(duì) 于每個(gè)劃分步驟,確定當(dāng)前父單元格包含的點(diǎn)的數(shù)量,確定父單元格的所有點(diǎn)是否在單一 的子單元格中,并如下所示編碼指示所述確定步驟的結(jié)果的指示符。[0019]如果所述確定得出父單元格中點(diǎn)的總數(shù)小于四,那么將在特定的(預(yù)定義的)一個(gè) 子單元格中的點(diǎn)的數(shù)量插入到代碼中。[0020]如果所述確定得出父單元格中點(diǎn)的總數(shù)大于四并且父單元格中的點(diǎn)被分發(fā)給至 少兩個(gè)子單元格,則劃分步驟是有效的,并將指示劃分的有效性(例如,通過(guò)設(shè)置為一的單 一比特)的指示符和在特定的(預(yù)定義的)一個(gè)子單元格中的點(diǎn)的數(shù)量插入到代碼中。[0021]如果所述確定得出父單元格中點(diǎn)的總數(shù)大于四并且父單元格的所有點(diǎn)都在單一 的子單元格中,則劃分步驟是無(wú)效的,并將指示劃分的無(wú)效性(例如,通過(guò)設(shè)置為零的單一 比特)的第二指示符插入到代碼中,確定包含父單元格的所有點(diǎn)的所述單一子單元格的索 弓丨,并將該索引插入到代碼中。[0022]如果分割產(chǎn)生多于兩個(gè)子單元格,編碼模式?jīng)Q定極限值可以大于四,并在插入之 前編碼所述索引??蓮挠煞指畈襟E產(chǎn)生的子單元格的數(shù)量得到用于編碼索引的比特的數(shù)量。[0023]在一方面,一種用于解碼網(wǎng)格模型的點(diǎn)的方法包括以下步驟:從編碼的數(shù)據(jù)集合 至少提取一個(gè)值和作為多個(gè)點(diǎn)的位置數(shù)據(jù)的第一數(shù)據(jù),所述值表示點(diǎn)的總數(shù)并且所述第一 數(shù)據(jù)定義多個(gè)碼字,其中,每個(gè)碼字指的是將邊界框劃分為各單元格的多個(gè)遞歸劃分之一, 并且每次劃分將當(dāng)前父單元格劃分為兩個(gè)或更多的子單元格,以及基于所述值和所述第一 數(shù)據(jù)來(lái)確定所述點(diǎn)的位置,其中,至少部分碼字包含指示當(dāng)前單元格劃分步驟是否有效的 指示符(一個(gè)比特)。每個(gè)碼字的長(zhǎng)度是固定的或可變的;如果它是可變的,可在解碼期間根 據(jù)給定的規(guī)則計(jì)算它的長(zhǎng)度和值。[0024]對(duì)于每個(gè)當(dāng)前的父單元格,它所包含的點(diǎn)的總數(shù)是確定的。在一個(gè)實(shí)施例中,它是 預(yù)先計(jì)算和存儲(chǔ)的,并且可從存儲(chǔ)器中檢索到。此外,計(jì)算用于編碼所確定的點(diǎn)的數(shù)量的比 特?cái)?shù)計(jì)算;它被稍后用于確定碼字長(zhǎng)度。如果點(diǎn)的總數(shù)小于四,相應(yīng)的碼字不具有上述指示 符,并被解釋為預(yù)定義的一個(gè)子單元格中的點(diǎn)的數(shù)量。如果點(diǎn)的總數(shù)至少是四,相應(yīng)的碼字 以所述指示符開(kāi)始,并評(píng)價(jià)該指示符。根據(jù)所述指示符,碼字的其余比特可以有兩種含義: 他們或者是位于從對(duì)當(dāng)前父單元格的當(dāng)前劃分所產(chǎn)生的子單元格中的預(yù)定義的一個(gè)中的 點(diǎn)的減小的數(shù)量。由于數(shù)量是減小的,因此需要對(duì)其加一來(lái)得到點(diǎn)的實(shí)際數(shù)量。碼字的其 余比特或者是從對(duì)當(dāng)前父單元格的當(dāng)前劃分所產(chǎn)生的子單元格的索引。該索引是包含父單 元格的所有點(diǎn)的一個(gè)子單元格的標(biāo)識(shí)符。如果碼字長(zhǎng)度是可變的,則上述確定的比特?cái)?shù)(力口 上一個(gè)比特作為標(biāo)記符)是當(dāng)前的碼字長(zhǎng)度。如果碼字的長(zhǎng)度是固定的,例如對(duì)于第一碼字 (即,模型中點(diǎn)的總數(shù)),它是預(yù)定義的。在解碼過(guò)程中,每個(gè)頂點(diǎn)的位置迭代地定位在更小 的子單元格中,直到到達(dá)終止解碼的給定終止條件。[0025]本發(fā)明可以用于作為多組件模型中的組件的參考點(diǎn)并且表示該模型的頂點(diǎn)的聚類的點(diǎn)。原則上,本發(fā)明還可用于任何網(wǎng)格模型的頂點(diǎn)的點(diǎn),或由坐標(biāo)定義的任何其他大型 分組的點(diǎn)。[0026]一般來(lái)說(shuō),有必要記住父單元格,至少非空單元格中的點(diǎn)的數(shù)量。例如,存儲(chǔ)非空 子單元格中的點(diǎn)的數(shù)量直到該子單元格成為父單元格的下一次劃分之后。然后,在確定父 單元格中的點(diǎn)的數(shù)量時(shí),從存儲(chǔ)器檢索該數(shù)量。[0027]本發(fā)明還涉及一種用于編碼的裝置,該裝置包括用于根據(jù)點(diǎn)的空間坐標(biāo)來(lái)將所述 點(diǎn)聚類成一個(gè)或多個(gè)聚類的聚類部件,以及用于編碼所聚類的點(diǎn)的編碼部件,其中,所述編 碼部件包括用于定義所述聚類周圍的邊界框的初始化單元,用于遞歸劃分所述邊界框的遞 歸劃分單元,其中所述遞歸劃分的每個(gè)劃分步驟將父單元格分割為預(yù)定義數(shù)量的子單元 格,點(diǎn)分布確定單元,用于為每個(gè)劃分步驟和每個(gè)要被劃分的當(dāng)前父單元格確定點(diǎn)的數(shù)量, 并用于確定每個(gè)父單元格的點(diǎn)的數(shù)量是否至少是四,編碼單元,用于如上所述當(dāng)所述數(shù)量 小于四時(shí)對(duì)點(diǎn)的數(shù)量進(jìn)行編碼,并用于如上所述當(dāng)所述數(shù)量至少是四時(shí)編碼子單元格中的 點(diǎn)的減少的數(shù)量或子單元格索引。[0028]此外,本發(fā)明涉及用于解碼網(wǎng)格模型的解碼器,所述解碼器包括用于從編碼的數(shù) 據(jù)集合中提取至少第一數(shù)據(jù)和指示點(diǎn)的總數(shù)的初始值的提取部件,用于將邊界框遞歸劃分 為單元格的遞歸劃分部件,其中,每個(gè)遞歸劃分將當(dāng)前父單元格劃分為子單元格,以及用于 根據(jù)所述子單元格來(lái)確定所述點(diǎn)的位置的確定部件。所述確定部件包括用于確定當(dāng)前父單 元格中的點(diǎn)的數(shù)量的單元,用于根據(jù)所確定的當(dāng)前父單元格中的點(diǎn)的數(shù)量來(lái)檢測(cè)編碼模式 的編碼模式檢測(cè)單元,用于從當(dāng)前父單元格中的點(diǎn)的數(shù)量來(lái)推斷每個(gè)碼字的長(zhǎng)度的碼字長(zhǎng) 度檢測(cè)單元,以及用于如上所述解碼下一碼字的解碼單元。[0029]在一方面,本發(fā)明涉及一種在其上存儲(chǔ)有導(dǎo)致計(jì)算機(jī)執(zhí)行包含上述編碼步驟的方 法的可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。在一方面,本發(fā)明涉及一種在其上存儲(chǔ)有導(dǎo)致計(jì)算機(jī) 執(zhí)行包含上述解碼步驟的方法的可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。[0030]在一個(gè)實(shí)施例中,本發(fā)明涉及一種包含多個(gè)重復(fù)相連接的組件的編碼的網(wǎng)格模 型,其中,所述編碼的網(wǎng)格模型包含至少下列內(nèi)容的編碼數(shù)據(jù):[0031]每個(gè)重復(fù)相連接的組件的實(shí)例,[0032]編碼的相連接的組件的總數(shù),[0033]所述重復(fù)相連接的組件的多個(gè)副本的位置,所述位置被編碼為樹(shù)結(jié)構(gòu)(例如, kd-樹(shù)),以及定義網(wǎng)格模型的邊界區(qū)域的數(shù)據(jù)。邊界區(qū)域是所述樹(shù)結(jié)構(gòu)所指代的初始父單 元格。被編碼為樹(shù)的位置使用上述編碼,即,該編碼包括樹(shù)結(jié)構(gòu)的每個(gè)節(jié)點(diǎn)的碼字,其中,對(duì) 于具有至少四個(gè)點(diǎn)的節(jié)點(diǎn),如果當(dāng)前父單元格的點(diǎn)被分發(fā)給至少兩個(gè)子單元格,所述碼字 以具有第一值的指示符開(kāi)始,如果當(dāng)前父單元格的點(diǎn)在單一的子單元格中,所述碼字以具 有不同的第二值的指示符開(kāi)始,并且其中,所述碼字的剩余比特或者表示位于預(yù)定義的一 個(gè)子單元格中的點(diǎn)的數(shù)量(如果指示符具有第一值)減去一,或者表示當(dāng)前父單元格的包括 父單元格的所有點(diǎn)的子單元格的索引(如果指示符具有第二值)。[0034]在從屬權(quán)利要求、下面的描述和附圖中公開(kāi)本發(fā)明的有利實(shí)施例?!緦@綀D】
【附圖說(shuō)明】[0035]參照附圖描述本發(fā)明的示例性實(shí)施例,附圖中,[0036]圖1示出2D示例中的kd-樹(shù)編碼的原理;[0037]圖2示出使用有效和無(wú)效細(xì)分的kd-樹(shù)中數(shù)據(jù)點(diǎn)的組織;[0038]圖3a)示出在不同維度上對(duì)3D父單元格的劃分,而b)示出在水平、垂直和深度的 維度上對(duì)3D父單元格的連續(xù)劃分;[0039]圖4示出a)編碼決定步驟的流程圖,b)編碼方法的流程圖和c)解碼方法的流程 圖;[0040]圖5示出a)網(wǎng)格模型的編碼方法的流程圖和b)網(wǎng)格模型的解碼方法的流程圖;[0041]圖6示出編碼示例的細(xì)節(jié);以及[0042]圖7示出代碼樹(shù)。【具體實(shí)施方式】[0043]圖1示出在2D情況下的傳統(tǒng)kd-樹(shù)編碼的原理。邊界框10包圍2D模型的點(diǎn)。七 個(gè)點(diǎn)位于父單元格之內(nèi)。kd樹(shù)編碼算法從使用預(yù)定義的比特?cái)?shù)來(lái)編碼點(diǎn)的總數(shù)開(kāi)始,然后 遞歸地細(xì)分單元格。每次將父單元格細(xì)分為兩個(gè)子單元格后,它就對(duì)兩個(gè)子單元格中的一 個(gè)中的點(diǎn)的數(shù)量進(jìn)行編碼。下面示例編碼了左側(cè)子單元格(垂直分割之后)或上部子單元格 (水平分割之后)中的點(diǎn)的數(shù)量??梢员舜霜?dú)立地改變這些慣例。如果父單元格包含P個(gè)點(diǎn), 則利用算術(shù)編碼器使用1g2 (P+1)比特來(lái)編碼一個(gè)子單元格中的點(diǎn)的數(shù)量。遞歸地應(yīng)用這 種細(xì)分直到每個(gè)非空單元格足夠小到只包含一個(gè)點(diǎn)并且使得能夠足夠精確地重構(gòu)點(diǎn)位置。 為了壓縮網(wǎng)格模型的所有點(diǎn)的位置(無(wú)論所述點(diǎn)是頂點(diǎn)或聚類參考點(diǎn)),該算法以被視為第 一劃分步驟的當(dāng)前父單元格的所有位置的整體邊界框10開(kāi)始。[0044]在圖1的示例中,第一個(gè)編碼值是使用32比特編碼的點(diǎn)的總數(shù)(7)。然后,應(yīng)用垂 直分割使得獲得左側(cè)子單元格Vl和右側(cè)子單元格V2。在下一編碼步驟中,編碼左側(cè)子單 元格Vl中的為四的點(diǎn)的數(shù)量。由父單元格中點(diǎn)的數(shù)量確定用于編碼的比特?cái)?shù):它是1g2 (7+1)=3比特。由此,第二碼字是數(shù)字四,使用三個(gè)比特對(duì)其進(jìn)行編碼。從父單元格中點(diǎn)的 數(shù)量和左側(cè)子單元格Vl中點(diǎn)的數(shù)量可以計(jì)算出右側(cè)子單元格V2中點(diǎn)的數(shù)量為7-4=3。[0045]在下一步驟中,對(duì)前一步驟的子單元格應(yīng)用水平分割。此時(shí)作為當(dāng)前父單元格Vl 的左側(cè)子單兀格Vl被分割為上部子單兀格VlHl和下部子單兀格V1H2。類似地,此時(shí)作為 父單元格V2的右側(cè)子單元格V2被分割為上部子單元格V2H1和下部子單元格V2H2。該算 法以具有兩個(gè)點(diǎn)的上部左側(cè)子單元格VlHl繼續(xù)。由此,接下來(lái)編碼數(shù)字2,其中在算術(shù)編碼 器中使用1g2 (4+1)=2.3比特(或在舍入后為三比特)。如上所述,不需要對(duì)下部左側(cè)子單 元格V1H2中點(diǎn)的數(shù)量進(jìn)行編碼,因?yàn)樗梢詮淖髠?cè)單元格Vl和上部左側(cè)子單元格VlHl中 點(diǎn)的數(shù)量推斷出來(lái)。然后,對(duì)右側(cè)單元格V2應(yīng)用同樣的步驟導(dǎo)致使用兩個(gè)比特來(lái)編碼零。 如圖1所示,還需要兩個(gè)分割步驟直到每個(gè)點(diǎn)在單獨(dú)的單元格中,并且還需要更多的步驟 直到每個(gè)點(diǎn)充分位于其單元格之內(nèi)。每個(gè)步驟都增加了點(diǎn)位置編碼的精度,但需要編碼越 來(lái)越多的I或O。根據(jù)所需的精度,附加步驟的數(shù)量可能會(huì)很高。[0046]所述點(diǎn)可以是頂點(diǎn)或聚類參考點(diǎn)。即,本發(fā)明可以應(yīng)用增強(qiáng)的kd_樹(shù)編碼算法至 少用于編碼頂點(diǎn)位置或用于編碼重復(fù)相連接的組件的位置。此外,增強(qiáng)的kd_樹(shù)算法原則 上也可用于編碼在給定的1D、2D或3D空間中的任何一種空間位置。[0047]圖2示出了 kd-樹(shù)的示例,其中,幾個(gè)點(diǎn)21-25位于2D網(wǎng)格模型的邊界框20之內(nèi)。本發(fā)明也可以應(yīng)用于ID模型或3D模型。在下面進(jìn)一步描述應(yīng)用該原理來(lái)編碼3D網(wǎng)格模型。下面所述的步驟也示于圖6。與許多大型網(wǎng)狀模型中的情況一樣,各點(diǎn)的位置在邊界框中是很不均勻地分布的。在這個(gè)示例中,將增強(qiáng)kd-樹(shù)編碼算法應(yīng)用于編碼點(diǎn)的位置,并且假定所要求的精度使得在充分定位聚類之前需要五個(gè)初始劃分或分割步驟??梢酝ㄟ^(guò)增加分割步驟的數(shù)量來(lái)提高精度,或通過(guò)減少分割步驟的數(shù)量來(lái)降低精度。另外,根據(jù)傳統(tǒng)定義在本示例中,通過(guò)“ I”( 1=有效,O=無(wú)效)來(lái)編碼有效劃分的有效性指示符,并且通過(guò)將 “I”分別用于上部或左側(cè)子單元格和將“O”分別用于下部或右側(cè)子單元格來(lái)對(duì)子單元格索引進(jìn)行編碼。注意,可以不同地定義這些傳統(tǒng),而不會(huì)影響本發(fā)明或代碼的效率。[0048]第一碼字是使用預(yù)定義的比特?cái)?shù)(例如,32比特,取決于點(diǎn)的潛在總數(shù))的點(diǎn)的總數(shù)。此外,確定模型中點(diǎn)的總數(shù)是十三并且確定點(diǎn)的總數(shù)大于三。在第一劃分步驟中,作為父單元格的邊界框20被垂直劃分為兩個(gè)矩形,左側(cè)(Q1+Q3)和右側(cè)(Q2+Q4),參見(jiàn)圖6b)。 由于點(diǎn)的總數(shù)至少是四,使用根據(jù)本發(fā)明的編碼模式比特(“有效”比特),并且由于所產(chǎn)生的兩個(gè)矩形都包含點(diǎn),因此該劃分是有效的。因此,第二碼字是有效指示符(1=“有效”),后面接上值五,該值五是左側(cè)子單元格中點(diǎn)的數(shù)量減去一。使用四個(gè)比特對(duì)其進(jìn)行編碼,因?yàn)榫幋a父單元格中的點(diǎn)的總數(shù)需要四個(gè)比特(int(l0g)2(13)=4)。也就是說(shuō),在圖3的示例中, 代碼的起始部分如下:13 (點(diǎn)的總數(shù),32比特),1 (有效比特),5 (第一階段(generation)左側(cè)子單元格中點(diǎn)的數(shù)量減去一,4比特)。
[0049]第二劃分步驟對(duì)所述矩形進(jìn)行水平劃分,使得產(chǎn)生四個(gè)正方形Q1,……,Q4,參見(jiàn)圖6cl)和c2)。從前一步驟已知兩個(gè)矩形父單元格中的每一個(gè)包含至少四個(gè)點(diǎn)??紤]左側(cè)矩形,劃分是無(wú)效的,因?yàn)樗a(chǎn)生的正方形子單元格Ql、Q3中的單一的一個(gè)包含所有點(diǎn)。 傳統(tǒng)kd-樹(shù)編碼將要求編碼上部子單元格Ql中的點(diǎn)的數(shù)量(使用3比特),而根據(jù)本發(fā)明的增強(qiáng)編碼算法只使用表示該劃分是無(wú)效的指示符和包含所有點(diǎn)的子單元格的索引。[0050]子單元格使用索引n=log2 (m)個(gè)比特。其中m是父單元格所產(chǎn)生的子單元格的數(shù)量。由于在本示例中有兩個(gè)子單元格,所述索引只使用1g2 (2)=1比特。在另一實(shí)施例中,每個(gè)劃分步驟將父單元格分割為m個(gè)相等尺寸的子單元格使得使用更多的比特來(lái)表示子單元格索引。在數(shù)字m是2的更高次冪的情況下,例如4、8、16等,這種情況提供了比m不是2的冪時(shí)更有效的代碼,該劃分可以被視為若干簡(jiǎn)單劃分步驟的累加(在相同的維度上)。 然而,如果同時(shí)進(jìn)行這些若干步驟,可以提高處理速度。例如,在各點(diǎn)是稀疏分布(與要實(shí)現(xiàn)的空間分辨率相比)使得非??赡艹霈F(xiàn)若干無(wú)效劃分序列時(shí)這種累加是有用的。在其他情況下,可能更好選擇n=2。[0051]返回到圖2的示例,其中父單元格被分割為兩個(gè)子單元格,有效指示符只有一個(gè)比特,從而使接下來(lái)的左側(cè)矩形Q1+Q3的碼字只包含兩個(gè)比特,即“01”(0=無(wú)效指示符,I 比特,并且1=子單元格索引,I比特)。有效性指示符(有效/無(wú)效)及隨后定義子單元格索引或一個(gè)子單元格中點(diǎn)的數(shù)量的比特,一般可被視為一個(gè)單一碼字。因此,碼字具有可變長(zhǎng)度。有利地,包含子單元格索引的碼字通常短于包含代表點(diǎn)的數(shù)量的值的碼字。[0052]對(duì)右側(cè)矩形的劃分是有效的,因此,如圖6c2)所示,通過(guò)“I”(有效指示符,I比特) 和“3”(上部子單元格Q2中點(diǎn)的數(shù)量減去一,使用3個(gè)比特(因?yàn)?g2 (父單元格中點(diǎn)的數(shù)量)=1g2 (7) =3))來(lái)對(duì)其進(jìn)行編碼。[0053]在下文中,使用短的書(shū)寫(xiě)形式“值”。例如,通過(guò)三個(gè)比特編碼的值五被寫(xiě)作53b°[0054]在下一步驟中,新一階段子單元格開(kāi)始并改變分割維度。垂直分割每個(gè)正方形 Q1-Q4使得生成大小為rl的矩形,參見(jiàn)圖6dl) -d3)。對(duì)于Ql和Q2中的每一個(gè),點(diǎn)的總數(shù)至少是4并且劃分是有效的(圖6dl)、d2))。左側(cè)矩形中點(diǎn)的數(shù)量分別是2和3。分別通過(guò) Ilb-13b和llb_22b來(lái)對(duì)它們進(jìn)行編碼。跳過(guò)Q3,因?yàn)楦鶕?jù)上述對(duì)Q1+Q3的垂直劃分是無(wú)效的事實(shí)和該劃分的索引,很顯然Q3是空的。剩余單元格Q4只有三(B卩,小于四)個(gè)點(diǎn)24,使得通過(guò)O2b對(duì)其進(jìn)行編碼(因?yàn)椤八悬c(diǎn)都在右邊的子單元格中”),參見(jiàn)圖6d3)。[0055]也就是說(shuō),在圖3的示例中,此時(shí)代碼的起始部分將如下:[0056]1332b (點(diǎn)的總數(shù))-1lb (有效指示符)_54b (第一階段左側(cè)子單元格)-Olb-1lb (無(wú)效指示符和上部子單元格的索引)_llb (有效指示符)_33b (Q2中點(diǎn)的數(shù)量)-llb-l3b-llb-22b (無(wú)效比特和矩形子單元格Ql和Q2中點(diǎn)的數(shù)量)_02b(所有點(diǎn)都在右邊的矩形子單元格Q4中)。[0057]在下面的劃分步驟中,每個(gè)尺寸為rl的(非空)矩形被水平劃分為尺寸為sql的正方形,如圖6el) -e5)所示。因此,從上部左側(cè)開(kāi)始,接下來(lái)邊界框上半部分的碼字是 22b-0lb0lb-02b-llb,并且(跳過(guò)空的Q3和Q4空的左半部分)邊界框下半部分的碼字是02b。例如,最后的值O2b是指在對(duì)Q4的右半部分進(jìn)行水平劃分后,它所有的點(diǎn)都在下部子單元格中,參見(jiàn)圖6e5),因?yàn)閯澐智包c(diǎn)的總數(shù)小于四。[0058]在下面的劃分步驟中,每個(gè)尺寸為sql的(非空)正方形被垂直劃分為尺寸為r2的矩形,如圖6fl)-f5)所示。因此,從上部左側(cè)開(kāi)始,接下來(lái)的碼字是22b-0lbllb(Ql中)_02b-0lb (Q2中)-32b (Q4中)。例如,了解到當(dāng)前父單元格中點(diǎn)的總數(shù)已被先前確定為至少是四,值 OlbIlb (參見(jiàn)圖6f2))是指對(duì)尺寸為sql的正方形的劃分是無(wú)效的(即,“O”)并且唯一占用的尺寸為r2的矩形在左邊(即,“I”)。[0059]在下面的劃分步驟中,每個(gè)尺寸為r2的(非空)矩形被水平劃分為尺寸為sq2的正方形,如圖6gl)-g5)所示。從上部左側(cè)開(kāi)始,接下來(lái)的碼字是22b-0lb-0lb (Ql中)_32b-llb (Q2中)-02b (Q4中)。注意,只在圖6g2)所示的劃分中父單元格中點(diǎn)的數(shù)量大于三,使得使用了有效性指示符。圖6中,通過(guò)(p=4 )或(p>4 )來(lái)標(biāo)記這些情況。[0060]在下面的劃分步驟中,每個(gè)尺寸為sq2的(非空)正方形被垂直劃分為尺寸為r3 的矩形,如圖6hl)-h5)所示。從上部左側(cè)開(kāi)始,接下來(lái)的碼字是I2b-1lbI2b (Ql*)-l2b-0lb (Q2 中)-12b (Q4 中)。[0061]最后,在最后一個(gè)劃分步驟中,每個(gè)尺寸為r3的(非空)矩形被水平劃分為尺寸為 sq3的正方形,如圖6il)_i9)所示。從上部左側(cè)開(kāi)始,接下來(lái)的碼字是Olb-Olb-12b-12b (Ql 中)?Α (Q2 Φ) -1lb-12b (Q4 中)。[0062]具有相同尺寸的所有子單元格被視為一個(gè)子單元格階段。例如,圖2中,如果邊界框20被視為第一階段(父階段),則正方形Q1,……,Q4屬于第三階段。尺寸為sql的所有正方形(例如,Ql的左側(cè)上部正方形和右側(cè)下部正方形,Q2的右側(cè)上部正方形和左側(cè)下部正方形,以及Q4的右側(cè)下部正方形)都屬于相同的子單元格階段,即第五階段。注意,對(duì)任何特定階段的單元格的處理順序是依賴`于慣例的(見(jiàn)下文),并可以改變,而無(wú)需修改代碼效率。[0063]使用上述編碼,所有點(diǎn)都被定位在尺寸為sq3的正方形的精度范圍內(nèi)的邊界框中。對(duì)于完整的模型,該編碼使用了 102比特:[0064]1332b-llb54b-0lbllb-llb33b-llb-l3b-lib_22b-02b-22b-0lb0lb-02b-llb-02b-22b-0lbllb-02b-0lb-32b_22b_0ib0ib_32b-llb-02b-l2b-llbl2b-l2b-0lb-l2b-0lb-0lb-l2b-l2b-llb-l2b-llb-llb-l2b。[0065]這個(gè)簡(jiǎn)單示例的傳統(tǒng)編碼(S卩,使用已知的kd-樹(shù)算法)將需要更多的一個(gè)比特。 因此,本發(fā)明提高了編碼效率。[0066]做出的無(wú)效細(xì)分越多,相較傳統(tǒng)方法的壓縮比改進(jìn)越高,并且本發(fā)明越有利。無(wú)效 細(xì)分通常在兩種情況下發(fā)生:一種是當(dāng)空間數(shù)據(jù)點(diǎn)顯示如上述的示例中的顯著的多個(gè)空間 聚集。即使對(duì)于具有單一空間聚集(即,單一點(diǎn))的空間點(diǎn)集合,一些無(wú)效的細(xì)分也是不可避 免的。這是真實(shí)的,特別是當(dāng)單元格中只包含一個(gè)點(diǎn),但對(duì)于重構(gòu)點(diǎn)位置來(lái)說(shuō)還是太大,使 得要求進(jìn)一步的無(wú)效細(xì)分來(lái)增加空間分辨率。因此,點(diǎn)的數(shù)量越大而且點(diǎn)的聚類(即,空間 聚集)越顯著并且目標(biāo)空間分辨率越高,則根據(jù)本發(fā)明的編碼所保存的比特越多。換言之, 當(dāng)點(diǎn)的空間分布欠均勻時(shí),即,更多的無(wú)效細(xì)分發(fā)生時(shí),編碼效率增加。當(dāng)點(diǎn)的數(shù)量增加時(shí), 這變得更加可能。[0067]有利地,本發(fā)明為平均或高復(fù)雜度的3D網(wǎng)格模型實(shí)現(xiàn)了相當(dāng)大的比特節(jié)約。[0068]本發(fā)明的進(jìn)一步的優(yōu)點(diǎn)是步驟和所生成的代碼都與現(xiàn)有方法相比大大縮短了。[0069]本發(fā)明的進(jìn)一步的優(yōu)點(diǎn)是,它考慮了分層編碼的所有層級(jí)。[0070]雖然上面的示例使用了 2維(2D)模型,相同的原理可以很容易地用于3維(3D) 模型。如圖3a)所示,3D實(shí)施方式的邊界框和單元格是立方體或箱體,S卩,具有正方形或 矩形表面的3D對(duì)象。差異是在3D實(shí)施方式中父單元格不僅被沿水平和垂直方向劃分, 也可在第三個(gè)維度,例如深度上進(jìn)行劃分。因此,取代上述2D示例中使用的劃分序列h-v-h-v......(h=水平,V =垂直),或等效的劃分序列v-h-v-h......,3D模型的劃分序列可以是 h-v-d-h-v-d-h-v-d-......(d=深度),或 h-d-v-h-d-v-......或 v-d-h-v-d-h-......。在任何情況下,遞歸分割涉及以交替方式對(duì)所有所考慮的維度(每個(gè)維度一個(gè)新的階段)。[0071]在一個(gè)實(shí)施例中,還編碼和解碼定義邊界框的數(shù)據(jù),例如,尺寸數(shù)據(jù)和/或位置數(shù) 據(jù),以便允許在解碼過(guò)程中重構(gòu)邊界框。[0072]圖3a)示出3D箱體的示例性的后續(xù)細(xì)分,從該箱體的水平分割ssdl產(chǎn)生第一階 段子單元格的任意一個(gè)的垂直分割ssd2,以及第二階段子單元格的任意一個(gè)的深度分割 ssd3。這里應(yīng)當(dāng)注意,術(shù)語(yǔ)“劃分”、“細(xì)分”和“分割”在本文中等效地使用。圖3b)示出一 般的水平分割sdl、垂直分割sd2和深度分割sd3。本發(fā)明的有利效果是不依賴于分割維度 的順序次序的(K V用于2D,而h、V、d用于3D)。因此,次序可以是不同的。[0073]圖4a)示出在編碼點(diǎn)分組的位置(例如,網(wǎng)格模型的頂點(diǎn)位置)時(shí)要采取的方法步 驟的流程圖。在第一確定步驟40中,確定當(dāng)前父單元格和該當(dāng)前父單元格中點(diǎn)的總數(shù)。在 第一編碼模式?jīng)Q定步驟50中,確定當(dāng)前父單元格中點(diǎn)的總數(shù)是否至少是四。如果當(dāng)前父單 元格中點(diǎn)的總數(shù)不是至少為四(即,三或更少),如上所述,下一步驟是用于編碼點(diǎn)的數(shù)量的 第一編碼步驟60。也就是說(shuō),在特定的預(yù)定義的一個(gè)子單元格(例如,垂直細(xì)分后的左側(cè)子 單元格,或水平細(xì)分后的上部子單元格,或在3D情況下在深度細(xì)分后的前部子單元格)中的 點(diǎn)的數(shù)量被插入到代碼中。[0074]如果當(dāng)前父單元格中點(diǎn)的總數(shù)至少為四,那么接下來(lái)進(jìn)行第二編碼模式?jīng)Q定步驟 70。在第二編碼模式?jīng)Q定步驟70中,確定細(xì)分是否有效。如果細(xì)分是有效的,即,每個(gè)子單 元格具有至少一個(gè)點(diǎn)并且沒(méi)有單元格是空的,則第二編碼步驟80確定所述特定的預(yù)定義的一個(gè)子單元格中的點(diǎn)的數(shù)量,將其減去一,并將“有效的”標(biāo)記和減少的點(diǎn)的數(shù)量插入到 代碼中。所述減少是有利的,因?yàn)樵趯?duì)具有P個(gè)點(diǎn)的父單元格進(jìn)行有效細(xì)分后,每個(gè)子單元 格可以具有不多于P-1個(gè)點(diǎn),而對(duì)P-1而不是P進(jìn)行編碼可以在每次細(xì)分中節(jié)省一個(gè)比特。[0075]否則,如果細(xì)分是無(wú)效的,S卩,至少一個(gè)子單元格是空的,則在第三編碼步驟90中 將“無(wú)效的”比特和非空子單元格的子單元格索引插入到代碼中。所述索引是預(yù)定義的,例 如,“I”用于左側(cè)、上部或后部子單元格,而“O”用于右側(cè)、下部或前部子單元格。當(dāng)細(xì)分產(chǎn) 生k個(gè)子單元格時(shí),它使用1g2 (k)比特。[0076]在每個(gè)第一、第二和第三編碼步驟之后,如下所述,確定40下一個(gè)父單元格。[0077]注意,對(duì)于每個(gè)維度,特定的預(yù)定義的一個(gè)子單元格(例如,左側(cè)、上部和前部子單 元格)和上述子單元格索引在整個(gè)編碼和解碼過(guò)程中保持不變。[0078]一般說(shuō)來(lái),有必要記住各父單元格內(nèi),至少是非空的單元格內(nèi)的點(diǎn)的數(shù)量。例如, 存儲(chǔ)非空子單元格內(nèi)點(diǎn)的數(shù)量直到下次劃分該子單元格成為父單元格之后。然后,在確定 該父單元格中點(diǎn)的數(shù)量時(shí)從存儲(chǔ)器檢索該數(shù)量。[0079]圖4b)示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的編碼網(wǎng)格模型的方法的流程圖。該方法包 括以下步驟:根據(jù)點(diǎn)的空間坐標(biāo)將其聚類410為一個(gè)或多個(gè)聚類,并使用分層的樹(shù)來(lái)編碼 420-450所述聚類的點(diǎn),其中,所述編碼包括以下步驟:定義420所述聚類周圍(S卩,模型的 所有點(diǎn)的周圍)的邊界框,遞歸地劃分430該邊界框,其中,每個(gè)劃分步驟將父單元格劃分 為預(yù)定義數(shù)量的子單元格,對(duì)于每個(gè)劃分步驟,確定440要被劃分的當(dāng)前父單元格的點(diǎn)的 數(shù)量,確定該數(shù)量是否至少是四,并且如果該數(shù)量是三或更少,如上面相對(duì)于圖4a)的步驟 40、50、60所描述地來(lái)編碼點(diǎn)的數(shù)量,然后,如上面相對(duì)于圖4a)的步驟70、80、90所描述地 來(lái)編碼450各父單兀格。[0080]在本發(fā)明的一個(gè)實(shí)施例中,如果所述確定得出父單元格中點(diǎn)的數(shù)量至少是四并且 父單元格中的點(diǎn)被分發(fā)給至少兩個(gè)子單元格,則劃分步驟是有效的,并將第一指示符插入 到代碼中,并且將在特定的(預(yù)定義的)一個(gè)子單元格中的點(diǎn)的數(shù)量插入到代碼中,所述第 一指示符指示劃分的有效性(例如,設(shè)置為一的單一比特)。否則,如果所述確定得出父單 元格中的所有點(diǎn)都在單一的子單元格中,則劃分步驟是無(wú)效的,并將指示劃分的無(wú)效性(例 如,設(shè)置為零的單一比特)的第二指示符插入到代碼中。然后,確定包含所有點(diǎn)的所述單一 子單元格的索引,并將該索引插入到代碼中。[0081]在劃分步驟產(chǎn)生多于兩個(gè)子單元格的情況下,根據(jù)有效性或無(wú)效性的不同定義的 不同實(shí)施例是可能的。然而,兩者是互補(bǔ)的,并且每個(gè)劃分步驟不是有效的就是無(wú)效的。[0082]在一個(gè)實(shí)施例中,如果父單元格的點(diǎn)被分發(fā)給至少兩個(gè)子單元格(使得所產(chǎn)生的 所有子節(jié)點(diǎn)具有少于父節(jié)點(diǎn)的數(shù)據(jù)點(diǎn)),則劃分步驟被認(rèn)為是有效的,并且如果所有點(diǎn)都只 在一個(gè)子單元格中,則劃分步驟被認(rèn)為是無(wú)效的。在這種情況下,需要除了一個(gè)子單元格之 外的每個(gè)子單元格中的點(diǎn)的數(shù)量來(lái)用于有效劃分(例如,如果劃分產(chǎn)生四個(gè)子單元格則是 指示三個(gè)子單元格中點(diǎn)的數(shù)量的三個(gè)值)。[0083]在另一實(shí)施例中,如果沒(méi)有子單元格是空的,則劃分步驟是有效的,并且如果至少 一個(gè)子單元格是空的,則劃分步驟是無(wú)效的。在這種情況下,依賴于慣例,可以為無(wú)效劃分 編碼空的子單元格或非空子單元格的索引。[0084]如果劃分步驟產(chǎn)生兩個(gè)子單元格,上述兩個(gè)實(shí)施例導(dǎo)致相同的結(jié)果。[0085]返回圖4b),遞歸劃分步驟430大體上具有兩個(gè)功能:在一個(gè)功能中,它處理所有 非空的當(dāng)前父單元格。除了作為第一父單元格的邊界框,所有父單元格都是已成為父階段 的前一劃分步驟的子單元格。在圖2b)的示例中,這是指當(dāng)前階段的所有非空子單元格,例 如,階段r2,都是如上所述順序地處理的。處理了當(dāng)前父階段的所有非空子單元格后,滿足 第一停止條件SCl,并且執(zhí)行所述遞歸劃分步驟430的第二功能。在第二功能中,改變435 分割維度,這導(dǎo)致下一子單元格階段,并且開(kāi)始處理非空子單元格的下一階段。例如,如果 當(dāng)前階段是圖2b)中的r2,則下一階段是sq2。因此,迭代地編碼點(diǎn)的位置。在滿足例如最 小子單元格尺寸(即,所需的空間分辨率)或遞歸的最大數(shù)量(即,最大處理時(shí)間)的第二停 止條件SC2時(shí),所述遞歸劃分終止。預(yù)定義的最小子單元格尺寸對(duì)應(yīng)于編碼處理的目標(biāo)空 間分辨率。[0086]這里,具有相同尺寸的單元格被稱為一個(gè)階段。如上所述,以輪換(即,交替)方式 對(duì)子單元格的每一階段執(zhí)行改變435分割維度,例如,水平分割單元格以獲得第一階段子 單元格,垂直分割該第一階段子單元格以獲得第二階段子單元格,并且深度劃分該第二階 段子單元格以獲得第三階段子單元格。[0087]最后,所生成的代碼可以被熵編碼460。在一個(gè)實(shí)施例中,任何一個(gè)劃分步驟的所 有子單元格具有相同的尺寸。[0088]對(duì)應(yīng)于圖4b )示出的上述方法步驟,在本發(fā)明的一個(gè)實(shí)施例中,一種編碼網(wǎng)格模型 的編碼器包括用于根據(jù)點(diǎn)的空間坐標(biāo)來(lái)將所述點(diǎn)聚類成一個(gè)或多個(gè)聚類的聚類部件,以及 用于使用分層樹(shù)來(lái)編碼所聚類的點(diǎn)的編碼部件,其中,所述編碼部件包括用于定義所述聚 類周圍的邊界框的初始化單元,用于遞歸劃分所述邊界框的遞歸劃分單元,其中每個(gè)劃分 步驟將父單元格劃分為預(yù)定義數(shù)量的子單元格,點(diǎn)分布確定單元,用于為每個(gè)劃分步驟和 每個(gè)要被劃分的當(dāng)前父單元格確定點(diǎn)的數(shù)量,并用于確定每個(gè)父單元格的點(diǎn)的數(shù)量是否至 少是最小數(shù)量(如果每個(gè)父單元格被分割為兩個(gè)子單元格,則該數(shù)量是四),以及編碼單元, 當(dāng)所述數(shù)量小于最小數(shù)量時(shí),用于如上面相對(duì)于圖4a)的步驟40、50、60所描述地對(duì)點(diǎn)的數(shù) 量進(jìn)行編碼,并用于如上面相對(duì)于圖4a)的步驟70、80、90所描述地來(lái)編碼父單元格。[0089]在本發(fā)明的一個(gè)實(shí)施例中,圖4c)示出一種解碼網(wǎng)格模型的方法。它包括以下步 驟:從編碼的數(shù)據(jù)集合至少提取470包括多個(gè)碼字的第一數(shù)據(jù)和指示點(diǎn)的總數(shù)的初始值, 遞歸地將邊界框劃分475為單元格,其中,每次遞歸劃分將當(dāng)前父單元格劃分為預(yù)定義數(shù) 量的(兩個(gè)或更多的)子單元格,以及根據(jù)所述子單元格來(lái)確定480所述點(diǎn)的位置,其中,確 定當(dāng)前父單元格中點(diǎn)的數(shù)量,根據(jù)所確定的當(dāng)前父單元格中點(diǎn)的數(shù)量來(lái)檢測(cè)編碼模式,并 解碼k-Ι個(gè)下一碼字(其中,k是劃分步驟的子單元格的數(shù)量)。從當(dāng)前父單元格中點(diǎn)的數(shù) 量推斷出每個(gè)碼字的長(zhǎng)度。如果所確定的當(dāng)前父單元格中點(diǎn)的數(shù)量小于四,則使用第一解 碼模式。在第一解碼模式中,每個(gè)碼字包含m比特,其中,m—般是1g2(父單元格中點(diǎn)的數(shù) 量),或是根據(jù)int (1g2 (父單元格中點(diǎn)的數(shù)量))的整數(shù)。在第一解碼模式中,如上所述, 長(zhǎng)度為m的碼字表示特定的預(yù)定義的一個(gè)子單元格中點(diǎn)的數(shù)量。[0090]如果所確定的當(dāng)前父單元格中點(diǎn)的數(shù)量至少是四,則碼字包含指示該碼字的剩余 比特的意義的指示符,并且如果所述指示符具有第一值,該碼字的剩余比特定義位于從當(dāng) 前父單元格的當(dāng)前劃分產(chǎn)生的預(yù)定義的一個(gè)子單元格中的點(diǎn)的數(shù)量;或者該碼字的剩余比 特定義指示從當(dāng)前父單元格的當(dāng)前劃分產(chǎn)生的并包括所述父單元格的所有點(diǎn)的子單元格的索引。根據(jù)子單元格確定480所述點(diǎn)的位置的步驟包含確定編碼模式和評(píng)價(jià)碼字中的指 示符。因此,迭代地解碼點(diǎn)的位置。[0091]對(duì)應(yīng)于圖4c)中示出的上述方法步驟,在本發(fā)明的一個(gè)實(shí)施例中,一種解碼網(wǎng)格模 型的解碼器包括用于從編碼的數(shù)據(jù)集合中提取至少第一數(shù)據(jù)和指示點(diǎn)的總數(shù)的初始值的 所述步驟的提取部件,用于將邊界框遞歸劃分為單元格的所述步驟的遞歸劃分部件(例如, 控制部件),其中,每個(gè)遞歸劃分將當(dāng)前父單元格劃分為預(yù)定義數(shù)量(兩個(gè)或更多的)的子單 元格,以及用于根據(jù)所述子單元格來(lái)確定所述點(diǎn)的位置的所述步驟的確定部件。所述確定 部件包括用于確定當(dāng)前父單元格中的點(diǎn)的數(shù)量的單元(例如,計(jì)數(shù)器),用于根據(jù)所確定的 當(dāng)前父單元格中的點(diǎn)的數(shù)量來(lái)檢測(cè)編碼模式的編碼模式檢測(cè)單元,以及用于解碼k-Ι個(gè)下 一碼字的解碼單元(其中,k是劃分步驟的子單元格的數(shù)量)。碼字長(zhǎng)度檢測(cè)單元(例如,計(jì) 算器)如上所述從當(dāng)前父單元格中的點(diǎn)的數(shù)量推斷每個(gè)碼字的長(zhǎng)度。[0092]圖5a)示出本發(fā)明的一個(gè)實(shí)施例,其中,一種編碼網(wǎng)格模型的方法包括以下步驟: 建立通用的空間樹(shù)110 (這是可能被隱式包括在下一步驟中的合乎邏輯的步驟),根據(jù)所述 通用的空間樹(shù)分析120網(wǎng)格模型,如上面相對(duì)于圖4b)的方框410-450、SC1、SC2所描述地 遍歷130空間樹(shù),其中,獲得網(wǎng)格模型的第一編碼表示,并執(zhí)行對(duì)網(wǎng)格模型的第一編碼表示 的熵編碼460,其中,獲得網(wǎng)格模型的第二編碼表示。[0093]圖5b)示出了本發(fā)明的實(shí)施例,其中,一種用于解碼編碼的網(wǎng)格模型的方法包括以 下步驟:對(duì)編碼的網(wǎng)格模型執(zhí)行熵解碼150,其中,獲得熵解碼的網(wǎng)格模型,重建通用的空 間樹(shù)160,根據(jù)熵解碼的網(wǎng)格模型重建空間點(diǎn)聚類170,其中如上面相對(duì)于圖4c)所描述,將 空間點(diǎn)聚類映射到空間樹(shù)的分支和葉子,并且重建網(wǎng)格模型的空間點(diǎn)180,其中,空間位置 與網(wǎng)格模型的每個(gè)點(diǎn)相關(guān)聯(lián)。[0094]本發(fā)明還可用于作為多組件或多連接(MC)模型(B卩,具有多個(gè)重復(fù)組件的網(wǎng)格模 型)中組件的參考點(diǎn)、并表示該模型的頂點(diǎn)的聚類的點(diǎn)。下面兩個(gè)實(shí)施例對(duì)于這種MC模型 特別有利。在這種情況下,將重復(fù)組件的副本的各種位置與只需被編碼或解碼一次的重復(fù) 組件分開(kāi)編碼/解碼。解碼過(guò)程中,重復(fù)組件被復(fù)制到它的每個(gè)解碼的位置上。例如,在機(jī) 器的3D工程模型中,可將使用多次的螺絲作為重復(fù)組件進(jìn)行編碼。[0095]在一個(gè)實(shí)施例中,本發(fā)明是一種用于編碼網(wǎng)格模型,特別是MC網(wǎng)格模型的組件的 參考點(diǎn)的方法,其中,每個(gè)參考點(diǎn)代表一個(gè)組件并且使用分層樹(shù)對(duì)各點(diǎn)編碼,并且其中,所 述編碼包括以下步驟:定義要被編碼的點(diǎn)的周圍的邊界框,遞歸地劃分該邊界框,其中,每 個(gè)劃分步驟將父單元格劃分為預(yù)定義數(shù)量的子單元格(至少兩個(gè),其中,在一個(gè)實(shí)施例中, 任何一個(gè)劃分步驟的所有子單元格具有相等的尺寸),對(duì)于每個(gè)劃分步驟,為當(dāng)前父單元格 確定點(diǎn)的總數(shù)以及該父單元格的所有點(diǎn)是否在單一的子單元格中,并如上所述至少為包括 四個(gè)或更多點(diǎn)的父單元格編碼指示所述確定的結(jié)果的指示符。[0096]在一個(gè)實(shí)施例中,本發(fā)明是一種用于從編碼的數(shù)據(jù)集合來(lái)解碼網(wǎng)格模型,特別是 MC網(wǎng)格模型的重復(fù)組件的參考點(diǎn)的方法,并且其中,所述解碼包括以下步驟:從編碼的數(shù) 據(jù)集合至少提取一個(gè)值和作為多個(gè)點(diǎn)的位置數(shù)據(jù)的第一數(shù)據(jù),所述值代表點(diǎn)的總數(shù)并且所 述第一數(shù)據(jù)定義多個(gè)碼字,其中,每個(gè)碼字指的是將邊界框劃分為各單元格的多個(gè)遞歸劃 分之一,并且每次劃分將當(dāng)前父單元格劃分為兩個(gè)或更多的子單元格,以及基于所述值和 所述第一數(shù)據(jù)來(lái)確定所述點(diǎn)的位置,其中,至少部分碼字包含指示當(dāng)前單元格劃分步驟是否有效的指示符(一個(gè)比特)。此外,所述解碼方法包含使用重復(fù)組件替換每個(gè)點(diǎn)。[0097]在一個(gè)實(shí)施例中,本發(fā)明涉及一種包含多個(gè)重復(fù)相連接的組件的編碼的網(wǎng)格模 型,其中,所述編碼的網(wǎng)格模型包含至少下列內(nèi)容的編碼數(shù)據(jù):[0098]每個(gè)重復(fù)相連接的組件的實(shí)例,[0099]編碼的相連接的組件的總數(shù),[0100]所述重復(fù)相連接的組件的多個(gè)副本的位置,所述位置被編碼為樹(shù)結(jié)構(gòu)(例如, kd-樹(shù)),以及網(wǎng)格模型內(nèi)的邊界區(qū)域,其中,所述邊界區(qū)域是所述樹(shù)結(jié)構(gòu)所指代的初始父單 元格。被編碼為樹(shù)的位置使用上述編碼。即,該編碼包括樹(shù)結(jié)構(gòu)的每個(gè)節(jié)點(diǎn)的碼字,其中, 對(duì)于具有至少四個(gè)點(diǎn)的節(jié)點(diǎn),如果當(dāng)前父單元格的點(diǎn)被分發(fā)給至少兩個(gè)子單元格,所述碼 字以具有第一值的指示符開(kāi)始,如果當(dāng)前父單元格的點(diǎn)在單一的子單元格中,所述碼字以 具有不同的第二值的指示符開(kāi)始,并且其中,所述碼字的剩余比特或者表示位于預(yù)定義的 一個(gè)子單元格中的點(diǎn)的數(shù)量(如果指示符具有第一值)減去一,或者表示當(dāng)前父單元格的子 單元格的索引,所述子單元格是包括父單元格的所有點(diǎn)的子單元格(如果指示符具有第二 值)。[0101]圖7示出如上面相對(duì)于圖6所描述的隨后劃分步驟的樹(shù)型表示的一部分。在該 樹(shù)的根部711,編碼對(duì)應(yīng)于圖6b)的對(duì)父單元格的垂直分割。如上所述,在這種情況下第一 劃分是垂直的是一種預(yù)定義的慣例。在節(jié)點(diǎn)711、712中,如圖6cl)和c2)所示,編碼對(duì)所 生成的子單元格的水平分割。一個(gè)劃分步驟是無(wú)效的,使得它的一個(gè)子單元格732 (或Q3) 是空的。如上所述,不分割空的子單元格并且只隱式地對(duì)其編碼。在下一節(jié)點(diǎn)731-734中, 如圖6dl)和d3)所示,編碼第三階段單元格的垂直分割。該單元格對(duì)應(yīng)于圖2中的正方形 Q1-Q4。后面的節(jié)點(diǎn)741-746對(duì)應(yīng)于圖6el)-e6),其中,再次地,一個(gè)劃分是無(wú)效的并且因此 產(chǎn)生空的子單元格745??梢韵鄳?yīng)地構(gòu)建該樹(shù)的剩余部分(未示出)。每條線710、720、730、 740、750指的是單元格的階段。在初始地插入點(diǎn)的總數(shù)后,可從線710、720、730等獲得根據(jù) 本發(fā)明的代表編碼的網(wǎng)格模型的代碼。[0102]一般地,第一碼字的長(zhǎng)度(點(diǎn)的總數(shù))是固定的,因?yàn)闊o(wú)法在解碼期間推斷出其長(zhǎng) 度。其他碼字的長(zhǎng)度是可變的并且可以如上所述在解碼期間計(jì)算他們的長(zhǎng)度。此外,通常 從對(duì)父單元格的單一劃分步驟所產(chǎn)生的所有子單元格都具有實(shí)質(zhì)上相等的尺寸。[0103]注意,對(duì)點(diǎn)的編碼/解碼在這里一般意味著對(duì)它們的坐標(biāo)的編碼/解碼。[0104]下列示例性實(shí)施例是特別有利的:[0105]在編碼方法的一個(gè)實(shí)施例中,如果指示符具有第一值,根據(jù)η=取整(1g2 (m+1)), 碼字的剩余比特的數(shù)量依賴于當(dāng)前父單元格中點(diǎn)的數(shù)量,其中,η是碼字的剩余比特的數(shù) 量,m是當(dāng)前父單元格中點(diǎn)的數(shù)量。[0106]在一個(gè)實(shí)施例中,編碼方法還包括根據(jù)輸入點(diǎn)的空間坐標(biāo)將輸入點(diǎn)聚類成一個(gè)或 多個(gè)聚類的初始步驟,并且每個(gè)點(diǎn)是輸入點(diǎn)的聚類的參考點(diǎn)。[0107]在編碼方法的一個(gè)實(shí)施例中,網(wǎng)格模型是具有多連接組件的3D網(wǎng)格模型,并且聚 類中的每個(gè)點(diǎn)代表一個(gè)組件。[0108]在編碼方法的一個(gè)實(shí)施例中,從對(duì)父單元格的單一劃分步驟產(chǎn)生的所有子單元格 具有相等的尺寸。[0109]在編碼方法的一個(gè)實(shí)施例中,遞歸的最大數(shù)或最小單元格尺寸被定義為遞歸劃分步驟的終止條件。[0110]在用于2D的編碼方法的一個(gè)實(shí)施例中,劃分當(dāng)前父單元格的遞歸劃分步驟以輪 換方式執(zhí)行水平和垂直分割,并且預(yù)定義的一個(gè)子單元格不是水平分割的上部或下部子單 元格,就是垂直分割的左側(cè)或右側(cè)子單元格。[0111]在用于3D的編碼方法的一個(gè)實(shí)施例中,劃分當(dāng)前父單元格的遞歸劃分步驟以輪 換方式執(zhí)行水平、垂直和深度分割,其中,預(yù)定義的一個(gè)子單元格或者是水平分割的上部或 下部子單元格,或者是垂直分割的左側(cè)或右側(cè)子單元格,或者是深度分割的前部或后部子 單元格。[0112]在一個(gè)實(shí)施例中,其中,每個(gè)碼字的長(zhǎng)度是可變的,所述解碼方法還包括根據(jù)給 定的規(guī)則計(jì)算碼字的長(zhǎng)度的步驟。根據(jù)該規(guī)則,根據(jù)η=取整(1g2 (m+Ι))或根據(jù)n=l0g2 (m+1),從當(dāng)前父單元格中點(diǎn)的數(shù)量計(jì)算碼字的所述剩余比特的數(shù)量,其中,η是碼字的剩余 比特的數(shù)量,m是當(dāng)前父單元格中點(diǎn)的數(shù)量。[0113]在解碼方法的一個(gè)實(shí)施例中,網(wǎng)格模型是包含多個(gè)重復(fù)連接組件的實(shí)例的3D網(wǎng) 格模型,并且每個(gè)所述點(diǎn)是指示一個(gè)所述實(shí)例的位置的參考點(diǎn),并且該方法還包含生成重 復(fù)組件的多個(gè)實(shí)例和根據(jù)各自參考點(diǎn)的位置來(lái)定位每個(gè)副本的最終步驟。[0114]在解碼方法的一個(gè)實(shí)施例中,從對(duì)父單元格的單一劃分步驟產(chǎn)生的所有子單元格 具有相等的尺寸。[0115]在解碼方法的一個(gè)實(shí)施例中,遞歸的最大數(shù)或最小單元格尺寸被定義為遞歸劃分 步驟的終止條件。[0116]在用于2D的解碼方法的一個(gè)實(shí)施例中,劃分當(dāng)前父單元格的遞歸劃分步驟以輪 換方式執(zhí)行水平和垂直分割,并且預(yù)定義的一個(gè)子單元格不是水平分割的上部或下部子單 元格,就是垂直分割的左側(cè)或右側(cè)子單元格。[0117]在用于3D的解碼方法的一個(gè)實(shí)施例中,劃分當(dāng)前父單元格的遞歸劃分步驟以輪 換方式執(zhí)行水平、垂直和深度分割,并且預(yù)定義的一個(gè)子單元格或者是水平分割的上部或 下部子單元格,或者是垂直分割的左側(cè)或右側(cè)子單元格,或者是深度分割的前部或后部子 單元格。[0118]在一個(gè)實(shí)施例中,編碼的網(wǎng)格模型包含多個(gè)重復(fù)相連接的組件,其中,編碼的網(wǎng)格 模型包含每個(gè)重復(fù)相連接的組件的至少一個(gè)實(shí)例的編碼數(shù)據(jù),所述重復(fù)相連接的組件的多 個(gè)副本的位置,所述位置被編碼為kd_樹(shù),以及[0119]網(wǎng)格模型內(nèi)的邊界區(qū)域,其中,所述邊界區(qū)域是kd_樹(shù)所指代的初始父單元格,其 中,被編碼為kd_樹(shù)的位置使用包括kd_樹(shù)的每個(gè)節(jié)點(diǎn)的碼字的編碼,如果當(dāng)前父單元格 的點(diǎn)被分發(fā)給至少兩個(gè)子單元格,所述碼字以具有第一值的指示符開(kāi)始,如果當(dāng)前父單元 格的點(diǎn)在單一的子單元格中,所述碼字以具有不同的第二值的指示符開(kāi)始,并且其中,所述 碼字的剩余比特或者表示位于預(yù)定義的一個(gè)子單元格中的點(diǎn)的數(shù)量(如果指示符具有第一 值),或者表示當(dāng)前父單元格的子單元格的索引,所述子單元格是包括父單元格的所有點(diǎn)的 子單元格(如果指示符具有第二值)。[0120]盡管已經(jīng)通過(guò)將其應(yīng)用到本發(fā)明的示例性實(shí)施例來(lái)示出、描述并指出了本發(fā)明的 基本的新穎特征,應(yīng)理解,本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神的情況下作出所描 述的裝置和設(shè)備的在所公開(kāi)的設(shè)備的形式和細(xì)節(jié)方面、以及其操作方面的各種省略、替換和變化。例如,雖然已經(jīng)關(guān)于具有正方形的兩倍尺寸的矩形的邊界框公開(kāi)了本發(fā)明,本領(lǐng)域 技術(shù)人員將認(rèn)識(shí)到本文所描述的方法和設(shè)備可應(yīng)用于任何矩形邊界框,即使它們的劃分導(dǎo) 致不是正方形的矩形。所有上述慣例可在不脫離本發(fā)明的范圍的情況下自由修改。雖然在 上述示例中,對(duì)邊界框的第一劃分步驟是垂直的,它也可以是水平的。因此,修改給定數(shù)量 的水平和垂直劃分步驟的順序次序是可能的。[0121 ] 此外,可以修改示例中使用的任何隱式慣例。例如,相對(duì)于圖2b)和上述相關(guān)示例, 慣例可以是不論其祖父單元格地逐線或逐列順序處理一個(gè)階段的所有當(dāng)前父單元格(例 如,QDo另一慣例可以是在一個(gè)階段的下一祖父單元格進(jìn)入之前,在任何先前階段j-χ的 它們的相應(yīng)祖父單元格之內(nèi)(例如,在Ql之內(nèi))逐線或逐列順序處理該階段j的所有當(dāng)前父 單元格(例如,sql)。此外,另一慣例可以是如在上述示例中所作出的那樣在處理的某一點(diǎn) 上在上述兩個(gè)慣例之間進(jìn)行切換。[0122]特別地表明,以基本相同的方式來(lái)執(zhí)行基本相同的功能以實(shí)現(xiàn)相同的結(jié)果的那些 元件的所有組合是在本發(fā)明的范圍之內(nèi)的。也完全涉及和考慮從一個(gè)描述的實(shí)施例到另一 個(gè)的元件的替換。[0123]應(yīng)理解,已經(jīng)通過(guò)示例的方式全面地描述了本發(fā)明,并且可以作出不脫離本發(fā)明 范圍的對(duì)細(xì)節(jié)的修改。可以獨(dú)立地或以任何適當(dāng)?shù)慕M合的方式提供在說(shuō)明書(shū)和(適用的地 方)權(quán)利要求以及附圖中公開(kāi)的每個(gè)特征。所述特征在適當(dāng)?shù)那闆r下可以實(shí)現(xiàn)在硬件、軟 件、或兩者的組合中。[0124]權(quán)利要求中出現(xiàn)的標(biāo)號(hào)只是為了說(shuō)明,并且不應(yīng)對(duì)權(quán)利要求的范圍有任何限制作用。
【權(quán)利要求】
1.一種使用分層樹(shù)來(lái)編碼網(wǎng)格模型的點(diǎn)的方法,其中,所述方法包括以下步驟:-編碼作為點(diǎn)的總數(shù)的值;-遞歸地劃分網(wǎng)格模型的點(diǎn)的周圍的邊界框,其中,每個(gè)劃分步驟將當(dāng)前父單元格劃分為預(yù)定義數(shù)量的子單元格,并且對(duì)于每個(gè)劃分步驟執(zhí)行以下步驟:-確定當(dāng)前父單元格和所述當(dāng)前父單元格中包含的點(diǎn)的總數(shù);-確定當(dāng)前父單元格是否包含至少最小數(shù)量的點(diǎn);-如果當(dāng)前父單元格不包含至少所述最小數(shù)量的點(diǎn),編碼包含預(yù)定義的一個(gè)子單元格中的點(diǎn)的數(shù)量的碼字,并且,否則-確定點(diǎn)分布,其中,根據(jù)當(dāng)前劃分步驟,確定當(dāng)前父單元格的所有點(diǎn)是否在單一的子單元格中;并且-編碼一個(gè)碼字,其中,所述碼字以一個(gè)指示符開(kāi)始,并且其中如果根據(jù)所述確定的點(diǎn)分布,當(dāng)前父單元格的所有點(diǎn)并不都是在單一的子單元格中, 該指示符具有第一值并且該碼字的剩余比特表示點(diǎn)的數(shù)量,該數(shù)量是預(yù)定義的一個(gè)子單元格中點(diǎn)的數(shù)量減去一,并且其中如果根據(jù)所述確定的點(diǎn)分布,當(dāng)前父單元格的所有點(diǎn)都在單一的子單元格中,該指示符具有不同的第二值并且該碼字的剩余比特表示標(biāo)識(shí)包含父單元格的所有點(diǎn)的所述單一子單元格的索引。
2.根據(jù)權(quán)利要求1所述的方法,其中,如果指示符具有第一值,根據(jù)η=取整(1g2 (m+Ι))或n=log2 (m),碼字的剩余比特的數(shù)量依賴于當(dāng)前父單元格中點(diǎn)的數(shù)量,其中,η是碼字的剩余比特的數(shù)量,m是當(dāng)前父單元格中點(diǎn)的數(shù)量。
3.根據(jù)權(quán)利要求1或2所述的方法,還包括根據(jù)輸入點(diǎn)的空間坐標(biāo)將輸入點(diǎn)聚類成一個(gè)或多個(gè)聚類的初始步驟,并且每個(gè)點(diǎn)是多個(gè)輸入點(diǎn)的聚類的參考點(diǎn)。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述網(wǎng)格模型是具有多連接組件的3D網(wǎng)格模型, 并且其中,聚類的每個(gè)參考點(diǎn)代表一個(gè)組件。
5.一種解碼網(wǎng)格模型的點(diǎn)的方法,該方法包括以下步驟:-從編碼的數(shù)據(jù)集合提取至少第一數(shù)據(jù)和初始值,所述第一數(shù)據(jù)包含多個(gè)碼字,所述初始值指示點(diǎn)的總數(shù);-基于默認(rèn)數(shù)據(jù)基于從編碼的數(shù)據(jù)集合提取的邊界框數(shù)據(jù),生成邊界框;-遞歸地將邊界框劃分為單元格,其中,每次遞歸劃分將當(dāng)前父單元格劃分為兩個(gè)或更多的子單元格,并且其中,碼字為父單元格定義子單元格之一;以及 -根據(jù)所述子單元格確定所述點(diǎn)的位置,其中,多個(gè)碼字中的每一個(gè)包含指示該碼字的剩余比特的含義的指示符,其中,評(píng)價(jià)該指示符,并且其中,所述碼字的剩余比特定義-或者是位于從當(dāng)前父單元格的當(dāng)前劃分產(chǎn)生的預(yù)定義的一個(gè)子單元格中的點(diǎn)的數(shù)量,如果所述指示符具有第一值;-或者是指示從當(dāng)前父單元格的當(dāng)前劃分產(chǎn)生的子單元格的索引,其中,所述子單元格包含所述父單元格的所有點(diǎn)。
6.根據(jù)權(quán)利要求5所述的方法,其中`,每個(gè)碼字的長(zhǎng)度是可變的,還包括根據(jù)給定的規(guī)則計(jì)算碼字的長(zhǎng)度的步驟,其中,根據(jù)η=取整(1g2 (m+1)),從當(dāng)前父單元格中點(diǎn)的數(shù)量計(jì)算碼字的所述剩余比特的數(shù)量,其中,η是碼字的剩余比特的數(shù)量,m是當(dāng)前父單元格中點(diǎn)的數(shù)量。
7.根據(jù)權(quán)利要求5或6所述的方法,其中,所述網(wǎng)格模型是包含重復(fù)相連接的組件的多個(gè)實(shí)例的3D網(wǎng)格模型,并且其中,所述點(diǎn)中的每一個(gè)是指示所述實(shí)例中的一個(gè)的位置的參考點(diǎn),還包括生成重復(fù)組件的多個(gè)實(shí)例和根據(jù)各自參考點(diǎn)的位置來(lái)定位每個(gè)副本的最終步驟。
8.根據(jù)權(quán)利要求1-7任一項(xiàng)所述的方法,其中,如果所述網(wǎng)格模型和所述邊界框是二維的,劃分當(dāng)前父單元格的所述遞歸劃分步驟以輪換方式執(zhí)行水平和垂直分割,或者如果所述網(wǎng)格模型和所述邊界框是三維的,劃分當(dāng)前父單元格的所述遞歸劃分步驟以輪換方式執(zhí)行水平、垂直和深度分割,并且其中,預(yù)定義的一個(gè)子單元格或者是水平分割的上部或下部子單元格,或者是垂直分割的左側(cè)或右側(cè)子單元格,或者是深度分割的前部或后部子單元格。
9.根據(jù)權(quán)利要求1-8任一項(xiàng)所述的方法,其中,從對(duì)父單元格的單一劃分步驟所產(chǎn)生的所有子單元格具有相等的尺寸。
10.根據(jù)權(quán)利要求1-9任一項(xiàng)所述的方法,其中,遞歸的最大數(shù)量或最小單元格尺寸被定義為遞歸劃分步驟的終止條件。
11.一種包含適于在涉及權(quán)利要求1-4中的一項(xiàng)時(shí)執(zhí)行根據(jù)權(quán)利要求1-4或8-10中的一項(xiàng)的使用分層樹(shù)來(lái)編碼網(wǎng)格模型的點(diǎn)的方法的處理元件的裝置。
12.—種包含適于在涉及權(quán)利要求5-7中的一項(xiàng)時(shí)執(zhí)行根據(jù)權(quán)利要求5-7中的一項(xiàng)或權(quán)利要求8-10中的一項(xiàng)的使用分層樹(shù)來(lái)解碼網(wǎng)格模型的點(diǎn)的方法的處理元件的裝置。
13.一種在其上存儲(chǔ)有導(dǎo)致計(jì)算機(jī)在涉及權(quán)利要求1-4中的一項(xiàng)時(shí)執(zhí)行根據(jù)權(quán)利要求 1-4或8-10中任一項(xiàng)的編碼網(wǎng)格模型的方法、或在涉及權(quán)利要求5-7中的一項(xiàng)時(shí)執(zhí)行根據(jù)權(quán)利要求5-7中的一項(xiàng)或權(quán)利要求8-10中的一項(xiàng)的解碼網(wǎng)格模型的方法的可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。
14.一種包含多個(gè)重復(fù)相連接的組件的編碼的網(wǎng)格模型,其中,所述編碼的網(wǎng)格模型包含至少下列內(nèi)容的編碼數(shù)據(jù):-每個(gè)重復(fù)相連接的組件的一個(gè)實(shí)例;-編碼的相連接的組件的總數(shù);-所述重復(fù)相連接的組件的多個(gè)副本的位置,所述位置被編碼在樹(shù)結(jié)構(gòu)中,其中,所述樹(shù)結(jié)構(gòu)中的節(jié)點(diǎn)定義當(dāng)前父單元格的空間劃分;以及-邊界區(qū)域,其中,所述邊界區(qū)域是所述樹(shù)結(jié)構(gòu)所指代的初始父單元格并包含所述編碼的相連接的組件的總數(shù),并且其中,被編碼為樹(shù)結(jié)構(gòu)的位置使用包括該樹(shù)結(jié)構(gòu)的每個(gè)節(jié)點(diǎn)的碼字的編碼格式,如果當(dāng)前父單元格的點(diǎn)被分發(fā)給至少兩個(gè)子單元格,所述碼字以具有第一值的指示符開(kāi)始,否則,所述碼字以具有不同的第二值的指示符開(kāi)始,并且其中,如果該指示符具有第一值,所述碼字的剩余比特表示位于預(yù)定義的一個(gè)子單元格中的點(diǎn)的數(shù)量,或者如果該指示符具有第二值,所述碼字的剩余比特表示當(dāng)前父單元格的子單元格的索引,所述子單元格包括父單元格的所有點(diǎn)。
15.根據(jù)權(quán)利要求14所述的編碼的網(wǎng)格模型,其中,如果所述網(wǎng)格模型和所述邊界框是二維的,樹(shù)結(jié)構(gòu)中的后續(xù)節(jié)點(diǎn)定義以輪換方式水平地和垂直地劃分當(dāng)前父單元格的遞 歸空間劃分步驟,如果所述網(wǎng)格模型和所述邊界框是三維的,樹(shù)結(jié)構(gòu)中的后續(xù)節(jié)點(diǎn)定義以輪換方行水平地、垂直地和深度維度地劃分當(dāng)前父單元格的遞歸空間劃分步驟,并且其中,預(yù)定義的一個(gè)子單元格或者是水平劃分的上部或下部子單元格,或者是垂直劃分的左側(cè)或右側(cè)子單元格,或者是深度劃分的前部或后部子單元格。`
【文檔編號(hào)】H04W4/00GK103518387SQ201180070071
【公開(kāi)日】2014年1月15日 申請(qǐng)日期:2011年4月12日 優(yōu)先權(quán)日:2011年4月12日
【發(fā)明者】蔡康穎, 田疆, 孟維亮 申請(qǐng)人:湯姆遜許可公司