[go: up one dir, main page]

TW202536805A - 在v-dmc及基礎網格編碼器中的v-dmc法線編碼整合 - Google Patents

在v-dmc及基礎網格編碼器中的v-dmc法線編碼整合

Info

Publication number
TW202536805A
TW202536805A TW114101682A TW114101682A TW202536805A TW 202536805 A TW202536805 A TW 202536805A TW 114101682 A TW114101682 A TW 114101682A TW 114101682 A TW114101682 A TW 114101682A TW 202536805 A TW202536805 A TW 202536805A
Authority
TW
Taiwan
Prior art keywords
vertex
normal
mesh
prediction
dmc
Prior art date
Application number
TW114101682A
Other languages
English (en)
Inventor
安尼克 阿克塔
德 奧維拉 葛特 汎
雷圖 胡達
阿達許 克里許納 瑞瑪蘇布雷蒙尼安
馬塔 卡茲維克茲
Original Assignee
美商高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW202536805A publication Critical patent/TW202536805A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一種用於處理網格資料之裝置:接收一網格的一語法元素,其指示待使用多平行四邊形預測或叉積預測來預測該網格的頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。

Description

在V-DMC及基礎網格編碼器中的V-DMC法線編碼整合
本申請案主張下列各案之優先權:2024年4月5日申請之美國臨時專利申請案第63/575,039號;2024年1月22日申請之美國臨時專利申請案第63/623,706號;及2024年1月17日申請之美國臨時專利申請案第63/622,028號,各申請的全部內容以引用方式併入本文中。
本揭露係關於基於視訊的動態網格寫碼。
網格可用以表示3維空間的實體內容。網格在各式各樣的情況下發揮作用。例如,網格可在表示環境的實體內容的上下文中使用,以用於在擴展實境(例如,擴增實境(augmented reality, AR)、虛擬實境(virtual reality, VR)、或混合實境(mixed reality, MR))應用中定位虛擬物體之目的。網格壓縮係用於編碼及解碼網格的程序。編碼網格可減少網格儲存及傳輸所需的資料量。
本揭露描述關於將法線編碼整合在基於視訊的動態網格寫碼(video-based coding of dynamic meshes, V-DMC)中之技術。根據本揭露之技術,V-DMC解碼器可接收網格的語法元素,其指示多平行四邊形預測或叉積(cross-product)預測之一者。接著,V-DMC解碼器可嘗試使用經傳訊預測程序來解碼網格中的頂點的法線。然而,對於網格中的一些頂點,預測程序所需的其他頂點可能不存在或尚未解碼。對於此類頂點,V-DMC解碼器可使用差量預測來預測法線。若差量預測所需的其他頂點均不可用,則V-DMC解碼器可在位元流中接收完整的法線值而不是差值。
根據本揭露之一實例,一種用於處理網格資料之裝置包括:一記憶體;及處理電路系統,其耦接至該記憶體,且經組態以:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
根據本揭露的另一實例,一種處理網格資料之方法包括:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
根據本揭露的另一實例,一種電腦可讀取儲存媒體儲存指令,當執行該等指令時使一或多個處理器:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
一或多個實例之細節在隨附圖式及以下描述中闡述。其他特徵、目標、及優點將因說明書、圖式、及申請專利範圍而顯而易見。
網格大致上係指三維(three-dimensional, 3D)空間中的頂點集合,該等頂點共同表示3D空間中的一個或多個物體。頂點藉由邊緣連接,且邊緣形成多邊形,其等形成網格的面。各頂點亦可具有一或多個相關聯屬性,諸如紋理或色彩。在大部分情境中,具有更多頂點引入更高的品質,例如,更詳細且更逼真的網格。然而,具有更多頂點,亦需要更多資料來表示網格。
為了減少表示網格所需的資料量,可使用有損或無損編碼來編碼網格。在無損編碼中,經編碼網格的經解碼版本與原始網格完全匹配。相較之下,在有損編碼中,編碼及解碼網格的程序導致經編碼網格的經解碼版本有損失,諸如失真。
在網格的有損編碼技術的一個實例中,網格編碼器對原始網格進行抽取(decimate)以判定基礎網格。為了對原始網格進行抽取,網格編碼器對原始網格中的頂點數目進行次取樣或以其他方式減少該頂點數目,使得基礎網格係原始網格具有較少頂點的粗略近似。接著,網格編碼器細分經抽取網格。即,網格編碼器估計基礎網格的頂點之間的額外頂點的位置。接著,網格編碼器藉由移動頂點來使經細分網格變形,以使經變形網格更貼近地匹配原始網格。
在判定了經細分網格的所欲基礎網格及變形之後,網格編碼器產生一位元流,其包括用於建構基礎網格的資料及用於執行變形的資料。定義變形的資料可經傳訊為一系列位移向量,其等指示由細分程序判定的額外頂點的移動或位移。為了從位元流解碼網格,網格解碼器基於經傳訊資訊重建基礎網格,應用與網格編碼器相同的細分程序,且接著基於經傳訊位移向量使額外頂點移位。
本揭露描述關於將法線編碼整合在基於視訊的動態網格寫碼(V-DMC)中之技術,該V-DMC係正在MPEG WG7 (3DGH)中標準化的技術。本揭露特別關注在ISO/IEC JTC 1/SC 29/WG 7, N733, October 2023的V-DMC測試模型v6.0 (TMM v6.0)內的基礎網格編碼器中的法線編碼的實施方案,其以引用方式併入本文中。在V-DMC中,使用EdgeBreaker實施方案來編碼基礎網格連接性,且可使用具有屬性預測的殘差編碼來編碼基礎網格屬性。然而,V-DMC工具以及基礎網格編碼器不支援將法線編碼為屬性。本揭露之技術將法線編碼整合在V-DMC工具中,並提出在基礎網格編碼器中實施法線編碼。本揭露之技術可允許以無損方式高效地且使用較小的位元流在基礎網格編碼器中編碼法線。
法線係垂直於網格表面的向量(x, y, z)。法線係用以判定表面的定向並應用著色。在3D建模中,法線在建立逼真的物體中藉由例如幫助定義物體的形狀及其如何與光相互作用而扮演重要角色。法線亦用於電腦圖形中,以建立光滑的表面並計算光的反射。此外,法線在視訊遊戲中使用以建立逼真的環境並改良遊戲的性能。總之,法線係3D建模及電腦圖形的必要組分,且在從視訊遊戲至科學模擬的廣泛範圍之應用中使用。
V-DMC解碼器可經組態以藉由判定頂點的經預測法線、接收經編碼位元流中的差值、並判定頂點的最終法線值係等於經預測值加上差值,來判定頂點的法線。V-DMC解碼器可經組態以取決於哪種附近頂點已解碼而執行不同的預測程序。
當執行多平行四邊形預測時,V-DMC解碼器預測目前頂點(下文圖式中的c)的法線值係等於上一個法線值(c.p)加上下一個法線值(c.n)減去相對法線值(c.o)。V-DMC解碼器可針對目前頂點周圍的多個三角形作出類似預測,並將最終預測設定為針對多個三角形之預測的平均。
當執行叉積預測時,V-DMC解碼器藉由判定上一個頂點(c.p)與目前頂點(c)之間的向量、判定下一個頂點(c.n)與目前頂點(c)之間的另一向量、並獲得該兩個向量的叉積,來預測目前頂點(c)的法線值。在一些實例中,V-DMC解碼器可針對目前頂點周圍的所有或一些三角形進行此預測,並將經預測法線值判定為平均。
當執行差量預測時,V-DMC解碼器基於單一頂點(c.p或c.n)的已解碼法線值來預測目前頂點(c)的法線值。V-DMC解碼器藉由接收位元流中的差值並將該差值與經預測法線值相加來判定實際法線值。V-DMC解碼器亦可實施其他類型的預測。
根據本揭露之技術,V-DMC解碼器可接收網格的語法元素,其指示多平行四邊形預測或叉積預測之一者。接著,V-DMC解碼器可嘗試使用經傳訊預測程序來解碼網格中的頂點的法線。然而,對於網格中的一些頂點,預測程序所需的其他頂點可能不存在或尚未解碼。對於此類頂點,V-DMC解碼器可使用差量預測來預測法線。若差量預測所需的其他頂點均不可用,則V-DMC解碼器可在位元流中接收完整的法線值而不是差值。
圖1係繪示可執行本揭露之技術的實例編碼及解碼系統100的方塊圖。本揭露之技術大致上係關於寫碼(編碼及/或解碼)網格。寫碼可有效地壓縮及/或解壓縮網格的資料。
如圖1所示,系統100包括來源裝置102及目的地裝置116。來源裝置102提供待由目的地裝置116解碼的經編碼資料。具體而言,在圖1的實例中,來源裝置102經由電腦可讀取媒體110將資料提供至目的地裝置116。來源裝置102及目的地裝置116可包含廣泛範圍之裝置中之任一者,包括桌上型電腦、筆記型(即,膝上型)電腦、平板電腦、機上盒、電話手機(諸如智慧型手機)、電視、攝影機、顯示裝置、數位媒體播放器、視訊遊戲控制台、視訊串流裝置、地面或海洋載具、太空船、飛行器、機器人、LIDAR裝置、衛星、或類似者。在一些情況下,來源裝置102及目的地裝置116可配備用於無線通訊。
在圖1的實例中,來源裝置102包括資料來源104、記憶體106、V-DMC編碼器200、及輸出介面108。目的地裝置116包括輸入介面122、V-DMC解碼器300、記憶體120、及資料消費者118。根據本揭露,來源裝置102之V-DMC編碼器200及目的地裝置116的V-DMC解碼器300可經組態以應用與位移向量量化有關的本揭露之技術。因此,來源裝置102表示編碼裝置的實例,而目的地裝置116表示解碼裝置的實例。在其他實例中,來源裝置102及目的地裝置116可包括其他組件或配置。例如,來源裝置102可從內部或外部來源接收資料。同樣地,目的地裝置116可與外部資料消費者介接,而非在相同裝置中包括資料消費者。
如圖1所示之系統100僅係一個實例。通常,其他數位編碼及/或解碼裝置可執行與位移向量量化有關的本揭露之技術。來源裝置102及目的地裝置116僅係此類寫碼裝置的實例,其中來源裝置102產生經寫碼資料用於傳輸至目的地裝置116。本揭露將「寫碼(coding)」裝置稱為執行資料之寫碼(編碼及/或解碼)的裝置。因此,V-DMC編碼器200及V-DMC解碼器300表示寫碼裝置的實例,具體地分別為編碼器及解碼器。在一些實例中,來源裝置102及目的地裝置116可以實質上對稱的方式操作,使得來源裝置102及目的地裝置116之各者包括編碼及解碼組件。因此,系統100可支援來源裝置102與目的地裝置116之間的單向或雙向傳輸,例如用於串流、播放、廣播、電話、導航、及其他應用。
通常,資料來源104表示資料(即,原始、未編碼資料)的來源,並將資料的一系列連續「圖框(frame)」)提供給編碼圖框之資料的V-DMC編碼器200。來源裝置102的資料來源104可包括網格擷取裝置,諸如各種攝影機或感測器中的任一者(例如3D掃描器或光偵測及測距(light detection and ranging, LIDAR)裝置)、一或多個視訊攝影機、包含先前擷取資料的檔案、及/或資料饋送介面,以從資料內容提供者接收資料。替代地或額外地,網格資料可由電腦從掃描器、攝影機、感測器、或其他資料產生。例如,資料來源104可產生基於電腦圖形的資料作為來源資料,或生成實況資料、存檔資料、及電腦產生的資料之組合。在各情況下,V-DMC編碼器200編碼經擷取、預擷取、或電腦產生的資料。V-DMC編碼器200可將圖框從接收順序(有時稱為「顯示順序(display order)」)重新配置成用於寫碼的寫碼順序。V-DMC編碼器200可產生包括經編碼資料的一或多個位元流。接著,來源裝置102可經由輸出介面108將經編碼資料輸出至電腦可讀取媒體110上,以用於藉由例如目的地裝置116的輸入介面122接收及/或提取。
來源裝置102的記憶體106及目的地裝置116的記憶體120可表示通用記憶體。在一些實例中,記憶體106及記憶體120可儲存原始資料,例如來自資料來源104的原始資料及來自V-DMC解碼器300的原始經解碼資料。額外地或替代地,記憶體106及記憶體120可分別儲存可由例如V-DMC編碼器200及V-DMC解碼器300執行的軟體指令。雖然在此實例中記憶體106及記憶體120經展示為與V-DMC編碼器200及V-DMC解碼器300分開,但應理解,V-DMC編碼器200及V-DMC解碼器300亦可包括用於功能上類似或相等目的之內部記憶體。此外,記憶體106及記憶體120可儲存例如從V-DMC編碼器200輸出及輸入至V-DMC解碼器300的經編碼資料。在一些實例中,記憶體106及記憶體120的部分可經分配為一或多個緩衝器,例如以儲存原始、經解碼、及/或經編碼資料。例如,記憶體106及記憶體120可儲存表示網格的資料。
電腦可讀取媒體110可表示能夠將經編碼資料從來源裝置102輸送至目的地裝置116的任何類型的媒體或裝置。在一個實例中,電腦可讀取媒體110表示一通訊媒體,該通訊媒體使來源裝置102能夠例如經由射頻網路或基於電腦的網路即時將經編碼資料直接傳輸至目的地裝置116。輸出介面108可調變包括經編碼資料的傳輸信號,且輸入介面122可根據通訊標準(諸如無線通訊協定)來解調變經接收傳輸信號。通訊媒體可包含任何無線或有線通訊媒體,諸如射頻(radio frequency, RF)頻譜或一或多個實體傳輸線。通訊媒體可形成基於封包的網路的部分,諸如區域網路、廣域網路、或全球網路(諸如網際網路)。通訊媒體可包括路由器、交換機、基地台、或可有用於促進從來源裝置102至目的地裝置116之通訊的任何其他設備。
在一些實例中,來源裝置102可將經編碼資料從輸出介面108輸出至儲存裝置112。類似地,目的地裝置116可經由輸入介面122存取來自儲存裝置112的經編碼資料。儲存裝置112可包括各種分布式或本端存取的資料儲存媒體之任一者,諸如硬碟、藍光光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體、或用於儲存經編碼資料之任何其他合適的數位儲存媒體。
在一些實例中,來源裝置102可將經編碼資料輸出至檔案伺服器114、或可儲存由來源裝置102產生之經編碼資料的另一中間儲存裝置。目的地裝置116可經由串流或下載來存取來自檔案伺服器114的經儲存資料。檔案伺服器114可係能夠儲存經編碼資料且將該經編碼資料傳輸至目的地裝置116之任何類型的伺服器裝置。檔案伺服器114可表示網路伺服器(例如,用於網站)、檔案傳輸協定(File Transfer Protocol, FTP)伺服器、內容遞送網路裝置、或網路附接儲存(network attached storage, NAS)裝置。目的地裝置116可透過任何標準資料連線(包括網際網路連接)從檔案伺服器114存取經編碼資料。此可包括無線通道(例如,Wi-Fi連接)、有線連接(例如,數位用戶線(digital subscriber line, DSL)、電纜數據機等)、或適用於存取儲存在檔案伺服器114上的經編碼資料之兩者的組合。檔案伺服器114及輸入介面122可經組態以根據串流傳輸協定、下載傳輸協定、或其組合來操作。
輸出介面108及輸入介面122可表示無線傳輸器/接收器、數據機、有線網路組件(例如,乙太網路卡)、根據各種IEEE 802.11標準之任一者操作的無線通訊組件、或其他實體組件。在輸出介面108及輸入介面122包含無線組件的實例中,輸出介面108及輸入介面122可經組態以根據蜂巢式通訊標準(諸如4G、4G-LTE(長期演進)、進階LTE、5G、或類似者來傳送資料(諸如經編碼資料)。在輸出介面108包含無線傳輸器的一些實例中,輸出介面108及輸入介面122可經組態以根據其他無線標準(諸如IEEE 802.11規格、IEEE 802.15規格(例如ZigBee))、Bluetooth標準、或類似者來傳送資料(諸如經編碼資料)。在一些實例中,來源裝置102及/或目的地裝置116可包括各別的系統單晶片(system-on-a-chip, SoC)裝置。例如,來源裝置102可包括用以執行歸屬於V-DMC編碼器200及/或輸出介面108之功能的SoC裝置,且目的地裝置116可包括用以執行歸屬於V-DMC解碼器300及/或輸入介面122之功能的SoC裝置。
本揭露之技術可應用於支援各種應用中的任一者的編碼及解碼,諸如自動駕駛車輛之間的通訊、掃描器、攝影機、感測器與處理裝置(諸如本端或遠端伺服器)之間的通訊、地理測繪(geographic mapping)、或其他應用。
目的地裝置116的輸入介面122從電腦可讀取媒體110(例如,通訊媒體、儲存裝置112、檔案伺服器114、及類似者)接收經編碼位元流。經編碼位元流可包括由V-DMC編碼器200定義的傳訊資訊,該資訊亦由V-DMC解碼器300使用,諸如具有描述經寫碼單元(例如,切片(slice)、圖像、圖像群組、序列、及類似者)之特性及/或處理的值的語法元素。資料消費者118使用經解碼資料。例如,資料消費者118可使用經解碼資料以判定實體物體的位置。在一些實例中,資料消費者118可包含顯示器,以基於網格呈現影像。
V-DMC編碼器200及V-DMC解碼器300可各自實施為各種合適的編碼器及/或解碼器電路系統之任一者,諸如一或多個微處理器、數位信號處理器(digital signal processor, DSP)、特殊應用積體電路(application specific integrated circuit, ASIC)、現場可程式化閘陣列(field programmable gate array, FPGA)、離散邏輯、軟體、硬體、韌體、或其任何組合。當該等技術部分地以軟體實施時,裝置可將軟體的指令儲存在合適的非暫時性電腦可讀取媒體中,並使用一或多個處理器在硬體中執行指令以執行本揭露之技術。V-DMC編碼器200及V-DMC解碼器300之各者可包括在一或多個編碼器或解碼器中,其任一者可整合為各別裝置中之組合編碼器/解碼器(CODEC)的一部分。包括V-DMC編碼器200及/或V-DMC解碼器300的裝置可包含一或多個積體電路、微處理器、及/或其他類型的裝置。
V-DMC編碼器200及V-DMC解碼器300可根據一寫碼標準操作。本揭露大致上可指圖像的寫碼(例如,編碼及解碼),以包括編碼或解碼資料之程序。經編碼位元流大致上包括表示寫碼決策(例如,寫碼模式)的語法元素的一系列值。
本揭露大致上可係指「傳訊(signaling)」某些資訊,諸如語法元素。用語「傳訊」大致上可指傳達語法元素的值及/或用以解碼經編碼資料之其他資料。即,V-DMC編碼器200可傳訊位元流中之語法元素的值。通常,傳訊係指在位元流中產生值。如上文所提及,來源裝置102可實質上即時或非即時將位元流輸送至目的地裝置116,諸如可能在將語法元素儲存至儲存裝置112以由目的地裝置116稍後提取時發生。
第7工作小組(Working Group 7, WG7)(通常稱為3D圖形及觸覺寫碼小組(3D Graphics and Haptics Coding Group, 3DGH))目前致力於標準化用於XR應用的基於視訊的動態網格寫碼(V-DMC)。目前的測試模型包括將輸入網格預處理成稱為「基礎網格(base mesh)」的可能簡化版本。此等基礎網格可含有比原始網格少的頂點,且可使用亦稱為靜態網格寫碼器的基礎網格寫碼器來編碼。預處理亦產生位移向量以及紋理屬性圖,兩者均使用V-DMC編碼器來編碼。若網格以無損方式編碼,則基礎網格不再是簡化版本且用以編碼原始網格。對於無損方式,V-DMC TMM v6.0工具在框內模式下操作,其中基礎網格編碼器成為主要編碼程序。
基礎網格編碼器編碼網格的連接性以及與各頂點相關聯的屬性,該等屬性一般涉及紋理的定位及座標(例如,UV座標),但不限於此等屬性。此定位包括頂點的3D座標(x,y,z),而紋理則儲存為指向紋理圖影像像素位置的2D UV座標(x,y)。V-DMC中的基礎網格係使用EdgeBreaker演算法來編碼,而連接性則使用CLERS運算碼(op code)來編碼。使用來自先前已編碼/解碼頂點的預測來編碼屬性的殘差。
EdgeBreaker演算法係描述在Jean-Eudes Marvie、Olivier Mocquard的[V-DMC][EE4.4] An efficient EdgeBreaker implementation, ISO/IEC JTC1/SC29/WG7, m63344, April 2023(此後稱為「m63344」)中,特此以引用方式將其併入本文中。CLERS運算碼係描述在J. Rossignac的「3D compression made simple: EdgeBreaker with ZipandWrap on a corner-table」中,收錄於Proceedings International Conference on Shape Modeling and Applications, Genova, Italy, 2001(此後稱為「Rossignac」)以及H. Lopes、G. Tavares、J. Rossignac、A. Szymczak、及A. Safonova的「EdgeBreaker: a simple compression for surfaces with handles.」中,收錄於ACM Symposium on Solid Modeling and Applications, Saarbrucken, 2002(此後稱為「Lopes」),兩者特此以引用方式併入本文中。
本揭露之技術將法線編碼整合在V-DMC工具中。本揭露之技術將每頂點(per vertex)法線編碼整合在基礎網格編碼器(其亦稱為靜態網格編碼器)中,以及增加對法線圖的支援。
現在將提供V-DMC測試模型的背景。被選為V-DMC標準化起點的提案的詳細描述可在下列文件中找到,其等全部特此以引用方式併入本文中。•     2023年12月22日申請之美國臨時專利申請案第63/614,139號。•     2024年1月16日申請之美國臨時專利申請案第63/621,478號。•     Khaled Mammou、Jungsun Kim、Alexandros Tourapis、Dimitri Podborski、Krasimir Kolarov的[V-CG] Apple’s Dynamic Mesh Coding CfP Response, ISO/IEC JTC1/SC29/WG7, m59281, Apr 2022(此後稱為「m59281」)。•    V-DMC codec description, ISO/IEC JTC1/SC29/WG7, N00644, July 2023(此後稱為「V-DMC codec description」)。•     WD 4.0 of V-DMC, ISO/IEC JTC1/SC29/WG7, N00680, Jan. 2023(此後稱為「N00680」)。
美國臨時專利申請案第63/614,139號及第63/621,478號解釋了V-DMC以及基礎網格寫碼。圖2及圖3展示包括編碼器及解碼器架構的目前V-DMC測試模型(test model, TM)的整體系統模型。圖6展示V-DMC解碼器的詳細視圖。
網格大致上係指3D資料儲存格式,其中3D資料以三角形表示。資料包括三角形連接性及對應屬性。網格屬性大致上係指可包括每頂點幾何(x,y,z)、紋理、法線、每頂點色彩等很多物項的屬性。
紋理vs色彩:紋理與色彩屬性不同。色彩屬性包括每頂點色彩,而紋理則儲存為紋理圖(影像)及紋理座標(UV座標)。各個別頂點都被指派UV座標,該UV座標對應於紋理圖上(x,y)位置。
紋理編碼包括編碼每頂點紋理座標(UV座標)及對應的紋理圖兩者。UV座標在基礎網格編碼器中編碼,而紋理圖則使用視訊編碼器來編碼。
預處理:輸入的網格序列首先經過預處理,以產生圖集、基礎網格、位移向量、及屬性圖。
圖集編碼:圖集參數化包括將3D網格包裝成2D圖集,即紋理映射。圖集編碼器將參數化3D網格所需的資訊編碼成2D紋理圖。
基礎網格:對於有損編碼,基礎網格通常是具有可能較少數目之頂點的一簡化網格。對於無損編碼,基礎網格是略有簡化的原始網格。
基礎網格編碼器:基礎網格是使用基礎網格編碼器(圖4中稱為靜態網格編碼器來編碼的。基礎網格編碼器使用EdgeBreaker以無損方式編碼網格連接性及屬性(幾何、紋理座標(UV座標)等)。
位移編碼器:位移是指示如何將基礎網格變換/移位以建立網格的每頂點向量。位移向量可編碼為V3C視訊分量或使用算術位移寫碼。
紋理圖編碼器:採用視訊編碼器以編碼紋理圖。
無損模式:在無損模式下,不存在位移向量,且不簡化基礎網格。基礎網格編碼器係無損編碼器,因此對於V-DMC的無損模式來說係足夠的。紋理圖是使用無損視訊編碼器來編碼的。
有損模式:在有損模式下,基礎網格可係原始網格的簡化版本。採用位移向量以細分基礎網格並使其移位以獲得經重建網格。紋理圖是使用有損視訊編碼器來編碼的。
法線:V-DMC TMM v6.0目前不支援法線。與紋理及色彩類似,法線亦可係每頂點法線,或可係具有對應法線座標的法線圖。
圖2及圖3展示了目前V-DMC測試模型(TM)編碼器(圖2中的V-DM編碼器200)及解碼器(圖3中的V-DMC解碼器300)架構的整體系統模型。V-DMC編碼器200執行體積媒體轉換,而V-DMC解碼器300執行對應的重建。3D媒體經轉換成一系列子位元流:基礎網格、位移、及紋理屬性。位元流中亦包括額外圖集資訊以實現逆重建,如N00680中所述。
圖2展示V-DMC編碼器200的實例實施方案。在圖2的實例中,V-DMC編碼器200包括預處理單元204、圖集編碼器208、基礎網格編碼器212、位移編碼器216、及視訊編碼器220。預處理單元204接收輸入網格序列並產生基礎網格、位移向量、及紋理屬性圖。基礎網格編碼器212編碼基礎網格。位移編碼器216將位移向量編碼為例如V3C視訊分量或使用算術位移寫碼。視訊編碼器220使用任何視訊編解碼器(諸如高效視訊寫碼(High Efficiency Video Coding, HEVC)標準或多功能視訊寫碼(Versatile Video Coding, VVC)標準)來編碼紋理屬性分量(例如,紋理或材質資訊)。
現在將更詳細地描述V-DMC編碼器200的態樣。預處理單元204將3D體積資料表示為一組基礎網格及對應的精化分量。此係透過將經輸入動態網格表示轉換成數個V3C分量來達成:基礎網格、一組位移、紋理圖的2D表示、及圖集。基礎網格分量在有損壓縮中是原始網格的簡化低解析度近似,且在無損壓縮中是原始網格。基礎網格分量可由基礎網格編碼器212使用任何網格編解碼器來編碼。
基礎網格編碼器212在圖4中表示為靜態網格編碼器,並採用EdgeBreaker演算法的實施方案(例如,m63344)以用於編碼基礎網格,其中使用CLERS op碼(例如,來自Rossignac及Lopes)來編碼連接性,並且使用來自先前已編碼/解碼頂點的屬性的預測來編碼屬性的殘差。
現在將更詳細地描述基礎網格編碼器212的態樣。一或多個子網格經輸入至基礎網格編碼器212中。子網格由預處理單元204產生。子網格係藉由利用語意分割從原始網格產生。各基礎網格可包括一或多個子網格。
基礎網格編碼器212可處理連通分量(connected component)。連通分量包括由相鄰三角形連接的三角形群集。子網格可具有一或多個連通分量。基礎網格編碼器212可針對連接性及屬性編碼一次編碼一個「連通分量」,並接著對所有「連通分量」執行熵編碼。
基礎網格編碼器212將經輸入基礎網格定義並分類成連接性及屬性。幾何及紋理座標(UV座標)經分類為屬性。
圖3展示V-DMC解碼器300的實例。在圖3的實例中,V-DMC解碼器300包括解多工器304、圖集解碼器308、基礎網格解碼器314、位移解碼器316、視訊解碼器320、基礎網格處理單元324、位移處理單元328、網格產生單元332、及重建單元336。
解多工器304將經編碼位元流分離成圖集子位元流、基礎網格子位元流、位移子位元流、及紋理屬性子位元流。圖集解碼器308解碼圖集子位元流以判定圖集資訊以實現逆重建。基礎網格解碼器314解碼基礎網格子位元流,且基礎網格處理單元324重建基礎網格。位移解碼器316解碼位移子位元流,且位移處理單元328重建位移向量。網格產生單元332基於位移向量來修改基礎網格以形成經移位網格。
視訊解碼器320解碼紋理屬性子位元流以判定紋理屬性圖,且重建單元336將紋理屬性與經移位網格相關聯以形成經重建動態網格。
圖4展示框內模式V-DMC編碼器400,且圖5展示框內模式V-DMC解碼器500。V-DMC編碼器400大致上表示V-DMC編碼器200的更詳細實例實施方案,特別是關於框內模式功能性,且V-DMC解碼器500表示V-DMC解碼器300的更詳細實例實施方案,特別是關於框內模式功能性。圖6展示V-DMC解碼器600,表示V-DMC解碼器300的更詳細實例實施方案,特別是關於框內模式及框間模式功能性。
圖4包括下列縮寫:m(i):基礎網格d(i):位移m''(i):經重建基礎網格d''(i):經重建位移A(i):屬性圖A'(i):經更新屬性圖M(i):靜態/動態網格DM(i):經重建變形網格m'(i):經重建量化基礎網格d'(i):經更新位移e(i):小波係數e'(i):經量化小波係數pe'(i):經包裝量化小波係數rpe'(i):經重建包裝量化小波係數AB:經壓縮屬性位元流DB:經壓縮位移位元流BMB:經壓縮基礎網格位元流
V-DMC編碼器400例如從預處理系統接收基礎網格m(i)及位移d(i)。V-DMC編碼器400亦提取網格M(i)及屬性圖A(i)。
量化單元402量化基礎網格,且靜態網格編碼器404編碼經量化基於網格以產生經壓縮基礎網格位元流。
位移更新單元408使用經重建量化基礎網格以更新位移欄位以產生經更新位移欄位。此程序考慮經重建基礎網格與原始基礎網格之間的差異。藉由利用細分表面網格結構,小波變換單元410將小波變換應用於以產生一組小波係數。該方案與所應用的變換無關,且可利用任何其他變換,包括恆等變換。量化單元412將小波係數量化,且影像包裝單元414將經量化小波係數包裝成可以與V-PCC相同的精神使用傳統影像/視訊編碼器壓縮的2D影像/資料,以產生位移位元流。
屬性轉移單元430將原始屬性圖A(i)轉換至對應於經重建變形網格DM(i)的經更新屬性圖。填補單元432藉由例如用經內插樣本裝填(fill)具有空樣本的圖框的貼片來填補經更新屬性圖,這可改良寫碼效率且減少假影。色彩空間轉換單元434將屬性圖轉換成不同的色彩空間,且視訊編碼單元436使用例如視訊編解碼器在新的色彩空間中編碼經更新屬性圖,以產生屬性位元流。
多工器438將經壓縮屬性位元流、經壓縮位移位元流、及經壓縮基礎網格位元流組合成單一經壓縮位元流。
影像解包裝單元418及逆量化單元420將影像解包裝及逆量化應用於由視訊編碼單元416產生的經重建包裝量化小波係數,以獲得小波係數的經重建版本。逆小波變換單元422將逆小波變換應用於經重建小波係數以判定經重建位移
逆量化單元424將逆量化應用於經重建量化基礎網格m'(i),以獲得經重建基礎網格。經變形網格重建單元428細分並將經重建位移應用於其頂點以獲得經重建變形網格
影像解包裝單元418、逆量化單元420、逆小波變換單元422、及經變形網格重建單元428表示位移解碼迴路。逆量化單元424及經變形網格重建單元428表示基礎網格解碼迴路。V-DMC編碼器400包括位移解碼迴路及基礎網格解碼迴路,使得V-DMC編碼器400可基於網格解碼器將產生的相同經解碼網格(其可包括由於量化及變換而導致的失真)來做出編碼決策,諸如判定可接受的位元率-失真權衡。V-DMC編碼器400亦可使用基礎網格、經重建網格、及位移的經解碼版本以用於編碼後續基礎網格及位移。
控制單元450大致上表示V-DMC編碼器400的決策功能性。在編碼程序期間,控制單元450可例如做出關於模式選擇、位元率分配、品質控制、及其他此類決策的判定。
圖5展示框內解碼器的方塊圖,該框內解碼器可例如係V-DMC解碼器300的一部分。解多工器(DMUX) 502以如V3C/V-PCC中的相同方式將經壓縮位元流(bi)分離成網格子流、用於定位且可能用於各頂點屬性的位移子流、零個或多個屬性圖子流、及含有貼片資訊的圖集子流。
解多工器502將網格子流饋送至靜態網格解碼器506以產生經重建量化基礎網格。逆量化單元514將基礎網格逆量化以判定經解碼基礎網格。視訊/影像解碼單元516解碼位移子流,且影像解包裝單元518將影像/視訊解包裝以判定經量化變換係數,例如,小波係數。逆量化單元520將經量化變換係數逆量化以判定經解量化變換係數。逆變換單元522藉由將逆變換應用於未量化係數來產生經解碼位移欄位。經變形網格重建單元524藉由將重建程序應用於經解碼基礎網格並藉由添加經解碼位移欄位來產生最終經解碼網格(M''(i))。屬性子流由視訊/影像解碼單元526直接解碼以產生屬性圖。色彩格式/空間轉換單元528可將屬性圖轉換成不同的格式或色彩空間。
圖6展示V-DMC解碼器600,其係V-DMC解碼器300的實例實施方案。V-DMC解碼器600包括解多工器(DMUX) 602,其接收經壓縮位元流b(i),並將經壓縮位元流分離成基礎網格位元流(BMB)、位移位元流(DB)、及屬性位元流(AB)。模式選擇單元604判定基礎網格資料是以框內模式或以框間模式編碼。若基礎網格以框內模式編碼,則靜態網格解碼器606在不依賴任何先前解碼網格的情況下解碼網格資料。若以框間模式編碼基礎網格,則運動解碼器608解碼運動,且基礎網格重建單元610將運動應用於儲存在網格緩衝器612中的已解碼網格(m''(j)),以判定經重建量化基礎網格(m'(i)))。逆量化單元614將逆量化應用於經重建量化基礎網格以判定經重建基礎網格(m''(i))。
視訊解碼器616解碼位移位元流以判定一組經量化變換係數或一圖框的經量化變換係數。影像解包裝單元618將經量化變換係數解包裝。例如,視訊解碼器616可將經量化變換係數解碼成圖框,其中經量化變換係數經組織成具有特定掃描順序的區塊。影像解包裝單元618將在圖框中組織的經量化變換係數轉換成有序序列。在一些實施方案中,可使用例如基於上下文的算術寫碼器來直接對經量化變換係數進行寫碼,且解包裝可能是不必要的。
無論經量化變換係數係直接解碼或在圖框中解碼,逆量化單元620將經量化變換係數逆量化(例如,逆縮放),以判定經解量化變換係數。逆小波變換單元622將逆變換應用於經解量化變換係數以判定一組位移向量。經變形網格重建單元624使用經解碼位移向量使經重建基礎網格變形,以判定經解碼網格(M''(i))。
視訊解碼器626解碼屬性位元流以判定經解碼屬性值(A'(i)),且色彩空間轉換單元628將經解碼屬性值轉換成所欲的色彩空間,以判定最終屬性值(A''(i))。最終屬性值對應於經解碼網格之頂點的屬性,諸如色彩或紋理。
圖7:完整EdgeBreaker網格編解碼器的概述,頂列係編碼線,底列係解碼線,如m63344所述。圖7繪示基於EdgeBreaker的端對端網格編解碼器,其包括下列主要步驟:編碼:-     預處理(702):最初,執行預處理以修正輸入網格中的潛在連接性問題,諸如非流形邊及頂點。此步驟係重要的,因為所採用的EdgeBreaker演算法在此類連接性問題的情況下無法運算。解決非流形問題可能涉及複製一些頂點,該等頂點經追蹤以用於稍後在解碼期間合併。此最佳化減少了經解碼網格中的點的數目,但需要位元流中的額外資訊。在此預處理階段中亦添加虛置點以裝填EdgeBreaker不會處理的潛在表面孔。隨後藉由透過編碼附接至孔的虛置三角形產生「虛擬(virtual)」虛置點來編碼該等孔,而不需要3D定位編碼。若需要,頂點屬性在預處理中量化。-     連接性編碼(704):接下來,使用經修改EdgeBreaker演算法來編碼網格的連接性,從而產生CLERS表連同用於屬性預測的其他記憶體表。-     屬性預測(706):從幾何定位屬性開始預測頂點屬性,並擴展至其他屬性,其中一些屬性可能依賴定位預測,諸如針對紋理UV座標。-     位元流組態(708):最後,將組態及後設資料包括在位元流中。此包括CLERS表及屬性殘差的熵寫碼。解碼:-     熵解碼(710):解碼程序開始於所有經熵寫碼子位元流的解碼。-     連接性解碼(714):使用CLERS表及EdgeBreaker演算法來重建網格連接性,其中額外資訊係用以管理描述拓撲的柄(handle)。-     屬性預測及修正(716):使用網格連接性及最小的一組3D座標來預測頂點定位。隨後,應用屬性殘差以校正預測並獲得最終頂點定位。接著解碼其他屬性,可能依賴先前已解碼的定位,如同UV座標的情況。使用以每個邊緣為基礎之經熵寫碼的二進制接縫資訊來重建使用單獨索引表的屬性的連接性。-  後處理(718):在後處理階段中,移除虛置三角形。可選地,若編解碼器經組態用於無損寫碼,則重新建立非流形問題。若在編碼期間量化,則頂點屬性亦可選擇性地解量化。
現在將描述基礎網格寫碼的資料表示。EdgeBreaker演算法利用隅角表(corner table)資料表示,此概念最初由Rossignac引入,以強化EdgeBreaker演算法的效率。隅角表(CT)的屬性的全面概述可在Rossigniac中找到。
現在將描述基礎網格寫碼中的屬性寫碼的態樣。基礎網格編碼器對三角形及頂點的屬性及連接性兩者進行編碼。一般使用預測方案來編碼屬性,以使用先前已訪查/編碼/解碼的頂點來預測頂點屬性。接著自實際的屬性值減去預測以獲得殘差。最後,使用熵編碼器來編碼殘差屬性值,以獲得經編碼基礎網格屬性位元流。含有頂點屬性的屬性位元流通常具有幾何/定位屬性及UV座標(紋理屬性),但可含有任何數目的屬性,如每頂點RGB值等。
屬性寫碼使用預測方案以求出經預測屬性與實際屬性之間的殘差。最後,殘差經熵編碼成基礎網格屬性位元流。各頂點屬性以不同的方式編碼。3D定位的幾何及紋理的UV座標均使用預測程序來編碼。為了計算此等預測,將多平行四邊形技術用於幾何編碼(如Cohen及Isenburg所描述),而將最小拉伸(min stretch)程序採用於UV坐標編碼,如在Computer Graphics International, Tokyo, Japan, 2003中I. M.及S. J.之「Compressing Texture Coordinates with Selective Linear Predictions」中所描述,其特此以引用方式併入本文中。
值得注意的是,在隅角預測時,可保證其相關聯的三角形扇(triangle fan)始終係完整的,且其隅角之各者具有有效的對角。這是藉由採用虛置點裝填任何孔來達成的。事實上,即使是單一三角形,就連接性而言也會變換成由四個三角形組成的金字塔。
屬性壓縮的碼如表1所示。幾何預測使用多平行四邊形方案,如表2所示。UV座標的最小拉伸預測方案如表3及表4所描述。
給定隅角的多平行四邊形的處理涉及在其頂點全部周圍執行查找,以利用對角(opposite corner)來計算並匯總各平行四邊形預測,如圖10A及圖10B所示。僅在隅角本身、兄弟隅角(sibling corner)、及其等共用頂點的頂點先前已由觸發預測的連接性遞迴處理時,用以從兄弟隅角預測隅角的平行四邊形才會被視為對預測有效。為了驗證此條件,採用頂點標記表(指定為M)。此表含有針對已由連接性編碼迴路訪查的頂點設定為真的元素。在平行四邊形預測中,平行四邊形藉由在「三角形扇」周圍擺動而在逆時針方向上移動。若在平行四邊形中,下一個頂點、上一個頂點、及相對的頂點可用,則該平行四邊形(及另外三個頂點)用以預測目前頂點的定位。
在迴路結束時,預測的總和除以已識別的有效平行四邊形的數目。該結果經捨入並隨後用以計算殘差(定位-經預測定位),該殘差經附加至輸出頂點表的末尾。在沒有找到有效的平行四邊形的情況下,則採用回退至差量寫碼。
對於使用主索引表對UV座標的編碼預測,該程序遵循與用於定位類似的擴展。關鍵區別在於利用最小拉伸方法而不是用於預測的多平行四邊形。此外,預測並未加總;而是,該程序在三角形扇內的第一有效(就預測而言)鄰近者停止,並計算最小拉伸,如圖10A及圖10B所描繪。uvEncodeWithPrediction程序的進一步細節可在表3中找到,而實際的預測語句在表4中繪示。
V-DMC工具也已增加對多個屬性的支援,其中網格可具有多於一個紋理圖。類似地,基礎網格編碼器亦具有針對UV座標單獨索引增加的支援。在此情況下,UV座標不必與定位(主要屬性)的順序相同。
表1至表4所示的碼僅用於編碼側(編碼器)。解碼器遵循類似的步驟,但順序相反。 1 :編碼器屬性 2 :使用多平行四邊形的 posEncodeWithPrediction 3 uvEncodeWithPrediction 4 PredictUV
目前,V-DMC軟體涉及基礎網格編碼器。基礎網格編碼器對三角形及頂點的屬性及連接性兩者進行編碼。一般使用預測方案來編碼屬性,以使用先前已訪查/編碼/解碼的頂點來預測頂點屬性。接著自實際的屬性值減去預測以獲得殘差。最後,使用熵編碼器來編碼殘差屬性值,以獲得經編碼基礎網格屬性位元流。含有頂點屬性的屬性位元流通常具有幾何/定位屬性及UV座標(紋理屬性),但可含有任何數目的屬性,如法線、每頂點RGB值等。
基礎網格編碼器中的屬性編碼程序如圖8A所示且包括:-     拓撲/連接性:基礎網格中的拓撲是透過使用CLERS運算碼的EdgeBreaker來編碼的。此不僅含有連接性資訊,也含有網格的資料結構(目前實施方案採用隅角表)。採用拓撲/連接性資訊以尋找鄰近頂點。-     屬性:此等包括幾何(3D座標)、UV座標(紋理)、法線、RGB值等。-     鄰近屬性:此等係經採用以預測目前頂點屬性的鄰近頂點的屬性。-     目前屬性:此係目前頂點的屬性。自目前頂點屬性減去經預測屬性以獲得殘差。-     預測。此等預測可從連接性及/或從先前已訪查/編碼/解碼的頂點獲得。例如,幾何的多平行四邊形程序、UV座標的最小拉伸方案等。-     殘差。此等係藉由自原始屬性減去預測來獲得。(例如,殘差= current_vertex_attribute – predicted_attribute)。-     熵編碼。最後,對殘差進行熵編碼以獲得位元流。
圖8A及圖8B展示用於基礎網格編碼/解碼(亦稱為靜態網格編碼/解碼)的編碼器及解碼器架構。圖8A展示基礎網格編碼器812,其表示圖2中的基礎網格編碼器212的實例實施方案,而圖8B展示基礎網格解碼器814,其表示圖3中的基礎網格解碼器314的實例實施方案。
在圖8A的實例中,基礎網格編碼器812判定經重建鄰近者屬性830及拓撲/連接性資訊832以判定預測834。基礎網格編碼器812自目前屬性836減去(842)預測834以判定殘差838。經重建鄰近者屬性830表示已編碼頂點屬性的經解碼值,且目前屬性836表示未編碼頂點屬性的實際值。因此,殘差838表示未編碼頂點屬性的實際值與該等頂點屬性的經預測值之間的差。基礎網格編碼器812可對殘差838進行熵編碼(840)。
在圖8B的實例中,基礎網格解碼器814以與基礎網格編碼器812判定預測834相同的方式判定經重建鄰近者屬性860及拓撲/連接性資訊862以判定預測864。基礎網格解碼器814對經熵編碼殘差值進行熵解碼(870)以判定殘差868。基礎網格解碼器814將預測864與殘差868相加(1172),以判定經重建目前屬性866。經重建目前屬性866表示目前屬性836的經解碼版本。
基礎網格編碼器係V-DMC結構的不可或缺的一部分。V-DMC中的無損編碼重度依賴基礎網格編碼器,而在無損編碼器中,基礎網格編碼的品質極大地影響最終經重建網格。基礎網格編碼器亦形成V-DMC整體位元流的重要部分。因此,可能需要進一步減小基礎網格編碼器的位元流大小。屬性位元流囊括大量的經基礎網格編碼的位元流。屬性位元流含有殘差屬性值。可觀察到此等殘差的熵仍是大的且鄰近頂點的殘差之間仍然可能存在相關性。目標可係減少屬性位元流的大小且進一步降低待針對基礎網格編碼的屬性及/或殘差的熵。
法線係垂直於網格表面的向量。法線可用以判定表面的定向並應用著色。在3D建模中,法線在建立逼真的物體中扮演重要角色。法線有助於定義物體的形狀及其如何與光相互作用。法線亦用於電腦圖形中,以建立光滑的表面並計算光的反射。此外,法線在視訊遊戲中使用以建立逼真的環境並改良遊戲的性能。總之,法線係3D建模及電腦圖形的必要組分,且在從視訊遊戲至科學模擬的廣泛範圍之應用中使用。
V-DMC測試模型v6.0(TMM v6.0)的目前版本支援網格的定位及紋理資料的編碼,但缺乏法線編碼的整合。m63344中的V-DMC基礎網格寫碼將網格的連接性編碼,而定位及紋理經編碼為頂點的屬性。動態網格寫碼需要將法線編碼作為網格的屬性合併及支援。本揭露描述將法線編碼的實施方案引入至包括m63344中的基礎網格EdgeBreaker實施方案的V-DMC TMM v6.0中之技術。本揭露描述在V-DMC TMM中對法線以及法線圖編碼之技術。
本揭露描述下列之技術:•     將法線編碼整合在V-DMC中。•     提出V-DMC中的法線圖編碼。•     提出V-DMC中的每頂點法線編碼。•     將法線編碼整合在V-DMC內的基礎網格編碼器中。•     提出基礎網格編碼器中的法線編碼的預測方案。
V-DMC的目前版本中的基礎網格解碼器經展示為圖6中的基礎網格解碼器650。現在將描述系統架構的態樣。本揭露將法線編碼分類成兩個類型/種類。法線編碼大致上係指每頂點法線值,這意謂各頂點可具有對應的法線向量(x,y,z)。法線圖編碼大致上係指使用包括2D法線影像的法線圖,其含有法線值及對應的每頂點法線座標(u,v)。法線座標給出法線值在法線圖上的位置。
V-DMC編寫碼情況可分為(1)無損模式:框內壓縮,(2)有損模式:框內壓縮,(3)有損模式:框間壓縮。圖9至圖14展示V-DMC架構的更新,其中針對所有三個條件,用於法線編碼以及法線圖編碼兩者。此等圖的結構大致上與圖5、圖6、圖7相同,其中僅將每頂點法線編碼添加至架構。
法線圖的視訊解碼器。
本揭露之技術可採用與紋理圖編碼中所採用的相同視訊解碼器來編碼法線圖。
具有法線支援的位移解碼器。
可如V-DMC中如何採用定位編碼的位移向量般採用法線的位移向量。
法線的位移向量改變法線的方向,且可係一維或三維。法線的位移向量可以與圖4至圖6所示之定位的位移向量相同的方式編碼。
具有法線支援的運動解碼器。
法線的運動編碼/解碼可以與定位的運動編碼/解碼相同的方式實施。運動向量從一個圖框至下一個圖框改變法線,且僅在框間預測寫碼模式下採用。
具有法線支援的靜態網格解碼器。
此靜態網格編碼器適用於法線圖編碼。使用法線圖時,需要編碼2D法線圖座標(u,v)。其可以兩種方式實施。法線圖可採用相同座標作為紋理圖的紋理座標,具有單獨座標。
若紋理及法線圖共用相同的座標,則可共用相同的UV座標而無需任何編輯。然而,若待編碼新的法線座標,則靜態網格編碼器將使用與編碼紋理的UV座標相同的程序來編碼單獨法線座標。
圖9繪示無損模式下的法線編碼。在圖9的實例中,V-DMC解碼器900接收輸入網格圖框,並提取基礎網格子位元流(base mesh sub-bitstream, BMSB)。靜態網格及法線屬性解碼器902無損地解碼基礎網格子位元流,以判定網格的連接性、幾何、UV座標、及法線。V-DMC解碼器900亦從輸入網格圖框提取紋理mab子位元流(texture mab sub-bitstream, TMSB),且視訊解碼器904解碼紋理圖子位元流以判定2D紋理影像。2D紋理影像可包括複數個紋理值,且網格的UV座標可對應於影像中的紋理值。
圖10繪示有損框內模式下的法線編碼。在圖10的實例中,V-DMC解碼器1000接收輸入網格圖框,並提取基礎網格子位元流(BMSB)。靜態網格及法線屬性解碼器1002解碼基礎網格子位元流,以判定基礎網格的連接性、幾何、UV座標、及法線。V-DMC解碼器1000亦從輸入網格圖框提取位移子位元流(displacement sub-bitstream, DSB),且位移解碼器1006判定位移向量。接著,V-DMC解碼器1000基於位移修改基礎網格以判定經重建變形網格。V-DMC解碼器1000亦可基於位移向量判定新法線值或修改已判定法線值。V-DMC解碼器1000亦從輸入網格圖框提取紋理mab子位元流(TMSB),且視訊解碼器1004解碼紋理圖子位元流以判定2D紋理影像。2D紋理影像可包括複數個紋理值,且網格的UV座標可對應於影像中的紋理值。
圖11繪示有損框間模式下的法線編碼。在圖11的實例中,V-DMC解碼器1100接收輸入網格圖框,並提取基礎網格子位元流。靜態網格及法線屬性解碼器1002解碼基礎網格子位元流以判定運動向量,並基於儲存在基礎網格緩衝器1108中的運動向量及經解碼基礎網格判定基礎網格的連接性、幾何、UV座標、及法線。V-DMC解碼器1100亦從輸入網格圖框提取位移子位元流(DSB),且位移解碼器1106判定位移向量。接著,V-DMC解碼器1100基於位移向量修改基礎網格以判定經重建變形網格。V-DMC解碼器1100亦可基於位移向量判定新法線值或修改已判定法線值。V-DMC解碼器1100亦從輸入網格圖框提取紋理mab子位元流,且視訊解碼器1104解碼紋理圖子位元流以判定2D紋理影像。2D紋理影像可包括複數個紋理值,且網格的UV座標可對應於影像中的紋理值。
圖12繪示無損模式下的法線圖編碼。在圖12的實例中,V-DMC解碼器1200接收輸入網格圖框,並提取基礎網格子位元流。靜態網格及法線支援解碼器1202無損地解碼基礎網格子位元流,以判定網格的連接性、幾何、UV座標、及法線座標。V-DMC解碼器900亦從輸入網格圖框提取紋理mab子位元流,且視訊解碼器904解碼紋理圖子位元流以判定2D紋理影像。2D紋理影像可包括複數個紋理值,且網格的UV座標可對應於影像中的紋理值。V-DMC解碼器1200亦從輸入網格圖框提取法線mab子位元流(normal mab sub-bitstream, NMSB),且視訊解碼器1210解碼法線圖子位元流以判定2D法線影像。2D法線影像可包括複數個法線值,且網格的法線座標可對應於影像中的法線值。
圖13繪示有損框內模式下的法線圖編碼。在圖13的實例中,V-DMC解碼器1300接收輸入網格圖框,並提取基礎網格子位元流。靜態網格及法線屬性解碼器1302解碼基礎網格子位元流,以判定基礎網格的連接性、幾何、UV座標、及法線座標。V-DMC解碼器1300亦從輸入網格圖框提取位移子位元流(DSB),且位移解碼器1306判定位移向量。接著,V-DMC解碼器13000基於位移修改基礎網格以判定經重建變形網格。V-DMC解碼器1300亦可基於位移向量判定新法線座標或修改已判定法線座標。V-DMC解碼器1300亦從輸入網格圖框提取紋理mab子位元流,且視訊解碼器1304解碼紋理圖子位元流以判定2D紋理影像。2D紋理影像可包括複數個紋理值,且網格的UV座標可對應於影像中的紋理值。V-DMC解碼器1300亦從輸入網格圖框提取法線mab子位元流,且視訊解碼器1310解碼法線圖子位元流以判定2D法線影像。2D法線影像可包括複數個法線值,且網格的法線座標可對應於影像中的法線值。
圖14繪示有損框間模式下的法線圖編碼。在圖14的實例中,V-DMC解碼器1400接收輸入網格圖框,並提取基礎網格子位元流。靜態網格及法線屬性解碼器1402解碼基礎網格子位元流以判定運動向量,並基於儲存在基礎網格緩衝器1408中的運動向量及經解碼基礎網格判定基礎網格的連接性、幾何、UV座標、及法線座標。V-DMC解碼器1400亦從輸入網格圖框提取位移子位元流,且位移解碼器1406判定位移向量。接著,V-DMC解碼器1400基於位移向量修改基礎網格以判定經重建變形網格。V-DMC解碼器1400亦可基於位移向量判定新法線值或修改已判定法線值。V-DMC解碼器1400亦從輸入網格圖框提取紋理mab子位元流,且視訊解碼器1404解碼紋理圖子位元流以判定2D紋理影像。2D紋理影像可包括複數個紋理值,且網格的UV座標可對應於影像中的紋理值。V-DMC解碼器1400亦從輸入網格圖框提取法線mab子位元流,且視訊解碼器1410解碼法線圖子位元流以判定2D法線影像。2D法線影像可包括複數個法線值,且網格的法線座標可對應於影像中的法線值。
現在將描述具有法線支援的靜態網格之態樣。靜態網格編碼器採用EdgeBreaker以編碼基礎網格的連接性/拓撲,並使用如圖8A及圖8B所示之預測方案來編碼基礎網格屬性(定位、UV座標)。屬性預測方案將關於圖15更詳細地描述。將新屬性添加至基礎網格可包括新預測方案,且遵循如圖8A及圖8B所示的相同程序。
本揭露描述用於靜態網格編碼的多個預測方案。
由其他屬性使用的預測方案包括用於UV座標(紋理)的最小拉伸預測,及用於定位的多平行四邊形。該兩個預測方案採用圖15所示的隅角表表示。所揭示的預測方案亦可採用edge breaker的預設隅角表資料表示。
圖15展示一實例隅角表表示。圖15使用下列縮寫:目前頂點(c)、下一個頂點(c.n)、上一個頂點(c.p)、對頂點(opposite vertex) (c.o)。此順序在目前頂點c周圍建立一扇。圖15亦展示右角(c.r)及左角(c.l)。
現在將描述根據本揭露之技術的預測方案。現在將描述多平行四邊形預測。藉由查找其頂點全部周圍來計算經估計法線,以利用對角來計算並匯總各平行四邊形預測。已訪查所有頂點的所有平行四邊形使用作為預測,且在最後對所有預測取平均。
對於一個平行四邊形的estNorm的式為:estNorm = PrevNorm + NextNorm - OppositeNorm; 5 ,法線預測:多平行四邊形。
多平行四邊形的額外特徵:
V-DMC的7.0 TMM版本將下列改良引入至用於法線預測的多平行四邊形方法:•     在目前頂點(其法線正被預測的頂點)周圍使用平行四邊形執行預測。•  在目前頂點周圍走遍該扇(圖15),並使用由c、c.n、c.p、及c.o(其等係目前頂點、下一個頂點、上一個頂點、及對頂點)形成的平行四邊形。•     使用此平行四邊形以預測目前頂點的法線。•     對來自在目前頂點周圍的不同平行四邊形的所有多個預測取平均。•     對預測進行正規化(以改良預測)。•  將預測縮放至原始尺度/量化(因為在正規化之後會遺失)。•     最後自原始法線減去預測並儲存殘差(例如,圖11A)。•     若扇周圍沒有平行四邊形可用,則藉由將預測作為上一個頂點或下一個頂點來採取差量寫碼。•     若上一個頂點及下一個頂點不可用,則頂點可能位於邊界上,且邊界鄰近頂點可使用作為預測。•     若此等情況都不滿足,則該頂點可係網格的第一頂點,且因此,此頂點的全域值經儲存而不是預測。
表5.1展示v7.0中用於法線的多平行四邊形的潛在改良實施方案。 5.1 :法線預測: v7.0 中的改良多平行四邊形。
差量寫碼(程序 # 2
此程序不會在「扇」周圍進行迴路,且不會進行多個估計。而是,此程序僅使用單一隅角(上一個或下一個)。V-DMC編碼器200檢查上一個隅角及/或下一個隅角,且估計上一個頂點及/或下一個頂點的法線與目前頂點的法線之間的差並編碼該差。estNorm = PrevNorm;EncodedNorm = estNorm – actualNorm; 6 :法線預測:差量寫碼oNormals.push_back(Norm[V[c]] - Norm[V[OV.p(c)]]);
現在將描述多平行四邊形預測的額外特徵。V-DMC的v7.0 TMM將下列改良引入至用於法線預測的多平行四邊形方法:•     將預測作為上一個頂點的法線或下一個頂點的法線。•     若上一個頂點及下一個頂點不可用,則頂點可能位於邊界上,且邊界鄰近頂點可使用作為預測。•     若此等情況都不滿足,則該頂點可係網格的第一頂點,且因此,V-DMC解碼器300可儲存此頂點的全域值而不是預測它。
表6.1展示v7.0 TMM中對法線的差量寫碼的改良實施方案。 6.1 法線預測:對 v7.0 TMM 中差量寫碼的改良
程序 # 3
此程序不會在「扇」周圍進行迴路,且不會進行多個估計。而是,在此程序中,V-DMC解碼器300使用目前三角形對上一個值及下一個值取平均。 7 :法線預測:程序 # 3
程序 # 4
在此程序中,V-DMC解碼器300不會在「扇」周圍進行迴路,且不會進行多個估計。而是,在此程序中,V-DMC解碼器300使用目前三角形對三個值取平均:上一個值、下一個值、相對值。 8 :法線預測:程序 # 4
程序 # 5
在此程序中,V-DMC解碼器300在「扇」周圍進行迴路,並進行多個估計。V-DMC解碼器300使用上一個法線值及下一個法線值的平均以進行估計。最後,V-DMC解碼器300對所有估計取平均。請注意,如同以往,僅當該等頂點先前經訪查時才進行估計。 9 :法線預測:程序 # 5
程序 # 6
在此程序中,V-DMC解碼器300在「扇」周圍進行迴路,並進行多個估計。V-DMC解碼器300使用上一個隅角、下一個隅角、及相對法線值的平均以進行估計。最後,V-DMC解碼器300對所有估計取平均。請注意,如同以往,僅當該等頂點先前經訪查時才進行估計。 10 :法線預測:程序 # 6
程序 # 7
在此程序中,V-DMC解碼器300不會在「扇」周圍進行迴路,且不會進行多個估計。而是,在此程序中,V-DMC解碼器300使用目前三角形對。
V-DMC解碼器300使用三個值預測目前頂點的法線:上一個值、下一個值、相對值。AvgTemp = (PrevNorm + NextNorm)/2;estNorm = AvgTemp - (OppositeNorm - AvgTemp); 11 :法線預測:程序 # 7
程序 # 8
在此程序中,V-DMC解碼器300重複程序# 7,但跨整個扇。在此程序中,V-DMC解碼器300在「扇」周圍進行迴路,並進行多個估計。最後,V-DMC解碼器300對所有估計取平均。請注意,如同以往,僅當該等頂點先前經訪查時才進行估計。
預測程序與程序# 7相同,但針對目前隅角頂點周圍的所有平行四邊形。AvgTemp = (PrevNorm + NextNorm)/2;estNorm = AvgTemp - (OppositeNorm - AvgTemp);
此程序類似於程序# 0,因為上述方程式可化簡至程序# 0中的相同方程式。 12 :法線預測:程序 # 8
反距離加權(L1),程序# 9
在此程序中,V-DMC解碼器300在「扇」周圍進行迴路,並進行多個估計。最後,V-DMC解碼器300對所有估計取加權平均。請注意,如同以往,僅當該等頂點先前經訪查時才進行估計。
使用反距離權重估計。該距離經計算為L1距離。 13 :法線預測:程序 # 9
反距離加權 (L2) ,程序 # 10
與程序# 9相同,但使用L2距離(均方距離)而不是L1距離來計算距離。 14 :法線預測:程序 # 10
程序 # 11
在此程序中,V-DMC解碼器300在「扇」周圍進行迴路,並進行多個估計。
在此程序中,估計係上一個頂點與下一個頂點之間的中點的法線。接著,V-DMC解碼器300選擇與目前隅角頂點最近距離的估計。 15 :法線預測:程序 # 11
程序 # 12
在此程序中,V-DMC解碼器300在「扇」周圍進行迴路,並使用程序# 1中使用的多平行四邊形方法來估計法線。然而,V-DMC解碼器300不是對所有經估計法線取平均,而是選擇從具有與目前隅角的頂點最近的對角距離的三角形計算的估計法線。 16 :法線預測:程序 # 12
程序 # 13
在此程序中,V-DMC解碼器300在「扇」周圍進行迴路,並選擇接近目前隅角頂點的頂點的法線。V-DMC解碼器300可僅考慮各平行四邊形中的上一個隅角及下一個隅角的頂點,因為該等隅角將最接近目前隅角的頂點。 17 :法線預測:程序 # 13
程序 # 14
在此程序中,V-DMC解碼器300採用紋理屬性寫碼中的UV座標預測中所採用的最小拉伸程序。程序如表3及表4所示。V-DMC解碼器300可使用相同的技術,但使用法線而不是UV座標。
程序 # 15
在此程序中,V-DMC解碼器300使用上一個隅角的法線、下一個隅角的法線、及對角的法線來估計目前隅角的頂點。
我們發現線()連接上一個()及下一個()
我們發現線()連接上一個()及下一個()
我們發現線相交的點()。
接著我們估計點上的法線()
我們使用使用程序# 1中的平行四邊形來預測點
我們可針對單一平行四邊形或在「扇」周圍行進而進行此程序,且進行多平行四邊形方法用於預測並接著取平均。
程序 # 16
在此程序中,V-DMC解碼器300可不僅採用上一個隅角及下一個隅角,亦採用左隅角及右隅角。V-DMC解碼器300可針對單一平行四邊形或在「扇」周圍行進而進行此程序,且進行多平行四邊形方法用於預測並接著取平均。
基於學習的預測,程序 # 17
在此程序中,V-DMC解碼器300可採用深度學習模型且/或使用鄰近以及先前訪查及/或經解碼頂點,以預測目前頂點的法線。
此構成一基於學習的預測方案。
基於幾何的叉積法線估計,程序 # 18:此程序使用幾何以預測目前隅角頂點的法線。
此程序採用來自上一個頂點、下一個頂點、及目前頂點的幾何以預測目前頂點的法線。V-DMC解碼器300可找到上一個頂點與目前頂點之間的向量,並找到下一個頂點與目前頂點之間的另一頂點。接著,V-DMC解碼器300可進行此等兩個頂點之間的叉積,以獲得目前頂點的法線。
目前頂點的法線的預測方案包括使用幾何計算上一個頂點與目前頂點,以及下一個頂點與目前頂點之間的向量。接著,V-DMC解碼器300可進行叉積以求出法線。const glm::vec3 v12 = G[V[OV.p(c)]] - G[V[c]];const glm::vec3 v13 = G[V[OV.n(c)]] - G[V[c]];glm::vec3 normal = glm::cross(v13, v12);
由於基於來自幾何的向量來預測法線,因此法線的方向可基於兩個向量的叉積(即,「cross(v12, v13)」或「cross(v13, v12)」)而位於兩個方向上。V-DMC解碼器300可額外地發送叉積的順序及/或法線的方向作為叉積解決方案的附加資訊。 18 :使用叉積的法線預測。程序 # 18
法線估計的叉積的平均,程序 # 19 程序# 19表示對程序# 18的潛在修改。
在程序# 19中,V-DMC解碼器300可從目前頂點周圍的所有可用三角形進行多個預測,而不是如程序# 18中使用叉積進行單一預測。接著,V-DMC解碼器300可對此等預測取平均。由於在EdgeBreaker中的幾何編碼期間計算叉積,因此此程序可稱為「CrossproductEB」。
由於基於來自幾何的向量來預測法線,法線的方向可基於兩個向量的叉積(即,「cross(v12, v13)」或「cross(v13, v12)」)而位於兩個方向上。V-DMC解碼器300可額外地發送叉積的順序及/或法線的方向作為叉積解決方案的附加資訊。 19 :使用多個叉積的法線預測。程序 # 19
幾何壓縮完成後的叉積。程序 # 20
在此程序中,V-DMC編碼器200可首先編碼幾何,而不是在幾何的EdgeBreaker編碼期間預測及編碼法線。一旦針對所有頂點編碼幾何,V-DMC編碼器200就可使用此幾何,以使用目前隅角的頂點周圍的所有三角形的叉積來計算法線。由於幾何已編碼,V-DMC編碼器200可使用周圍的所有三角形來預測目前頂點的法線。此給出最好的結果,因為可採用所有幾何來預測法線,而不僅是經解碼/編碼幾何。此程序可稱為「Crossproduct Global」。
由於基於來自幾何的向量來預測法線,因此法線的方向可基於兩個向量的叉積(即,「cross(v12, v13)」或「cross(v13, v12)」)而位於兩個方向上。V-DMC編碼器200可額外地發送叉積的順序及/或法線的方向作為叉積解決方案的附加資訊。 20 :幾何壓縮後使用叉積的法線預測。 Crossproduct Global 」,程序 # 20
使用對頂點及目前頂點的投影的法線預測。程序 # 21
圖16A至16C展示法線預測的實例。圖16A展示使用上一個頂點(P)、下一個頂點(N)、及對頂點(O)以預測目前頂點C的實例。16A展示可用以預測目前頂點(C)法線的不同頂點。通常(如先前程序所示),V-DMC解碼器300可採用P、N、及O頂點的組合以預測C處的法線。V-DMC解碼器300可採用鄰近頂點(P,N,O)的法線及/或幾何以預測目前頂點的法線。
然而,在程序# 21中,V-DMC解碼器300可使用任意(或虛置頂點)X及Y,如圖16B及圖16C所示。X及Y係由頂點C及O在PN平面上的投影所產生的頂點。
V-DMC解碼器300可對P及N處的法線取基於距離的加權平均以獲取X及Y處的法線。
接著,V-DMC解碼器300可使用X、Y、及O處的法線的組合以獲得C處的法線。
此一預測的一個組合可係:
此方程式類似於程序# 1中的多平行四邊形。然而,V-DMC解碼器300可採用X及Y頂點,而不是使用P及N頂點。
類似地,V-DMC解碼器300可針對一個三角形或在頂點的「扇」周圍行進而進行此程序,且從不同三角形/平行四邊形進行多個預測並接著取其平均。
其他程序
我們可使用目前頂點周圍的不同頂點組合,並使用其等法線、幾何、及/或UV座標以預測目前頂點的法線。
可採用目前頂點周圍的頂點及/或隅角。可採用此等鄰近者的屬性以預測目前頂點的法線。此等屬性可包括幾何、uv座標、法線等。
對基於叉積的程序之更新。
V-DMC的v7.0 TMM將下列潛在改良引入至基於叉積的法線預測:•     在v7.0 TMM V-DMC中,法線係在幾何的編碼/解碼後預測的。此意味著所有頂點的幾何可用於預測法線。•  目前頂點周圍的所有可用三角形用以預測目前頂點的法線。•     在目前頂點周圍走遍該扇(圖15)並使用頂點的幾何:c、c.n、及c.p(目前頂點、下一個頂點、及上一個頂點)以預測面法線。•     對目前頂點周圍的所有面法線(在該扇中)取平均。•     請注意,與其他預測方案不同,基於叉積的預測使用頂點的幾何來預測法線。而在先前方法中,採用先前編碼/訪查法線以預測目前頂點的法線。•     若目前頂點周圍的所有三角形的幾何不可用,則回退至差量寫碼。在此情況下,來自上一個頂點或下一個頂點的法線將使用作為預測。•     若上一個頂點及下一個頂點不可用,則頂點可能位於邊界上,且邊界鄰近頂點可使用作為預測。•     若此等情況都不滿足,則該頂點可係網格的第一頂點,且因此,V-DMC解碼器300可儲存此頂點的全域值而不是預測它。
此實施方案的碼如表21所示。 21 :法線預測: v7.0 中基於叉積的法線預測的改良
V-DMC 語法的補充
此等係V3C參數中的語法元素(參見美國臨時專利申請案第63/621,478號)及採用於法線編碼的基礎網格語法及語義。
用於實施本揭露之技術的語法在分隔符號<**>與</**>之間指示。H.8.1.3.1.1 通用基礎網格序列參數集 RBSP 語法
bmesh_sequence_parameter_set_rbsp( ) { 描述符
             bmsps_sequence_parameter_set_id u(4)
             bmesh_profile_tier_level( )
bmsps_intra_mesh_codec_id u(8)
bmsps_inter_mesh_codec_id u(8)
bmsps_geometry_3d_bit_depth_minus1 u(5)
bmsps_inter_mesh_max_num_mvp_cand_minus1 u(2)
<**>bmsps_mesh_attribute_count</**> u(7)
             for( i = 0; i < bmsps_mesh_attribute_count; i++ ) {
                    bmsps_mesh_attribute_index[ i ] u(8)
                    <**>bmsps_mesh_attribute_type_id[ i ] </**> u(4)
                    <**>bmsps_attribute_bit_depth_minus1[ i ] </**> u(5)
                    bmsps_attribute_msb_align_flag[ i ] u(1)
             }
bmsps_intra_mesh_post_reindex_method ue(v)
bmsps_log2_max_mesh_frame_order_cnt_lsb_minus4 ue(v)
bmsps_max_dec_mesh_frame_buffering_minus1 ue(v)
bmsps_long_term_ref_mesh_frames_flag u(1)
bmsps_num_ref_mesh_frame_lists_in_bmsps ue(v)
             for( i = 0; i < bmsps_num_ref_mesh_frame_lists_in_bmsps; i++ )
                    bmesh_ref_list_struct( i )
bmsps_inter_mesh_motion_group_size_minus1 ue(v)
bmsps_inter_mesh_max_num_neighbours_minus1 ue(v)
             bmsps_extension_present_flag u(1)
             if( bmsps_extension_present_flag ) {
                    bmsps_extension_count u(8)
             }
             if( bmsps_extension_count ){
                    bmsps_extensions_length_minus1 ue(v)
                    for( i = 0; i < bmsps_extension_count; i++ ) {
                           bmsps_extension_type[ i ] u(8)
                           bmsps_extension_length[ i ] u(16)
                                 bmsps_extension( bmsps_extension_type[ i ], bmsps_extension_length[ i ] )
                    }
             }
             rbsp_trailing_bits( )
}
H-2 :(參見美國臨時專利申請案第 63/621,478 號)
bmsps_mesh_attribute_type_id[[ i ] 識別符 屬性類型
0 ATTR_TEXTURE 紋理
1 ATTR_MATERIAL_ID 材質ID
2 ATTR_TRANSPARENCY 透明度
3 ATTR_REFLECTANCE 反射
<**>4</**> <**>ATTR_NORMAL</**> <**>法線</**>
5 ATTR_FACEGROUP_ID 面群組ID
6..14 ATTR_RESERVED 保留
15 ATTR_UNSPECIFIED 未指定
8.3.4.5屬性資訊語法
attribute_information(atlasID) { 描述符
            <**>ai_attribute_count[ atlasID ] </**> u(7)
            for( i = 0; i < ai_attribute_count[ atlasID ]; i++ ) {
                        <**>ai_attribute_type_id[ atlasID ][ i ] </**> u(4)
                        <**>ai_attribute_codec_id[ atlasID ][ i ] </**> u(8)
if( vps_auxiliary_video_present_flag[ atlasID ] )
                                    ai_auxiliary_attribute_codec_id[ atlasID ][ i ] u(8)
if( vps_map_count_minus1[ atlasID ] > 0 )
ai_attribute_map_absolute_coding_persistence_flag[ atlasID ][ i ] u(1)
                        ai_attribute_dimension_minus1[ atlasID ][ i ] u(6)
                        if( ai_attribute_dimension_minus1[ atlasID ][ i ] > 0 ) {
                                    ai_attribute_dimension_partitions_minus1[ atlasID ][ i ] u(6)
                                    remainingDimensions = ai_attribute_dimension_minus1[ atlasID ][ i ]
                                    k = ai_attribute_dimension_partitions_minus1[ atlasID ][ i ]
                                    for( j = 0; j < k; j++ ) {
                                                if( k – j == remainingDimensions )
                                                            ai_attribute_partition_channels_minus1[ atlasID ][ i ][ j ] = 0
                                                else
                                                            ai_attribute_partition_channels_minus1[ atlasID ][ i ][ j ] ue(v)
                                                remainingDimensions –=                                                             ai_attribute_partition_channels_minus1[ atlasID ][ i ][ j ] + 1
                                    }
                                    ai_attribute_partition_channels_minus1[ atlasID ][ i ][ k ] = remainingDimensions
                        }
                        ai_attribute_2d_bit_depth_minus1[ atlasID ][ i ] u(5)
                        ai_attribute_MSB_align_flag[ atlasID ][ i ] u(1)
            }
}
基礎網格編碼器語法:I.8.3.2網格寫碼標頭語法
mesh_coding_header( ) { 描述符
             mesh_codec_type u(2)
             mesh_vertex_traversal_method ue(v)
             mesh_position_encoding_parameters( )
             mesh_position_dequantize_flag u(1)
             if (mesh_position_dequantize_flag )
                    mesh_position_dequantize_parameters( )
             <**>mesh_attribute_count</**> u(5)
             for( i=0; i<mesh_attribute_count; i++ ){
                    <**>mesh_attribute_type[ i ] </**> u(3)
                    if( mesh_attribute_type[ i ] == MESH_ATTR_TEXCOORD )
                           NumComponents[ i ] = 2
                    <**>else if( mesh_attribute_type[ i ] == MESH_ATTR_NORMAL ) </**>
                    <**>NumComponents[ i ] = 3</**>
                    else if( mesh_attribute_type[ i ] == MESH_ATTR_COLOR )
                           NumComponents[ i ] = 3
                    else if( mesh_attribute_type[ i ] == MATERIAL_ID )
                           NumComponents[ i ] = 1
                    else if( mesh_attribute_type[ i ] == GENERIC ) {
                           mesh_attribute_num_components_minus1[ i ] u(2)
                                 NumComponents[ i ] = mesh_attribute_num_components_minus1[ i ]+1
                    }
                    mesh_attribute_encoding_parameters ( i )
                    <**>mesh_attribute_dequantize_flag[ i ] </**> u(1)
                    if (mesh_attribute_dequantize_flag[ i ] )
                           mesh_attribute_dequantize_parameters ( i )
             }
             length_alignment( )
}
I.8.3.5網格屬性編碼參數語法
mesh_attribute_encoding_parameters( index ) { 描述符
             <**>mesh_attribute_bit_depth_minus1[ index ] </**> u(4)
             <**>mesh_attribute_per_face_flag[ index ] </**> u(1)
             if( !mesh_attribute_per_face_flag[ index ] ) {
                    <**>mesh_attribute_separate_index_flag[ index ] </**> u(1)
                    if( !mesh_attribute_separate_index_flag[ index ] )
                           <**>mesh_attribute_reference_index_plus1[ index ] </**> ue(v)
             }
             <**>mesh_attribute_prediction_method[ index ] </**> ue(v)
             <**>mesh_attribute_residuals_encoding_method[ index ] </**> ue(v)
}
I.8.3.5網格屬性解量化參數語法
mesh_attribute_dequantize_parameters( index ) { 描述符
             for( j=0; j < NumComponents[ index ]; j++ ){
                    <**>mesh_attribute_min[ index ][ j ] </**> fl(32)
                    <**>mesh_attribute_max[ index ][ j ] </**> fl(32)
             }
}
舊表:表I-10:MESH_ATTR_NORMAL類型屬性的網格屬性預測程序
mesh_attribute_prediction_method[ i ] 識別符 預測程序
0 MESH_NORMAL_DEFAULT Default (TODO)
>0 MESH_NORMAL_RESERVED 保留
經更新提出表在此下一個段落描述四個預測方案,其等如下所示:程序# 2:MESH_NORMAL_DELTA程序# 1:MESH_NORMAL_MPARA程序# 19:MESH_NORMAL_CROSSEB程序# 20:MESH_NORMAL_CROSSGL此等亦在前面的段落解釋了。經更新表在前面展示:表I-10:MESH_ATTR_NORMAL類型屬性的網格屬性預測程序
mesh_attribute_prediction_method[ i ] 識別符 預測程序
0 MESH_NORMAL_DELTA 差量(程序# 2)
1 MESH_NORMAL_MPARA 多平行四邊形(程序# 1)
2 MESH_NORMAL_CROSSEB EdgeBreaker期間的叉積 (程序# 19)
3 MESH_NORMAL_CROSSGL 叉積全域(程序# 20)
另一經更新提出表程序# 2:MESH_NORMAL_DELTA程序# 1:MESH_NORMAL_MPARA程序# 23:MESH_NORMAL_CROSS此等亦在前面的段落解釋了。經更新表在前面展示:表I-10:MESH_ATTR_NORMAL類型屬性的網格屬性預測方法
mesh_attribute_prediction_method[ i ] 識別符 預測方法
0 MESH_NORMAL_DELTA 差量(程序# 2)
1 MESH_NORMAL_MPARA 多平行四邊形 (程序# 1)
2 MESH_NORMAL_CROSS 叉積(程序# 23)
框架的改變 / 靈活性:可將下列改變/靈活性添加至此框架:
在採用EdgeBreaker的靜態網格編碼器的目前實施方案(TMM v6.0)中,首先解碼連接性,且接著針對各頂點解碼頂點的屬性(幾何、UV座標)。然而,藉由序列化或並行化屬性編碼程序,系統可具有更多的靈活性,且因此有更好的結果。V-DMC解碼器300可(1)在行進至下一個屬性之前針對所有頂點一次解碼一個屬性,或者(2)在移動至下一個頂點之前針對一個頂點解碼所有屬性。第一程序(1)的可能優點將係給予我們更好的壓縮性能。第二程序(2)的可能優點將係給予我們計算上的並行性,及可潛在地改良編碼/解碼時間的更好硬體實施方案。
在TMM v7.0中,屬性以序列方式解碼。首先解碼拓撲,接著逐一解碼各屬性。上文描述了這一點。
V-DMC解碼器300可採用多個法線預測程序而不是使用單一法線預測程序,並設計用以預測解碼器處正在使用哪個法線預測程序之程序。
我們亦可進一步傳輸額外位元以通知解碼器正在採用哪個法線預測程序。此可在軟體中給予具有多個法線預測程序的靈活性,且使用對目前序列、目前網格、目前子網格、目前連通分量、或一些其他頂點群集最好的法線預測程序。
本揭露的編碼器-解碼器架構可包括量化及解量化。該技術亦可進一步包括針對法線編碼的量化精化。量化精化的態樣在ISO/IEC JTC1/SC29/WG7, m66074, Online, Jan 2024,Jun Tian、Xiaozhong Xu、Shan Liu (Tencent),「[V-DMC][EE4.4] Report on base mesh quantization refinement」解釋,其特此以引用的方式併入本文中。
請注意,基於叉積的法線估計可在任一方向上。V-DMC解碼器300可具有從V-DMC編碼器200接收的信號/參數以傳訊法線的方向。此信號可係序列層級、圖框層級、子網格層級、連通分量層級、頂點/三角形群集,甚至僅是頂點層級(各頂點一個)。V-DMC解碼器300亦可從先前已編碼/解碼法線來預測法線的方向。
現在將描述信號及框架功能性的態樣。對於法線預測本身,一般不需要發送至解碼器側的額外資訊。然而,可為系統添加靈活性,這可能涉及添加額外負擔及需要傳輸額外傳訊位元。
此傳訊可能發生在序列層級、圖框層級、子網格層級、連通分量層級、任何其他較小的頂點群集,甚至每頂點層級。
V-DMC解碼器300可發送至V-DMC解碼器300的額外信號可包括:•     告知使用哪個法線預測的信號。•     告知預測正被應用於什麼層級的信號。•     若存在多個類型的預測,則V-DMC編碼器200可傳訊哪個預測應用於資料的哪一部分。告知法線正面向表面的哪個方向的信號。垂直/法線於表面可能在兩個方向上。然而,法線將僅面向一個方向。為了預測法線,其可潛在地幫助傳訊此方向。
圖17係繪示用於編碼網格的實例程序的流程圖。儘管是就V-DMC編碼器200(圖1及圖2)描述,但應理解,其他裝置亦可經組態以執行與圖17之方法類似的程序。
在圖17的實例中,V-DMC編碼器200接收輸入網格(1702)。V-DMC編碼器200基於輸入網格判定基礎網格(1704)。V-DMC編碼器200基於輸入網格及基礎網格判定一組位移向量(1706)。V-DMC編碼器200輸出包括基礎網格的經編碼表示及位移向量的經編碼表示的經編碼位元流(1708)。V-DMC編碼器200可額外地從輸入網格判定屬性值,並將屬性值向量的經編碼表示包括在經編碼位元流中。
圖18係繪示用於解碼網格資料的經壓縮位元流的實例程序的流程圖。儘管是就V-DMC解碼器300(圖1及圖3)描述,但應理解,其他裝置亦可經組態以執行與圖18之方法類似的程序。
在圖18的實例中,V-DMC解碼器300基於經編碼網格資料判定基礎網格(1802)。V-DMC解碼器300基於經編碼網格資料判定一或多個位移向量(1804)。V-DMC解碼器300使用一或多個位移向量使基礎網格變形(1806)。例如,基礎網格可具有第一組頂點,且V-DMC解碼器300可細分基礎網格以判定基礎網格的額外的一組頂點。為了使基礎網格變形,V-DMC解碼器300可基於一或多個位移向量來修改額外的一組頂點的位置。V-DMC解碼器300基於經變形網格輸出經解碼網格(1808)。V-DMC解碼器300可例如輸出經解碼網格以用於儲存、傳輸、或顯示。
圖19係繪示用於解碼網格資料的經壓縮位元流的實例程序的流程圖。儘管是就V-DMC解碼器300(圖1及圖3)描述,但應理解,其他裝置亦可經組態以執行與圖19之方法類似的程序。
V-DMC解碼器300接收網格的語法元素,其中語法元素的第一值指示待使用多平行四邊形預測來預測網格的頂點,且語法元素的第二值指示待使用叉積預測來預測網格的頂點(1902)。
V-DMC解碼器300基於語法元素選擇多平行四邊形預測或叉積預測之一者作為網格的經選擇預測程序(1904)。回應於判定第一頂點有第一組已解碼法線可用,V-DMC解碼器300使用經選擇預測程序來預測第一頂點的法線(1906)。若經選擇預測程序係多平行四邊形預測,則為了使用經選擇預測程序來預測第一頂點的法線,V-DMC解碼器300可經組態以基於上一個法線值加上下一個法線值減去相對法線值來判定第一頂點的經預測法線值。若經選擇預測程序係叉積預測,則為了使用經選擇預測程序來預測第一頂點的法線,V-DMC解碼器300可經組態以判定上一個頂點與第一頂點之間的第一向量;判定下一個頂點與第一頂點之間的第二向量;且判定第一向量與第二向量的叉積。
回應於判定第二頂點有第二組已解碼法線可用,V-DMC解碼器300使用差量預測程序來預測第二頂點的法線(1908)。為了使用差量預測程序來預測第二頂點的法線,V-DMC解碼器300可經組態以識別相同三角形上的單一頂點作為第二頂點;將第二頂點的經預測法線值設定為等於該單一頂點的法線的頂點值;接收一差值;且將該差值與該第二頂點的該經預測法線值相加,以判定該第二頂點的該法線。
V-DMC解碼器300基於第一頂點的法線及第二頂點的法線來輸出網格的經解碼版本(1910)。例如,第一頂點的法線可係垂直於第一頂點處的網格的經解碼版本的第一向量,且第二頂點的法線可係垂直於第二頂點處的網格的經解碼版本的第二向量。
以下編號之條項說明本揭露中描述之裝置以及技術之一或多個態樣。
條項1.   一種用於處理網格資料之裝置,該裝置包含:一記憶體;及處理電路系統,其耦接至該記憶體,且經組態以:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
條項2.   如條項1之裝置,其中為了使用該差量預測程序來預測該第二頂點的該法線,該處理電路系統經組態以:識別一相同三角形上的一單一頂點作為該第二頂點;將該第二頂點的一經預測法線值設定為等於該單一頂點的一法線的一頂點值;接收一差值;且將該差值與該第二頂點的該經預測法線值相加,以判定該第二頂點的該法線。
條項3.   如條項1之裝置,其中該經選擇預測程序包含多平行四邊形預測,且其中為了使用該經選擇預測程序來預測該第一頂點的該法線,該處理電路系統經組態以:基於一上一個法線值加上一下一個法線值減去一相對法線值來判定該第一頂點的一經預測法線值。
條項4.   如條項1之裝置,其中該經選擇預測程序包含叉積預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線,該處理電路經組態以:判定一上一個頂點與該第一頂點之間的一第一向量;判定一下一個頂點與該第一頂點之間的一第二向量;且判定第一向量與第二向量的叉積。
條項5.   如條項1之裝置,其進一步包含:回應於判定一第三頂點有一第三組已解碼法線可用,接收該網格資料中的該第三頂點的一完整法線值。
條項6.   如條項1之裝置,其中該第一頂點的該法線包含垂直於該第一頂點處的該網格的該經解碼版本的一第一向量,且該第二頂點的該法線包含垂直於該第二頂點處的該網格的該經解碼版本的一第二向量。
條項7.   如條項1之裝置,其中該第一頂點的該法線及該第二頂點的該法線經無損地編碼。
條項8.   如條項1之裝置,其進一步包含一顯示器,以基於該網格的該經解碼版本呈現影像。
條項9.   一種處理網格資料之方法,該方法包含:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
條項10. 如條項9之方法,其中使用該差量預測程序來預測該第二頂點的該法線包含:識別一相同三角形上的一單一頂點作為該第二頂點;將該第二頂點的一經預測法線值設定為等於該單一頂點的一法線的一頂點值;接收一差值;且將該差值與該第二頂點的該經預測法線值相加,以判定該第二頂點的該法線。
條項11. 如條項9之方法,其中該經選擇預測程序包含多平行四邊形預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線包含:基於一上一個法線值加上一下一個法線值減去一相對法線值來判定該第一頂點的一經預測法線值。
條項12. 如條項9之方法,其中該經選擇預測程序包含叉積預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線包含:判定一上一個頂點與該第一頂點之間的一第一向量;判定一下一個頂點與該第一頂點之間的一第二向量;且判定該第一向量與該第二向量的一叉積。
條項13. 如條項9之方法,其進一步包含:回應於判定一第三頂點有一第三組已解碼法線可用,接收該網格資料中的該第三頂點的一完整法線值。
條項14. 如條項9之方法,其中該第一頂點的該法線包含垂直於該第一頂點處的該網格的該經解碼版本的一第一向量,且該第二頂點的該法線包含垂直於該第二頂點處的該網格的該經解碼版本的一第二向量。
條項15. 如條項9之方法,其中該第一頂點的該法線及該第二頂點的該法線經無損地編碼。
條項16. 一種電腦可讀取儲存媒體,其具有儲存在其上的指令,當執行該等指令時使一或多個處理器:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
條項17. 如條項16之電腦可讀取儲存媒體,其中為了使用該差量預測程序來預測該第二頂點的該法線,該一或多個處理器經組態以:識別一相同三角形上的一單一頂點作為該第二頂點;將該第二頂點的一經預測法線值設定為等於該單一頂點的一法線的一頂點值;接收一差值;且將該差值與該第二頂點的該經預測法線值相加,以判定該第二頂點的該法線。
條項18. 如條項16之電腦可讀取儲存媒體,其中該經選擇預測程序包含多平行四邊形預測,且其中為了使用該經選擇預測程序來預測該第一頂點的該法線,該一或多個處理器經組態以:基於一上一個法線值加上一下一個法線值減去一相對法線值來判定該第一頂點的一經預測法線值。
條項19. 如條項16之電腦可讀取儲存媒體,其中該經選擇預測程序包含叉積預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線,該一或多個處理器經組態以:判定一上一個頂點與該第一頂點之間的一第一向量;判定一下一個頂點與該第一頂點之間的一第二向量;且判定第一向量與第二向量的叉積。
條項20. 如請求項16之電腦可讀取儲存媒體,其進一步包含:回應於判定一第三頂點有一第三組已解碼法線可用,接收該第三頂點的一完整法線值。
條項21. 一種處理網格資料之方法,該方法包含:本揭露中所述的任何技術或技術的組合。
條項22. 如條項21中任一項之方法,其進一步包含產生該網格資料。
條項23. 一種用於處理網格資料之裝置,該裝置包含:一記憶體,其經組態以儲存該網格資料;及一或多個處理器,其經耦接至該記憶體,以電路系統實施,且經組態以執行本揭露中所述的任何技術或技術的組合。
條項24. 如請求項23之裝置,其中該裝置包含一解碼器。
條項25. 如請求項23之裝置,其中該裝置包含一編碼器。
條項26. 如條項23至24中任一項之裝置,其進一步包含一裝置以產生該網格資料。
條項27. 如條項23至26中任一項之裝置,其進一步包含一顯示器,以基於該網格資料呈現影像。
條項28. 一種電腦可讀取儲存媒體,其具有儲存在其上的指令,當執行該等指令時使一或多個處理器執行本揭露中所述的任何技術或技術的組合。
應認識到,取決於實例,本文所述之技術之任一者的某些動作或事件可以不同順序執行,可經添加、合併、或完全排除在外(例如,對於實踐本技術並非所有所描述的動作或事件係必要的)。此外,在某些實例中,動作或事件可例如透過多執行緒處理、中斷處理、或多個處理器同時執行,而非循序執行。
在一或多個實例中,所描述的功能可以硬體、軟體、韌體、或其任何組合實施。若以軟體實施,則功能可儲存在電腦可讀取媒體上,或作為在電腦可讀取媒體上的一或多個指令或碼傳輸,並由基於硬體的處理單元執行。電腦可讀取媒體可包括電腦可讀取儲存媒體,其對應於有形媒體(諸如資料儲存媒體)、或通訊媒體(包括促進例如根據通訊協定將電腦程式從一個地方傳送至另一地方的任何媒體)。以此方式,電腦可讀取媒體大致上可對應於(1)非暫時性的有形電腦可讀取儲存媒體,或(2)諸如信號或載波的通訊媒體。資料儲存媒體可係可由一或多個電腦或一或多個處理器存取以提取用於本揭露所述之技術的實施方案的指令、碼、及/或資料結構的任何可用媒體。電腦程式產品可包括電腦可讀取媒體。
舉實例而言,且非限制,此類電腦可讀取儲存媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器、或其他磁性儲存裝置、快閃記憶體,或可用以儲存呈指令或資料結構之形式的所欲程式碼且可由電腦存取的任何其他媒體。再者,任何連接適當地稱為電腦可讀取媒體。例如,若指令使用同軸電纜、光纖纜線、雙絞線、數位用戶線(digital subscriber line, DSL)、或無線技術(諸如紅外線、無線電、及微波)從網站、伺服器、或其他遠端來源傳輸,則同軸電纜、光纖纜線、雙絞線、DSL、或無線技術(諸如紅外線、無線電、及微波)包括在媒體之定義中。然而,應理解,電腦可讀取儲存媒體及資料儲存媒體不包括連接、載波、信號、或其他暫時性媒體,而是關於非暫時性有形儲存媒體。如本文中所使用,磁碟及光碟包括壓縮光碟(compact disc, CD)、雷射光碟、光學光碟、數位多功能光碟(digital versatile disc, DVD)、軟碟、及藍光光碟,其中磁碟通常以磁性方式重新產生資料,而光碟用雷射以光學方式重新產生資料。上述組合亦應被包括在電腦可讀取媒體之範圍內。
指令可由一或多個處理器執行,諸如一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式化閘陣列(FPGA)、或其他等效的整合或離散邏輯電路系統。據此,如本文所使用的用語「處理器(processor)」及「處理電路系統(processing circuitry)」可係指前述結構之任一者或適合用於本文所述之技術的實施方案的任何其他結構。另外,在一些態樣中,本文所述之功能可在經組態用於編碼及解碼的專用硬體及/或軟體模組內提供,或合併在組合編解碼器中。此外,技術可在一或多個電路或邏輯元件中完全實施。
本揭露之技術可在廣泛各種裝置或設備中實施,包括無線手機、積體電路(integrated circuit, IC)、或一組IC(例如,晶片組)。本揭露中描述各種組件、模組、或單元以強調經組態以執行所揭示之技術的裝置的功能態樣,但不一定需要藉由不同的硬體單元來實現。而是,如上所述,各種單元可在編解碼器硬體單元中組合或由互操作硬體單元的集合來提供,包括如上所述的一或多個處理器結合合適的軟體及/或韌體。
已描述各種實例。此等及其他實例係在下列申請專利範圍之範圍內。
100:編碼及解碼系統;系統102:來源裝置104:資料來源106:記憶體108:輸出介面110:電腦可讀取媒體112:儲存裝置114:檔案伺服器116:目的地裝置118:資料消費者120:記憶體122:輸入介面200:V-DMC編碼器204:預處理單元208:圖集編碼器212:基礎網格編碼器216:位移編碼器220:視訊編碼器300:V-DMC解碼器304:解多工器308:圖集解碼器314:基礎網格解碼器316:位移解碼器320:視訊解碼器324:基礎網格處理單元328:位移處理單元332:網格產生單元336:重建單元400:框內模式V-DMC編碼器;V-DMC編碼器402:量化單元404:靜態網格編碼器408:位移更新單元410:小波變換單元412:量化單元414:影像包裝單元416:視訊編碼單元418:影像解包裝單元420:逆量化單元422:逆小波變換單元424:逆量化單元428:經變形網格重建單元430:屬性轉移單元432:填補單元434:色彩空間轉換單元436:視訊編碼單元438:多工器450:控制單元500:框內模式V-DMC解碼器;V-DMC解碼器502:解多工器(DMUX)506:靜態網格解碼器514:逆量化單元516:視訊/影像解碼單元518:影像解包裝單元520:逆量化單元522:逆變換單元524:經變形網格重建單元526:視訊/影像解碼單元528:色彩格式/空間轉換單元600:V-DMC解碼器602:解多工器(DMUX)604:模式選擇單元606:靜態網格解碼器608:運動解碼器610:基礎網格重建單元612:網格緩衝器614:逆量化單元616:視訊解碼器618:影像解包裝單元620:逆量化單元622:逆小波變換單元624:經變形網格重建單元626:視訊解碼器628:色彩空間轉換單元650:基礎網格解碼器702:預處理704:連接性編碼706:屬性預測708:位元流組態710:熵解碼714:連接性解碼716:屬性預測及修正718:後處理812:基礎網格編碼器814:基礎網格解碼器830:經重建鄰近者屬性832:拓撲/連接性資訊834:預測836:目前屬性838:殘差840:熵編碼842:減去860:經重建鄰近者屬性862:拓撲/連接性資訊864:預測866:經重建目前屬性868:殘差870:熵解碼872:相加900:V-DMC解碼器902:靜態網格及法線屬性解碼器904:視訊解碼器1000:V-DMC解碼器1002:靜態網格及法線屬性解碼器1004:視訊解碼器1006:位移解碼器1100:V-DMC解碼器1104:視訊解碼器1106:位移解碼器1108:基礎網格緩衝器1200:V-DMC解碼器1202:靜態網格及法線支援解碼器1204:視訊解碼器1210:視訊解碼器1300:V-DMC解碼器1302:靜態網格及法線屬性解碼器1304:視訊解碼器1306:位移解碼器1310:視訊解碼器1400:V-DMC解碼器1402:靜態網格及法線屬性解碼器1404:視訊解碼器1406:位移解碼器1408:基礎網格緩衝器1410:視訊解碼器1702, 1704, 1706, 1708:步驟1802, 1804, 1806, 1808:步驟1902, 1904, 1906, 1908, 1910:步驟A(i):屬性圖A'(i):經更新屬性圖;經解碼屬性值A''(i):最終屬性值AB:經壓縮屬性位元流BMB:經壓縮基礎網格位元流bi, b(i):經壓縮位元流c, C:目前頂點c.l:左角c.n:下一個頂點c.o:對頂點c.p:上一個頂點c.r:右角DB:經壓縮位移位元流d(i):位移d'(i):經更新位移d''(i):經重建位移DM(i):經重建變形網格e(i):小波係數e'(i):經量化小波係數M(i):靜態/動態網格M''(i):最終經解碼網格;經解碼網格m(i):基礎網格m'(i):經重建量化基礎網格m''(i):經重建基礎網格m''(j):已解碼網格N:下一個頂點O:對頂點P:上一個頂點pe'(i):經包裝量化小波係數rpe'(i):經重建包裝量化小波係數X, Y:虛置頂點
[圖1]係繪示可執行本揭露之技術的實例編碼及解碼系統的方塊圖。
[圖2]展示V-DMC編碼器的實例實施方案。
[圖3]展示V-DMC解碼器的實例實施方案。
[圖4]展示V-DMC的框內模式編碼器的實例實施方案。
[圖5]展示V-DMC的框內模式解碼器的實例實施方案。
[圖6]展示V-DMC解碼器的實例實施方案。
[圖7]展示用於寫碼基礎網格連接性的寫碼程序的實例實施方案。
[圖8A]展示基礎網格編碼器的實例實施方案。
[圖8B]展示基礎網格解碼器的實例實施方案。
[圖9]展示在無損模式下執行法線解碼的V-DMC解碼器的實例實施方案。
[圖10]展示在有損框內模式下執行法線解碼的V-DMC解碼器的實例實施方案。
[圖11]展示在有損框間模式下執行法線解碼的V-DMC解碼器的實例實施方案。
[圖12]展示在無損模式下執行法線圖解碼的V-DMC解碼器的實例實施方案。
[圖13]展示在有損框內模式下執行法線圖解碼的V-DMC解碼器的實例實施方案。
[圖14]展示在有損框間模式下執行法線圖解碼的V-DMC解碼器的實例實施方案。
[圖15]展示一實例隅角表表示。
[圖16A至16C]展示法線預測的實例。
[圖17]係繪示用於編碼網格的實例程序的流程圖。
[圖18]係繪示用於解碼網格資料的經壓縮位元流的實例程序的流程圖。
[圖19]係繪示用於解碼網格資料的經壓縮位元流的實例程序的流程圖。
900:V-DMC解碼器
902:靜態網格及法線屬性解碼器
904:視訊解碼器
DMUX:解多工器
BMSB:基礎網格子位元流
TMSB:紋理mab子位元流

Claims (20)

  1. 一種用於處理網格資料之裝置,該裝置包含:一記憶體;及處理電路系統,其耦接至該記憶體,且經組態以:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的多個頂點,且該語法元素的一第二值指示待使用叉積(cross-product)預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
  2. 如請求項1之裝置,其中為了使用該差量預測程序來預測該第二頂點的該法線,該處理電路系統經組態以:識別一相同三角形上的一單一頂點作為該第二頂點;將該第二頂點的一經預測法線值設定為等於該單一頂點的一法線的一頂點值;接收一差值;及將該差值與該第二頂點的該經預測法線值相加,以判定該第二頂點的該法線。
  3. 如請求項1之裝置,其中該經選擇預測程序包含多平行四邊形預測,且其中為了使用該經選擇預測程序來預測該第一頂點的該法線,該處理電路系統經組態以:基於一上一個法線值加上一下一個法線值減去一相對法線值來判定該第一頂點的一經預測法線值。
  4. 如請求項1之裝置,其中該經選擇預測程序包含叉積預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線,該處理電路經組態以:判定一上一個頂點與該第一頂點之間的一第一向量;判定一下一個頂點與該第一頂點之間的一第二向量;及判定該第一向量與該第二向量的一叉積。
  5. 如請求項1之裝置,其進一步包含:回應於判定一第三頂點有一第三組已解碼法線可用,接收該網格資料中的該第三頂點的一完整法線值。
  6. 如請求項1之裝置,其中該第一頂點的該法線包含垂直於該第一頂點處的該網格的該經解碼版本的一第一向量,且該第二頂點的該法線包含垂直於該第二頂點處的該網格的該經解碼版本的一第二向量。
  7. 如請求項1之裝置,其中該第一頂點的該法線及該第二頂點的該法線經無損地編碼。
  8. 如請求項1之裝置,其進一步包含一顯示器,以基於該網格的該經解碼版本呈現影像。
  9. 一種處理網格資料之方法,該方法包含:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的多個頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線輸出該網格的一經解碼版本。
  10. 如請求項9之方法,其中使用該差量預測程序來預測該第二頂點的該法線包含:識別一相同三角形上的一單一頂點作為該第二頂點;將該第二頂點的一經預測法線值設定為等於該單一頂點的一法線的一頂點值;接收一差值;及將該差值與該第二頂點的該經預測法線值相加,以判定該第二頂點的該法線。
  11. 如請求項9之方法,其中該經選擇預測程序包含多平行四邊形預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線包含:基於一上一個法線值加上一下一個法線值減去一相對法線值來判定該第一頂點的一經預測法線值。
  12. 如請求項9之方法,其中該經選擇預測程序包含叉積預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線包含:判定一上一個頂點與該第一頂點之間的一第一向量;判定一下一個頂點與該第一頂點之間的一第二向量;及判定該第一向量與該第二向量的一叉積。
  13. 如請求項9之方法,其進一步包含:回應於判定一第三頂點有一第三組已解碼法線可用,接收該網格資料中的該第三頂點的一完整法線值。
  14. 如請求項9之方法,其中該第一頂點的該法線包含垂直於該第一頂點處的該網格的該經解碼版本的一第一向量,且該第二頂點的該法線包含垂直於該第二頂點處的該網格的該經解碼版本的一第二向量。
  15. 如請求項9之方法,其中該第一頂點的該法線及該第二頂點的該法線經無損地編碼。
  16. 一種電腦可讀取儲存媒體,其具有儲存在其上的多個指令,當執行時,該等指令使一或多個處理器:接收一網格的一語法元素,其中該語法元素的一第一值指示待使用多平行四邊形預測來預測該網格的多個頂點,且該語法元素的一第二值指示待使用叉積預測來預測該網格的該等頂點;基於該語法元素選擇該多平行四邊形預測或該叉積預測之一者作為該網格的一經選擇預測程序;回應於判定一第一頂點有一第一組已解碼法線可用,使用該經選擇預測程序來預測該第一頂點的一法線;回應於判定一第二頂點有一第二組已解碼法線可用,使用一差量預測程序來預測該第二頂點的一法線;及基於該第一頂點的該法線及該第二頂點的該法線來輸出該網格的一經解碼版本。
  17. 如請求項16之電腦可讀取儲存媒體,其中為了使用該差量預測程序來預測該第二頂點的該法線,該一或多個處理器經組態以:識別一相同三角形上的一單一頂點作為該第二頂點;將該第二頂點的一經預測法線值設定為等於該單一頂點的一法線的一頂點值;接收一差值;及將該差值與該第二頂點的該經預測法線值相加,以判定該第二頂點的該法線。
  18. 如請求項16之電腦可讀取儲存媒體,其中該經選擇預測程序包含多平行四邊形預測,且其中為了使用該經選擇預測程序來預測該第一頂點的該法線,該一或多個處理器經組態以:基於一上一個法線值加上一下一個法線值減去一相對法線值來判定該第一頂點的一經預測法線值。
  19. 如請求項16之電腦可讀取儲存媒體,其中該經選擇預測程序包含叉積預測,且其中使用該經選擇預測程序來預測該第一頂點的該法線,該一或多個處理器經組態以:判定一上一個頂點與該第一頂點之間的一第一向量;判定一下一個頂點與該第一頂點之間的一第二向量;及判定該第一向量與該第二向量的一叉積。
  20. 如請求項16之電腦可讀取儲存媒體,其進一步包含:回應於判定一第三頂點有一第三組已解碼法線可用,接收該第三頂點的一完整法線值。
TW114101682A 2024-01-17 2025-01-15 在v-dmc及基礎網格編碼器中的v-dmc法線編碼整合 TW202536805A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US202463622028P 2024-01-17 2024-01-17
US63/622,028 2024-01-17
US202463623706P 2024-01-22 2024-01-22
US63/623,706 2024-01-22
US202463575039P 2024-04-05 2024-04-05
US63/575,039 2024-04-05
US19/018,955 2025-01-13
US19/018,955 US20250232480A1 (en) 2024-01-17 2025-01-13 V-dmc normal encoding integration in v-dmc and base mesh encoder

Publications (1)

Publication Number Publication Date
TW202536805A true TW202536805A (zh) 2025-09-16

Family

ID=96348793

Family Applications (1)

Application Number Title Priority Date Filing Date
TW114101682A TW202536805A (zh) 2024-01-17 2025-01-15 在v-dmc及基礎網格編碼器中的v-dmc法線編碼整合

Country Status (2)

Country Link
US (1) US20250232480A1 (zh)
TW (1) TW202536805A (zh)

Also Published As

Publication number Publication date
US20250232480A1 (en) 2025-07-17

Similar Documents

Publication Publication Date Title
CN114503586B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US12395679B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US12423871B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11483363B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US12143648B2 (en) Device and method for processing point cloud data
US11395004B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240422355A1 (en) Point cloud data transmission device and method, and point cloud data reception device and method
EP4369716A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20250133233A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US20250095211A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US12260600B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20250071347A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US12483721B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US12262055B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240420377A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US20240020885A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US20240364924A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240357166A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
EP4311239A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US12299943B2 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US20250247556A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
TW202536805A (zh) 在v-dmc及基礎網格編碼器中的v-dmc法線編碼整合
US20250301139A1 (en) V-dmc signalling improvements in displacement sub-bitstream for wavelet coefficient inter prediction with fixed-point inverse quantization
US20250322546A1 (en) V-dmc octahedral normal coding
TW202545192A (zh) V—dmc八面體法線寫碼