TW202143736A - 基於幾何結構的點雲壓縮的高級語法設計 - Google Patents

基於幾何結構的點雲壓縮的高級語法設計 Download PDF

Info

Publication number
TW202143736A
TW202143736A TW110112538A TW110112538A TW202143736A TW 202143736 A TW202143736 A TW 202143736A TW 110112538 A TW110112538 A TW 110112538A TW 110112538 A TW110112538 A TW 110112538A TW 202143736 A TW202143736 A TW 202143736A
Authority
TW
Taiwan
Prior art keywords
attribute
slice
point cloud
syntax element
cloud data
Prior art date
Application number
TW110112538A
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 TW202143736A publication Critical patent/TW202143736A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

解編碼點雲資料的示例設備包括:被配置為儲存點雲資料的記憶體以及在電路中實施並且耦合到該記憶體的一或多個處理器。該一或多個處理器被配置為決定區域盒的維度並且決定切片包圍盒的維度。該一或多個處理器亦被配置為解碼與切片包圍盒相關聯的點雲資料的切片。該區域盒的維度被約束為不超過該切片包圍盒的維度。

Description

基於幾何結構的點雲壓縮的高級語法設計
本申請案主張於2020年4月7日提出申請的美國臨時專利申請案第63/006,660號、於2020年4月15日提出申請的美國臨時專利申請案第63/010,550號以及2020年4月22日提出申請的美國臨時專利申請案第63/013,971號的優先權,藉由引用將其每個的全部內容併入本文。
本揭示係關於點雲編碼和解碼。
大體上,本揭示描述了用於基於幾何結構的點雲壓縮(geometry-based point cloud compression,G-PCC)的高級語法設計的若干技術。該等技術可以解決G-PCC譯碼中的多個潛在問題。
在一個實例中,本揭示描述了解碼點雲資料的方法,其包括:決定區域盒的維度(dimension);決定切片包圍盒(slice bounding box)的維度;及解碼與切片包圍盒相關聯的點雲資料的切片,其中區域盒的維度被約束為不超過切片包圍盒的維度。
在另一個實例中,本揭示描述了解碼點雲資料的方法:決定與點雲資料的訊框相關聯的第一幾何結構切片的第一切片識別符(ID);決定與點雲資料的訊框相關聯的第二幾何結構切片的第二切片ID;基於第二切片ID等於第一切片ID,決定第二切片包含與第一切片相同的內容;及基於第一切片ID解碼點雲資料。
在另一個實例中,本揭示描述了解碼點雲資料的方法:決定屬性的屬性維度是否大於1;基於屬性維度大於1,解析指示增量量化參數的屬性切片頭語法元素;及基於增量量化參數解碼點雲資料。
在另一個實例中,本揭示描述了設備,其包括被配置為儲存點雲資料的記憶體以及在電路中實施並且通訊地耦合到該記憶體的一或多個處理器,該一或多個處理器被配置為:決定區域盒的維度;決定切片包圍盒的維度;及解碼與切片包圍盒相關聯的點雲資料的切片,其中區域盒的維度被約束為不超過切片包圍盒的維度。
在另一個實例中,本揭示描述了設備,其包括被配置為儲存點雲資料的記憶體以及在電路中實施並且通訊地耦合到該記憶體的一或多個處理器,該一或多個處理器被配置為:決定與點雲資料的訊框相關聯的第一幾何結構切片的第一切片識別符(ID);決定與點雲資料的訊框相關聯的第二幾何結構切片的第二切片ID;基於第二切片ID等於第一切片ID,決定第二切片包含與第一切片相同的內容;及基於第一切片ID解碼點雲資料。
在另一個實例中,本揭示描述了設備,其包括被配置為儲存點雲資料的記憶體以及在電路中實施並且通訊地耦合到該記憶體的一或多個處理器。該一或多個處理器被配置為:決定屬性的屬性維度是否大於1;基於屬性維度大於1,解析指示增量量化參數的屬性切片頭語法元素;及基於增量量化參數解碼點雲資料。
一或多個實例的細節在附圖和下文的描述中闡述。其他特徵、物件和優點將從說明書、附圖和申請專利範圍中顯而易見。
在某些基於幾何結構的點雲壓縮(G-PCC)標準草案中,高級語法可能存在問題。例如,區域盒的維度可能超出包含該區域的切片的維度。在此種情況下,由於切片中沒有點超出切片包圍盒,所以訊號傳遞超出切片的維度的區域寬度、高度和深度可能不增加值。這可能在G-PCC編碼器和G-PCC解碼器兩者上不必要地增加訊號傳遞管理負擔並且浪費處理功率。
在另一個實例中,可能沒有對指示三角湯(trisoup)節點的大小的語法元素的範圍的限制。當該語法元素超出切片的維度時,這可能導致指示最大幾何結構八叉樹深度的變數的負值的產生,這可能是不期望的,因為此種情況可能導致解碼錯誤。
在另一個實例中,可能沒有對指派給幾何結構切片的切片ID的限制。例如,點雲訊框中的兩個不同的幾何結構切片可能被指派相同的切片ID,即使其其包含不同的內容。這可能是不期望的,因為此種情況可能導致使得解碼錯誤的歧義。
在另一個實例中,一些參數不適用於一維屬性。但是,參數可能仍然存在,並且可能仍然需要被訊號傳遞。這可能導致G-PCC編碼器和G-PCC解碼器上的訊號傳遞管理負擔的不必要增加和處理功率的浪費。
在另一個實例中,每個切片可能只能指定一個區域,該區域中可以應用增量量化參數。可能更希望實現具有複數個區域的靈活性,該複數個區域中可以應用增量量化參數。僅具有指定可以應用增量量化參數的單個區域的能力可能約束了以有效的方式及/或以考慮點雲的感知品質的方式對點雲進行譯碼的選擇。
在另一個實例中,儘管在幾何結構參數集中可能存在對幾何結構參數集ID的值範圍的限制,但是幾何結構切片頭中可能不存在對幾何結構參數集ID的值範圍的限制。在幾何結構切片頭中的幾何結構參數集ID的值大於幾何結構參數集中的幾何結構參數集ID的值的情況下,此種情況可能導致在在G-PCC編碼器和G-PCC解碼器兩者上的訊號傳遞管理負擔的不必要的增加以及處理功率的浪費。此種情況亦可能導致使得解碼錯誤的歧義。
在又一個實例中,儘管在屬性參數集中可能存在對於屬性參數集ID的值範圍的限制,但是在屬性切片頭中可能不存在對於屬性參數集ID的值範圍的限制。在屬性切片頭中的屬性參數集ID的值大於屬性參數集中的屬性參數集ID的值的情況下,此種情況可能導致G-PCC編碼器和G-PCC解碼器兩者上的訊號傳遞管理負擔的不必要的增加以及處理功率的浪費。此種情況亦可能導致使得解碼錯誤的歧義。
根據本揭示的技術,採用G-PCC譯碼的高級語法設計中的上述問題和其他問題可以如下文更詳細地論述的一般被解決。藉由解決該等問題,可以減少訊號傳遞管理負擔,可以節省處理功率,可以減少解碼錯誤,及/或可以實現在解碼器處更好地再現點雲。
圖1是示出可以執行本揭示的技術的示例編碼和解碼系統100的方塊圖。本揭示的技術通常針對譯碼(編碼及/或解碼)點雲資料。一般來說,點雲資料包括用於處理點雲的任何資料。譯碼可以有效地壓縮及/或解壓縮點雲資料。
如圖1所示,系統100包括源設備102和目的地設備116。源設備102提供編碼的點雲資料,其將由目的地設備116解碼。具體地,在圖1的實例中,源設備102經由電腦可讀取媒體110向目的地設備116提供點雲資料。源設備102和目的地設備116可以包括多種設備中的任何一種,包括桌上型電腦、筆記本(亦即,膝上型)電腦、平板電腦、機上盒、諸如智慧手機的電話手持設備、電視、相機、顯示設備、數位媒體播放機、視訊遊戲控制台、視訊串流設備、地面或海上交通工具、航天器、飛機、機器人、雷射雷達設備、衛星等。在一些情況下,源設備102和目的地設備116可以被配備用於無線通訊。
在圖1的實例中,源設備102包括資料來源104、記憶體106、G-PCC編碼器200和輸出介面108。目的地設備116包括輸入介面122、G-PCC解碼器300、記憶體120和資料消費者118。根據本揭示,源設備102的G-PCC編碼器200和目的地設備116的G-PCC解碼器300可以被配置為應用本揭示的與基於幾何結構的點雲壓縮的高級語法相關的技術。因此,源設備102表示編碼設備的實例,而目的地設備116表示解碼設備的實例。在其他實例中,源設備102和目的地設備116可以包括其他部件或佈置。例如,源設備102可以從內部或外部源接收資料(例如,點雲資料)。同樣,目的地設備116可以與外部資料消費者對接,而不是在同一設備中包括資料消費者。
如圖1中所示的系統100僅是一個實例。通常來說,其他數位編碼及/或解碼設備可以執行本揭示的與幾何結構點雲壓縮的高級語法有關的技術。源設備102和目的地設備116僅是其中源設備102產生譯碼資料用於傳輸給目的地設備116的此類設備的實例。本揭示將「譯碼」設備稱為執行資料譯碼(編碼及/或解碼)的設備。因此,G-PCC編碼器200和G-PCC解碼器300表示譯碼設備的實例,具體地分別是編碼器和解碼器的實例。在一些實例中,源設備102和目的地設備116可以以基本對稱的方式操作,使得源設備102和目的地設備116中的每一個包括編碼和解碼用部件。因此,例如針對串流、重播、廣播、電話、導航和其他應用,系統100可以支援源設備102和目的地設備116之間的單向或雙向傳輸。
通常地,資料來源104表示資料的來源(亦即,原始的、未編碼的點雲資料)並且可以提供一系列按順序的資料的「訊框」給G-PCC編碼器200,G-PCC編碼器200對訊框的資料進行編碼。源設備102的資料來源104可以包括點雲擷取設備,諸如各種相機或感測器的任何一個,例如,3D掃瞄器或光偵測和測距(LIDAR)設備、一或多個視訊相機、包含以前擷取的資料的檔案檔及/或從資料內容提供者接收資料的資料饋送介面。替代地或附加地,點雲資料可以是根據掃瞄器、相機、感測器或其他資料由電腦產生。例如,資料來源104可以產生基於電腦圖形的資料作為來源資料,或者產生即時資料、存檔資料和電腦產生的資料的組合。在每個情況下,G-PCC編碼器200對擷取的、預擷取的或電腦產生的資料進行編碼。G-PCC編碼器200可以將訊框從接收到的順序(有時稱為「顯示順序」)重新佈置成用於譯碼的譯碼順序。G-PCC編碼器200可以產生包括編碼的資料的一或多個位元串流。隨後源設備102可以經由輸出介面108將編碼的資料輸出至電腦可讀取媒體110以用於例如目的地設備116的輸入介面122的接收及/或檢索。
源設備102的記憶體106和目的地設備116的記憶體120可以表示通用記憶體。在一些實例中,記憶體106和記憶體120可以儲存原始的資料,例如來自資料來源104的原始的資料和來自G-PCC解碼器300的原始的、解碼的資料。附加地或者替代地,記憶體106和記憶體120可以分別儲存(例如,藉由G-PCC編碼器200和G-PCC解碼器300)可執行的軟體指令。儘管在本實例中記憶體106和記憶體120是獨立於G-PCC編碼器200和G-PCC解碼器300圖示的,但是應當理解的是G-PCC編碼器200和G-PCC解碼器300亦可以包括用於功能上類似或相等目的的內部記憶體。此外,記憶體106和記憶體120可以儲存(例如,從G-PCC編碼器200輸出的以及輸入到G-PCC解碼器300的)編碼資料。在一些實例中,記憶體106和記憶體120的部分可以分配為一或多個緩衝器,例如用於儲存原始的、解碼的/或編碼的資料。例如,記憶體106和記憶體120可以儲存表示點雲的資料。
電腦可讀取媒體110可以表示任何類型的媒體或設備,其能夠將編碼資料從源設備102傳輸到目的地設備116。在一個實例中,電腦可讀取媒體110表示通訊媒體,其使源設備102能夠即時(例如,經由射頻網路或基於電腦的網路)直接向目的地設備116發送編碼資料。輸出介面108可以調制包括編碼資料的傳輸信號,並且輸入介面122可以根據(諸如無線通訊協定)通訊標準解調接收的傳輸信號。通訊媒體可以包括任何無線或有線的通訊媒體,諸如射頻(RF)頻譜或者一或多個實體傳輸線。傳輸媒體可以形成基於封包的網路的部分,諸如區域網路、廣域網、或者諸如網際網路的全域網路。通訊媒體可以包括路由器、交換機、基地台或任何其他設備,該等設備可用於促進從源設備102到目的地設備116的通訊。
在一些實例中,源設備102可以將編碼資料從輸出介面108輸出到儲存設備112。類似地,目的地設備116可以經由輸入介面122從儲存設備112存取編碼資料。儲存設備112可以包括各種分散式或本端存取的資料儲存媒體的任何一種,諸如硬碟驅動器、藍光光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體或者用於儲存編碼資料的任何其他合適的數位儲存媒體。
在一些實例中,源設備102可以將編碼資料輸出到檔案伺服器114或另一個中間儲存設備,其可以儲存由源設備102產生的編碼資料。目的地設備116可以經由串流或下載從檔案伺服器114存取儲存的資料。檔案伺服器114可以是任何類型的伺服器設備,其能夠儲存編碼資料並且將該編碼資料傳輸到目的地設備116。檔案伺服器114可以表示網路伺服器(例如,用於網站)、檔案傳輸通訊協定(FTP)伺服器、內容遞送網路設備或網路連接儲存(NAS)設備。目的地設備116可以經由任何標準資料連接(包括網際網路連接)從檔案伺服器114存取編碼資料。這可以包括無線通道(例如,Wi-Fi連接)、有線連接(例如,數位用戶線路(DSL)、纜線數據機等)或者適用於存取儲存在檔案伺服器114上的編碼資料的兩者的組合。檔案伺服器114和輸入介面122可以被配置為根據串流傳輸協定、下載傳輸協定或其組合來操作。
輸出介面108和輸入介面122可以表示無線發射器/接收器、數據機、有線網路部件(例如,乙太網路卡)、根據各種IEEE 802.11標準的任意一個操作的無線通訊部件、或者其他實體部件。在實例中,在輸出介面108和輸入介面122包括無線部件的情況下,輸出介面108和輸出介面122可以被配置為根據蜂巢通訊標準(諸如,4G、4G-LTE(長期進化)、先進LTE(Advanced)、5G等)傳送諸如編碼資料的資料。在一些實例中,在輸出介面108包括無線發射器的情況下,輸出介面108和輸入介面122可以被配置為根據其他無線標準(諸如,IEEE 802.11規範、IEEE 802.15規範(例如,ZigBee™),藍芽™標準等)傳送諸如編碼資料的資料。在一些實例中,源設備102及/或目的地設備116可以包括相應的片上系統(SoC)設備。例如,源設備102可以包括SoC設備以執行歸屬於G-PCC編碼器200及/或輸出介面108的功能,並且目的地設備116可以包括SoC設備以執行歸屬於G-PCC解碼器300及/或輸入介面122的功能。
本揭示的技術可以應用於編碼和解碼,以支援各種應用的任何一個,諸如自動駕駛汽車之間的通訊;掃瞄器、相機、感測器和諸如本端或遠端伺服器的處理設備之間的通訊;地理製圖;或者其他應用。
目的地設備116的輸入介面122從電腦可讀取媒體110(例如,通訊媒體、儲存設備112、檔案伺服器114等)接收編碼位元串流。編碼位元串流可以包括由G-PCC編碼器200定義的訊號傳遞資訊(諸如具有描述譯碼單元(例如,切片、圖片、圖片組、序列等)的特性及/或處理的值的語法元素),其亦可以被G-PCC解碼器300使用。資料消費者118使用解碼資料。例如,資料消費者118可以使用解碼資料來決定實體物件的位置。在一些實例中,資料消費者118可包括基於點雲呈現圖像的顯示器。
G-PCC編碼器200和G-PCC解碼器330每個可以實施為各種合適的編碼器及/或解碼器電路的任何一個,諸如一或多個微處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、個別邏輯、軟體、硬體、韌體或其任意組合。當技術部分地在軟體中實施時,設備可以在適合的、非暫時性電腦可讀取媒體中儲存軟體的指令,並且在使用一或多個處理器的硬體中執行該等指令,以執行本揭示的技術。G-PCC編碼器200和G-PCC解碼器300的每個可以包括在一或多個編碼器或解碼器中,其任何一個可以在相應的設備中集成為組合的編碼器/解碼器(轉碼器)的部分。包括G-PCC編碼器200及/或G-PCC解碼器300的設備可以包括一或多個積體電路、微處理器及/或其他類型的設備。
G-PCC編碼器200和G-PCC解碼器300可以根據譯碼標準(諸如幾何結構點雲壓縮(G-PCC)標準的視訊點雲壓縮(V-PCC)標準)操作。通常本揭示可以指圖片的譯碼(例如,編碼和解碼)以包括編碼或解碼資料的過程。通常編碼的位元串流包括一系列表示譯碼決策(例如,譯碼模式)的語法元素的值。
通常本揭示可以指「訊號傳遞」某種資訊(諸如語法元素)。通常術語「訊號傳遞」可以指用於解碼編碼資料的語法元素及/或其他資料的值的通訊。亦亦即,G-PCC編碼器200可以在位元串流中訊號傳遞語法元素的值。一般來說,訊號傳遞指在位元串流中產生值。如上述,源設備102可以基本上即時或非即時(諸如當將語法元素儲存到儲存設備112用於目的地設備116稍後的檢索時,可能發生)地向目的地設備116傳輸位元串流。
ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究壓縮能力顯著超過當前方法的點雲譯碼技術標準化的潛在需求,並將致力於建立標準。該小組在被稱為三維圖形團隊(3DG)的合作努力中正共同從事於於這一探索活動,以評估他們在這一領域的專家提出的壓縮技術設計。
點雲壓縮活動被分類為兩種不同的方法。第一種方法使「視訊點雲壓縮」(V-PCC),其分割3D目標,並且將區段投影到多個2D平面(其在2D訊框中表示為「補丁(patch)」),該等多個2D平面將由諸如高效視訊譯碼(HEVC)(ITU-T H.265)轉碼器的傳統2D視訊轉碼器進行譯碼。第二種方法是「基於幾何結構的點雲壓縮」(G-PCC),其直接壓縮3D幾何結構(亦即,3D空間中點的集合的位置),以及關聯屬性值(對於每個與3D幾何結構相關聯的點)。G-PCC解決了類別1(靜態點雲)和類別3(動態獲取的點雲)兩者中的點雲的壓縮。G-PCC標準的最新草案可獲得於G-PCC DIS,ISO/IEC JTC1/SC29/WG11 w19088,佈魯塞爾,比利時,2020年1月;並且轉碼器的說明可獲得於G-PCC轉碼器說明v6,ISO/IEC JTC1/SC29/WG11 w19091,佈魯塞爾,比利時,2020年1月。
點雲包含3D空間中點的集合並且可以具有與點相關聯的屬性。屬性可以是顏色資訊(諸如R、G、B或Y、Cb、Cr)或反射率資訊或其他屬性。點雲可以由諸如雷射雷達感測器和3D掃瞄器的各種相機或感測器擷取,並且亦可以是電腦產生的。點雲資料用於各種應用中,包括但不限於,建築(建模)、圖形(用於視覺化和動畫的三維模型)和汽車工業(用於在導航中幫助的雷射雷達感測器)。
由點雲資料佔據的3D空間可以被虛擬包圍盒封閉起來。包圍盒中的點的位置可以由某種精確度表示;因此,可以基於精確度量化一或多個點的位置。在最小的級別中,包圍盒被分離為體素(voxel),其是由單位立方體表示的空間最小單位。包圍盒中的體素可以與零個、一個或多於一個點相關聯。包圍盒可以被分離為多個立方體/長方體區域,其可以被稱為圖塊(tile)。每個圖塊可以被譯碼成一或多個切片。將包圍盒分離為切片和圖塊可以是基於每個劃分中的點的數量,或者是基於其他考慮(例如,特定區域可以被譯碼為圖塊)。亦可以使用與在視訊轉碼器的彼等分離決定類似的分離決定來劃分切片區域。
圖2提供了G-PCC編碼器200的概述。圖3提供了G-PCC解碼器300的概述。所示的模組是邏輯的,並且不需要一一對應於G-PCC轉碼器的參考實施方式(亦即,由ISO/IEC MPEG(JTC 1/SC 29/WG 11)研究的TMC13測試模型軟體)中的實施的代碼。
在G-PCC編碼器200和G-PCC解碼器300兩者中,首先對點雲位置進行譯碼。屬性譯碼基於解碼的幾何結構。在圖2和圖3中,灰色陰影的模組通常是用於類別1資料的選項。斜杠陰影的模組通常是用於類別3資料的選項。所有其他模組是類別1和類別3之間通用的。
對於類別3資料,壓縮的幾何結構通常表示為從根部一直到單個體素的葉級別的八叉樹。對於類別1資料,壓縮的幾何結構通常表示為修剪的八叉樹(亦即,從根部向下到大於體素的區塊的葉級別的八叉樹)加上將修剪的八叉樹的每個葉內的表面進行近似的模型。以此種方式,類別1和類別3資料兩者共享八叉樹譯碼機制,而此外類別1資料亦可以利用表面模型將每個葉內的體素進行近似。所使用的表面模型是包括每區塊1-10個三角形的、導致三角湯(soup)的三角劃分。因此,類別1幾何結構轉碼器被稱為三角湯幾何結構轉碼器,而類別3幾何結構轉碼器被稱為八叉樹幾何結構轉碼器。
在八叉樹的每個節點處,針對其子節點的一或多個(至多八個節點)訊號傳遞(當不推斷時)了佔用(occupancy)。指定了多個鄰域,包括(a)與當前八叉樹節點共享一個面的節點,(b)與當前八叉樹節點共享一個面、邊緣或頂點的節點,等等。在每個鄰域內,節點/或其子代的佔用可用於預測當前節點或其子代的佔用。對於在八叉樹的某些節點中稀疏填充的點,轉碼器亦支援直接譯碼模式,其中該點的3D位置被直接編碼。可以訊號傳遞標誌以指示直接模式被訊號傳遞。在最低級別中,亦可以對與八叉樹節點/葉節點相關聯的點的數量進行譯碼。
一旦對幾何結構進行譯碼,就對與幾何結構點相對應的屬性進行譯碼。當存在與一個重建的/解碼的幾何結構點相對應的多個屬性點時,可以推導代表該重建的點的屬性值。
在G-PCC中有三種屬性譯碼方法:區域自我調整層級變換(Region AdaptiveHierarchical Transform,RAHT)譯碼、基於內插的層級最近鄰預測(預測變換)以及採用更新/提升步長的基於內插的層級最近鄰預測(提升變換)。RAHT和提升通常用於類別1資料,而預測通常用於類別3資料。然而,任一方法可以用於任何資料,並且,與G-PCC中的幾何結構轉碼器一樣,用於譯碼點雲的屬性譯碼方法在位元串流中被指定。
屬性的譯碼可以在詳細級別(level-of-detail,LoD)中進行,其中經由每個詳細級別可以獲得點雲屬性的更精細表示。可以基於與相鄰節點的距離度量或基於取樣距離來指定每個詳細級別。
在G-PCC編碼器200處,量化作為對於屬性的譯碼方法的輸出而獲得的殘差。可以使用上下文自我調整算術譯碼對量化的殘差進行譯碼。
在圖2的實例中,G-PPC編碼器200可以包括座標變換單元202、顏色變換單元204、體素化(voxelization)單元206、屬性轉移單元208、八叉樹分析單元210、表面近似分析單元212、算數編碼單元214、幾何結構重建單元216、RAHT單元218、LOD產生單元220、提升單元222、係數量化單元224以及算數編碼單元226。
如圖2的實例中所示,G-PCC編碼器200可以接收位置的集合和屬性的集合。位置可以包括點雲中點的座標。屬性可以包括關於點雲中點的資訊,諸如與點雲中的點相關聯的顏色。
座標變換單元202可以對點的座標應用變換,以將座標從初始域變換到變換域。本揭示可以將變換後的座標稱為變換座標。顏色變換單元204可以應用變換以將屬性的顏色資訊變換到不同的域。例如,顏色變換單元204可以將顏色資訊從RGB顏色空間變換為YCbCr顏色空間。
此外,在圖2的實例中,體素化單元206可以對變換座標進行體素化。變換座標的體素化可以包括量化和去除點雲的一些點。換言之,點雲的多個點可以包含在單個「體素」內,其之後可以在一些態樣中被視為一個點。此外,八叉樹分析單元210可以基於體素化後的變換座標來產生八叉樹。另外,在圖2的實例中,表面近似分析單元212可以分析該等點以潛在地決定該等點的集合的表面表示。算術編碼單元214可以對語法元素進行熵編碼,該等語法元素表示由表面近似分析單元212決定的八叉樹及/或表面的資訊。G-PCC編碼器200可以在幾何結構位元串流中輸出該等語法元素。
幾何結構重建單元216可以基於八叉樹、指示由表面近似分析單元212決定的表面的資料、及/或其他資訊,來重建點雲中的點的變換座標。由於體素化和表面近似,由幾何結構重建單元216重建的變換座標的數量可以不同於點雲的點的原始數量。本揭示可以將得到的點稱為重建點。屬性轉移單元208可以將點雲的原始點的屬性轉移至點雲的重建點。
此外,RAHT單元218可以對重建點的屬性應用RAHT譯碼。替代地或附加地,LOD產生單元220和提升單元222可以分別對重建點的屬性應用LOD處理和提升。RAHT單元218和提升單元222可以基於屬性產生係數。係數量化單元224可以量化由RAHT單元218或提升單元222產生的係數。算數編碼單元226可以對表示量化的係數的語法元素應用算數譯碼。G-PCC編碼器200可以在屬性位元串流中輸出該等語法元素。
在圖3的實例中,G-PCC解碼器300可以包括幾何結構算數解碼單元302、屬性算數解碼單元304、八叉樹合成單元306、逆量化單元308、表面近似合成單元310、幾何結構重建單元312、RAHT單元314、LOD產生單元316、逆提升單元318、逆變換座標單元320和逆變換顏色單元322。
G-PCC解碼器300可以獲得幾何結構位元串流和屬性位元串流。G-PCC解碼器300的幾何結構算數解碼單元302可以對幾何結構位元串流中的語法元素應用算數解碼(例如,上下文自我調整二進位算數譯碼(CABAC)或其他類型的算數解碼)。類似地,屬性算數解碼單元304可以對屬性位元串流中的語法元素應用算數解碼。
八叉樹合成單元306可以基於從幾何結構位元串流中解析的語法元素來合成八叉樹。在表面近似用於幾何結構位元串流中的實例中,表面近似合成單元310可以基於從幾何結構位元串流中解析的語法元素並且基於八叉樹來決定表面模型。
此外,幾何結構重建單元312可以執行重建來決定點雲中點的座標。逆變換座標單元320可以對重建的座標應用逆變換,以將點雲中點的重建座標(位置)從變換域轉換回初始域。
此外,在圖3的實例中,逆量化單元308可以逆量化屬性值。屬性值可以是基於從屬性位元串流(例如,包括由屬性算數解碼單元304解碼的語法元素)中獲得的語法元素。
根據屬性值是如何被編碼的,RAHT單元314可以基於逆量化的屬性值執行RAHT譯碼來決定點雲的點的顏色值。替代地,LoD產生單元316和逆提升單元318可以使用基於詳細級別的技術決定點雲的點的顏色值。
此外,在圖3的實例中,逆變換顏色單元322可以對顏色值應用逆顏色變換。逆顏色變換可以是由G-PCC編碼器200的顏色變換單元204應用的顏色變換的逆。例如,顏色變換單元204可以將顏色資訊從RGB顏色空間變換為YCbCr顏色空間。因此,逆顏色變換單元322可以將顏色資訊從YCbCr顏色空間變換為RGB顏色空間。
示出圖2和圖3的各種單元以協助理解由G-PCC編碼器200和G-PCC解碼器300執行的操作。該等單元可以實施為固定功能電路、可程式設計電路或其組合。固定功能電路指提供特定功能、並且是在可以執行的操作上預先設置的電路。可程式設計電路指可以被程式設計以執行各種任務、並且在可以執行的操作中提供靈活的功能的電路。例如,可程式設計電路可以執行軟體或韌體,其使得可程式設計電路以由該軟體或韌體的指令定義的方式操作。固定功能電路可以執行軟體指令(例如,接收參數或輸出參數),但是固定功能電路執行的操作的類型通常是不可變的。在一些實例中,一或多個單元可以是不同的電路區塊(固定功能或可程式設計的),並且在一些實例中,一或多個單元可以是積體電路。
現在描述G-PCC中的非規範性的量化和縮放。原始點雲可以以浮點格式或很高的位元深度表示。體素化單元206可以以一定的位元深度對輸入點雲進行量化和體素化。G-PCC編碼器200可以出於體素化的目的而應用量化,並且可以例如藉由G-PCC解碼器300在解碼器側執行縮放,主要用於在特定於應用的實體空間中(例如,在實體維度上)解碼的點雲(例如,以體素為單位)的映射。G-PCC解碼器300可以對此操作使用縮放值,該縮放值是由G-PCC編碼器200使用語法元素sps_source_scale_factor_numerator_minus1和sps_source_scale_factor_denominator_minus1訊號傳遞的。作為預處理步驟(在編碼之前)的量化過程和作為後處理步驟(在解碼之後)的縮放程序不會影響整個譯碼程序。相反,量化程序和縮放程序本質上是非規範性的。
sps_source_scale_factor_numerator_minus1 ue(v)
sps_source_scale_factor_denominator_minus1 ue(v)
出於本揭示的目的,在編碼器側(例如,G-PCC編碼器200),將非規範性的量化之前的點雲稱為「非量化點雲」,並且將非規範性的量化之後的點雲將稱為「量化點雲」。此量化與G-PCC轉碼器作為編碼或解碼過程的一部分可以完成的量化無關。類似地,G-PCC解碼器(例如,G-PCC解碼器300)的輸出被稱為量化點雲。解碼器側的任何非規範性的縮放的輸出稱為非量化點雲。再次注意,G-PCC解碼器(例如,G-PCC解碼器300)的輸出可以是規範性的縮放操作的結果。
現在描述G-PCC中的包圍盒。與圖像和視訊中圖片寬度和高度的概念類似,點雲亦具有包圍盒的概念,據此,點雲中的所有點皆被視為存在於包圍盒內。換言之,定義一個包圍盒,使得其包含點雲中的所有點。
現在描述源包圍盒。在擷取或產生點雲時,可以指定包圍盒以擷取點雲的所有點。例如,源設備102可以指定包圍盒。該包圍盒可以被稱為源包圍盒。在G-PCC中,指定了可以指示源包圍盒的序列參數集(SPS)包圍盒語法元素(例如seq_bounding_box_present_flag)。出於本揭示的目的,SPS包圍盒可以被稱為源包圍盒。在G-PCC中未定義用於描述源包圍盒的單位。因此,給定的應用可以決定該等單位。下文提供了與SPS包圍盒相關聯的語法和語義。
假定(由於在G-PCC標準中未定義此行為)將使用源縮放因數(從sps_source_scale_factor_numerator_minus1和sps_source_scale_factor_denominator_minus1推導的)對G-PCC解碼器300的輸出進行縮放,並且此(非規範性的)縮放的輸出包含在SPS包圍盒中。例如,應用、單獨的設備或G-PCC解碼器設備本身可以縮放G-PCC解碼器300的輸出。在一些實例中,G-PCC解碼器300可以解析縮放因數語法元素。在其他實例中,應用或單獨的設備可以解析縮放因數語法元素。
源包圍盒相關的語法
seq_parameter_set( ) { 描述符
main_profile_compatibility_flag u(1)
reserved_profile_compatibility_2bits [Ed. 當定義了設定檔時,從中分配位元] u(22)
unique_point_positions_constraint_flag u(1)
    level_idc u(8)
    sps_seq_parameter_set_id ue(v)
    sps_bounding_box_present_flag u(1)
     if( sps_bounding_box_present_flag ) {  
          sps_bounding_box_offset_x se(v)
          sps_bounding_box_offset_y se(v)
          sps_bounding_box_offset_z se(v)
          sps_bounding_box_offset_log2_scale ue(v)
          sps_bounding_box_size_width ue(v)
          sps_bounding_box_size_height ue(v)
          sps_bounding_box_size_depth ue(v)
     }  
    sps_source_scale_factor_numerator_minus1 ue(v)
    sps_source_scale_factor_denominator_minus1 ue(v)
sps_ num_attribute_sets ue(v)
     for( i = 0; i< sps_num_attribute_sets; i++ ) {  
源包圍盒相關的語義如下: main_profile_compatibility_23bitsflag等於1指定位元串流符合(comform)主設定檔。main_profile_compatibility_flag等於0指定位元串流符合主設定檔以外的設定檔。 reserved_profile_compatibility_22在符合本規範的版本的位元串流中应当等於0。保留reserved_profile_compatibility_22bits的其他值供ISO/IEC將来使用。解码器將忽視reserved_profile_compatibility_2bits的值。 unique_point_positions_constraint_flag等於1指示在引用當前SPS的每個點雲訊框中,所有輸出點具有唯一的位置。unique_point_positions_constraint_flag等於0指示引用當前SPS的任何點雲訊框中,兩個和多個輸出點具有相同的位置。 注意,例如,即使每個切片[sic]中的所有點皆是唯一的,訊框中來自不同切片的點亦可能重疊。在此種情況下,unique_point_positions_constraint_flag應當設置為0。 level_idc指示位元串流符合附錄A中指定的級別。位元串流不應包含除附錄A中指定的彼等外的level_idc的值。保留level_idc的其他值供ISO/IEC將來使用。 sps_seq_parameter_set_id提供SPS的識別符,以供其他語法元素引用。在符合本規範的版本的位元串流中,sps_seq_parameter_set_id的值應為0。保留sps_seq_parameter_set_id的非0值供ISO/IEC將來使用。 sps_bounding_box_present_flag等於1指示包圍盒。sps_bounding_box_present_flag等於0指示包圍盒的大小未定義。 sps_bounding_box_offset_x、sps_bounding_box_offset_y和sps_bounding_box_offset_z指示笛卡爾座標中源包圍盒的量化的x,y和z偏移量。當不存在時,則將sps_bounding_box_offset_x、sps_bounding_box_offset_y和sps_bounding_box_offset_z的值各自推斷為0。 sps_bounding_box_offset_log2_scale指示用於縮放量化的x、y和z源包圍盒偏移量的縮放因數。當不存在時,則將sps_bounding_box_offset_log2_scale的值推斷為0。 sps_bounding_box_size_width、sps_bounding_box_size_height和sps_bounding_box_size_depth指示笛卡爾座標中源包圍盒的寬度、高度和深度。 sps_source_scale_factor_numerator_minus1加1指示源點雲的縮放因數分子。 sps_source_scale_factor_denominator_minus1加1指示源點雲的縮放因數分母。
現在描述圖塊包圍盒。除了源包圍盒外,G-PCC亦指定了圖塊包圍盒。圖塊包圍盒與圖塊的點相關聯。在tile_inventory()語法中訊號傳遞圖塊包圍盒。每個tile_inventory()語法結構皆與由tile_frame_idx指定的訊框相關聯。
圖塊清單(inventory)語法
tile_inventory( ) { 描述符
tile_frame_idx ?
num_tiles_minus1 u(16)
     for( i = 0; i <= num_tiles_minus1; i++ ) {  
          tile_bounding_box_offset_x [ i ] se(v)
          tile_bounding_box_offset_y [ i ] se(v)
          tile_bounding_box_offset_z [ i ] se(v)
          tile_bounding_box_size_width [ i ] ue(v)
          tile_bounding_box_size_height [ i ] ue(v)
          tile_bounding_box_size_depth [ i ] ue(v)
     }  
     byte_alignment( )  
}  
圖塊清單語義如下: num_tiles_minus1加1指定圖塊清單中存在的圖塊包圍盒的數量。 tile_bounding_box_offset_x[i]、tile_bounding_box_offset_y[i]和tile_bounding_box_offset_z[i]指示笛卡爾座標中第i圖塊的x、y和z偏移量。 tile_bounding_box_size_width[i]、tile_bounding_box_size_height[i]和tile_bounding_box_size_depth[i]指示笛卡爾座標中第i圖塊的寬度、高度和深度。
現在描述切片包圍盒。儘管沒有為切片明確指定包圍盒,但是可以指定包含切片中的點的盒。切片包圍盒的規範包括切片原點,該切片原點指定切片包圍盒的一個角以及該切片包圍盒的寬度、高度和深度。
幾何結構參數集(GPS)包括是否針對切片訊號傳遞明確的切片原點的指示。若存在明確的切片原點,則G-PCC編碼器200可以在GPS或在幾何結構切片頭(Geometry slice header,GSH)處訊號傳遞相關聯的縮放值。當沒有訊號傳遞明確的切片原點時,G-PCC解碼器300推斷該切片原點等於(0,0,0)。切片包圍盒語法如下所示。
切片(包圍)盒相關的語法
geometry_parameter_set( ) { 描述符
    gps_geom_parameter_set_id ue(v)
    gps_seq_parameter_set_id ue(v)
    gps_box_present_flag u(1)
     if( gps_box_present_flag ){  
          gps_gsh_box_log2_scale_present_flag u(1)
           if( gps_gsh_box_log2_scale_present_flag  = =  0 )  
               gps_gsh_box_log2_scale ue(v)
     }  
    unique_geometry_points_flag u(1)
geometry_slice_header( ) { 描述符
    gsh_geometry_parameter_set_id ue(v)
    gsh_tile_id ue(v)
    gsh_slice_id ue(v)
    frame_idx u(n)
    gsh_num_points u(24)
     if( gps_box_present_flag ) {  
           if( gps_gsh_box_log2_scale_present_flag )  
               gsh_box_log2_scale ue(v)
          gsh_box_origin_x ue(v)
          gsh_box_origin_y ue(v)
          gsh_box_origin_z ue(v)
     }  
    if ( gps_implicit_geom_partition_flag ) {  
        gsh_log2_max_nodesize_x ue(v)
        gsh_log2_max_nodesize_y_minus_x se(v)
        gsh_log2_max_nodesize_z_minus_y se(v)
    } else {  
        gsh_log2_max_nodesize ue(v)
    }  
_minus1     if( geom_scaling_enabled_flag ) {            [Ed: 這應該是gsh中的最後一個?]  
現在描述與切片(包圍)盒相關的語義。以下是幾何結構參數集中相關語法元素的語義: gps_geom_parameter_set_id提供GPS的識別符,以供其他語法元素引用。gps_seq_parameter_set_id的值應當在0到15的範圍內(包括端點)。 gps_seq_parameter_set_id指定活動SPS的sps_seq_parameter_set_id的值。gps_seq_parameter_set_id的值應當在0到15的範圍內(包括端點)。 gps_box_present_flag等於1指定在引用當前GPS的幾何結構頭中提供了附加的包圍盒資訊。gps_bounding_box_present_flag等於0表示在幾何結構頭中未訊號傳遞附加的包圍盒資訊。 gps_gsh_box_log2_scale_present_flag等於1指定在引用當前GPS的每個幾何結構切片頭中訊號傳遞gsh_box_log2_scale。gps_gsh_box_log2_scale_present_flag等於0指定未在每個幾何結構切片頭中訊號傳遞gsh_box_log2_scale,並且在當前GPS的gps_gsh_box_log2_scale中訊號傳遞所有切片的通用縮放。 gps_gsh_box_log2_scale指定所有引用當前GPS的切片的包圍盒原點的通用縮放因數。 以下是幾何結構切片頭中相關語法元素的語義: gsh_geometry_parameter_set_id指定活動GPS的gps_geom_parameter_set_id的值。 gsh_tile_id指定由GSH所引用的圖塊id的值。gsh_tile_id的值應當在0到XX的範圍中(包括端點)。 gsh_slice_id指定切片頭,以供其他語法元素引用。gsh_slice_id的值應當在0到XX的範圍中(包括端點)。 frame_idx指定理論上的訊框號計數器的log2_max_frame_idx+1個最低有效位元。具有不同frame_idx值的連續切片形成不同輸出點雲訊框的部分。在沒有中間訊框邊界標記資料單元的情況下,具有相同frame_idx值的連續切片形成相同輸出點雲訊框的部分。 gsh_num_points指定切片中的譯碼的點的最大數量。位元串流符合性的要求是gsh_num_points大於或等於切片中解碼的點的數量。 gsh_box_log2_scale指定切片的包圍盒原點的縮放因數。 gsh_box_origin_x指定由gsh_box_log2_scale值縮放的包圍盒原點的x值。 gsh_box_origin_y指定由gsh_box_log2_scale值縮放的包圍盒原點的y值。 gsh_box_origin_z指定由gsh_box_log2_scale值縮放的包圍盒原點的z值。 變數slice_origin_x、slice_origin_y和slice_origin_z的推導如下: 若gps_gsh_box_log2_scale_present_flag等於0, originScale被設置為等於gsh_box_log2_scale 否則(gps_gsh_box_log2_scale_present_flag等於1), originScale被設置為等於gps_gsh_box_log2_scale 若gps_box_present_flag等於0, slice_origin_x和slice_origin_y和slice_origin_z的值推斷為0。 否者(gps_box_present_flag等於1),如下適用 slice_origin_x = gsh_box_origin_x << originScale slice_origin_y = gsh_box_origin_x << originScale slice_origin_z = gsh_box_origin_x << originScale gsh_log2_max_nodesize_x指定x維度中的包圍盒大小,亦即,解碼過程中使用的MaxNodesizeXLog2如下。 MaxNodeSizeXLog2=gsh_log2_max_nodesize_x MaxNodeSizeX=1<<MaxNodeSizeXLog2 gsh_log2_max_nodesize_y_minus_x指定y維度中的包圍盒大小,亦即,解碼過程中使用的MaxNodesizeYLog2如下: MaxNodeSizeYLog2 = gsh_log2_max_nodesize_y_minus_x + MaxNodeSizeXLog2 MaxNodeSizeY = 1 << MaxNodeSizeYLog2 gsh_log2_max_nodesize_z_minus_y指定z維度中的包圍盒大小,亦即,解碼過程中使用的MaxNodesizeZLog2如下。 MaxNodeSizeZLog2 = gsh_log2_max_nodesize_z_minus_y + MaxNodeSizeYLog2 MaxNodeSizeZ = 1 << MaxNodeSizeZLog2 若gps_implicit_geom_partition_flag等於1,則gsh_log2_max_nodesize推導如下。 gsh_log2_max_nodesize = max{ MaxNodeSizeXLog2, MaxNodeSizeYLog2, MaxNodeSizeZLog2} 当gps_implicit_geom_partition_flag等於0時,gsh_log2_max_nodesize指示根几何结構八叉树节點的大小。變數MaxNodeSize和MaxGeometryOctreeDepth的推導如下。 MaxNodeSize = 1 << gsh_log2_max_nodesize MaxGeometryOctreeDepth = gsh_log2_max_nodesize − log2_trisoup_node_size 隨後變數K和M更新如下: gsh_log2_min_nodesize = min{ MaxNodeSizeXLog2, MaxNodeSizeYLog2, MaxNodeSizeZLog2} 若(K > (gsh_log2_max_nodesize - gsh_log2_min_nodesize)) K = gsh_log2_max_nodesize - gsh_log2_min_nodesize; 若(M > gsh_log2_min_nodesize) M = gsh_log2_min_nodesize; 若(gsh_log2_max_nodesize == gsh_log2_min_nodesize) M = 0; 若(log2_trisoup_node_size != 0) { K = gsh_log2_max_nodesize - gsh_log2_min_nodesize; M = 0; }
現在描述區域盒。除了上文指定的包圍盒之外,G-PCC亦支援區域盒的訊號傳遞,該區域盒用於向點雲的特定區域的屬性指示修改的QP值。通常與屬性相關聯的QP值可以在屬性切片頭中指定(除了屬性參數集中的一些語法元素之外)。但是,點雲的某些區域可能具有與切片的其他區域不同的特殊特性。例如,可以使用更精細的表示(較低QP)對切片的更密集區域進行譯碼,或者可以使用更粗糙的表示(較高QP)對切片的更稀疏區域進行譯碼。區域盒可能對於為切片的某個區域的屬性指定不同的QP是有用的。區域盒相關語法如下。
區域盒相關語法
attribute_slice_header( ) { 描述符
ash_attr_parameter_set_id ue(v)
ash_attr_sps_attr_idx ue(v)
ash_attr_geom_slice_id ue(v)
     if ( aps_slice_qp_delta_present_flag ) {  
          ash_attr_qp_delta_luma se(v)
           if( attribute_dimension_minus1[ ash_attr_sps_attr_idx ] > 0 )  
               ash_attr_qp_delta_chroma se(v)
     }  
ash_attr_layer_qp_delta_present_flag u(1)
     if ( ash_attr_layer_qp_delta_present_flag ) {  
          ash_attr_num_layer_qp_minus1 ue(v)
           for( i = 0; i < NumLayerQp; i++ ){  
               ash_attr_layer_qp_delta_luma[i] se(v)
                if( attribute_dimension_minus1[ ash_attr_sps_attr_idx ] > 0 )  
                    ash_attr_layer_qp_delta_chroma[i] se(v)
           }  
     }  
ash_attr_region_qp_delta_present_flag u(1)
     if ( ash_attr_region_qp_delta_present_flag ) {  
ash_attr_qp_region_box_origin_x ue(v)
ash_attr_qp_region_box_origin_y ue(v)
ash_attr_qp_region_box_origin_z ue(v)
ash_attr_qp_region_box_width ue(v)
ash_attr_qp_region_box_height ue(v)
ash_attr_qp_region_box_depth ue(v)
ash_attr_region_qp_delta se(v)
     }  
     byte_alignment( )  
}  
區域盒相關語義如下: ash_attr_parameter_set_id指定活動APS的aps_attr_parameter_set_id的值。 ash_attr_sps_attr_idx指定活動SPS中屬性集合的順序。在活動的SPS中,ash_attr_sps_attr_idx的值應當在0到sps_num_attribute_sets的範圍內。 ash_attr_geom_slice_id指定活動幾何結構切片頭的gsh_slice_id的值。 ash_attr_layer_qp_delta_present_flag等於1指定當前ASH中存在ash_attr_layer_qp_delta_luma和ash_attr_layer_qp_delta_chroma語法元素。ash_attr_layer_qp_delta_present_flag等於0指定當前ASH中不存在ash_attr_layer_qp_delta_luma和ash_attr_layer_qp_delta_chroma語法元素。 ash_attr_num_layer_qp_minus1加1指定其中訊號傳遞ash_attr_qp_delta_luma和ash_attr_qp_delta_chroma的層的數量。當未訊號傳遞ash_attr_num_layer_qp時,將ash_attr_num_layer_qp的值推斷為0。NumLayerQp的值推導如下: NumLayerQp=num_layer_qp_minus1+1 ash_attr_qp_delta_luma指定相對於活動的屬性參數集中的初始切片qp的亮度增量qp。當未訊號傳遞ash_attr_qp_delta_luma時,將ash_attr_qp_delta_luma的值推斷為0。 ash_attr_qp_delta_chroma指定相對於活動的屬性參數集中的初始切片qp的色度增量qp。當未訊號傳遞ash_attr_qp_delta_chroma時,將ash_attr_qp_delta_chroma的值推斷為0。 變數InitialSliceQpY和InitialSliceQpC的推導如下: InitialSliceQpY = aps_attrattr_initial_qp + ash_attr_qp_delta_luma InitialSliceQpC = aps_attrattr_initial_qp + aps_attr_chroma_qp_offset + ash_attr_qp_delta_chroma ash_attr_layer_qp_delta_luma指定相對於每層中的InitialSliceQpY的亮度增量qp。當未訊號傳遞ash_attr_layer_qp_delta_luma時,所有層的ash_attr_layer_qp_delta_luma的值皆推斷為0。 ash_attr_layer_qp_delta_chroma指定相對於每層中的InitialSliceQpC的色度增量qp。當未訊號傳遞ash_attr_layer_qp_delta_chroma時,所有層的ash_attr_layer_qp_delta_chroma的值皆推斷為0。 具有i = 0…NumLayerQPNumQPLayer − 1的變數SliceQpY[i]和SliceQpC[i]的推導如下: for ( i = 0; i < NumLayerQPNumQPLayer; i++) { SliceQpY[ i ] = InitialSliceQpY + ash_attr_layer_qp_delta_luma[ i ] SliceQpC[ i ] = InitialSliceQpC + ash_attr_layer_qp_delta_chroma[ i ] } ash_attr_region_qp_delta_present_flag等於1指示當前ASH中存在ash_attr_region_qp_delta和區域包圍盒原點和大小。 ash_attr_region_qp_delta_present_flag等於0指示當前ASH中不存在ash_attr_region_qp_delta和區域包圍盒原點和大小。 ash_attr_qp_region_box_origin_x指示區域包圍盒相對於slice_origin_x的x偏移量。當不存在時,則將ash_attr_qp_region_box_origin_x的值推斷為0。 ash_attr_qp_region_box_origin_y指示區域包圍盒相對於slice_origin_y的y偏移量。當不存在時,則將ash_attr_qp_region_box_origin_y的值推斷為0。 ash_attr_qp_region_box_origin_z指示區域包圍盒相對於slice_origin_z的z偏移量。當不存在時,則將ash_attr_qp_region_box_origin_z的值推斷為0。 指定區域盒原點的變數RegionboxX、RegionboxY和RegionboxZ分別設置為等於ash_attr_qp_region_box_origin_x、ash_attr_qp_region_box_origin_y和ash_attr_qp_region_box_origin_z。 ash_attr_qp_region_box_size_width指示區域包圍盒的寬度。當不存在時,則將ash_attr_qp_region_box_size_width的值推斷為0。 ash_attr_qp_region_box_size_height指示區域包圍盒的高度。當不存在時,則將ash_attr_qp_region_box_size_height的值推斷為0。 ash_attr_qp_region_box_size_depth指示區域包圍盒的深度。當不存在時,則將ash_attr_qp_region_box_size_depth的值推斷為0。 指定區域盒大小的變數RegionboxWidth、RegionboxHeight和RegionboxDepth分別設置為等於ash_attr_qp_region_box_size_width、ash_attr_qp_region_box_size_height和ash_attr_qp_region_box_size_depth。 ash_attr_region_qp_delta指定相對於由ash_attr_qp_region_box指定的區域的SliceQpY[i]和SliceQpC[i](i = 0…NumLayerQPNumQPLayer – 1)的增量qp。當不存在時,則將ash_attr_region_qp_delta的值推斷為0。 指定區域盒增量量化參數的變數RegionboxDeltaQp設置為等於ash_attr_region_qp_delta。
現在描述序列參數集(SPS)中的屬性特定參數訊號傳遞。G-PCC編碼器200可以使用名為sps_num_attribute_sets的語法元素來在SPS中訊號傳遞與點雲相關聯的屬性的數量。對於每個屬性,G-PCC編碼器200可以在SPS中訊號傳遞一些屬性特定參數,諸如位元深度、次位元深度、屬性維度、屬性類型(顏色、反射率、訊框索引等)和顏色空間相關資訊。對應的語法和語義如下所示。
sps_ num_attribute_sets ue(v)
     for( i = 0; i< sps_num_attribute_sets; i++ ) {  
          attribute_dimension_minus1 [ i ] ue(v)
          attribute_instance_id [ i ] ue(v)
attribute_bitdepth_minus1[i] ue(v)
           if(attribute_dimension_minus1[ i ] > 0 )  
               attribute_secondary_bitdepth_minus1[  i  ] ue(v)
          attribute_cicp_colour_primaries [ i ] ue(v)
          attribute_cicp_transfer_characteristics [ i ] ue(v)
attribute_cicp_matrix_coeffs [ i ] ue(v)
          attribute_cicp_video_full_range_flag [ i ] u(1)
          known_attribute_label_flag [ i ] u(1)
           if( known_attribute_label_flag[ i ] )  
               known_attribute_label [ i ] ue(v)
           else  
a ttribute_label_four_bytes [ i ] u(32)
     }  
attribute_dimension_minus1[i]加1指定第i屬性的分量的數量。 attribute_instance_id[i]指定第i屬性的實例id。 注–當具有attribute_label_four_bytes值的兩個或兩個以上屬性在位元串流中時,attribute_instance_id的值標識該屬性。例如,對於具有來自不同視點的多種顏色的點雲是有用的。 attribute_bitdepth_minus1[i]加1指定(多個)第i屬性信號的主分量(first component)的位元深度。 attribute_secondary_bitdepth_minus1[i]加1指定(多個)第i屬性信號的次分量(secondarycomponent)的位元深度。 attribute_cicp_colour_primaries[i]指示第i屬性的顏色屬性源原色的色度座標。語義如在ISO/IEC 23091-2中為代碼點(code point)ColourPrimaries指定的一般。 attribute_cicp_transfer_characteristics[i]或者指示顏色屬性的引用光電傳輸特性函數作為標稱實值範圍為0到1的源輸入線性光強度Lc 的函數,或者指示引用電光的傳輸特性函數的逆作為標稱實值範圍為0到1的輸出線性光強度Lo 的函數。語義如ISO/IEC 23091-2中為代碼點TransferCharacteristics指定的一般。 attribute_cicp_matrix_coeffs[i]描述用於從綠色、藍色和紅色或Y、Z和X原色推導亮度和色度信號的矩陣係數。語義如在ISO/IEC 23091-2中為代碼點MatrixCoefficients指定的一般。 attribute_cicp_video_full_range_flag[i]指定指示從E'Y、E'PB和E'PR或E'R、E'G和E'B實值分量信號推導的亮度和色度信號的黑位準(black level)和範圍。語義如在ISO/IEC 23091-2中為代碼點VideoFullRangeFlag指定的一般。 known_attribute_label_flag[i]等於1指定為第i屬性訊號傳遞know_attribute_label。known_attribute_label_flag[i]等於0指定為第i屬性訊號傳遞attribute_label_four_bytes。 known_attribute_label[i]等於0指定屬性為顏色。known_attribute_label[i]等於1指定屬性為反射率。known_attribute_label[i]等於2表示屬性為訊框索引。 attribute_label_four_bytes[i]指示具有4位元組代碼的已知屬性類型。7.1描述了支援的屬性及其與attribute_label_four_bytes[i]的關係的列表。 7.1 attribute_label_four_bytes
attribute_label_four_bytes[ i ] 屬性類型
0 顏色
1 反射率
2 訊框索引
3 材料ID
4 透明性
5 法線
6…255 保留
256...0xffffffff 未指定
現在描述屬性參數集(APS)。G-PCC語法允許為每個屬性訊號傳遞單獨的參數集。例如,若一個點雲具有與該點雲相關聯的兩個不同屬性(例如顏色和反射率),則每個屬性可能具有自己的APS。APS包含關於屬性量化參數(初始qp、qp偏移量等)、詳細級別(LoD)產生特定參數及/或用於屬性譯碼的譯碼工具的資訊。
詳細級別(LoD)結構根據由使用者指定的歐幾裡德距離
Figure 02_image001
的集合將點雲劃分為稱為細化級別
Figure 02_image003
的點的非重疊子集,在某種程度上,整個點雲由所有細化級別的並集表示。詳細級別(LOD) l,
Figure 02_image005
是藉由將細化級別
Figure 02_image007
進行並集獲得的: ··
Figure 02_image009
·
Figure 02_image011
… ·
Figure 02_image013
… ··
Figure 02_image015
表示整個點雲
圖4是示出示例詳細級別(LoD)產生過程的概念圖。圖4中描繪了點雲中的點的原始順序400。採用LoD,點的順序可以改變,如基於LoD的順序402所示。例如,LoD0 包括P0、P5、P4和P2。LoD1 包括P0、P5、P4、P2、P1、P6和P3。LoD2 包括P0、P5、P4、P2、P1、P6、P3、P9、P8和P7,其是圖4的實例的整個點雲。
因此,LoD產生為點雲的屬性資訊提供了可縮放的表示,其中增加LoD級別導致屬性資訊的細節逐漸增加。另外,G-PCC解碼器300以LoD循序執行屬性解碼,例如,首先對LoD0 (R0)中的所有點進行解碼,隨後對與細化級別R1 相對應的點進行解碼以產生LoD1 ,並且該過程可以進一步繼續以逐步產生所有LoD。因此,如圖5所示,LoD層中的點可以從(多個)先前LoD層中的點或者(若適用的話)從相同細化級別(例如,EnableReferringSameLoD=1)中已經解碼的點來預測。
圖5是說明使用LoD的可能的點預測的概念圖。描繪了點雲中點的原始順序500。另外,描述了基於LoD的順序502。採用LoD,點P4可用於預測點P6,因為點P4在LoD0 中,該點P4在LoD1 中的點P6之前被解碼。若EnableReferringSameLoD=1,則點P1可用於預測點P6,因為點P1在點P6之前被解碼。但是,若EnableReferringSameLoD=0,則點P1可能不用於預測點P6。
藉由使用LoD產生,諸如利用空間可縮放性,可能以較少解碼器複雜度及/或使用較少頻寬存取作為縮略圖的較低解析度點雲。當需要空間可縮放性時,可能希望以協調的方式解碼較低的幾何結構和對應的屬性位元串流。
圖6是描繪採用不同LoD的G-PCC解碼的概念圖。例如,為了產生全解析度點雲642,G-PCC解碼器300可以利用幾何結構位元串流620和屬性位元串流622兩者中的高LoD(例如,LoD 606和LoD 608)。為了產生低解析度點雲632,G-PCC解碼器300可以利用局部八叉樹位元串流610和局部提升位元串流612中的較低LoD(例如,LoD 602和LoD 604)。
為了實現協調的空間可縮放性,可以擴展屬性解碼器(例如,圖3的屬性算術解碼單元304)以從部分解碼的八叉樹位元串流(例如,局部八叉樹位元串流610)解碼低解析度幾何結構點雲(例如,低解析度點雲632),其中將低解析度幾何結構點雲中的點的解碼位置量化為INT(pos/2k)*2k。
本檔中揭示的一或多個實例可單獨應用或組合應用。
現在描述對區域盒維度的約束。G-PCC標準草案中區域盒的語義允許區域盒超出包含該區域的切片的維度。當訊號傳遞區域寬度、高度和深度時,G-PCC編碼器200可以使用指數Golomb譯碼。G-PCC編碼器200訊號傳遞該等超過切片維度的語法元素的值不能為G-PCC解碼器300提供任何益處,因為不存在屬於切片包圍盒之外的切片的點。此外,切片包圍盒的形狀是規則的長方體/立方體,因此G-PCC編碼器200訊號傳遞比切片包圍盒大的區域可能沒有益處。這亦適用於區域盒的原點,因為區域盒的原點亦應包含在切片中。
此外,區域盒維度的訊號傳遞允許寬度、高度或深度的訊號傳遞等於0。但是,若該等元素中的任何一個被訊號傳遞為零,則G-PCC標準草案認為該區域為空。
根據本揭示的技術,可以添加約束,使得區域盒不超過切片維度(或者更具體地說,切片包圍盒維度)。例如,G-PCC解碼器300可以決定區域盒的維度。G-PCC解碼器300可以決定切片包圍盒的維度。G-PCC解碼器300可以解碼與切片包圍盒相關聯的點雲資料的切片。區域盒的維度可以被約束為不超過切片包圍盒的維度。
在一些實例中,添加了約束,使得原點區域盒包含在切片中。在其他實例中,添加了約束,使得沒有區域盒中的點在切片之外,或者具體地,在切片包圍盒之外。
在一些實例中,修改了區域盒寬度、高度和深度的訊號傳遞,使得對於該等區域盒屬性的任何一個皆不允許值為0。換言之,G-PCC編碼器200可以不訊號傳遞區域盒寬度、高度或深度的0值。
在一個實例中,區域盒的語法元素的語義被更新,使得區域盒原點或區域盒不超過切片維度。G-PCC標準草案ISO/IEC JTC 1/SC 29/WG 11 N18887的更改開始處標有<CHANGE>,更改結束處標有</CHANGE>。從G-PCC標準草案中刪除的開始處標有<DELETE>,刪除的結束處標有</DELETE>。 ash_attr_region_qp_delta_present_flag等於1指示當前ASH中存在ash_attr_region_qp_delta和區域包圍盒原點和大小。ash_attr_region_qp_delta_present_flag等於0指示在當前ASH中不存在ash_attr_region_qp_delta和區域包圍盒的原點和大小。 ash_attr_qp_region_box_origin_x指示區域包圍盒相對於slice_origin_x的x偏移量。當不存在時,則將ash_attr_qp_region_box_origin_x的值推斷為0。 ash_attr_qp_region_box_origin_y指示區域包圍盒相對於slice_origin_y的y偏移量。當不存在時,則將ash_attr_qp_region_box_origin_y的值推斷為0。 ash_attr_qp_region_box_origin_z指示區域包圍盒相對於slice_origin_z的z偏移量。當不存在時,則將ash_attr_qp_region_box_origin_z的值推斷為0。 指定區域盒原點的變數RegionboxX、RegionboxY和RegionboxZ分別設置為等於ash_attr_qp_region_box_origin_x,ash_attr_qp_region_box_origin_y和ash_attr_qp_region_box_origin_z。 ash_attr_qp_region_box_size_width <CHANGE>_minus1加1</CHANGE>指示區域包圍盒的寬度。當不存在時,則將ash_attr_qp_region_box_size_width <CHANGE> _minus1 </ CHANGE>的值推斷為<CHANGE> -1 </ CHANGE> <DELETE> 0 </ DELETE>。 ash_attr_qp_region_box_size_height <CHANGE> _minus1加1 </ CHANGE>指示區域包圍盒的高度。當不存在時,則將ash_attr_qp_region_box_size_height <CHANGE>_minus1 </ CHANGE>的值推斷為<CHANGE> -1 </ CHANGE> <DELETE> 0 </ DELETE>。 ash_attr_qp_region_box_size_depth <CHANGE>_minus1加1 </ CHANGE>指示區域包圍盒的深度。當不存在時,則將ash_attr_qp_region_box_size_depth <CHANGE> _minus1 </ CHANGE>的值推斷為<CHANGE> -1 </ CHANGE> <DELETE> 0 </ DELETE>。 指定區域盒大小的變數RegionboxWidth、RegionboxHeight和RegionboxDepth分別設置為等於ash_attr_qp_region_box_size_width、ash_attr_qp_region_box_size_height和ash_attr_qp_region_box_size_depth。 <CHANGE>位元串流符合性的要求是以下所有條件適用: –若gps_implicit_geom_partition_flag等於1,則(RegionboxX + RegionboxWidth)、(RegionboxY + RegionboxHeight)和(RegionBoxZ + RegionboxDepth)的值分別不應當超過切片的MaxNodeSizeX、MaxNodeSizeY和MaxNodeSizeZ。 –否則(gps_implicit_geom_partition_flag等於0),則(RegionboxX + RegionboxWidth)、(RegionboxY + RegionboxHeight)和(RegionBoxZ + RegionboxDepth)的每個值均不應當超過MaxNodeSize。 </ CHANGE> ash_attr_region_qp_delta指定相對於由ash_attr_qp_region_box指定的區域的SliceQpY[i]和SliceQpC[i](i = 0…NumLayerQPNumQPLayer – 1)的增量qp。當不存在時,則將ash_attr_region_qp_delta的值推斷為0。 指定區域盒增量量化參數的變數RegionboxDeltaQp設置為等於ash_attr_region_qp_delta。
在一個實例中,亦可以添加以下約束:位元串流符合性的要求是以下所有條件適用: 若gps_implicit_geom_partition_flag等於1,則RegionboxX、RegionboxY和RegionBoxZ的值分別不得超過切片的MaxNodeSizeX、MaxNodeSizeY和MaxNodeSizeZ。 否則(gps_implicit_geom_partition_flag等於0),則RegionboxX、RegionboxY和RegionBoxZ的每個值均不得超過MaxNodeSize。
現在描述tile_inventory()語法的存在和tile_id的有效性。幾何結構切片頭包括語法元素tile_id,其引用與切片相關聯的圖塊的識別符。tile_inventory()中提供了圖塊資訊,tile_inventory()包括語法元素frame_idx。frame_idx可以用於將tile_inventory()與具有相同frame_idx的特定訊框相關聯。但是,不能保證對於特定訊框可能會存在tile_inventory()。此外,當G-PCC編碼器200以固定的位元深度訊號傳遞frame_idx時,多於一個的訊框可與相同的frame_idx相關聯。tile_inventory()與特定訊框的關聯尚不清楚。此外,當切片引用tile_id時,tile_id的值應屬於有效範圍。
根據本揭示的技術,可以添加約束,該約束指定必須將tile_inventory()語法與每個訊框相關聯。例如,G-PCC編碼器200可以將tile_inventory()語法與每個訊框相關聯。在一個實例中,添加了約束,例如由G-PCC編碼器200用每個點雲訊框訊號傳遞tile_inventory()語法。在另一個實例中,添加推導,以使具有訊框索引的每個訊框與具有等效訊框索引值的tile_inventory()相關聯。例如,G-PCC解碼器300可以推導具有訊框索引的每個訊框與具有等效訊框索引值的tile_inventory()之間的關聯。
在一些實例中,添加了約束以使得幾何結構切片頭中的tile_id的值範圍在0到N的範圍內(包括端點),其中N的值比在與訊框相關聯的tile_inventory()語法中訊號傳遞的圖塊的數量小一。
在一些實例中,添加了約束,使得當未為訊框訊號傳遞/關聯tile_inventory()語法時,對於該訊框的所有切片,gsh_tile_id的值等於0。例如,對於訊框的所有切片,G-PCC解碼器300可以將gsh_tile_id的值設置為等於0(例如,當未針對訊框訊號傳遞/關聯tile_inventory()語法時)。
替代地,當未為訊框訊號傳遞/關聯tile_inventory()時,可以將gsh_tile_id指定為忽略,或者可以將位元串流指定為不符合/被解碼器(例如,G-PCC解碼器300)忽略。
在一個實例中,tile_id不包括在切片頭語法中。
在一個實例中,與訊框相關聯的tile_inventory()可以包括與每個圖塊相關聯的一或多個切片ID。例如,對於在圖塊清單中指定的每個圖塊,可以訊號傳遞切片ID的列表,其指定與該圖塊相關聯的切片。
在實例中,對圖塊清單語義做出了以下更改。在一些實例中,亦可以在轉碼器的其他部分中添加約束。從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</ CHANGE>。 num_tiles_minus1加1指定圖塊清單中存在的圖塊包圍盒的數量。 tile_bounding_box_offset_x[i]、tile_bounding_box_offset_y[i]和tile_bounding_box_offset_z[i]指示第i圖塊在笛卡爾座標中的x、y和z偏移量。 tile_bounding_box_size_width[i]、tile_bounding_box_size_height[i]和tile_bounding_box_size_depth[i]指示第i圖塊在笛卡爾座標中的寬度、高度和深度。 <CHANGE>位元串流符合性的要求是,對於點雲中的每一個訊框皆必須存在tile_inventory()語法。 </ CHANGE>
替代地,可以添加以下約束:位元串流符合性的要求是tile_inventory()語法與點雲中的每一個訊框相關聯;相關聯的訊框亦具有相關聯的訊框索引frame_idx。
可以對幾何結構切片頭語義做出以下更改。從G-PCC標準草案的更改的開始處標為<CHANGE>並且更改的結束處標為</ CHANGE>。 gsh_tile_id指定由GSH所引用的圖塊id的值。gsh_tile_id的值應當在0到<CHANGE> num_tiles_minus1 </CHANGE>的範圍中,包括端點。
現在描述圖塊內的多個幾何結構切片。每個圖塊可以以一或多個切片進行譯碼。使用切片原點和切片盒維度指定切片包圍盒。然而,切片原點的訊號傳遞(例如,由G-PCC編碼器)取決於語法元素gps_box_present_flag的值。當gps_box_present_flag等於0時,由G-PCC解碼器300推斷切片原點等於(0,0,0)。當切片中存在多於一個幾何結構切片時,設置gps_box_present_flag等於0將導致可能不期望的多個具有相同原點的切片。
根據本揭示的技術,在一些實例中,可以添加約束,使得當在與訊框相關聯的圖塊中存在多個切片時,G-PCC編碼器200可以訊號傳遞與切片原點相關聯的一或多個語法元素並且G-PCC解碼器300可以解析該一或多個語法元素。此約束可以是顯式訊號傳遞的約束或者間接的位元串流符合性約束。
在另一個實例中,G-PCC編碼器200可以相對於以被指定用於點雲的規範的包圍盒來訊號傳遞切片原點,並且G-PCC解碼器300可以解析該切片原點。規範的包圍盒可以是被指定包括點雲中的所有重建點的盒。在一些實例中,規範的包圍盒是包含點雲訊框中所有重建點的最小此類盒。在一些實例中,可以在位元串流(例如,訊號傳遞的)中指定或者(例如由G-PCC解碼器300)從其他語法元素中推導規範的包圍盒。
例如,規範的包圍盒可以由包圍盒原點以及包圍盒維度(寬度、高度、深度)中的一或多個來指定。
在實例中,可以對語義添加以下約束:當對於點雲訊框的特定圖塊存在具有不同gsh_slice_id值的任意兩個幾何結構切片時,位元串流符合性的要求是gps_box_present_flag的值應當等於1。
替代地,可以對語義添加以下約束:當存在具有不同gsh_slice_id值的兩個幾何結構切片使得對於兩個切片來說圖塊ID和訊框索引相同時,位元串流符合性的要求是對於由兩個切片引用的GPS,gps_box_present_flag的值應當等於1。
替代地,當在訊框中存在兩個不同的幾何結構切片時,gps_box_present_flag可以被約束為1。
例如,可以對語義添加以下約束:當對於點雲訊框存在具有不同gsh_slice_id值的任意兩個幾何結構切片時,位元串流符合性的要求是gps_box_present_flag的值應當等於1。
現在描述三角湯節點大小範圍,當三角湯譯碼用於對點雲中的位置進行譯碼時,G-PCC編碼器200使用語法元素log2_trisoup_node_size向G-PCC解碼器300指定以三角湯譯碼模式譯碼的節點的大小。G-PCC編碼器200可以在GPS中訊號傳遞此語法元素並且G-PCC解碼器300可以解析此語法元素。語義如下: log2_trisoup_node_size指定變數TrisoupNodeSize為三角形節點的大小如下: TrisoupNodeSize = 1 << log2_trisoup_node_size 當log2_trisoup_node_size等於0時,幾何結構位元串流僅包括八叉樹譯碼語法。當log2_trisoup_node_size大於0時,位元串流符合性的要求是: -        inferred_direct_coding_mode_enabled_flag必須等於0,以及 -        unique_geometry_points_flag必須等於1。
此語法元素亦可以用於決定最大八叉樹譯碼深度,因為當使用三角湯譯碼時,使用QTBT或八叉樹直到特定節點大小並且隨後使用三角湯譯碼來解碼切片。這在如下語義中描述: gsh_log2_max_nodesize_x指定x維度中的包圍盒大小,亦即,在解碼過程中使用的MaxNodesizeXLog2如下。 MaxNodeSizeXLog2 = gsh_log2_max_nodesize_x MaxNodeSizeX = 1 << MaxNodeSizeXLog2 gsh_log2_max_nodesize_y_minus_x指定y維度中的包圍盒大小,亦即,在解碼過程中使用的MaxNodesizeYLog2如下: MaxNodeSizeYLog2 = gsh_log2_max_nodesize_y_minus_x + MaxNodeSizeXLog2。 MaxNodeSizeY = 1 << MaxNodeSizeYLog2。 gsh_log2_max_nodesize_z_minus_y指定z維度中的包圍盒大小,亦即,在解碼過程中使用的MaxNodesizeZLog2如下。 MaxNodeSizeZLog2 = gsh_log2_max_nodesize_z_minus_y + MaxNodeSizeYLog2 MaxNodeSizeZ = 1 << MaxNodeSizeZLog2 若gps_implicit_geom_partition_flag等於1,gsh_log2_max_nodesize推導如下。 gsh_log2_max_nodesize = max{ MaxNodeSizeXLog2, MaxNodeSizeYLog2, MaxNodeSizeZLog2} 当gps_implicit_geom_partition_flag等於0時,gsh_log2_max_nodesize指定根幾何結構八叉樹節點的大小。變數MaxNodeSize和MaxGeometryOctreeDepth推導如下。 MaxNodeSize = 1 << gsh_log2_max_nodesize MaxGeometryOctreeDepth = gsh_log2_max_nodesize − log2_trisoup_node_size 隨後變數K和M更新如下。 gsh_log2_min_nodesize = min{ MaxNodeSizeXLog2, MaxNodeSizeYLog2, MaxNodeSizeZLog2} 若 (K > (gsh_log2_max_nodesize - gsh_log2_min_nodesize)) K = gsh_log2_max_nodesize - gsh_log2_min_nodesize; 若 (M > gsh_log2_min_nodesize) M = gsh_log2_min_nodesize; 若 (gsh_log2_max_nodesize == gsh_log2_min_nodesize) M = 0; 若 (log2_trisoup_node_size != 0) { K = gsh_log2_max_nodesize - gsh_log2_min_nodesize; M = 0; }
在G-PCC標準草案中,對log2_trisoup_node_size的範圍沒有限制。當log2_trisoup_node_size的值超出切片維度時,G-PCC解碼器300可能推導MaxGeometryOctreeDepth的負值,這可能是不期望的。訊號傳遞大於切片維度的log2_trisoup_node_size的值亦是無效率的。
根據本揭示的技術,在一些實例中,可以添加約束使得log2_trisoup_node_size的值被限制而不超過切片維度。在實例中,在幾何結構切片頭語義中添加以下約束:位元串流符合性的要求是gsh_log2_max_nodesize的值應當大於或等於log2_trisoup_node_size的值。替代地,可以在幾何結構切片頭語義中添加以下約束:位元串流符合性的要求是log2_trisoup_node_size的值在gps_implicit_geom_partition_flag等於1時應當小於或等於min (gsh_log2_max_nodesize_x, gsh_log2_max_nodesize_y, gsh_log2_max_nodesize_z),否則應當大於或等於gsh_log2_max_nodesize。
現在描述幾何結構切片ID的唯一性。點雲訊框可以與多於一個的切片相關聯,並且每個切片可以與幾何結構切片(包含幾何結構切片頭)相關聯。幾何結構切片具有識別符gsh_slice_id。當G-PCC編碼器200訊號傳遞屬性切片時,切片包含與屬性切片相關聯的幾何結構切片的ID。在屬性切片頭中訊號傳遞此語法元素ash_attr_geom_slice_id。
當前,對可以指派給幾何結構切片的切片ID沒有限制。若多於一個的幾何結構切片具有相同的gsh_slice_id值,則當屬性切片引用具有切片ID特定值的幾何結構切片時,可能會有歧義。當G-PCC解碼器300嘗試解碼點雲資料時,此行為可能是不希望的,並且可能引起問題(例如,解碼錯誤)。
根據本揭示的技術,在一些實例中,可以添加約束使得當與訊框相關聯的兩個幾何結構切片具有相同的切片ID時,幾何結構切片的內容應相同。此約束允許訊框內切片的重複。替代地,可以添加約束以使得與沒有訊框相關聯的兩個幾何結構切片具有相同的切片ID值。在實例中,可以在幾何結構切片頭的語義中添加以下約束:位元串流符合性的要求是,對於與訊框相關聯並且具有相同的gsh_slice_id值的任何兩個幾何結構切片,這兩個幾何結構切片的內容應當相同。此約束亦可以寫成如下:當訊框的任何幾何結構切片具有相同的gsh_slice_id值時,兩個幾何結構切片的內容應相同。
例如,G-PCC解碼器300可以決定與點雲資料的訊框相關聯的第一幾何結構切片的第一切片識別符(ID)。 G-PCC解碼器300可以決定與點雲資料的訊框相關聯的第二幾何結構切片的第二切片ID。基於第二切片ID等於第一切片ID,G-PCC解碼器300可以決定第二切片包含與第一切片相同的內容。 G-PCC解碼器300可以基於第一切片ID解碼點雲資料。
在另一個實例中,可以添加以下約束:位元串流符合性的要求是,沒有與訊框相關聯的兩個幾何結構切片應當具有相同的gsh_slice_id值。在一些實例中,切片ID可以被定義為gsh_slice_id和tile_id兩者的組合或函數。例如,可以對上述約束之一進行如下修改:對位元串流符合性的要求是,當任何兩個幾何結構切片與訊框相關聯,並且具有相同的gsh_slice_id值,並且具有相同的gsh_tile_id值時,兩個幾何結構切片的內容應當相同。
現在描述點的唯一位置。在G-PCC中,點雲中的體素(與唯一位置相關聯)可能與一或多個點相關聯。在一些應用中,可能期望限制體素以僅包含一個點或者指示體素是否僅包含一個點。當源點雲可能具有多於一個的與體素(或位置)相關聯的點時,可以將體素中的點進行組合(藉由進行平均或其他手段,並對單個點重新著色或重新計算屬性)來為體素產生一個點。隨後,G-PCC位元串流可以指示體素只具有一個點。G-PCC中有兩個語法元素與此指示相關聯。 1)SPS中的語法元素unique_point_positions_constraint_flag指定點雲中的每一個位置是否具有非唯一點(亦即,兩個或兩個以上點)。此語法元素的語義如下: unique_point_positions_constraint_flag等於1指示在引用當前SPS的每個點雲訊框中,所有輸出點均具有唯一位置。unique_point_positions_constraint_flag等於0指示在引用當前SPS的任何點雲訊框中,兩個或兩個以上輸出點可以具有相同的位置。 2)GPS中的語法元素unique_geometry_points_flag指定切片中的任何體素是否具有非唯一點。此語法元素的語義如下: unique_geometry_points_flag等於1指示在引用當前GPS的所有切片中,所有輸出點在切片中均具有唯一位置。unique_geometry_points_flag等於0指示在引用當前GPS的所有切片中,兩個或兩個以上輸出點在切片中內可以具有相同位置。
當unique_point_positions_constraint_flag等於1時,點雲中的所有點皆與唯一點相關聯。但是,即使在此種情況下,仍可以允許G-PCC編碼器200在位元串流中訊號傳遞unique_geometry_points_flag等於0(其指示兩個或兩個以上輸出點可能與相同位置相關聯)–這與unique_point_positions_constraint_flag的訊號傳遞相矛盾。這可能導致解碼器(例如G-PCC解碼器300)發生位元串流不符合或不符合行為。
根據本揭示的技術,在一些實例中,可以添加約束使得當點雲中的所有點被指示為與唯一點相關聯時,例如,切片不包含與相同位置相關聯的兩個點。在此種情況下,訊號傳遞或以其他方式提供指定切片可以包含與相同位置相關聯的兩個點的指示亦可能是被禁止的。在一些實例中,當指定點雲中的點的位置是唯一的時,可以禁用一或更多種量化/縮放方法,並且G-PCC編碼器200可以不訊號傳遞相關聯的語法元素。
在實例中,可以將以下約束添加到GPS的語義中:位元串流符合性的要求是,當unique_points_positions_constraint_flag等於1時,unique_geometry_points_flag的值不應當等於0。在一個實例中,約束可以表述如下:位元串流符合性的要求是,當對於任何切片, unique_geometry_points_flag(在相關聯的GPS中)等於0時,unique_points_positions_constraint_flag(在相關聯的SPS中)的值不應當等於1。
現在描述關於SPS中的屬性特定參數訊號傳遞的條件。 首先,G-PCC編碼器200可以為每個屬性訊號傳遞四個不同的語法參數:attribute_cicp_colour_primaries[i]、attribute_cicp_transfer_characteristics[i]、attribute_cicp_matrix_coeffs[i]和attribute_cicp_video_full_range[i],儘管其其僅適用於顏色屬性。
其次,根據known_attribute_label_flag、known_attribute_label和attribute_label_four_byte的語義,G-PCC編碼器200可以以多種方式來訊號傳遞一些屬性。例如,可以使用以下任意一種來指示顏色屬性: a. Known_attribute_label_flag[i] = 1,known_attribute_label[i] = 0(ue(v)),或 b. Known_attribute_label_flag[i] = 0,attribute_label_four_bytes[i] = 0(u(32))
類似地,訊號傳遞的多種方式亦適用於反射率和frameIndex屬性。該等訊號傳遞的多種方式可能導致效率低下的冗餘訊號傳遞。
根據本揭示的技術,在一些實例中,G-PCC編碼器200僅針對顏色屬性訊號傳遞四個不同的顏色相關的語法元素(聚類迭代最近點(Cluster Iterative Closest Point,CICP)參數)。G-PCC解碼器300可以解析該等語法元素。顏色屬性可以包括以下的一或多個:RGB、YCbCr、YCoCg、ICtCp或任何其他顏色空間表示。該等語法元素的訊號傳遞可以以屬性標籤/類型(例如,RGB,YCbCr等)的一或多個值為條件。
在另一個實例中,G-PCC編碼器200訊號傳遞語法元素以指定是否針對屬性訊號傳遞一或多個CICP參數。G-PCC解碼器300可以解析此語法元素。當未訊號傳遞CICP參數時,可以將其推斷為預定的預設值。例如,當未訊號傳遞CICP參數時,G-PCC解碼器300可以推斷出CICP參數為預設值。
為了移除冗餘,可以使用兩種替代方法中的任何一種: 1. 當known_attribute_label_flag為零時,attribute_label_four_bytes不應當包含諸如顏色、反射率和訊框索引的已知屬性。 2. 移除known_attribute_label_flag和known_attribute_label語法元素,使得僅使用attribute_label_four_bytes表示每個屬性。 從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</ CHANGE>。
sps_ num_attribute_sets ue(v)
     for( i = 0; i< sps_num_attribute_sets; i++ ) {  
          attribute_dimension_minus1 [ i ] ue(v)
          attribute_instance_id [ i ] ue(v)
attribute_bitdepth_minus1[i] ue(v)
           if(attribute_dimension_minus1[ i ] > 0 )  
               attribute_secondary_bitdepth_minus1[  i  ] ue(v)
<CHANGE> attribute_cicp_colour_primaries [ i ] ue(v)
          attribute_cicp_transfer_characteristics [ i ] ue(v)
attribute_cicp_matrix_coeffs [ i ] ue(v)
          attribute_cicp_video_full_range_flag [ i ] u(1)
          known_attribute_label_flag [ i ] u(1)
           if( known_attribute_label_flag[ i ] )  
               known_attribute_label [ i ] ue(v)
           else  
a ttribute_label_four_bytes [ i ]</CHANGE> u(32)
     }  
在實例(實例1)中,可以對G-PCC標準草案進行以下更改。從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</ CHANGE>。 known_attribute_label_flag[i] 等於1指定為第i屬性訊號傳遞know_attribute_label。known_attribute_label_flag[i] 等於0指定為第i屬性訊號傳遞attribute_label_four_bytes。 known_attribute_label[i]等於0指定屬性為顏色。 known_attribute_label[i]等於1指定屬性為反射率。known_attribute_label[i]等於2指定屬性為訊框索引。 attribute_label_four_bytes[i]指示<CHANGE>具有4個位元組代碼的剩餘的未知屬性類型。</CHANGE>表7.1描述了支援的屬性及其與attribute_label_four_bytes[i]的關係的列表。 7.1 attribute_label_four_bytes
attribute_label_four_bytes[ i ] 屬性類型
<CHANGE>0 透明性
1 法线
2…255 保留
256...0xffffffff 未指定</CHANGE>
sps_ num_attribute_sets ue(v)
     for( i = 0; i< sps_num_attribute_sets; i++ ) {  
        attribute_dimension_minus1 [ i ] ue(v)
        attribute_instance_id [ i ] ue(v)
attribute_bitdepth_minus1[i] ue(v)
         if(attribute_dimension_minus1[ i ] > 0 )  
             attribute_secondary_bitdepth_minus1[  i  ] ue(v)
        known_attribute_label_flag [ i ] u(1)
         if( known_attribute_label_flag[ i ] )  
             known_attribute_label [ i ] ue(v)
         else  
a ttribute_label_four_bytes [ i ] u(32)
    <CHANGE>   if(known_attribute_label[i]==0) /*color*/{  
        attribute_cicp_colour_primaries [ i ] ue(v)
         attribute_cicp_transfer_characteristics [ i ] ue(v)
attribute_cicp_matrix_coeffs [ i ] ue(v)
         attribute_cicp_video_full_range_flag [ i ] u(1)
        } </CHANGE>  
     }  
在另一實例中,可以對G-PCC標準草案進做出下更改。從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</CHANGE>。
sps_ num_attribute_sets ue(v)
     for( i = 0; i< sps_num_attribute_sets; i++ ) {  
          attribute_dimension_minus1 [ i ] ue(v)
          attribute_instance_id [ i ] ue(v)
attribute_bitdepth_minus1[i] ue(v)
           if(attribute_dimension_minus1[ i ] > 0 )  
               attribute_secondary_bitdepth_minus1[  i  ] ue(v)
<CHANGE>    a ttribute_label_four_bytes [ i ] u(32)
                if(attribute_label_four_bytes[i]==0) /*color*/{  
                    attribute_cicp_colour_primaries [ i ] ue(v)
                    attribute_cicp_transfer_characteristics [ i ] ue(v)
attribute_cicp_matrix_coeffs [ i ] ue(v)
                    attribute_cicp_video_full_range_flag [ i ] u(1)
                }  
           } </CHANGE>  
     }  
在另一實例中,可以如下指定attribute_label_four_bytes的語義,其中刪除的開始處標為<DELETE>,刪除的結束處標為</ DELETE>,其他更改的開始處標為<CHANGE>,以及附加的結束處標為</ CHANGE>: <CHANGE>當known_attribute_label_flag等於0時</ CHANGE>,attribute_label_four_bytes[i]指示具有4個位元組代碼的<DELETE>已知</ DELETE>屬性類型。下表描述了支援的屬性及其與attribute_label_four_bytes[i]的關係的列表。
attribute_label_four_bytes[ i ] 屬性類型
<DELETE>0 <DELETE>顏色
1 反射率
2 訊框索引</DELETE>
3</DELETE><CHANGE>0 材料 ID
1 透明性
2 法線
3</CHANGE>…255 保留
256...0xffffffff 未指定
可以按如下方式指定唯一屬性標籤: AttributeLabel = attribute_label_four_bytes + N 其中N是指定的已知屬性標籤的數量(上例中為3)。
在另一實例(狐狸2)中,可以藉由標誌attribute_cicp_params_present_flag[]控制CICP參數的訊號傳遞。當標誌的值等於0時,G-PCC編碼器200可以不訊號傳遞CICP。
seq_parameter_set( ) { 描述符
    main_profile_compatibility_flag u(1)
      
    sps_num_attribute_sets ue(v)
     for( i = 0; i< sps_num_attribute_sets; i++ ) {  
          attribute_instance_id [ i ] ue(v)
          attribute_dimension_minus1 [ i ] ue(v)
          attribute_bitdepth_minus1 [ i ] ue(v)
           if(attribute_dimension_minus1[ i ] > 0 )  
               attribute_secondary_bitdepth_minus1 [ i ] ue(v)
<CHANGE> attribute_cicp_params_present_flag [ i ] <CHANGE>u(1)</CHANGE>
           if( attribute_cicp_params_present_flag[ i ] = = 1 ) {</CHANGE>  
               attribute_cicp_colour_primaries [ i ] ue(v)
               attribute_cicp_transfer_characteristics [ i ] ue(v)
               attribute_cicp_matrix_coeffs [ i ] ue(v)
               attribute_cicp_video_full_range_flag [ i ] u(1)
<CHANGE> }</CHANGE>  
          known_attribute_label_flag [ i ] u(1)
           if( known_attribute_label_flag[ i ] )  
               known_attribute_label [ i ] ue(v)
           else  
               attribute_label_four_bytes [ i ] u(32)
     }  
      
<CHANGE>attribute_cicp_params_present_flag[i]等於1指定為第i屬性集合訊號傳遞語法元素attribute_cicp_colour_primaries[i]、attribute_cicp_transfer_characteristics[i]、attribute_cicp_matrix_coeffs[i]和attribute_cicp_video_full_range_flag[i]。attribute_cicp_params_present_flag[i]等於0指定不為第i屬性集合訊號傳遞語法元素attribute_cicp_colour_primaries[i]、attribute_cicp_transfer_characteristics[i]、attribute_cicp_matrix_coeffs[i]和attribute_cicp_video_full_range_flag[i]。 </ CHANGE>
若決定CICP參數僅被需要用於顏色屬性,則不需要訊號傳遞標誌,而是可以使用known_attribute_label[]或attribute_label_four_bytes[]來決定CICP參數的存在。對於此種方法,可以在CICP參數之前訊號傳遞屬性標籤。
現在描述屬性參數集(APS)和屬性切片頭(ASH)中屬性相關的參數的一般表示。APS和ASH兩者均適用於所有屬性。實際上,如前述,每個屬性可以具有自己的APS和ASH。但是,APS和ASH兩者皆包含名為_ * _ luma *和* _chroma_ *的語法元素,其主要用於量化/縮放相關參數,其其在語義上不一致,如下所示。
此外,在APS中,一些參數不適用於一維屬性(諸如反射率)。該等參數可能仍然存在,並且可能仍然需要被訊號傳遞(例如,藉由G-PCC編碼器200)。訊號傳遞有效禁用該等參數的值是一種解決方案。然而,這可能給位元串流符合性檢查帶來負擔,因為解碼器(諸如,G-PCC解碼器300)可能必須處理所有可能的值以確保穩健的解碼。
APS和ASH語法元素如下所示:
attribute_parameter_set( ) { 描述符
    aps_attr_parameter_set_id ue(v)
    aps_seq_parameter_set_id ue(v)
    attr_coding_type ue(v)
aps_attr_initial_qp ue(v)
aps_attr_chroma_qp_offset se(v)
aps_slice_qp_delta_present_flag u(1)
     LoDParametersPresent = ( attr_coding_type  = =  0 | | attr_coding_type  = =  2 ) ? 1 : 0  
     if( LoDParametersPresent) {  
lifting_ num_pred_nearest_neighbours_minus1 ue(v)
lifting_search_range_minus1 ue(v)
           for( k = 0; k < 3; k++ )  
lifting_neighbour_bias [ k ] ue(v)
           if ( attr_coding_type  = =  2 )  
               lifting_scalability_enabled_flag u(1)
           if ( ! lifting_scalability_enabled_flag ) {  
lifting_ num_detail_levels_minus1 [Ed. V7.0代碼使用不帶minus1的變數。其應當被對其] ue(v)
                if ( lifting_num_detail_levels_minus1 > 0 ) {  
lifting_lod_regular_sampling_enabled_flag u(1)
                     for( idx = 0; idx < num_detail_levels_minus1; idx++ ) {  
                          if ( lifting_lod_regular_sampling_enabled_flag )  
                         lifting_ sampling_period_minus2 [ idx ] ue(v)
                          else  
lifting_ sampling_distance_squared_scale_minus1 [idx] ue(v)
                               if ( idx != 0 )  
                    lifting_sampling_distance_squared_offset [ idx ] ue(v)
                     }  
                }  
           }  
           if( attr_coding_type  = =  0 ) {  
               lifting_adaptive_prediction_threshold ue(v)
               lifting_intra_lod_prediction_num_layers ue(v)
         lifting_max_num_direct_predictors ue(v)
inter_component_prediction_enabled_flag u(1)
           }  
     }  
     if( attribute_coding_type  = =  1 ) { //RAHT  
          raht_prediction_enabled_flag u(1)
           if (raht_prediction_enabled_flag) {  
               raht_prediction_threshold0 ue(v)
               raht_prediction_threshold1 ue(v)
           }  
     }  
    aps_extension _flag u(1)
     if( aps_extension _flag )  
           while( more_data_in_byte_stream( ) )  
               aps_extension_data_flag u(1)
     byte_alignment( )  
}  
attribute_slice_header( ) { 描述符
ash_attr_parameter_set_id ue(v)  
ash_attr_sps_attr_idx ue(v)  
ash_attr_geom_slice_id ue(v)  
     if ( aps_slice_qp_delta_present_flag ) {    
ash_attr_qp_delta_luma se(v)  
     if( attribute_dimension_minus1[ ash_attr_sps_attr_idx ] > 0 )    
ash_attr_qp_delta_chroma se(v)  
     }    
ash_attr_layer_qp_delta_present_flag u(1)  
     if ( ash_attr_layer_qp_delta_present_flag ) {    
          ash_attr_num_layer_qp_minus1 ue(v)  
           for( i = 0; i < NumLayerQp; i++ ){    
          ash_attr_layer_qp_delta_luma[i] se(v)  
     if( attribute_dimension_minus1[ ash_attr_sps_attr_idx ] > 0 )    
    ash_attr_layer_qp_delta_chroma[i] se(v)  
           }    
     }    
ash_attr_region_qp_delta_present_flag u(1)  
     if ( ash_attr_region_qp_delta_present_flag ) {    
ash_attr_qp_region_box_origin_x ue(v)  
ash_attr_qp_region_box_origin_y ue(v)  
ash_attr_qp_region_box_origin_z ue(v)  
ash_attr_qp_region_box_width ue(v)  
ash_attr_qp_region_box_height ue(v)  
ash_attr_qp_region_box_depth ue(v)  
ash_attr_region_qp_delta se(v)  
     }    
     byte_alignment( )    
}    
根據本揭示的技術,在一些實例中,為了語義符合性,可以將* _luma_ *和* _chroma_ *分別替換為* _ *(NULL)和* _secondary_ *。注意,這僅更改語法元素的命名,而功能含義不會發生改變。此外,G-PCC編碼器200可以在APS中訊號傳遞屬性維度是否大於1,這可以移除不必要的語法元素的存在。(注意,在ASH中,已經應用了此種機制,因為可以從SPS讀取屬性維度。但是,對於APS,無法從SPS讀取相同的資訊,因為這將導致參數集之間的依賴性,這可能是不期望的)。G-PCC編碼器200可以訊號傳遞APS屬性維度是否大於1作為標誌。
在一些實例中,可以添加如下條件:標誌的值不應當與針對屬性訊號傳遞的屬性維度的數量的值相矛盾(例如,若標誌等於1,則該標誌指示對於屬性存在多於一個的維度;則當屬性的數量小於或等於1時,標誌不應等於1。)
在一個實例中,當屬性維度大於1時,標誌aps_attr_dimension_gt1應該等於1。在一個實例中,指示次增量QP(例如ash_attr_qp_delta_secondary)的語法元素的訊號傳遞可以以大於1的屬性維度的數量為條件。例如,G-PCC解碼器300可以決定屬性的屬性維度是否大於1。基於屬性維度大於1,G-PCC解碼器300可以解析指示增量量化參數的屬性切片頭語法元素。G-PCC解碼器300可以基於增量量化參數來解碼點雲資料。
可以對G-PCC標準草案進行以下更改。從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</ CHANGE>。
attribute_parameter_set( ) { 描述符
    aps_attr_parameter_set_id ue(v)
    aps_seq_parameter_set_id ue(v)
    attr_coding_type ue(v)
<CHANGE> aps_attr_dimension_gt1 u(1) </CHANGE>
aps_attr_initial_qp ue(v)
   <CHANGE>  if(aps_attr_dimension_gt1)  
aps_attr_secondary_qp_offset </CHANGE> se(v)
aps_slice_qp_delta_present_flag u(1)
     LodParametersPresent = ( attr_coding_type  = =  0 | | attr_coding_type  = =  2 ) ? 1 : 0  
     if( LodParametersPresent) {  
lifting_ num_pred_nearest_neighbours_minus1 ue(v)
lifting_search_range_minus1 ue(v)
           for( k = 0; k < 3; k++ )  
lifting_neighbour_bias [ k ] ue(v)
           if ( attr_coding_type  = =  2 )  
               lifting_scalability_enabled_flag u(1)
           if ( ! lifting_scalability_enabled_flag ) {  
    lifting_ num_detail_levels_minus1 [Ed.  V7.0代碼使用不帶minus1的變數。其應當被對其] ue(v)
                if ( lifting_num_detail_levels_minus1 > 0 ) {  
lifting_lod_regular_sampling_enabled_flag u(1)
                     for( idx = 0; idx < num_detail_levels_minus1; idx++ ) {  
                          if ( lifting_lod_regular_sampling_enabled_flag )  
                         lifting_ sampling_period_minus2 [ idx ] ue(v)
                          else  
                    lifting_sampling_distance_squared_scale_minus1 [ idx ] ue(v)
                               if ( idx != 0 )  
                    lifting_sampling_distance_squared_offset [ idx ] ue(v)
                     }  
                }  
           }  
           if( attr_coding_type  = =  0 ) {  
               lifting_adaptive_prediction_threshold ue(v)
               lifting_intra_lod_prediction_num_layers ue(v)
         lifting_max_num_direct_predictors ue(v)
        <CHANGE>      if(aps_attr_dimension_gt1)  
inter_component_prediction_enabled_flag </CHANGE> u(1)
           }  
attribute_slice_header( ) { 描述符
    ash_attr_parameter_set_id ue(v)
    ash_attr_sps_attr_idx ue(v)
    ash_attr_geom_slice_id ue(v)
     if ( aps_slice_qp_delta_present_flag ) {  
<CHANGE>         ash_attr_qp_delta </CHANGE> se(v)
           if( attribute_dimension_minus1[ ash_attr_sps_attr_idx ] > 0 )  
     <CHANGE>         ash_attr_qp_delta_secondary </CHANGE> se(v)
     }  
    ash_attr_layer_qp_delta_present_flag u(1)
     if ( ash_attr_layer_qp_delta_present_flag ) {  
          ash_attr_num_layer_qp_minus1 ue(v)
           for( i = 0; i < NumLayerQp; i++ ){  
                <CHANGE>ash_attr_layer_qp_delta[i] </CHANGE> se(v)
     if( attribute_dimension_minus1[ ash_attr_sps_attr_idx ] > 0 )  
<CHANGE>   ash_attr_layer_qp_delta_secondary[i] </CHANGE> se(v)
           }  
     }  
     ash_attr_region_qp_delta_present_flag u(1)
     if ( ash_attr_region_qp_delta_present_flag ) {  
           ash_attr_qp_region_box_origin_x ue(v)
           ash_attr_qp_region_box_origin_y ue(v)
           ash_attr_qp_region_box_origin_z ue(v)
           ash_attr_qp_region_box_width ue(v)
           ash_attr_qp_region_box_height ue(v)
           ash_attr_qp_region_box_depth ue(v)
           ash_attr_region_qp_delta se(v)
     }  
     byte_alignment( )  
}  
現在描述region_qp_delta_signaling。在ASH中,存在用來指示region_qp_delta是否存在的標誌,以及指示region_qp_delta值的另一個語法元素。然而,若region_qp_delta_present_flag為真,則region_qp_delta的值應為非零。
此外,根據G-PCC標準草案,每個切片只能指定一個可以使用增量QP的區域。但是,允許有多個此種區域而不是只有一個此種區域的可能性亦許更為靈活。此種區域的包圍盒可以重疊亦可以不重疊。在此種情況下,點可能屬於多個包圍盒(在重疊情況下),並且可以使用最低區域索引的增量qp,或者替代地可以使用最近鄰點的增量qp。
根據本揭示的技術,在實例中,作為G-PCC編碼器200訊號傳遞region_qp_delta的代替,G-PCC編碼器200可以訊號傳遞region_qp_delta_abs_minus1(幅度)和region_qp_delta_sign。可以對G-PCC標準草案做出以下更改。從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</ CHANGE>。
ash_attr_region_qp_delta_present_flag u(1)
     if ( ash_attr_region_qp_delta_present_flag ) {  
ash_attr_qp_region_box_origin_x ue(v)
ash_attr_qp_region_box_origin_y ue(v)
ash_attr_qp_region_box_origin_z ue(v)
ash_attr_qp_region_box_width ue(v)
ash_attr_qp_region_box_height ue(v)
ash_attr_qp_region_box_depth ue(v)
<CHANGE> ash_attr_region_qp_delta_abs_minus1 ue(v)
ash_attr_region_qp_delta_sign u(1) </CHANGE>
     }  
     byte_alignment( )  
}  
在另一個實例中,ash_attr_num_regions_qp_delta指定將應用deltaQP的區域的數量。ash_attr_num_regions_qp_delta的值可以在0到N的範圍內(包括端點),其中N可以是預定的值(例如,4或8)。可以對G-PCC標準草案做出以下更改。從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</CHANGE>。
ash_attr_num_regions_qp_delta ue(v)
     for ( i=0;i<ash_attr_num_regions_qp_delta; i++ ) {  
ash_attr_qp_region_box_origin_x[i] ue(v)
ash_attr_qp_region_box_origin_y[i] ue(v)
ash_attr_qp_region_box_origin_z[i] ue(v)
ash_attr_qp_region_box_width[i] ue(v)
ash_attr_qp_region_box_height[i] ue(v)
ash_attr_qp_region_box_depth[i] ue(v)
<CHANGE> ash_attr_region_qp_delta_abs_minus1[i] ue(v)
ash_attr_region_qp_delta_sign[i] u(1) </CHANGE>
     }  
     byte_alignment( )  
}  
現在描述當譯碼具有多個屬性的點雲時的LoD參數。當需要空間可縮放性時,對於所有屬性,lifting_scalibility_enabled_flag應該為真。在G-PCC標準草案中,此標誌針對每個屬性獨立譯碼,其不一定每次皆遵循此要求。同樣,作為推論,兩個屬性皆應當使用相同的變換,例如提升變換,例如attr_coding_type==2。G-PCC標準草案中亦沒有此種限制。
另外,在典型用例中,儘管G-PCC編碼器200可以為每個屬性分別訊號傳遞LoD產生參數,但LoD產生參數在所有屬性之間是共享的(如在G-PCC通用測試條件中一樣)。多次訊號傳遞該等參數是較低效率的,因為這會增加典型用例的位元預算。
根據本揭示的技術,在實例中,若適用的話,為了提供共享LoD參數的手段,可以定義通用LoD參數集(common LoD parameter set,CPS),其中G-PCC編碼器200可以定義通用LoD參數。在APS級上,若屬性需要使用不同的LoD參數,則G-PCC編碼器200可以覆蓋通用的LoD參數。可以對G-PCC標準草案做出以下更改。從G-PCC標準草案的更改的開始處標為<CHANGE>,更改的結束處標為</CHANGE>。
attribute_parameter_set( ) { 描述符
    aps_attr_parameter_set_id ue(v)
    aps_seq_parameter_set_id ue(v)
    attr_coding_type ue(v)
aps_attr_initial_qp ue(v)
aps_attr_chroma_qp_offset se(v)
aps_slice_qp_delta_present_flag u(1)
     LodParametersPresent = ( attr_coding_type  = =  0 | | attr_coding_type  = =  2 ) ? 1 : 0  
<CHANGE> if ( attr_coding_type  = =  2 )  
               lifting_scalability_enabled_flag u(1)
    if(LodParametersPresent && !lifting_scalability_enabled_flag)  
aps_lod_parameters_override_flag u(1) </CHANGE>
     if( aps_lod_parameters_override_flag) {  
lifting_ num_pred_nearest_neighbours_minus1 ue(v)
lifting_search_range_minus1 ue(v)
           for( k = 0; k < 3; k++ )  
lifting_neighbour_bias [ k ] ue(v)
           if ( ! lifting_scalability_enabled_flag ) {  
lifting_ num_detail_levels_minus1 [Ed.  V7.0代碼使用不帶minus1的變數。其應當被對其] ue(v)
                if ( lifting_num_detail_levels_minus1 > 0 ) {  
lifting_lod_regular_sampling_enabled_flag u(1)
                     for( idx = 0; idx < num_detail_levels_minus1; idx++ ) {  
                          if ( lifting_lod_regular_sampling_enabled_flag )  
                         lifting_ sampling_period_minus2 [ idx ] ue(v)
                          else  
                    lifting_sampling_distance_squared_scale_minus1 [ idx ] ue(v)
                               if ( idx != 0 )  
                    lifting_sampling_distance_squared_offset [ idx ] ue(v)
                     }  
                }  
           }  
   
<CHANGE> common_lod_parameter_set( ) { 描述符
cps_attr_parameter_set_id ue(v)
cps_seq_parameter_set_id ue(v)
cps_attr_coding_type ue(v)
     LodParametersPresent = (cps_ attr_coding_type  = =  0 | | cps_attr_coding_type  = =  2 ) ? 1 : 0  
           if ( cps_attr_coding_type  = =  2 )  
cps_lifting_scalability_enabled_flag u(1)
     if( LodParametersPresent) {  
cps_lifting_num_pred_nearest_neighbours_minus1 ue(v)
cps_lifting_search_range_minus1 ue(v)
          for( k = 0; k < 3; k++ )  
cps_lifting_neighbour_bias[ k ] ue(v)
           if ( ! lifting_scalability_enabled_flag ) {  
cps_lifting_num_detail_levels_minus1 [Ed. V7.0代碼使用不帶有minus1的變數。其應當對準] ue(v)
                if (cps_ lifting_num_detail_levels_minus1 > 0 ) {  
cps_lifting_lod_regular_sampling_enabled_flag u(1)
                     for( idx = 0; idx < num_detail_levels_minus1; idx++ ) {  
     if (cps_ lifting_lod_regular_sampling_enabled_flag )  
cps_lifting_sampling_period_minus2[ idx ] ue(v)
else  
cps_lifting_sampling_distance_squared_scale_minus1[ idx ] ue(v)
                                if ( idx != 0 )  
cps_lifting_sampling_distance_squared_offset[ idx ] ue(v)
}  
}  
}  
} </CHANGE>  
當在APS中不存在覆蓋標誌時,G-PCC解碼器300可以決定對應的參數等於對應的CPS參數。同樣,對於不同屬性和CPS的APS,屬性譯碼類型和提升可縮放性啟用標誌應當相同。
上文列出的CPS中的語法元素的語義與APS中當前定義的彼等語義相似,並且適用於引用CPS的所有屬性。
在一個實例中,G-PCC編碼器200可以在APS或ASH中訊號傳遞CPS ID以指定對應於特定屬性的CPS。G-PCC解碼器300可以解析CPS ID。在另一個實例中,僅當aps_lod_parameters_override_flag等於0時,G-PCC編碼器200才可以在APS中訊號傳遞CPS ID。
在一些實例中,可以藉由G-PCC編碼器200可能在SPS中訊號傳遞的更高級別指示(例如aps_LOD_parameters_override_present_flag)來控制aps_LOD_parameters_override_flag的訊號傳遞。當更高級別的指示指定不訊號傳遞aps_LOD_parameters_override_flag時,G-PCC編碼器200可以不在APS中顯式地訊號傳遞APS LOD參數。G-PCC解碼器300可以從要用於屬性的CPS推導APS LOD參數。
在另一個實例中,G-PCC編碼器200可以訊號傳遞LOD屬性參數集,該LoD屬性參數集被期望包含用於點雲的屬性的LoD資訊。G-PCC解碼器300可以解析LoD資訊。當提升可縮放性用於以attr_coding_type = 2(預測提升)譯碼的任何屬性時,所有以attr_coding_type = 2(預測提升)譯碼的屬性皆可以以提升可縮放性進行譯碼。參數集可以由屬性切片頭來引用。下文指定了G-PCC標準草案中對APS的更改和新的LoD參數集,並在<CHANGE>和</ CHANGE>之間顯示了更改,在<DELETE>和</ DELETE>之間顯示了刪除:
attribute_parameter_set( ) { 描述符
    aps_attr_parameter_set_id ue(v)
    aps_seq_parameter_set_id ue(v)
    attr_coding_type ue(v)
    aps_attr_initial_qp ue(v)
    aps_attr_chroma_qp_offset se(v)
    aps_slice_qp_delta_present_flag u(1)
     if(attr_coding_type  = =  0) { //RAHT  
         raht_prediction_enabled_flag u(1)
           if (raht_prediction_enabled_flag) {  
               raht_prediction_threshold0 ue(v)
               raht_prediction_threshold1 ue(v)
           }  
     }  
     else if (attr_coding_type <= 2) <DELETE> { </DELETE>  
           <CHANGE>aps_lod_parameter_set_id<CHANGE> <CHANGE>ue(v) </CHANGE>
<DELETE> lifting_num_pred_nearest_neighbours_minus1 <DELETE> ue(v)  
          lifting_search_range_minus1 ue(v)
           for( k = 0; k < 3; k++ )  
               lifting_neighbour_bias [ k ] ue(v)
     if ( attr_coding_type  = =  2  
          lifting_scalability_enabled_flag u(1)
     if ( ! lifting_scalability_enabled_flag ) {  
    lifting_num_detail_levels_minus1 ue(v)
     if ( lifting_num_detail_levels_minus1 > 0 ) {  
    lifting_lod_regular_sampling_enabled_flag u(1)
for( idx = 0; idx < num_detail_levels_minus1; idx++ ) {  
           if ( lifting_lod_regular_sampling_enabled_flag )  
                              lifting_sampling_period_minus2 [ idx ] ue(v)
                          else  
                              lifting_sampling_distance_squared_scale_minus1 [ idx ] ue(v)
                          if ( idx != 0 )  
                                    lifting_sampling_distance_squared_offset [ idx ] ue(v) </DELETE>
                     }  
                }  
           } </DELETE>  
           if( attr_coding_type  = =  1 ) {  
               lifting_adaptive_prediction_threshold ue(v)
               lifting_intra_LoD_prediction_num_layers ue(v)
              lifting_max_num_direct_predictors ue(v)
               inter_component_prediction_enabled_flag u(1)
           }  
     }  
    aps_extension _flag u(1)
     if( aps_extension _flag )  
           while( more_data_in_byte_stream( ) )  
               aps_extension_data_flag u(1)
     byte_alignment( )  
}  
<CHANGE> aps_LOD_parameter_set_id為活動的LOD參數集指定aps_LOD_parameter_set_id的值。aps_LOD_parameter_set_id的值應當在0到15的範圍內(包括端點)。 當attr_coding_type等於1時,由aps_common_LOD_parameter_set_id引用的LOD參數集中的lifting_scalability_enabled_flag的值應等於0。 當兩個或兩個以上屬性引用其具有attr_coding_type等於2的相應APS時,對於由相應APS的aps_LOD_parameter_set_id引用的LOD參數集,lifting_scalability_enabled_flag的值應當相同。 </ CHANGE>
可替代地,可以將以下約束添加到G-PCC標準草案中:對於點雲的所有屬性,lifting_scalability_enabled_flag的值應當相同。
lod_para meter_set( ) { 描述符
    lod_parameter_set_id ue(v)    
    lifting_num_pred_nearest_neighbours_minus1 ue(v)
    lifting_search_range_minus1 ue(v)
     for( k = 0; k < 3; k++ )  
          lifting_neighbour_bias [ k ] ue(v)
    lifting_scalability_enabled_flag u(1)
     if ( ! lifting_scalability_enabled_flag ) {  
          lifting_num_detail_levels_minus1 ue(v)
           if ( lifting_num_detail_levels_minus1 > 0 ) {  
               lifting_lod_regular_sampling_enabled_flag u(1)
                for( idx = 0; idx < lifting_num_detail_levels_minus1; idx++ ) {  
     if ( lifting_lod_regular_sampling_enabled_flag )  
                          lifting_sampling_period_minus2 [ idx ] ue(v)
                     else  
                    lifting_sampling_distance_squared_scale_minus1 [ idx ] ue(v)
                     if ( idx != 0 )  
    lifting_sampling_distance_squared_offset [ idx ] ue(v)
                }  
           }  
     }  
    lps_extension _flag u(1)
     if( lps_extension _flag )  
           while( more_data_in_byte_stream( ) )  
               lps_extension_data_flag u(1)
     byte_alignment( )  
}  
LoD參數集中的所有語法元素的語義可以與APS的語義相同,只是其應用於引用LoD參數集的屬性。其他更改包括: <CHANGE> lod_parameter_set_id提供了LPS的識別符,以供其他語法元素引用。lod_parameter_set_id的值應當在0到15的範圍內(包括端點)。 lps_extension_flag等於0指定在LPS語法結構中不存在lps_extension_data_flag語法元素。在符合本規範版本的位元串流中,lps_extension_flag應當等於0。lps_extension_flag的值1被保留供ISO/IEC將來使用。解碼器應當忽略LPS語法結構中所有遵循lps_extension_flag的值1的lps_extension_data_flag語法元素。 lps_extension_data_flag可以具有任何值。其存在和值不影響對本規範的版本中指定的設定檔的解碼器符合性。符合本規範的版本的解碼器應忽略所有lps_extension_data_flag語法元素。 </ CHANGE>
現在論述引用參數集的幾何結構切片。在G-PCC標準草案中,幾何結構切片包含gsh_geometry_parameter_set_id,其是切片所引用的GPS的ID。不存在對gsh_geometry_parameter_set_ID的值範圍的限制。 gps_geom_parameter_set_id(GPS中的單獨語法元素,而不是GSH)的值在0到15的範圍內(包括端點)。
此外,允許點雲訊框/圖塊中的每一個幾何結構切片引用任何GPS(因為訊框/圖塊中的每一個幾何結構切片可以訊號傳遞gsh_geometry_parameter_set_id的任何有效值。)儘管有一些特殊用例中可能需要此種靈活性,然而對於大多數典型情況而言,具有此種靈活性是沒有意義的。此種靈活性亦迫使解碼器(例如,G-PCC解碼器300)進行符合性檢查以測試所有可能的組合(不同GPS中的GPS語法元素的不同值,其中該GPS可以由相同訊框引用)。這增加了解碼器製造商的成本。
根據本揭示的技術,在實例中,可以添加限制,即gsh_geometry_parameter_set_id的值應當在0到15的範圍內(包括端點)。例如,G-PCC編碼器200可以對在0到15之間的範圍(包括端點)內的gsh_geometry_parameter_set_id的值進行編碼。
在一些實例中,當在圖塊中存在多於一個幾何結構切片時,可以添加限制,即每個此種切片應當引用相同的GPS。在一個實例中,當訊框中存在多於一個幾何結構切片時,可以添加限制,即每個此種切片應當引用相同的GPS。在另一個實例中,當在點雲序列/位元串流中存在多於一個幾何結構切片時,可以添加限制,即每個此種切片應當引用相同的GPS。G-PCC編碼器200可以應用該等限制。
在實例中,指定了gsh_geometry_parameter_set_id的值範圍,並且將同一訊框的幾何結構切片限制為引用相同的GPS。
gsh_geometry_parameter_set_id指定活動GPS的gps_geom_parameter_set_id的值。<CHANGE> gsh_geometry_parameter_set_id的值應在0到15的範圍內(包括端點)。
當多於一個幾何結構切片與訊框相關聯時,對於與該訊框相關聯的所有幾何結構切片來說,gsh_geometry_parameter_set_id的值應當相同。 </ CHANGE>
替代地,可以將以下添加到G-PCC標準草案中:當多於一個幾何結構切片與圖塊相關聯時,對於與該圖塊相關聯的所有幾何結構切片來說,gsh_geometry_parameter_set_id的值應當相同。
現在論述引用參數集的屬性切片。在G-PCC標準草案中,屬性切片包含ash_attr_parameter_set_id,其是切片所引用的APS的識別符。不存在對ash_attr_parameter_set_ID的值範圍的限制。aps_attr_parameter_set_id(APS中的單獨語法元素,而不是ASH)的值在0到15的範圍內(包括端點)。
此外,根據G-PCC標準草案,允許點雲訊框/圖塊中的(特定屬性的)每個屬性切片引用任何APS(因為訊框/圖塊中的每一個屬性切片可以訊號傳遞ash_attr_parameter_set_id的任何有效值)。儘管存在某些特殊用例,其中可能需要此種靈活性,但在大多數典型情況下,具有此種靈活性是沒有意義的。此種靈活性亦迫使解碼器(諸如G-PCC解碼器300)進行符合性檢查以測試所有可能的組合(可能由相同訊框引用的不同APS中APS語法元素的不同值)。這增加了解碼器製造商的成本。
根據本揭示的技術,在實例中,可以添加限制,即ash_attr_parameter_set_id的值應當在0到15的範圍內(包括端點)。例如,G-PCC編碼器200可以將ash_attr_parameter_set_id的值編碼為在0到15的範圍內。
當在圖塊中存在多於一個的相同屬性(例如,ash_attr_sps_attr_idx)的屬性切片時,可以添加限制,即每個此種切片應當引用相同的GPS。在一個實例中,當訊框中存在多於一個的相同屬性(例如,ash_attr_sps_attr_idx)的屬性切片時,可以添加限制,即每個此種切片應當引用相同的GPS。在另一個實例中,當在點雲序列/位元串流中存在多於一個的相同屬性(例如,ash_attr_sps_attr_idx)的屬性切片時,可以添加限制,即每個此種切片應當引用相同的GPS。G-PCC編碼器200可以應用該等限制。
在一個實例中,指定了ash_attr_parameter_set_id的值範圍,並且將相同訊框的(相同屬性類型或索引的)屬性切片限制為引用相同的APS。
ash_attr_parameter_set_id指定活動的APS的aps_attr_parameter_set_id的值。ash_attr_parameter_set_id的值應當在0到15的範圍內(包括端點)。
<CHANGE>當多於一個屬性切片與訊框相關聯時,對於與具有相同的ash_attr_sps_attr_idx的值的訊框相關聯的所有屬性切片,ash_attr_parameter_set_id的值應當相同。</ CHANGE>
替代地,可以將以下內容添加到G-PCC標準草案中:當多於一個屬性切片與圖塊相關聯時,對於與具有相同的ash_attr_sps_attr_idx的值的圖塊相關聯的所有屬性切片,ash_attr_parameter_set_id的值應當相同。
圖7是根據本揭示的示例區域盒和切片包圍盒技術的流程圖。G-PCC解碼器300可以決定區域盒的維度(700)。例如,G-PCC解碼器300可以解析指示區域盒的維度的(多個)語法元素。G-PCC解碼器300可以決定切片包圍盒的維度(702)。例如,G-PCC解碼器300可以解析指示切片包圍盒的維度的(多個)語法元素。G-PCC解碼器300可以解碼與切片包圍盒相關聯的點雲資料的切片(704)。例如,G-PCC解碼器300可以對切片包圍盒內的切片進行解碼。可以約束區域包圍盒的維度以不超過切片包圍盒的維度。例如,可以要求位元串流符合性,即區域包圍盒的維度不超過切片包圍盒的維度。在一些實例中,區域盒的維度受到約束,以使得沒有區域盒內的點在切片包圍盒之外。
圖8是根據本揭示的示例的切片識別符技術的流程圖。G-PCC解碼器300可以決定與點雲資料的訊框相關聯的第一幾何結構切片的第一切片ID(800)。例如,G-PCC解碼器300可以解析指示訊框的第一幾何結構切片的第一切片ID的語法元素。G-PCC解碼器300可以決定與點雲資料的訊框相關聯的第二幾何結構切片的第二切片ID(802)。例如,G-PCC解碼器300可以解析指示訊框的第二幾何結構切片的第二切片ID的語法元素。基於第二切片ID等於第一切片ID,G-PCC解碼器300可以決定第二切片包含與第一切片相同的內容(804)。例如,可以要求位元串流符合性:若點雲資料的訊框的第一幾何結構切片與該訊框的第二幾何結構切片具有相同的切片ID,則第一幾何結構切片和第二幾何結構切片的內容是相同的。G-PCC解碼器300可以基於第一切片ID來解碼點雲資料(806)。例如,G-PCC解碼器300可以基於第一切片ID來解碼第一幾何結構切片和第二幾何結構切片兩者。
圖9是說明根據本揭示的增量量化參數技術的實例的流程圖。G-PCC解碼器300可以決定屬性的屬性維度是否大於1(900)。例如,G-PCC解碼器300可以解析序列參數集中指示屬性維是否大於1的語法元素。基於屬性維度大於1,G-PCC解碼器300可以解析指示增量量化參數的屬性切片頭語法元素(902)。例如,G-PCC解碼器300可以解析屬性切片頭中的ash_attr_qp_delta_secondary(或ash_attr_qp_delta_chroma)。G-PCC解碼器300可以基於增量量化參數來解碼點雲資料(904)。在一些實例中,作為決定屬性維度是否大於1的一部分,G-PCC解碼器300可以解析序列參數集中的語法元素。
在一些實例中,G-PCC解碼器300可以決定切片維度,解析三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的節點的大小,並基於節點的大小來解碼點雲資料。在該等實例中,三角湯節點大小語法元素的值可以被約束為不超過切片維度。
在一些實例中,G-PCC解碼器300可以解析指示區域的數量的屬性切片頭語法元素,該區域中將應用增量量化參數,並且基於區域的數量解碼點雲資料。在該等實例中,可以將屬性切片頭語法元素的值限制在0到N的範圍內,其中N是預定值,諸如4或8或一些其他值。可以使用指數哥倫佈譯碼(例如,ue(v))對區域的數量進行譯碼。
在一些實例中,G-PCC解碼器300可以解析指示幾何結構參數集識別符的幾何結構切片頭語法元素。在該等實例中,幾何結構切片頭語法元素的值被限制為在0到15的範圍內(包括端點)。在一些實例中,G-PCC解碼器可以進一步基於由幾何結構參數集識別符所標識的幾何結構參數集來解碼點雲資料。
在一些實例中,G-PCC解碼器300可以解析指示屬性參數集識別符的屬性切片頭語法元素。在該等實例中,可以將屬性切片頭語法元素的值限制在0到15的範圍內(包括端點)。在一些實例中,G-PCC解碼器可以進一步基於由屬性參數集識別符所標識的屬性參數集來解碼點雲資料。
本揭示的各種態樣中的實例可以單獨使用或以任意組合使用。
本揭示包含以下實例。
條款1. 一種譯碼點雲資料的方法,該方法包括:將區域盒約束為不超過切片包圍盒的維度;及對與切片包圍盒相關聯的點雲資料的切片進行譯碼。
條款2. 如條款1所述的方法,其中約束區域盒包括:約束區域盒,使得沒有區域盒內的點在切片包圍盒之外。
條款3. 如條款1或2所述的方法,進一步包括避免針對區域盒的寬度、高度或深度訊號傳遞值0。
條款4. 一種譯碼點雲資料的方法,該方法包括:將tile_inventory()語法元素與點雲資料的訊框進行關聯;及基於tile_inventory()語法元素對訊框進行譯碼。
條款5. 如條款4所述的方法,進一步包括訊號傳遞tile_inventory()語法元素。
條款6. 如條款4所述的方法,其中將tile_inventory()語法元素與訊框進行關聯包括:決定與訊框相關聯的訊框索引是否具有與tile_inventory()語法元素等效的值;及基於訊框索引具有與tile_inventory()語法元素等效的值,將tile_inventory()語法元素與訊框進行關聯。
條款7. 如條款4-6之任意組合所述的方法,進一步包括:將幾何結構切片頭中的tile_id的值約束為在0到N的範圍內(包括端點),其中N的值比在與訊框關聯的tile_inventory()語法元素中訊號傳遞的圖塊的數量少一。
條款8. 一種譯碼點雲資料的方法,該方法包括:決定在與訊框相關聯的圖塊中是否存在多個切片;基於圖塊中存在多個切片,決定一或多個語法元素;及基於該語法元素譯碼點雲資料。
條款9. 如條款8所述的方法,進一步包括:決定兩個幾何結構切片對於圖塊是否具有不同的gsh_slice_id值;及基於兩個幾何結構切片具有不同gsh_slice_id值,決定gps_box_present_flag的值為1。
條款10. 如條款8所述的方法,進一步包括:決定兩個幾何結構切片是否具有不同的gsh_slice_id值以及相同的圖塊ID和相同的訊框索引;及基於兩個幾何結構切片具有不同gsh_slice_id值、和相同圖塊ID和相同訊框索引,決定gps_box_present_flag的值為1。
條款11. 一種譯碼點雲資料的方法,該方法包括:決定切片維度;將log2_trisoup_node_size的值限制為不超過切片維度;及基於log2_trisoup_node_size譯碼點雲資料。
條款12. 如條款11所述的方法,其中gsh_log2_max_nodesize的值大於或等於log2_trisoup_node_size的值。
條款13. 如條款11所述的方法,其中當gps_implicit_geom_partition_log等於1時,log2_trisoup_node_size語法元素的值小於或等於min(gsh_log2_max_nodesize_x,gsh_log2_max_nodesize_y,gsh_log2_max_nodesize_z),否則其大於或等於gsh_log2_max_nodesize。
條款14. 一種譯碼點雲資料的方法,該方法包括:決定與點雲資料的訊框相關聯的兩個幾何結構切片是否具有相同的切片ID;基於兩個幾何結構切片具有相同切片ID,將兩個幾何結構切片限制為具有相同的內容;並基於該限制譯碼點雲資料。
條款15. 一種譯碼點雲資料的方法,該方法包括:決定兩個幾何結構切片是否與相同的訊框相關聯;基於兩個幾何結構切片與相同的訊框相關聯,限制兩個幾何結構切片具有相同的切片ID值;及基於每個切片ID譯碼點雲資料。
條款16. 一種譯碼點雲資料的方法,該方法包括:決定點雲中的所有點是否皆與相應的唯一點相關聯;基於點雲中的所有點與相應的唯一點相關聯,限制切片包含與相同的位置相關聯的兩個點;及基於該限制譯碼點雲資料。
條款17. 如條款16所述的方法,進一步包括:限制訊號傳遞指示切片包含與相同的位置相關聯的兩個點的語法元素。
條款18. 一種譯碼點雲資料的方法,該方法包括:決定與顏色相關的語法元素;針對顏色屬性訊號傳遞與顏色相關的語法元素;避免出於其他目的訊號傳遞與顏色相關的語法元素;及基於與顏色相關的語法元素譯碼點雲資料。
條款19. 如條款18所述的方法,進一步包括:決定known_attribute_label_flag是否為0;基於known_attribute_label_flag為0,不包括attribute_label_four_bytes中的已知屬性。
條款20. 如條款18所述的方法,進一步包括僅以attribute_label_four_bytes表示每個屬性。
條款21. 一種譯碼點雲資料的方法,該方法包括:決定屬性維度是否大於1;基於屬性維度大於1,在屬性參數集中訊號傳遞標誌;並基於該標誌譯碼點雲資料。
條款22. 如條款21所述的方法,進一步包括:限制標誌的值為不與為屬性訊號傳遞的屬性維度數量的值相矛盾。
條款23. 一種譯碼點雲資料的方法,該方法包括:避免訊號傳遞region_qp_delta;訊號傳遞region_qp_delta_abs_minus1和region_qp_delta_sign;及基於region_qp_delta_abs_minus1和region_qp_delta_sign譯碼點雲資料。
條款24. 如條款23所述的方法,進一步包括:決定將應用deltaQP的區域的數量;及訊號傳遞指示將要應用deltaQP的區域數量的語法元素。
條款25. 一種譯碼點雲資料的方法,該方法包括:提供通用的詳細級別(LoD)參數集(CPS);決定LoD語法元素;及基於LoD語法元素譯碼點雲資料。
條款25.5. 如條款25所述的方法,其中基於LoD語法元素等於2,採用提升可縮放性對將要採用等於2的LoD語法元素譯碼的所有屬性進行譯碼。
條款26. 如條款25所述的方法,進一步包括:決定在屬性參數集(APS)中是否存在覆蓋標誌;基於APS中不存在覆蓋標誌,決定通用參數集(CPS)參數等於對應的APS參數。
條款27. 如條款25或26所述的方法,進一步包括:決定對於APS和CPS,屬性譯碼類型和提升可縮放性啟用標誌相等。
條款28. 如條款25-27之任意組合所述的方法,進一步包括訊號傳遞指示與屬性相對應的CPS的CPS ID。
條款29. 如條款28所述的方法,其中CPS ID在APS或屬性切片頭(ASH)的一個中。
條款30. 如條款28或29所述的方法,進一步包括:決定aps_LOD_parameters_override_flag是否等於0;及基於aps_LOD_parameters_override_flag等於0,訊號傳遞CPS ID。
條款31. 如條款25-30的任意組合所述的方法,進一步包括:決定是否未訊號傳遞aps_LOD_parameters_override_flag;基於未訊號傳遞aps_LOD_parameters_override_flag,避免訊號傳遞APS參數;及從CPS推導與屬性一起使用的參數。
條款31.1. 一種譯碼點雲資料的方法,該方法包括:決定在圖塊中是否有多於一個的幾何結構切片;基於在圖塊中有多於一個的幾何結構切片,將圖塊中的每一個幾何結構切片限制為引用相同的GPS;及基於GPS譯碼點雲資料。
條款31.2:一種譯碼點雲資料的方法,該方法包括:決定在圖塊中是否有多於一個的屬性切片;基於在圖塊中有多於一個的屬性切片,限制圖塊中的每一個幾何結構切片為引用相同的GPS;並基於GPS譯碼點雲資料。
條款32. 如條款1-31.2中任一項所述的方法,進一步包括產生點雲。
條款33. 一種用於處理點雲的設備,該設備包括用於執行如條款1-32中任一項所述的方法的一或多個構件。
條款34. 如條款33所述的設備,其中該一或多個構件包括以電路實現的一或多個處理器。
條款35. 如條款33或34中的任一項所述的設備,進一步包括用於儲存表示點雲的資料的記憶體。
條款36. 如條款33-35中的任一項所述的設備,其中該設備包括解碼器。
條款37. 如條款33-36中的任一項所述的設備,其中該設備包括編碼器。
條款38. 如條款33-37中任一項所述的設備,進一步包括用於產生點雲的設備。
條款39. 如條款33-38中任一項所述的設備,進一步包括顯示器,用於基於點雲來呈現圖像。
條款40. 一種電腦可讀取儲存媒體,其上儲存有指令,當該等指令被執行時使得一或多個處理器執行如條款1-32中任一項所述的方法。
條款41. 一種解碼點雲資料的方法,該方法包括:決定區域盒的維度;決定切片包圍盒的維度;及解碼與切片包圍盒相關聯的點雲資料的切片,其中區域盒的維度被約束為不超過切片包圍盒的維度。
條款42. 如條款41所述的方法,其中區域盒的維度被約束,使得沒有區域盒中的點在切片包圍盒之外。
條款43. 如條款41或42所述的方法,進一步包括:決定切片維度;解析三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的節點的大小;及基於該節點的大小解碼點雲資料,其中三角湯節點大小語法元素的值被約束為不超過切片維度。
條款44. 如條款41-43的任意組合所述的方法,進一步包括:解析指示區域的數量的屬性切片頭語法元素,其中在該區域中將應用增量量化參數;及基於區域的數量解碼點雲資料,其中屬性切片頭語法元素的值被約束在0到N的範圍內,其中N為預定值。
條款45. 如條款41-44的任意組合所述的方法,進一步包括:解析指示幾何結構參數集識別符的幾何結構切片頭語法元素,其中幾何結構切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中解碼點雲資料進一步基於由幾何結構參數集識別符所標識的幾何結構參數集。
條款46. 如條款41-45的任意組合所述的方法,進一步包括:解析指示屬性參數集識別符的屬性切片頭語法元素,其中屬性切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中解碼點雲資料進一步基於由屬性參數集識別符所標識的屬性參數集。
條款47. 一種解碼點雲資料的方法,該方法包括:決定與點雲資料的訊框相關聯的第一幾何結構切片的第一切片識別符(ID);決定與點雲資料的訊框相關聯的第二幾何結構切片的第二切片ID;基於第二切片ID等於第一切片ID,決定第二切片包含與第一切片相同的內容;及基於第一切片ID解碼點雲資料。
條款48. 如條款47所述的方法,進一步包括:決定切片維度;解析三角湯節點大小語法元素,其指示以三角湯譯碼模式譯碼的節點的大小;及基於節點的大小解碼點雲資料,其中三角湯節點大小語法元素的值被約束為不超過切片維度。
條款49. 如條款47或48所述的方法,進一步包括:解析指示區域的數量的屬性切片頭語法元素,其中在該區域中將應用增量量化參數;及基於區域的數量解碼點雲資料,其中屬性切片頭語法元素的值被限制為在0到N的範圍內,其中N為預定值。
條款50. 如條款47-49的任意組合所述的方法,進一步包括:解析指示幾何結構參數集識別符的幾何結構切片頭語法元素,其中幾何結構切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中解碼點雲資料進一步基於由幾何結構參數集識別符所標識的幾何結構參數集。
條款51. 如條款47-50的任意組合所述的方法,進一步包括:解析指示屬性參數集識別符的屬性切片頭語法元素,其中屬性切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中解碼點雲資料進一步基於由屬性參數集識別符所標識的屬性參數集。
條款52. 一種解碼點雲資料的方法,該方法包括:決定屬性的屬性維度是否大於1;基於屬性維度大於1,解析指示增量量化參數的屬性切片頭語法元素;及基於增量量化參數解碼點雲資料。
條款53. 如條款52所述的方法,其中決定屬性維度是否大於1包括解析序列參數集中的語法元素。
條款54. 如條款52或53所述的方法,進一步包括:決定切片維度;解析三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的節點的大小;及基於節點的大小解碼點雲資料,其中三角湯節點大小語法元素的值被約束為不超過切片維度。
條款55. 如條款52-54的任意組合所述的方法,進一步包括:解析指示區域的數量的屬性切片頭語法元素,其中在該區域中將應用增量量化參數;及基於區域的數量解碼點雲資料,其中屬性切片頭語法元素的值被限制為在0到N的範圍內,其中N為預定值。
條款56. 如條款52-55的任意組合所述的方法,進一步包括:解析指示幾何結構參數集識別符的幾何結構切片頭語法元素,其中幾何結構切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中解碼點雲資料進一步基於由幾何結構參數集識別符所標識的幾何結構參數集。
條款57. 如條款52-56的任意組合所述的方法,進一步包括:解析指示屬性參數集識別符的屬性切片頭語法元素,其中屬性切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中解碼點雲資料進一步基於由屬性參數集識別符所標識的屬性參數集。
條款58. 一種用於解碼點雲資料的設備,該設備包括:被配置為儲存點雲資料的記憶體;及在電路中實施並且耦合到記憶體的一或多個處理器,該一或多個處理器被配置為:決定區域盒的維度;決定切片包圍盒的維度;及解碼與切片包圍盒相關聯的點雲資料的切片,其中區域盒的維度被約束為不超過切片包圍盒的維度。
條款59. 如條款58所述的設備,其中區域盒的維度被約束,使得沒有區域盒中的點在切片包圍盒之外。
條款60. 如條款58或59所述的設備,其中一或多個處理器進一步被配置為:決定切片維度;解析三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的節點的大小;及
基於節點的大小解碼點雲資料,其中三角湯節點大小語法元素的值被約束為不超過切片維度。
條款61. 如條款58-60的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示區域的數量的屬性切片頭語法元素,其中在該區域中將應用增量量化參數;及基於區域的數量解碼點雲資料,其中屬性切片頭語法元素的值被限制為在0到N的範圍內,其中N為預定值。
條款62. 如條款58-61的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示幾何結構參數集識別符的幾何結構切片頭語法元素,其中幾何結構切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中一或多個處理器進一步基於由幾何結構參數集識別符所標識的幾何結構參數集解碼點雲資料。
條款63. 如條款58-62的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示屬性參數集識別符的屬性切片頭語法元素,其中屬性切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中一或多個處理器進一步基於由屬性參數集識別符所標識的屬性參數集解碼點雲資料。
條款64. 一種用於解碼點雲資料的設備,該設備包括:被配置為儲存點雲資料的記憶體;及在電路中實施並且耦合到記憶體的一或多個處理器,該一或多個處理器被被配置為:決定與點雲資料的訊框相關聯的第一幾何結構切片的第一切片識別符(ID);決定與點雲資料的訊框相關聯的第二幾何結構切片的第二切片ID;基於第二切片ID等於第一切片ID,決定第二切片包含與第一切片相同的內容;及基於第一切片ID解碼點雲資料。
條款65. 如條款64所述的設備,其中一或多個處理器進一步被配置為:決定切片維度;解析三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的節點的大小;及基於節點的大小解碼點雲資料,其中三角湯節點大小語法元素的值被約束為不超過切片維度。
條款66. 如條款64或65所述的設備,其中一或多個處理器進一步被配置為:解析指示區域的數量的屬性切片頭語法元素,其中在該區域中將應用增量量化參數;及基於區域數量解碼點雲資料,其中屬性切片頭語法元素的值被限制為在0到N的範圍內,其中N為預定值。
條款67. 如條款64-66的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示幾何結構參數集識別符的幾何結構切片頭語法元素,其中將語法元素的值限制為在0到15的範圍內(包括端點),以及其中一或多個處理器進一步基於由幾何結構參數集識別符所標識的幾何結構參數集解碼點雲資料。
條款68. 如條款64-67的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示屬性參數集識別符的屬性切片頭語法元素,其中將屬性切片頭語法元素的值限制為在0到15的範圍內(包括端點),以及其中一或多個處理器進一步基於由屬性參數集識別符所標識的屬性參數集解碼點雲資料。
條款69. 一種用於解碼點雲資料的設備,該設備包括:被配置為儲存點雲資料的記憶體;及在電路中實施並且耦合到該記憶體的一或多個處理器,一或多個處理器被配置為:決定屬性的屬性維度是否大於1;基於屬性維度大於1,解析指示增量量化參數的屬性切片頭語法元素;及基於增量量化參數解碼點雲資料。
條款70. 如條款69所述的設備,其中作為決定屬性維度是否大於1的一部分,一或多個處理器被配置為解析序列參數集中的語法元素。
條款71. 如條款69或70所述的設備,其中一或多個處理器進一步被配置為:決定切片維度;解析三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的節點的大小;及基於節點的大小解碼點雲資料,其中三角湯節點大小語法元素的值被約束為不超過切片維度。
條款72. 如條款69-71的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示區域的數量的屬性切片頭語法元素,其中在該區域中將應用增量量化參數;及基於區域的數量解碼點雲資料,其中屬性切片頭語法元素的值被限制為在0到N的範圍內,其中N為預定值。
條款73. 如條款69-72的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示幾何結構參數集識別符的幾何結構切片頭語法元素,其中幾何結構切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中一或多個處理器進一步基於由幾何結構參數集識別符所標識的幾何結構參數集解碼點雲資料。
條款74. 如條款69-73的任意組合所述的設備,其中一或多個處理器進一步被配置為:解析指示屬性參數集識別符的屬性切片頭語法元素,其中屬性切片頭語法元素的值被限制為在0到15的範圍內(包括端點),以及其中一或多個處理器進一步基於由屬性參數集識別符所標識的屬性參數集解碼點雲資料。
應當認識到,根據實例,本文描述的任何技術的某些動作或事件可以以不同的循序執行,可以被添加,合併或完全省略(例如,並非所有描述的動作或事件是該等技術的實踐所必需的)。此外,在某些實例中,動作或事件可以例如經由多執行緒處理、中斷處理或多個處理器併發地而不是順序地執行。
在一或多個實例中,可以以硬體、軟體、韌體或其任意組合來實現所描述的功能。若以軟體實施,則功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在電腦可讀取媒體上傳輸,並由基於硬體的處理單元執行。電腦可讀取媒體可以包括電腦可讀取儲存媒體,其對應於諸如資料儲存媒體的有形媒體,或者通訊媒體,其中通訊媒體包括例如根據通訊協定來促進將電腦程式從一個地方轉移到另一個地方的任何媒體。以此種方式,電腦可讀取媒體通常可以對應於(1)非暫時性的有形電腦可讀取儲存媒體,或者(2)諸如信號或載波的通訊媒體。資料儲存媒體可以是任何可用媒體,其可由一或多個電腦或者一或多個處理器存取以檢索指令、代碼及/或資料結構以實現本揭示中描述的技術。電腦程式產品可以包括電腦可讀取媒體。
作為實例而非限制,此種電腦可讀取儲存媒體可以包括RAM、ROM、EEPROM、CD-ROM或者其他光碟儲存、磁碟儲存或者其他磁性儲存設備、快閃記憶體或可以用於以指令或資料結構形式儲存所需程式碼並且可以由電腦存取的任何其他媒體。同樣,任何連接皆可以適當地稱為電腦可讀取媒體。例如,若使用同軸電纜、光纖電纜、雙絞線、數位用戶線路(DSL)或諸如紅外、無線電和微波之類的無線技術從網站、伺服器或其他遠端源發送指令,則媒體的定義包括同軸電纜、光纖電纜、雙絞線、DSL或諸如紅外、無線電和微波之類的無線技術。然而,應當理解,電腦可讀取儲存媒體和資料儲存媒體不包括連接、載波、信號或其他暫態媒體,而是針對非暫態的有形儲存媒體。本文使用的磁碟和光碟包括壓縮光碟(CD)、鐳射光碟、光學光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中磁碟通常以磁性方式複製資料,而光碟則經由鐳射以光學方式複製資料。上述的組合亦應包括在電腦可讀取媒體的範圍內。
指令可以由一或多個處理器執行,諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他等效的集成或個別邏輯電路。因此,如本文所使用的術語「處理器」和「處理電路」可以指任何前述結構或適合於實施本文描述的技術的任何其他結構。另外,在一些態樣中,本文描述的功能可以在被配置用於編碼和解碼的專用硬體及/或軟體模組內提供,或結合在組合的轉碼器中。同樣,該等技術可以在一或多個電路或邏輯元件中完全實施。
本揭示的技術可以在包括無線手持設備、積體電路(IC)或一組IC(例如,晶片集)的各種設備或裝置中實現。在本揭示中描述了各種部件、模組或單元,以強調經配置以執行所揭示技術的設備的功能態樣,但不一定需要由不同硬體單元來實現。相反,如上述,各種單元可以組合在轉碼器硬體單元中,或者由互動操作的硬體單元的集合來提供,其包括如上述的與合適的軟體及/或韌體結合的一或多個處理器。
已經描述了各種實例。該等和其他實例在所附請求項的範圍內。
100:編碼和解碼系統 102:源設備 104:資料來源 106:記憶體 108:輸出介面 110:電腦可讀取媒體 112:儲存設備 114:檔案伺服器 116:目的地設備 118:資料消費者 120:記憶體 122:輸入介面 200:G-PCC編碼器 202:座標變換單元 204:顏色變換單元 206:體素化單元 208:屬性轉移單元 210:八叉樹分析單元 212:表面近似分析單元 214:算數編碼單元 216:幾何結構重建單元 218:RAHT單元 220:LOD產生單元 222:提升單元 224:係數量化單元 226:算數編碼單元 300:G-PCC解碼器 302:幾何結構算數解碼單元 304:屬性算數解碼單元 306:八叉樹合成單元 308:逆量化單元 310:表面近似合成單元 312:幾何結構重建單元 314:RAHT單元 316:LOD產生單元 318:逆提升單元 320:逆變換座標單元 322:逆變換顏色單元 400:原始順序 402:基於LoD的順序 500:原始順序 502:基於LoD的順序 600: 602:LoD 604:LoD 606:LoD 608:LoD 610:局部八叉樹位元串流 612:局部提升位元串流 620:幾何結構位元串流 622:屬性位元串流 632:低解析度點雲 642:全解析度點雲 700:流程 702:流程 704:流程 800:流程 802:流程 804:流程 806:流程 900:流程 902:流程 904:流程
圖1是示出可以執行本揭示的技術的示例編碼和解碼系統的方塊圖。
圖2是示出示例幾何結構點雲壓縮(G-PCC)編碼器的方塊圖。
圖3是示出示例G-PCC解碼器的方塊圖。
圖4是示出示例詳細級別(Level of Details,LoD)產生過程的概念圖。
圖5是示出使用LoD的示例可能點預測的概念圖。
圖6是示出採用不同LoD的G-PCC解碼的實例的概念圖。
圖7是根據本揭示的示例區域盒(region box)和切片包圍盒(slice bounding box)技術的流程圖。
圖8是根據本揭示的示例切片識別符技術的流程圖。
圖9是示出根據本揭示的增量量化參數技術的實例的流程圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
700:流程
702:流程
704:流程

Claims (34)

  1. 一種解碼點雲資料的方法,該方法包括以下步驟: 決定一區域盒的維度; 決定一切片包圍盒的維度;及 解碼與該切片包圍盒相關聯的該點雲資料的一切片, 其中該區域盒的該等維度被約束為不超過該切片包圍盒的該等維度。
  2. 如請求項1所述的方法,其中該區域盒的該等維度被約束,使得沒有該區域盒中的點在該切片包圍盒之外。
  3. 如請求項1所述的方法,進一步包括以下步驟: 決定一切片維度; 解析一三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的一節點的一大小;及 基於該節點的該大小解碼該點雲資料, 其中該三角湯節點大小語法元素的一值被約束為不超過該切片維度。
  4. 如請求項1所述的方法,進一步包括以下步驟: 解析指示區域的一數量的一屬性切片頭語法元素,其中在該區域中將應用一增量量化參數;及 基於區域的該數量解碼該點雲資料, 其中該屬性切片頭語法元素的一值被約束在0到N的一範圍內,其中N為一預定值。
  5. 如請求項1所述的方法,進一步包括以下步驟: 解析指示一幾何結構參數集識別符的一幾何結構切片頭語法元素, 其中該幾何結構切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該解碼該點雲資料進一步基於由該幾何結構參數集識別符所標識的一幾何結構參數集。
  6. 如請求項1所述的方法,進一步包括以下步驟: 解析指示一屬性參數集識別符的一屬性切片頭語法元素, 其中該屬性切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該解碼該點雲資料進一步基於由該屬性參數集識別符所標識的一屬性參數集。
  7. 一種解碼點雲資料的方法,該方法包括以下步驟: 決定與該點雲資料的一訊框相關聯的一第一幾何結構切片的一第一切片識別符(ID); 決定與該點雲資料的該訊框相關聯的一第二幾何結構切片的一第二切片ID; 基於該第二切片ID等於該第一切片ID,決定該第二切片包含與該第一切片相同的內容;及 基於該第一切片ID解碼該點雲資料。
  8. 如請求項7所述的方法,進一步包括以下步驟: 決定一切片維度; 解析一三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的一節點的一大小;及 基於該節點的該大小解碼該點雲資料, 其中該三角湯節點大小語法元素的一值被約束為不超過該切片維度。
  9. 如請求項7所述的方法,進一步包括以下步驟: 解析指示區域的一數量的一屬性切片頭語法元素,其中在該區域中將應用一增量量化參數;及 基於區域的該數量解碼該點雲資料, 其中該屬性切片頭語法元素的一值被約束在0到N的一範圍內,其中N為一預定值。
  10. 如請求項7所述的方法,進一步包括以下步驟: 解析指示一幾何結構參數集識別符的一幾何結構切片頭語法元素, 其中該幾何結構切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中解碼該點雲資料進一步基於由該幾何結構參數集識別符所標識的一幾何結構參數集。
  11. 如請求項7所述的方法,進一步包括以下步驟: 解析指示一屬性參數集識別符的一屬性切片頭語法元素, 其中該屬性切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該解碼該點雲資料進一步基於由該屬性參數集識別符所標識的一屬性參數集。
  12. 一種解碼點雲資料的方法,該方法包括以下步驟: 決定一屬性的一屬性維度是否大於1; 基於該屬性維度大於1,解析指示一增量量化參數的一屬性切片頭語法元素;及 基於該增量量化參數解碼該點雲資料。
  13. 如請求項12所述的方法,其中決定該屬性維度是否大於1包括解析一序列參數集中的一語法元素。
  14. 如請求項12所述的方法,進一步包括以下步驟: 決定一切片維度; 解析一三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的一節點的一大小;及 基於該節點的該大小解碼該點雲資料, 其中該三角湯節點大小語法元素的一值被約束為不超過該切片維度。
  15. 如請求項12所述的方法,進一步包括以下步驟: 解析指示區域的一數量的一屬性切片頭語法元素,其中在該區域中將應用該增量量化參數;及 基於該區域的該數量解碼該點雲資料, 其中該屬性切片頭語法元素的一值被約束在0到N的一範圍內,其中N為一預定值。
  16. 如請求項12所述的方法,進一步包括以下步驟: 解析指示一幾何結構參數集識別符的一幾何結構切片頭語法元素, 其中該幾何結構切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,並且其中該解碼該點雲資料進一步基於由該幾何結構參數集識別符所標識的一幾何結構參數集。
  17. 如請求項12所述的方法,進一步包括以下步驟: 解析指示一屬性參數集識別符的一屬性切片頭語法元素, 其中該屬性切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該解碼該點雲資料進一步基於由該屬性參數集識別符所標識的一屬性參數集。
  18. 一種用於解碼點雲資料的設備,該設備包括: 記憶體,其被配置為儲存該點雲資料;及 一或多個處理器,其在電路中實施並且耦合到該記憶體,該一或多個處理器被配置為: 決定一區域盒的維度; 決定一切片包圍盒的維度;及 解碼與該切片包圍盒相關聯的該點雲資料的一切片, 其中該區域盒的該等維度被約束為不超過該切片包圍盒的該等維度。
  19. 如請求項18所述的設備,其中該區域盒的該等維度被約束,使得沒有該區域盒中的點在該切片包圍盒之外。
  20. 如請求項18所述的設備,其中該一或多個處理器進一步被配置為: 決定一切片維度; 解析一三角湯節點大小語法元素,該語法元素指示以三角湯譯碼模式譯碼的一節點的一大小;及 基於該節點的該大小解碼該點雲資料, 其中該三角湯節點大小語法元素的一值被約束為不超過該切片維度。
  21. 如請求項18所述的設備,其中該一或多個處理器進一步被配置為: 解析指示區域的一數量的一屬性切片頭語法元素,其中在該區域中將應用一增量量化參數;及 基於區域的該數量解碼該點雲資料, 其中該屬性切片頭語法元素的一值被約束在0到N的一範圍內,其中N為一預定值。
  22. 如請求項18所述的設備,其中該一或多個處理器進一步被配置為: 解析指示一幾何結構參數集識別符的一幾何結構切片頭語法元素, 其中該幾何結構切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該一或多個處理器進一步基於由該幾何結構參數集識別符所標識的一幾何結構參數集解碼該點雲資料。
  23. 如請求項18所述的設備,其中該一或多個處理器進一步被配置為: 解析指示一屬性參數集識別符的一屬性切片頭語法元素, 其中該屬性切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該一或多個處理器進一步基於由該屬性參數集識別符所標識的一屬性參數集解碼該點雲資料。
  24. 一種用於解碼點雲資料的設備,該設備包括: 記憶體,其被配置為儲存該點雲資料;及 一或多個處理器,其在電路中實施並且耦合到該記憶體,該一或多個處理器被配置為: 決定與該點雲資料的一訊框相關聯的一第一幾何結構切片的一第一切片識別符(ID); 決定與該點雲資料的該訊框相關聯的一第二幾何結構切片的一第二切片ID; 基於該第二切片ID等於該第一切片ID,決定該第二切片包含與該第一切片相同的內容;及 基於該第一切片ID解碼該點雲資料。
  25. 如請求項24所述的設備,其中該一或多個處理器進一步被配置為: 決定一切片維度; 解析一三角湯節點大小語法元素,其指示以三角湯譯碼模式譯碼的一節點的一大小;及 基於該節點的該大小解碼該點雲資料, 其中該三角湯節點大小語法元素的一值被約束為不超過該切片維度。
  26. 如請求項24所述的設備,其中該一或多個處理器進一步被配置為: 解析指示區域的一數量的一屬性切片頭語法元素,該區域處將應用一增量量化參數;及 基於區域的該數量解碼該點雲資料, 其中該屬性切片頭語法元素的一值被約束在0到N的一範圍內,其中N為一預定值。
  27. 如請求項24所述的設備,其中該一或多個處理器進一步被配置為: 解析指示一幾何結構參數集識別符的一幾何結構切片頭語法元素, 其中該幾何結構切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該一或多個處理器進一步基於由該幾何結構參數集識別符所標識的一幾何結構參數集解碼該點雲資料。
  28. 如請求項24所述的設備,其中該一或多個處理器進一步被配置為: 解析指示一屬性參數集識別符的一屬性切片頭語法元素, 其中該屬性切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,以及其中該一或多個處理器進一步基於由該屬性參數集識別符所標識的一屬性參數集解碼該點雲資料。
  29. 一種用於解碼點雲資料的設備,該設備包括: 記憶體,其被配置為儲存該點雲資料;及 一或多個處理器,其在電路中實施並且耦合到該記憶體,該一或多個處理器被配置為: 決定一屬性的一屬性維度是否大於1; 基於該屬性維度大於1,解析指示一增量量化參數的一屬性切片頭語法元素;及 基於該增量量化參數解碼該點雲資料。
  30. 如請求項29所述的設備,其中作為決定該屬性維度是否大於1的一部分,該一或多個處理器被配置為一解析序列參數集中的一語法元素。
  31. 如請求項29所述的設備,其中該一或多個處理器進一步被配置為: 決定一切片維度; 解析一三角湯節點大小語法元素,該三角湯節點大小語法元素指示以三角湯譯碼模式譯碼的一節點的一大小;及 基於該節點的該大小解碼該點雲資料, 其中該三角湯節點大小語法元素的一值被約束為不超過該切片維度。
  32. 如請求項29所述的設備,其中該一或多個處理器進一步被配置為: 解析指示區域的一數量的一屬性切片頭語法元素,該區域處將應用一增量量化參數;及 基於區域的該數量解碼該點雲資料, 其中該屬性切片頭語法元素的一值被約束在0到N的一範圍內,其中N為一預定值。
  33. 如請求項29所述的設備,其中該一或多個處理器進一步被配置為: 解析指示一幾何結構參數集識別符的一幾何結構切片頭語法元素, 其中該幾何結構切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,並且其中該一或多個處理器進一步基於由該幾何結構參數集識別符所標識的一幾何結構參數集解碼該點雲資料。
  34. 如請求項29所述的設備,其中該一或多個處理器進一步被配置為: 解析指示一屬性參數集識別符的一屬性切片頭語法元素, 其中該屬性切片頭語法元素的一值被限制為在0到15的一範圍內,包括端點,並且其中該一或多個處理器進一步基於由該屬性參數集識別符所標識的一屬性參數集解碼該點雲資料。
TW110112538A 2020-04-07 2021-04-07 基於幾何結構的點雲壓縮的高級語法設計 TW202143736A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US202063006660P 2020-04-07 2020-04-07
US63/006,660 2020-04-07
US202063010550P 2020-04-15 2020-04-15
US63/010,550 2020-04-15
US202063013971P 2020-04-22 2020-04-22
US63/013,971 2020-04-22
US17/223,789 2021-04-06
US17/223,789 US11743501B2 (en) 2020-04-07 2021-04-06 High-level syntax design for geometry-based point cloud compression

Publications (1)

Publication Number Publication Date
TW202143736A true TW202143736A (zh) 2021-11-16

Family

ID=78007337

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110112538A TW202143736A (zh) 2020-04-07 2021-04-07 基於幾何結構的點雲壓縮的高級語法設計

Country Status (7)

Country Link
US (2) US11743501B2 (zh)
EP (1) EP4133733A2 (zh)
KR (1) KR20220164490A (zh)
CN (1) CN115336278A (zh)
BR (1) BR112022019417A2 (zh)
TW (1) TW202143736A (zh)
WO (1) WO2021207406A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023116731A1 (en) * 2021-12-21 2023-06-29 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for point cloud coding
WO2023122628A1 (en) * 2021-12-21 2023-06-29 Bytedance Inc. Method, apparatus, and medium for point cloud coding
CN116781913A (zh) * 2022-03-11 2023-09-19 腾讯科技(深圳)有限公司 点云媒体的编解码方法及相关产品
WO2024042909A1 (ja) * 2022-08-26 2024-02-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号方法、符号化方法、復号装置及び符号化装置
CN115866274A (zh) * 2022-09-19 2023-03-28 腾讯科技(深圳)有限公司 一种点云媒体的数据处理方法及相关设备
WO2024123568A1 (en) * 2022-12-06 2024-06-13 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Geometry point cloud coding method, encoder and decoder
WO2024129365A1 (en) * 2022-12-12 2024-06-20 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Decoding method, decoder, encoding method, encoder and non-transitory computer readable recording medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3633621A1 (en) * 2018-10-02 2020-04-08 BlackBerry Limited Predictive coding of point clouds using multiple frames of references
WO2020189976A1 (ko) * 2019-03-16 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
KR102677294B1 (ko) * 2019-03-20 2024-06-21 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US12010350B2 (en) * 2019-03-22 2024-06-11 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11803986B2 (en) * 2019-08-08 2023-10-31 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

Also Published As

Publication number Publication date
WO2021207406A2 (en) 2021-10-14
BR112022019417A2 (pt) 2022-12-06
US11743501B2 (en) 2023-08-29
WO2021207406A3 (en) 2022-01-13
CN115336278A (zh) 2022-11-11
EP4133733A2 (en) 2023-02-15
US20230379503A1 (en) 2023-11-23
US20210321139A1 (en) 2021-10-14
KR20220164490A (ko) 2022-12-13

Similar Documents

Publication Publication Date Title
TW202143736A (zh) 基於幾何結構的點雲壓縮的高級語法設計
US11350132B2 (en) High level syntax for geometry-based point cloud compression
US11803989B2 (en) Quantization for geometry-based point cloud compression
JP2022165994A (ja) 点群コーディングのための高レベルシンタックス設計
US12026922B2 (en) Attribute parameter coding for geometry-based point cloud compression
US11558643B2 (en) Secondary component attribute coding for geometry-based point cloud compression (G-PCC)
US11847801B2 (en) Secondary component attribute coding for geometry-based point cloud compression (G-PCC)
US11729428B2 (en) Temporal scalability in geometry point cloud compression (G-PCC)
US11770562B2 (en) High-level syntax for geometry-based point cloud compression
KR20220164700A (ko) 지오메트리 기반 포인트 클라우드 압축을 위한 트라이수프 신택스 시그널링
WO2023142127A1 (zh) 编解码方法、装置、设备、及存储介质