TW202143726A - 用於基於幾何形狀的點雲壓縮的角度模式簡化 - Google Patents
用於基於幾何形狀的點雲壓縮的角度模式簡化 Download PDFInfo
- Publication number
- TW202143726A TW202143726A TW110112736A TW110112736A TW202143726A TW 202143726 A TW202143726 A TW 202143726A TW 110112736 A TW110112736 A TW 110112736A TW 110112736 A TW110112736 A TW 110112736A TW 202143726 A TW202143726 A TW 202143726A
- Authority
- TW
- Taiwan
- Prior art keywords
- laser
- distance threshold
- point cloud
- node
- angle
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Electromagnetism (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Traffic Control Systems (AREA)
- Image Processing (AREA)
Abstract
一種對點雲資料進行解碼的方法包括:獲得包括經算術編碼的語法元素的位元串流,經算術編碼的語法元素指示節點的平面模式的垂直平面位置;及對節點中的平面模式的垂直平面位置進行解碼,其中對平面模式的垂直平面位置進行解碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與節點相交的鐳射光束;基於鐳射光束是在第一距離閾值之上、在第一距離閾值與第二距離閾值之間、在第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對平面模式的垂直平面位置進行算術解碼。
Description
本專利申請案主張享受於2020年4月8日提出申請的美國臨時專利申請第63/007,282號、以及於2020年4月14日提出申請的美國臨時專利申請第63/009,940號的權益,上述申請之每一者申請的全部內容以引用方式被併入。
本案內容係關於點雲編碼和解碼。
點雲是三維空間中的點的集合。該等點可以對應於三維空間中的物件上的點。因此,可以使用點雲來表示三維空間的實體內容。點雲可以在各種情形下具有實用性。例如,點雲可以在自主式車輛的情況下用於表示道路上的物件的位置。在另一實例中,點雲可以在表示環境的實體內容的情況下使用,以用於在增強現實(AR)或混合現實(MR)應用中定位虛擬物件的目的。點雲壓縮是用於對點雲進行編碼和解碼的過程。對點雲進行編碼可以減少用於儲存和傳輸點雲所需要的資料量。
本案內容的各態樣描述了用於對角度模式位元串流進行編碼及/或解碼(諸如在攜帶採用基於幾何形狀的點雲壓縮(G-PCC)的點雲資料的位元串流中)的技術。如本文所描述的,使用算術譯碼來對與角度模式相關的語法元素(諸如指示垂直平面位置的語法元素以及指示垂直點位置偏移的語法元素)進行譯碼。用於確定用於在對此種語法元素進行算術譯碼時使用的上下文的傳統過程是複雜的。本案內容描述了可以降低確定用於在對此種語法元素進行算術譯碼時使用的上下文的複雜性的技術。
在一個實例中,本案內容描述了一種對點雲資料進行解碼的方法,該方法包括:獲得包括經算術編碼的語法元素的幾何形狀位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及對該節點中的該平面模式的該垂直平面位置進行解碼,其中對該平面模式的該垂直平面位置進行解碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼。
在另一實例中,本案內容描述了一種對點雲資料進行編碼的方法,該方法包括:對表示由該點雲資料表示的點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼,其中對該平面模式的該垂直平面位置進行編碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼。
在另一實例中,本案內容描述了一種用於對點雲資料進行解碼的設備,該設備包括:記憶體,其用於儲存該點雲資料;及一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為:獲得包括經算術編碼的語法元素的幾何形狀位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及對該節點中的該平面模式的該垂直平面位置進行解碼,其中作為對該平面模式的該垂直平面位置進行解碼的一部分,該一或多個處理器被配置為使得該一或多個處理器進行以下操作:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼。
在另一實例中,本案內容描述了一種用於對點雲資料進行編碼的設備,該設備包括:記憶體,其用於儲存該點雲資料;及一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為:對由該點雲資料表示的點雲進行編碼,其中作為對該點雲進行編碼的一部分,該一或多個處理器被配置為:對表示該點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼,其中作為對該平面模式的該垂直平面位置進行編碼的一部分,該一或多個處理器被配置為使得該一或多個處理器進行以下操作:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼。
在另一實例中,本案內容描述了一種用於對點雲資料進行解碼的設備,該設備包括:用於獲得包括經算術編碼的語法元素的幾何形狀位元串流的構件,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及用於對該節點中的該平面模式的該垂直平面位置進行解碼的構件,其中該用於對該平面模式的該垂直平面位置進行解碼的構件包括:用於確定鐳射候選集合中的鐳射候選的鐳射索引的構件,其中所確定的鐳射索引指示與該節點相交的鐳射光束;用於基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引的構件;及用於使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼的構件。
在另一實例中,本案內容描述了一種用於對點雲資料進行編碼的設備,該設備包括:用於對該點雲資料進行編碼的構件,其中該用於對該點雲進行編碼的構件包括:用於對表示由該點雲資料表示的該點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼的構件,其中該用於對該平面模式的該垂直平面位置進行編碼的構件包括:用於確定鐳射候選集合中的鐳射候選的鐳射索引的構件,其中所確定的鐳射索引指示與該節點相交的鐳射光束;用於基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引的構件;及用於使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼的構件。
在另一實例中,本案內容描述了一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作:獲得包括經算術編碼的語法元素的幾何形狀位元串流,該經算術編碼的語法元素指示表示點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及對該節點中的該平面模式的該垂直平面位置進行解碼,其中使得該一或多個處理器對該平面模式的該垂直平面位置進行解碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼。
在另一實例中,本案內容描述了一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作:對點雲進行編碼,其中使得該一或多個處理器對該點雲進行編碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:對表示該點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼,其中使得該一或多個處理器對該平面模式的該垂直平面位置進行編碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼。
在另一實例中,本案內容描述了一種對點雲資料進行解碼的方法,該方法包括:獲得包括經算術編碼的語法元素的幾何形狀位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點內的垂直點位置偏移;及對該垂直點位置偏移進行解碼,其中對該垂直點位置偏移進行解碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術解碼。
在另一實例中,本案內容描述了一種對點雲資料進行編碼的方法,該方法包括:對表示由該點雲資料表示的點雲中的點的三維位置的樹的節點內的垂直點位置偏移進行編碼,其中對該垂直點位置偏移進行編碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術編碼。
在另一實例中,本案內容描述了一種用於對點雲資料進行解碼的設備,該設備包括:記憶體,其用於儲存該點雲資料;及一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為:獲得包括經算術編碼的語法元素的幾何形狀位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點內的垂直點位置偏移;及對該垂直點位置偏移進行解碼,其中作為對該垂直點位置偏移進行解碼的一部分,該一或多個處理器被配置為使得該一或多個處理器進行以下操作:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術解碼。
在另一實例中,本案內容描述了一種用於對點雲資料進行編碼的設備,該設備包括:記憶體,其用於儲存該點雲資料;及一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為:對表示由該點雲資料表示的點雲中的點的三維位置的樹的節點內的垂直點位置偏移進行編碼,其中作為對該垂直點位置偏移進行編碼的一部分,該一或多個處理器被配置為:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術編碼。
在另一實例中,本案內容描述了一種用於對點雲資料進行解碼的設備,該設備包括:用於獲得包括經算術編碼的語法元素的幾何形狀位元串流的構件,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點內的垂直點位置偏移;及用於對該垂直點位置偏移進行解碼的構件,其中該用於對該垂直點位置偏移進行解碼的構件包括:用於確定鐳射候選集合中的鐳射候選的鐳射索引的構件,其中所確定的鐳射索引指示與該節點相交的鐳射光束;用於基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引的構件;及用於使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術解碼的構件。
在另一實例中,本案內容描述了一種用於對點雲資料進行編碼的設備,該設備包括:用於對表示由該點雲資料表示的點雲中的點的三維位置的樹的節點內的垂直點位置偏移進行編碼的構件,其中該用於對該垂直點位置偏移進行編碼的構件包括:用於確定鐳射候選集合中的鐳射候選的鐳射索引的構件,其中所確定的鐳射索引指示與該節點相交的鐳射光束;用於基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引的構件;及用於使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術編碼的構件。
在另一實例中,本案內容描述了一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作:獲得包括經算術編碼的語法元素的幾何形狀位元串流,該經算術編碼的語法元素指示表示點雲中的點的三維位置的樹的節點內的垂直點位置偏移;及對該垂直點位置偏移進行解碼,其中使得該一或多個處理器對該垂直點位置偏移進行解碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術解碼。
在另一實例中,本案內容描述了一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作:對表示點雲中的點的三維位置的樹的節點內的垂直點位置偏移進行編碼,其中使得該一或多個處理器對該垂直點位置偏移進行編碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術編碼。
在附圖和下文的描述中闡述了一或多個實例的細節。根據描述、附圖和請求項,其他特徵、物件和優勢將是顯而易見的。
點雲是三維(3D)空間中的點的集合。點雲資料可以包括表示點雲的全部或部分資料。基於幾何形狀的點雲壓縮(G-PCC)是一種用於減少對於編碼或儲存點雲所需要的資料量的方法。作為對點雲進行編碼的一部分,G-PCC編碼器產生八叉樹。八叉樹的每個節點對應於立方體空間。為了便於解釋,在一些情況下,本案內容可以互換地引用節點和對應於該節點的立方體空間。八叉樹的節點可以具有零個子節點或八個子節點。在其他實例中,可以根據其他樹結構來將節點劃分為子節點。父節點的子節點對應於與父節點相對應的立方體內的大小相等的立方體。點雲的各個點的位置可以是相對於與包含該等點的立方體相對應的節點來用信號通知的。若對應於節點的立方體不包含點雲的任何點,則稱該節點未被佔用。若該節點未被佔用,則可能沒有必要用信號通知關於該節點的額外資料。相反,若對應於節點的立方體包含點雲的一或多個點,則稱該節點被佔用。
平面模式是一種可以改進關於八叉樹中的哪些節點被佔用的編碼或訊號傳遞的技術。當節點的所有被佔用的子節點皆與平面鄰接並且位於平面的與針對正交於該平面的維度的遞增坐標值相關聯的一側時,可以使用平面模式。例如,當節點的所有被佔用的子節點皆在穿過節點的中心點的水平平面之上或之下時,可以針對該節點使用平面模式,或者當節點的所有被佔用的子節點位於穿過節點的中心點的垂直平面的近側或遠側時,可以針對該節點使用平面模式。G-PCC編碼器可以用信號通知用於x、y和z維度之每一者維度的平面位置語法元素。用於維度(例如,x、y或z維度)的平面位置語法元素指示與該維度正交的平面是在第一位置處還是在第二位置處。若平面在第一位置處,則該平面對應於節點的邊界。若平面在第二位置處,則該平面將穿過節點的3D中心。因此,對於z維度,G-PCC編碼器或G-PCC解碼器可以對表示點雲中的點的三維位置的八叉樹的節點中的平面模式的垂直平面位置進行譯碼。
G-PCC譯碼器(例如,G-PCC編碼器或G-PCC解碼器)可以使用算術譯碼來對平面位置語法元素進行譯碼。當G-PCC譯碼器使用算術譯碼來對平面位置語法元素進行譯解碼時,G-PCC譯碼器確定指示要用於對平面位置語法元素的算術譯碼的上下文的上下文索引。上下文指定針對在算術譯碼中使用的符號的概率。如在本案內容的其他地方更詳細地描述的,用於確定上下文索引的傳統技術是複雜的。此種複雜性可能減慢對點雲進行譯碼的過程。此外,此種複雜性可能增加可以用於實施編碼器和解碼器的硬體的成本。
本案內容描述了可以降低確定上下文索引的複雜性的技術。例如,G-PCC譯碼器可以對表示點雲中的點的三維位置的八叉樹的節點中的平面模式的垂直平面位置進行譯碼。作為對平面模式的垂直平面位置進行譯碼的一部分,G-PCC譯碼器可以確定鐳射候選集合中的鐳射候選的鐳射索引。所確定的鐳射索引指示與節點相交的鐳射光束。另外,G-PCC譯碼器可以基於鐳射光束和節點的交點來確定上下文索引。例如,G-PCC譯碼器可以基於鐳射光束是在第一距離閾值之上、在第一距離閾值與第二距離閾值之間、在第二距離閾值與第三距離閾值之間還是在第三距離閾值之下,確定上下文索引。G-PCC譯碼器可以使用由所確定的上下文索引指示的上下文來對平面模式的垂直平面位置進行算術譯碼。以此種方式基於光束和節點的交點來確定上下文索引可以降低確定上下文索引的複雜性。儘管本案內容描述了鐳射、鐳射光束、鐳射候選以及涉及鐳射的其他術語,但是該等術語不一定限於在其中使用實體鐳射的實例。確切而言,該等術語可以關於實體鐳射或其他測距技術來使用。此外,該等術語可以關於用於對點雲進行譯碼的目的的概念性光束來使用。換言之,術語「鐳射」、「鐳射光束」等可以不代表實際的鐳射和鐳射光束,而是鐳射和鐳射光束的概念可以用於對點雲進行譯碼的目的。
如前述,點雲的各個點的位置可以相對於包含該等點的節點來編碼。在一些實例中,可以使用推斷性直接譯碼模式(IDCM)來對節點中的點的位置進行編碼。當使用IDCM來用信號通知點時,G-PCC編碼器對點偏移進行編碼,該點偏移指示在特定維度(例如,垂直維度、水平維度、橫向維度等)上點相對於節點的原點的偏移。點偏移可以被稱為點位置偏移。G-PCC譯碼器可以確定上下文並且在對點偏移的算術譯碼中使用該上下文。用於確定要在對點偏移的算術譯碼中使用的上下文的傳統技術是複雜的。
本案內容描述了可以降低用於確定要用於對點偏移的算術譯碼的上下文的過程的複雜性的技術。例如,如在本案內容中所描述的,G-PCC譯碼器可以對表示點雲中的點的三維位置的樹(例如,八叉樹)的節點內的垂直點位置偏移進行譯碼。作為對垂直點位置偏移進行譯碼的一部分,G-PCC譯碼器可以確定鐳射候選集合中的鐳射候選的鐳射索引。所確定的鐳射索引指示與節點相交的鐳射光束。另外,G-PCC譯碼器可以基於鐳射光束是在第一距離閾值之上、在第一距離閾值與第二距離閾值之間、在第二距離閾值與第三距離閾值之間還是在第三距離閾值之下,確定上下文索引。G-PCC譯碼器可以使用由所確定的上下文索引指示的上下文來對垂直點位置偏移的倉進行算術譯碼。
圖1是圖示可以執行本案內容的技術的示例編碼和解碼系統100的方塊圖。概括而言,本案內容的技術涉及對點雲資料進行譯碼(coding)(編碼(encoding)及/或解碼(decoding)),亦即支援點雲壓縮。通常,點雲資料包括用於處理點雲的任何資料。譯碼可以在壓縮及/或解壓縮點雲資料態樣是有效的。
如圖1所示,在該實例中,系統100包括源設備102和目的地設備116。源設備102提供要被目的地設備116解碼的經編碼的點雲資料。特別地,在圖1的實例中,源設備102經由電腦可讀取媒體110來將點雲資料提供給目的地設備116。源設備102和目的地設備116可以包括寬範圍的設備中的任何設備,包括桌上型電腦、行動設備、筆記型電腦(亦即,膝上型電腦)、平板電腦、機上盒、電話手機(諸如智慧型電話)、電視機、相機、顯示設備、數位媒體播放機、視訊遊戲控制台、視訊資料串流設備、陸地或海上運載工具、太空船、飛行器、機器人、LIDAR設備、衛星、監視或安全裝備等。在一些情況下,源設備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可以被配置為應用本案內容的與針對G-PCC角度模式的簡化有關的技術。因此,源設備102表示編碼設備的實例,而目的地設備116表示解碼設備的實例。在其他實例中,源設備102和目的地設備116可以包括其他部件或佈置。例如,源設備102可以從內部或外部源接收資料(例如,點雲資料)。同樣,目的地設備116可以與外部資料消費方對接,而不是在同一設備中包括資料消費方。
在圖1中所示的系統100僅是一個實例。通常,其他數位編碼及/或解碼設備可以執行本案內容的與針對G-PCC角度模式的簡化有關的技術。源設備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可以產生點雲。替代或另外,點雲資料可以是來自掃瞄器、相機、感測器的電腦產生的或其他資料。例如,資料來源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存取經編碼的資料。此可以包括適於存取被儲存在檔案伺服器114上的經編碼的資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,數位用戶線(DSL)、纜線數據機等),或該兩者的組合。檔案伺服器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可以包括相應的片上系統(SoC)設備。例如,源設備102可以包括用於執行被賦予G-PCC編碼器200及/或輸出介面108的功能的SoC設備,以及目的地設備116可以包括用於執行被賦予G-PCC解碼器300及/或輸入介面122的功能的SoC設備。
本案內容的技術可以被應用於編碼和解碼以支援各種應用中的任何一種,諸如在自主式車輛之間的通訊、在掃瞄器、相機、感測器和處理設備(諸如本端或遠端伺服器)之間的通訊、地理地圖繪製或其他應用。
在一些實例中,源設備102及/或目的地設備116是行動設備,諸如行動電話、增強現實(AR)設備或混合現實(MR)設備。在此種實例中,源設備102可以產生和編碼點雲,作為用於映射源設備102的本端環境的過程的一部分。關於AR和MR實例,目的地設備116可以使用點雲,以基於源設備102的本端環境來產生虛擬環境。在一些實例中,源設備102及/或目的地設備116是陸地或海上運載工具、航天器或飛行器。在此種實例中,源設備102可以產生和編碼點雲,作為用於映射源設備的環境的過程的一部分,例如出於自主導航、事故取證和其他目的。
目的地設備116的輸入介面122從電腦可讀取媒體110(例如,通訊媒體、儲存設備112、檔案伺服器114等)接收經編碼的位元串流。經編碼的位元串流可以包括由G-PCC編碼器200定義的訊號傳遞資訊(其亦被G-PCC解碼器300使用),諸如具有描述譯碼單元(例如,切片、圖片、圖片群組、序列等)的特性及/或處理的值的語法元素。資料消費方118使用經解碼的資料。例如,資料消費方118可以使用經解碼的資料來確定實體物件的位置。在一些實例中,資料消費方118可以包括基於點雲來呈現影像的顯示器。例如,資料消費方118可以使用點雲的點作為多邊形的頂點,並且可以使用點雲的點的色彩屬性來對多邊形進行著色。在該實例中,資料消費方118隨後可以對多邊形光柵化,以基於所著色的多邊形來呈現電腦產生的圖像。
G-PCC編碼器200和G-PCC解碼器300各自可以被實施為各種各樣的適當的編碼器及/或解碼器電路中的任何一者,諸如一或多個微處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、個別邏輯、軟體、硬體、韌體,或其任何組合。當該技術部分地在軟體中實施時,設備可以將用於軟體的指令儲存在適當的非暫時性電腦可讀取媒體中,以及使用一或多個處理器在硬體中執行指令以執行本案內容的技術。G-PCC編碼器200和G-PCC解碼器300中的每一者可以被包括在一或多個編碼器或解碼器中,編碼器或解碼器中的任一者可以被整合為相應設備中的組合編碼器/解碼器(CODEC)的一部分。包括G-PCC編碼器200及/或G-PCC解碼器300的設備可以包括一或多個積體電路、微處理器,及/或其他類型的設備。
G-PCC編碼器200和G-PCC解碼器300可以根據譯碼標準(諸如視訊點雲壓縮(V-PCC)標準或幾何形狀點雲壓縮(G-PCC)標準)進行操作。概括而言,本案內容可以涉及對圖片的譯碼(例如,編碼和解碼)以包括對資料進行編碼或解碼的過程。經編碼的位元串流通常包括用於表示譯碼決策(例如,譯碼模式)語法元素的一系列值。
概括而言,本案內容可能涉及「用信號通知」某些資訊(諸如語法元素)。術語「用信號通知」通常可以代表對用於語法元素的值及/或用以對經編碼的視訊資料進行解碼的其他資料的傳送。亦即,G-PCC編碼器200可以在位元串流中用信號通知用於語法元素的值。通常,用信號通知代表在位元串流中產生值。如前述,源設備102可以基本上即時地或不是即時地(諸如可能在將語法元素儲存到儲存設備112以供目的地設備116稍後取回時發生)將位元串流傳輸給目的地設備116。
點雲壓縮活動被分類為兩種不同的方法。第一種方法是「視訊點雲壓縮」(V-PCC),該方法將3D物件分段,並且將分段投影在多個2D平面(在2D訊框中被表示為「面元(patch)」),多個2D平面由諸如高效率視訊譯碼(HEVC)(ITU-T H.265)譯碼器之類的視訊譯碼器進一步譯碼。第二種方法是「基於幾何形狀的點雲壓縮」(G-PCC),其直接壓縮3D幾何形狀(亦即3D空間中的點集合的位置)、以及用於與3D幾何形狀相關聯的每個點的相關聯的屬性值。G-PCC解決了在類別1(靜態點雲)和類別3(動態獲取的點雲)兩者下的點雲的壓縮。G-PCC標準的最新草案可在以下文件中得到:G-PCC DIS,ISO/IEC JTC1/SC29/WG11 w19088,比利時佈魯塞爾,2020年1月(下文稱為「w19088」);及對譯碼器的描述可在以下文件中得到:G-PCC Codec Description v6,ISO/IEC JTC1/SC29/WG11 w19091,比利時佈魯塞爾,2020年1月(下文稱為「w19091」)。
點雲包含3D空間中的點集合,並且可以具有與點相關聯的屬性。屬性可以是色彩資訊(諸如R、G、B或Y、Cb、Cr或反射率資訊)或其他屬性。點雲可以由各種相機或感測器(諸如LIDAR感測器和3D掃瞄器)擷取,並且亦可以是電腦產生的。點雲資料用於各種應用(包括但不限於:構建(建模)、圖形(用於視覺化和動畫的3D模型)、汽車行業(用於幫助導航的LIDAR感測器)),以及用於可以採用行動電話、平板電腦或其他計算設備的用途的其他應用。
由點雲資料佔用的3D空間可以由虛擬邊界框包圍。邊界框中的點的位置可以藉由某種精度來表示;因此,可以基於精度來量化一或多個點的位置。在最小級別,邊界框被拆分為體素,體素是由單位立方體表示的最小空間單位。邊界框中的體素可以與零個、一或多個點相關聯。邊界框可以被拆分為多個立方體/立方體區域,該等區域可以被稱為瓦片。每個瓦片可以被譯碼為一或多個切片。將邊界框分割為切片和瓦片可以是基於每個分區中的點的數量,或者基於其他考慮(例如,可以將特定區域譯碼為瓦片)。切片區域可以使用類似於 視訊譯碼器中的拆分決策來進一步分割。
圖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個三角形,從而導致三角形集合(triangle soup)。因此,類別1幾何形狀譯碼器被稱為Trisoup幾何形狀譯碼器,而類別3幾何形狀譯碼器被稱為八叉樹幾何形狀譯碼器。
在八叉樹的每個節點處,針對其子節點中的一或多個子節點(多達八個節點)用信號通知佔用(當不進行推斷時)。指定了多個鄰域,其包括:(a)與當前八叉樹節點共享面的節點,(b)與當前八叉樹節點共享面、邊或頂點的節點等。在每個鄰域中,可以使用節點及/或其子節點的佔用來預測當前節點或其子節點的佔用。對於在八叉樹的某些節點中稀疏地填充的點,譯碼器(例如,由G-PCC編碼器200和G-PCC解碼器300實施)亦支援直接譯碼模式,其中點的3D位置是直接編碼的。可以用信號通知標誌以指示用信號通知直接模式。在最低級別,亦可以對與八叉樹節點/葉節點相關聯的點的數量進行譯碼。
一旦幾何形狀被譯碼,與幾何形狀點相對應的屬性就被譯碼。當存在與一個經重構/解碼的幾何形狀點相對應的多個屬性點時,可以推導表示經重構的點的屬性值。
在G-PCC中存在三種屬性譯碼方法:區域自我調整分層變換(RAHT)譯碼、基於內插的分層最近鄰點預測(預測變換)、以及具有更新/提升步長的基於內插的分層最近鄰點預測(提升變換)。RAHT和提升通常用於類別1資料,而預測通常用於類別3資料。然而,任一方法可以用於任何資料,並且與G-PCC中的幾何形狀譯碼器類似,在位元串流中指定用於對點雲進行譯碼的屬性譯碼方法。
對屬性的譯碼可以以細節層次(LoD)來進行,其中利用每個細節層次,可以獲得點雲屬性的更精細的表示。可以基於距相鄰節點的距離度量或者基於取樣距離來指定每個細節層次。
在G-PCC編碼器200處,對作為用於屬性的譯碼方法的輸出而獲得的殘差進行量化。可以使用上下文自我調整算術譯碼來對經量化的殘差進行譯碼。為了將CABAC編碼應用於語法元素,G-PCC編碼器200可以對語法元素的值進行二值化以形成一或多個位元的序列,該等位元被稱為「倉」。另外,G-PCC編碼器200可以辨識譯碼上下文。譯碼上下文可以標識倉具有特定值的概率。例如,譯碼上下文可以指示譯碼出0值的倉的0.7概率和譯碼出1值的倉的0.3概率。在辨識出譯碼上下文之後,G-PCC編碼器200可以將區間劃分為下部子區間和上部子區間。該等子區間中的一個子區間可以與值0相關聯,而另一子區間可以與值1相關聯。子區間的寬度可以與由所辨識的譯碼上下文針對相關聯的值指示的概率成比例。若語法元素的倉具有與下部子區間相關聯的值,則經編碼的值可以等於下部子區間的下邊界。若語法元素的相同倉具有與上部子區間相關聯的值,則經編碼的值可以等於上部子區間的下邊界。為了對語法元素的下一倉進行編碼,G-PCC編碼器200可以重複該等步驟,其中區間是與經編碼的位元的值相關聯的子區間。當G-PCC編碼器200針對下一倉重複該等步驟時,G-PCC編碼器200可以基於由所辨識的譯碼上下文指示的概率和被編碼的倉的實際值來使用經修改的概率。
當G-PCC解碼器300對語法元素的值執行CABAC解碼時,G-PCC解碼器300可以辨識譯碼上下文。隨後,G-PCC解碼器300可以將區間劃分為下部子區間和上部子區間。該等子區間中的一個子區間可以與值0相關聯,而另一子區間可以與值1相關聯。子區間的寬度可以與由所辨識的譯碼上下文針對相關聯的值指示的概率成比例。若經編碼的值在下部子區間內,則G-PCC解碼器300可以解碼出具有與下部子區間相關聯的值的倉。若經編碼的值在上部子區間內,則G-PCC解碼器300可以解碼出具有與上部子區間相關聯的值的倉。為了解碼語法元素的下一倉,G-PCC解碼器300可以重複該等步驟,其中區間是包含經編碼的值的子區間。當G-PCC解碼器300針對下一倉重複該等步驟時,G-PCC解碼器300可以基於由所辨識的譯碼上下文指示的概率和經解碼的倉來使用經修改的概率。隨後,G-PCC解碼器300可以對倉進行二值化以恢復語法元素的值。
在圖2的實例中,G-PCC編碼器200可以包括坐標變換單元202、色彩變換單元204、體素化單元206、屬性傳遞單元208、八叉樹分析單元210、表面近似分析單元212、算術編碼單元214、幾何形狀重構單元216、RAHT單元218、LOD產生單元220、提升單元222、係數量化單元224和算術編碼單元226。
如在圖2的實例中所示,G-PCC編碼器200可以接收點雲中的點的位置集合和屬性集合。G-PCC編碼器200可以從資料來源104(圖1)獲得點雲中的點的位置集合和屬性集合。該等位置可以包括點雲中的點的坐標。該等屬性可以包括關於點雲中的點的資訊,諸如與點雲中的點相關聯的色彩。G-PCC編碼器200可以產生幾何形狀位元串流203,其包括點雲中的點的位置的編碼表示。G-PCC編碼器200亦可以產生屬性位元串流205,其包括屬性集合的編碼表示。
坐標變換單元202可以對點的坐標應用變換,以將坐標從初始域變換到變換域。本案內容可以將經變換的坐標稱為變換坐標。色彩變換單元204可以應用變換,以便將屬性的色彩資訊變換到不同的域。例如,色彩變換單元204可以將色彩資訊從RGB色彩空間變換到YCbCr色彩空間。
此外,在圖2的實例中,體素化單元206可以將變換坐標體素化。對變換坐標的體素化可以包括量化和移除點雲中的一些點。換言之,點雲中的多個點可以被歸入單個「體素」中,該「體素」可以在一些態樣中被視為一個點。此外,八叉樹分析單元210可以基於經體素化的變換坐標來產生八叉樹。另外,在圖2的實例中,表面近似分析單元212可以分析該等點以潛在地確定該等點的集合的表面表示。算術編碼單元214可以對表示由表面近似分析單元212確定的八叉樹及/或表面的資訊的語法元素進行熵編碼。G-PCC編碼器200可以在幾何形狀位元串流203中輸出該等語法元素。幾何形狀位元串流203亦可以包括其他語法元素,包括未被算術編碼的語法元素。
幾何形狀重構單元216可以基於八叉樹、指示由表面近似分析單元212確定的表面的資料及/或其他資訊來重構點雲中的點的變換坐標。由於體素化和表面近似,由幾何形狀重構單元216重構的變換坐標的數量可以不同於點雲的原始點數。本案內容可以將所得到的點稱為經重構的點。屬性傳遞單元208可以將點雲的原始點的屬性傳遞到點雲的經重構的點。
此外,RAHT單元218可以對經重構的點的屬性應用RAHT譯碼。替代地或另外,LOD產生單元220和提升單元222可以分別對經重構的點的屬性應用LOD處理和提升。RAHT單元218和提升單元222可以基於屬性來產生係數。係數量化單元224可以對由RAHT單元218或提升單元222產生的係數進行量化。算術編碼單元226可以對表示經量化的係數的語法元素應用算術譯碼。G-PCC編碼器200可以在屬性位元串流205中輸出該等語法元素。屬性位元串流205亦可以包括其他語法元素,其包括非算術編碼的語法元素。
在圖3的實例中,G-PCC解碼器300可以包括幾何形狀算術解碼單元302、屬性算術解碼單元304、八叉樹合成單元306、逆量化單元308、表面近似合成單元310、幾何形狀重構單元312、RAHT單元314、LOD產生單元316、逆提升單元318、逆變換坐標單元320和逆變換色彩單元322。
G-PCC解碼器300可以獲得幾何形狀位元串流203和屬性位元串流205。解碼器300的幾何形狀算術解碼單元302可以對幾何形狀位元串流中的語法元素應用算術解碼(例如,上下文自我調整二元算術譯碼(CABAC)或其他類型的算術解碼)。類似地,屬性算術解碼單元304可以對屬性位元串流中的語法元素應用算術解碼。
八叉樹合成單元306可以基於從幾何形狀位元串流解析的語法元素來合成八叉樹。在幾何形狀位元串流中使用表面近似的情況下,表面近似合成單元310可以基於從幾何形狀位元串流解析的語法元素並且基於八叉樹來確定表面模型。
此外,幾何形狀重構單元312可以執行重構以確定點雲中的點的坐標。逆變換坐標單元320可以對經重構的坐標應用逆變換,以將點雲中的點的經重構的坐標(位置)從變換域轉換回初始域。
另外,在圖3的實例中,逆量化單元308可以對屬性值進行逆量化。屬性值可以是基於從屬性位元串流獲得的語法元素(例如,包括由屬性算術解碼單元304解碼的語法元素)。
根據屬性值如何被編碼,RAHT單元314可以執行RAHT譯碼,以基於經逆量化的屬性值來確定用於點雲的點的色彩值。替代地,LOD產生單元316和逆提升單元318可以使用基於細節層次的技術來確定用於點雲的點的色彩值。
此外,在圖3的實例中,逆變換色彩單元322可以對色彩值應用逆色彩變換。逆色彩變換可以是由編碼器200的色彩變換單元204應用的色彩變換的逆過程。例如,色彩變換單元204可以將色彩資訊從RGB色彩空間變換到YCbCr色彩空間。因此,逆色彩變換單元322可以將色彩資訊從YCbCr色彩空間變換到RGB色彩空間。
圖示圖2和圖3的各個單元以説明理解由編碼器200和解碼器300執行的操作。該等單元可以被實施為固定功能電路、可程式設計電路,或其組合。固定功能電路代表提供特定功能並且關於可以執行的操作而預先設置的電路。可程式設計電路代表可以被程式設計以執行各種任務並且以可以執行的操作來提供靈活功能的電路。例如,可程式設計電路可以執行軟體或韌體,軟體或韌體使得可程式設計電路以軟體或韌體的指令所定義的方式進行操作。固定功能電路可以執行軟體指令(例如,以接收參數或輸出參數),但是固定功能電路執行的操作類型通常是不可變的。在一些實例中,該等單元中的一或多個單元可以是不同的電路塊(固定功能或可程式設計),以及在一些實例中,該等單元中的一或多個單元可以是積體電路。
在比利時佈魯塞爾舉行的第129屆MPEG會議上採用了角度譯碼模式(亦即角度模式)。以下描述是基於原始MPEG徵稿文件的:Sébastien Lasserre,Jonathan Taque,「[GPCC][CE 13.22 related] An improvement of the planar coding mode」,ISO/IEC JTC1/SC29/WG11 MPEG/m50642,瑞士日內瓦,2019年10月;及w19088。角度譯碼模式可選地與平面模式一起使用(例如,如以下文件中所描述的:Sébastien Lasserre,David Flynn,「[GPCC] Planar mode in octree-based geometry coding」,ISO/IEC JTC1/SC29/WG11 MPEG/m48906,瑞典哥德堡,2019年7月),並且藉由採用典型的LIDAR感測器中的感測鐳射光束的位置和角度的知識,而改進了對垂直(z)平面位置語法元素的譯碼(例如,參見Sébastien Lasserre,Jonathan Taquet,「[GPCC] CE 13.22 report on angular mode」,ISO/IEC JTC1/SC29/WG11 MPEG/m51594,比利時佈魯塞爾,2020年1月)。
圖4是圖示在垂直方向上的示例平面佔用的概念圖。在圖4的實例中,節點400被分割為八個子節點。子節點402可能被佔用或未被佔用。在圖4的實例中,被佔用的子節點被加陰影。當一或多個子節點402A-402D被佔用並且子節點402E-402H中皆沒有被佔用時,G-PCC編碼器200可以用信號通知具有值0的平面位置(planePosition)語法元素,以指示所有被佔用的子節點鄰接節點400的最小z坐標的平面的正側(亦即,遞增z坐標的一側)。當一或多個子節點402E-402H被佔用並且子節點402A-402D中皆沒有被佔用時,G-PCC編碼器200可以用信號通知具有值1的平面位置(planePosition)語法元素,以指示所有被佔用的子節點鄰接節點400的中點z坐標的平面的正側。以此種方式,平面位置語法元素可以指示節點400中的平面模式的垂直平面位置。
此外,可以可選地使用角度譯碼模式來改進在推斷性直接譯碼模式(IDCM)下對垂直z位置位元的譯碼(Sébastien Lasserre,Jonathan Taquet,「[GPCC] CE 13.22 report on angular mode」,ISO/IEC JTC1/SC29/WG11 MPEG/m51594,比利時佈魯塞爾,2020年1月)。IDCM是一種如下的模式:節點內的點的位置是相對於節點內的點來顯式地(直接地)用信號通知的。在角度譯碼模式中,點的位置可以相對於節點的原點來用信號通知。
當基於由測距系統(諸如LIDAR系統)產生的資料來產生點雲時,可以使用角度譯碼模式。LIDAR系統可以包括在垂直平面中以相對於原點的不同角度而排列的雷射器集合。LIDAR系統可以繞垂直軸而旋轉。LIDAR系統可以使用返回的鐳射來確定點雲中的點的距離和位置。由LIDAR系統的雷射器發射的鐳射光束可以經由參數集來表徵。
下文描述了在w19088中用於角度模式的感測器鐳射光束參數的訊號傳遞。在下文的表1中使用<!>…</!>標籤來指示攜帶可能對於角度譯碼模式具有任何譯碼高效率益處所需要的LIDAR鐳射感測器資訊的語法元素。在表1中,在幾何形狀參數集中利用<!>…</!>標籤來指示角度模式語法元素。
表1
| geometry_parameter_set( ) { | 描述符 |
| … | … |
| geometry_planar_mode_flag | u(1) |
| if( geometry_planar_mode_flag ){ | |
| geom_planar_mode_th_idcm | ue(v) |
| geom_planar_mode_th[ 1 ] | ue(v) |
| geom_planar_mode_th[ 2 ] | ue(v) |
| } | |
| <!> geometry_angular_mode_flag </!> | u(1) |
| <!> if( geometry_angular_mode_flag ){</!> | |
| <!> lidar_head_position[0]</!> | se(v) |
| <!> lidar_head_position[1]</!> | se(v) |
| <!> lidar_head_position[2]</!> | se(v) |
| <!> number_lasers</!> | ue(v) |
| <!> for( i = 0; i < number_lasers; i++ ) {</!> | |
| <!> laser_angle[ i ]</!> | se(v) |
| <!> laser_correction[ i ]</!> | se(v) |
| <!> }</!> | |
| <!> planar_buffer_disabled</!> | u(1) |
| <!> implicit_qtbt_angular_max_node_min_dim_log2_to_split_z</!> | se(v) |
| <!> implicit_qtbt_angular_max_diff_to_split_z</!> | se(v) |
| <!> }</!> | |
| neighbour_context_restriction_flag | u(1) |
| inferred_direct_coding_mode_enabled_flag | u(1) |
| … |
在w19088中如下指定了該等語法元素的語義:
geometry_planar_mode_flag等於1指示平面譯碼模式被啟動。geometry_planar_mode_flag等於0指示平面譯碼模式未被啟動。
geom_planar_mode_th_idcm指定針對直接譯碼模式的啟動的閾值的值。geom_planar_mode_th_idcm是在0到127(含)的範圍內的整數。當不存在時,geom_planar_mode_th_idcm被推斷為127。
geom_planar_mode_th[i],對於在範圍0…2內的i,指定沿著使平面譯碼模式高效的第i最可能方向而言針對平面譯碼模式的啟動的閾值的值。 geom_planar_mode_th[i]是在範圍0…127內的整數。
geometry_angular_mode_flag等於1指示角度譯碼模式被啟動。geometry_angular_mode_flag等於0指示角度譯碼模式未被啟動。
lidar_head_position[ia],對於在範圍0… 2內的ia,指定lidar頭在與內部軸相關聯的坐標系中的第ia坐標。當不存在時,lidar_head_position[ia]被推斷為0。
number_lasers指定用於角度譯碼模式的鐳射數量。當不存在時,number_lasers被推斷為0。
laser_angle[i],對於在1…number_lasers的範圍內的i,指定第i鐳射相對於藉由第0和第1內部軸而定義的水平面的仰角的正切。
laser_correction [i],對於在1… number_lasers的範圍內的i,指定:沿著第2內部軸,第i鐳射位置相對於lidar頭位置lidar_head_position[2]的校正。當不存在時,laser_correction [i]被推斷為0。
planar_buffer_disabled等於1指示使用緩衝器來追蹤最近節點在對平面模式中的平面模式標誌和平面位置進行譯碼的過程中不被使用。planar_buffer_disabled等於0指示使用緩衝器來追蹤最近節點被使用。當不存在時,planar_buffer_disabled將被推斷為0。
implicit_qtbt_angular_max_node_min_dim_log2_to_split_z指定節點大小的log2值(在低於該值時,節點的水平拆分優先於垂直拆分)。當不存在時,implicit_qtbt_angular_max_diff_to_split_z被推斷為0。
implicit_qtbt_angular_max_diff_to_split_z指定針對節點所允許的最大垂直與水平節點大小比率的log2值。當不存在時,implicit_qtbt_angular_max_node_min_dim_log2_to_split_z被推斷為0。
八叉樹中的僅一些節點可以有資格使用角度模式進行譯碼。下文描述了在w19088中用於確定用於角度模式的節點資格的過程。該過程適用於子節點Child,以確定子節點的角度資格angular_eligible[Child]。在w19088中,語法元素geometry_angular_mode_flag指示角度模式是否是有效的。若geometry_angular_mode_flag等於0,則angular_eligible[Child]被設置為等於0。否則,以下適用:
midNodeX = 1 << (ChildNodeSizeXLog2 - 1)
midNodeY = 1 << (ChildNodeSizeXLog2 - 1)
xLidar = abs( ((xNchild - lidar_head_position[0] + midNodeX) << 8) – 128 )
yLidar = abs( ((yNchild - lidar_head_position[1] + midNodeY) << 8) – 128 )
rL1 = (xLidar + yLidar) >> 1
deltaAngleR = deltaAngle*rL1
midNodeZ = 1 << (ChildNodeSizeZLog2 - 1)
if (deltaAngleR <= (midNodeZ << 26))
angular_eligible[Child] = 0
else
angular_eligible[Child] = 1
其中deltaAngle是藉由以下項確定的在鐳射之間的最大角度距離:
deltaAngle = min { | laser_angle [i] – laser_angle [j] | ; 0 ≦ i < j < number_lasers },
並且其中(xNchild, yNchild, zNchild)指定幾何形狀八叉樹子節點Child在當前切片中的位置。
在w19088中描述的以下過程適用於子節點Child,以確定與子節點相關聯的IDCM角度資格idcm4angular[Child]和鐳射索引laserIndex [Child]。若角度資格angular_eligible[Child]等於0,則idcm4angular[Child]被設置為0,並且laserIndex [Child]索引被設置為預設值UNKNOWN_LASER。否則,若角度資格angular_eligible[Child]等於1,則以下作為在w19088的第8.2.5.1節中描述的過程的延續來應用。首先,確定子節點距Lidar的徑向距離的倒數rInv:
r2 = xLidar*xLidar + yLidar*yLidar
rInv = invSqrt (r2)
然後,針對子節點確定角度theta32:
zLidar = ((zNchild - lidar_head_position [2] + midNodeY) << 1) - 1
theta = zLidar*rInv
theta32 = theta >= 0 ? theta >> 15 : -((-theta) >> 15)
rInv可以對應於子節點的徑向距離的倒數。角度theta32可以對應於子節點的中點的仰角的正切。最後,基於子節點的父節點Parent來確定與子節點相關聯的角度資格和鐳射,如下文的表2所示:
表2
| laserIndex [Child] = UNKNOWN_LASER idcm4angular[Child] = 0 if (laserIndex [Parent] == UNKNOWN_LASER || deltaAngleR <= (midNodeZ<< (26 + 2))) { minDelta = 1 << (18 + 7) for (j = 0; j < number_lasers; j++) { delta = abs(laser_angle [j] - theta32) if (delta < minDelta) { minDelta = delta laserIndex [Child] = j } } } else idcm4angular[Child] = 1 |
針對平面模式的一種類型的角度模式增強涉及確定用於平面譯碼模式的上下文contextAngular。特定而言,以下過程適用於子節點Child以確定與子節點關聯的角度上下文contextAngular[Child]。若鐳射索引laserIndex[Child]等於UNKNOWN_LASER,則contextAngular[Child]被設置為預設值UNKNOWN_CONTEXT。否則,若鐳射索引laserIndex [Child]不等於UNKNOWN_LASER,則以下作為在w19088的第8.2.5.2節中所描述的過程的延續來應用。首先,確定相對於下平面和上平面的兩個角度差m和M。
thetaLaserDelta = laser_angle [laserIndex [Child]] - theta32
Hr = laser_correction [laserIndex [Child]] * rInv;
thetaLaserDelta += Hr >= 0 ? -(Hr >> 17) : ((-Hr) >> 17)
zShift = (rInv << (ChildNodeSizeZLog2 + 1)) >> 17
m = abs(thetaLaserDelta - zShift)
M = abs(thetaLaserDelta + zShift)
隨後,從兩個角度差推斷角度上下文:
contextAngular[Child] = m > M ? 1 : 0
diff = abs(m - M)
if (diff >= rInv >> 15) contextAngular[Child] += 2;
if (diff >= rInv >> 14) contextAngular[Child] += 2;
if (diff >= rInv >> 13) contextAngular[Child] += 2;
if (diff >= rInv >> 12) contextAngular[Child] += 2;
術語thetaLaserDelta可以是藉由從鐳射光束的角度的正切減去穿過節點的中心的線的角度的正切而確定的鐳射差角度。
在w19088中描述的用於IDCM的另一種類型的角度模式增強涉及確定角度上下文idcmIdxAngular。特別地,如下描述了用於確定用於對與屬於經歷推斷性直接譯碼模式的子節點的第i點的第j位元相關聯的倉point_offset_z[i][j]進行譯碼的上下文idcmIdxAngular[i][j]的過程。
在對point_offset_x[i][]和point_offset_y[i][]解碼以使得PointOffsetX[ i ]和PointOffsetY[ i ]已知之後,執行該過程。藉由以下各項來推導點i的相對於Lidar的x和y位置:
posXlidar[i] = xNchild - lidar_head_position[0] + PointOffsetX[ i ]
posYlidar[i] = yNchild - lidar_head_position[1] + PointOffsetY[ i ]
其中(xNchild, yNchild, zNchild)指定幾何形狀八叉樹子節點nodeChild在當前切片中的位置。
藉由以下各項來確定點距LIDAR的徑向距離的倒數rInv:
xLidar = (posXlidar[i] << 8) - 128
yLidar = (posYlidar[i] << 8) - 128
r2 = xLidar*xLidar + yLidar*yLidar
rInv = invSqrt (r2)
如下推斷與子節點nodeChild相關聯的鐳射的經校正的鐳射角度ThetaLaser:
Hr = laser_correction [laserIndex [Child]] * rInv
ThetaLaser = laser_angle [laserIndex [Child]] + (Hr >= 0 ? -(Hr >> 17) : ((-Hr) >> 17))
假定對於在範圍0…j-1內的j2,位元point_offset_z[ i ][ j2 ]是已知的,則已知該點屬於虛擬垂直區間,該虛擬垂直區間的一半大小是藉由以下項來提供的:
halfIntervalSize[j] = (1 << (EffectiveChildNodeSizeZLog2-1)) >> j
並且,藉由以下各項來推斷提供區間的下端的局部z點位置posZlidarPartial[i][j]:
PointOffsetZpartial = 0
for( j2 = 0; j2 < j; j2++ )
PointOffsetZpartial [ i ] += point_offset_z[ i ][ j2 ] << j2
PointOffsetZpartial[ i ] <<= (EffectiveChildNodeSizeZLog2-j)
posZlidarPartial[i][j] = zNchild - lidar_head_position[2] + PointOffsetZpartial[ i ]
藉由以下各項來計算相對於虛擬區間的中間的相對鐳射位置thetaLaserDeltaVirtualInterval:
zLidar = ((posZlidarPartial[i][j] + halfIntervalSize [j]) << 1) - 1
theta = zLidar*rInv
theta32 = theta >= 0 ? theta >> 15 : -((-theta) >> 15)
thetaLaserDeltaVirtualInterval = ThetaLaser - theta32
確定鐳射相對於虛擬區間中的下部和上部z位置的兩個絕對角度差m和M:
zShift = ((rInv << EffectiveChildNodeSizeZLog2) >> 17) >> j
m = abs(thetaLaserDeltaVirtualInterval - zShift);
M = abs(thetaLaserDeltaVirtualInterval + zShift);
隨後,從兩個絕對角度差來推斷角度上下文:
idcmIdxAngular[i][j] = m > M ? 1: 0
diff = abs(m - M)
if (diff >= rInv >> 15) idcmIdxAngular[i][j] += 2
if (diff >= rInv >> 14) idcmIdxAngular[i][j] += 2
if (diff >= rInv >> 13) idcmIdxAngular[i][j] += 2
if (diff >= rInv >> 12) idcmIdxAngular[i][j] += 2
當IDCM被應用於子節點Child時,對於在範圍0… EffectiveChildNodeSizeZLog2內或在範圍1…EffectiveChildNodeSizeZLog2內(在第一位元是藉由平面位置plane_position[Child] [2]來推斷的情況下)的j,藉由應用以下過程來對子節點中的第i點的位元point_offset_z[i][j]進行解碼。若geometry_angular_mode_flag等於0,則使用旁路解碼過程來對位元point_offset_z[i][j]進行解碼。否則,若geometry_angular_mode_flag等於1,則對位元point_offset_z[i][0]進行旁路解碼(當不藉由平面位置進行推斷時),並且對於j>0,使用上下文idcmIdxAngular[i][j]來對位元point_offset_z[i][j]進行解碼。
如上所提到的,確定用於對平面模式的垂直平面位置進行譯碼以及用於對IDCM垂直點位置偏移進行譯碼的角度上下文索引涉及顯著的複雜性。此種複雜性可能提出技術問題,因為此種複雜性可能增加硬體成本,減慢譯碼過程及/或具有其他負面後果。例如,使用10個上下文來對平面模式的垂直平面位置進行譯碼。在另一實例中,使用10個上下文來對IDCM的每倉的垂直點位置偏移進行譯碼。在另一實例中,使用基於兩個大整數值的比較的5個條件來確定每個上下文索引。在另一實例中,需要平方根倒數距離計算(在上面的規範文字中的rInv)。在另一實例中,當存在針對角度模式所需要的至少一個鐳射時,number_lasers語法元素的訊號傳遞從零值開始。此外,在用信號通知角度模式語法元素態樣存在各種低效性。
本案內容描述了可以解決該等技術問題中的一或多個技術問題的技術。在本文件中公開的技術和實例可以獨立地或組合地應用。
根據本案內容的技術,減少了用於對平面模式的垂直平面位置進行譯碼的上下文的數量。在以下描述中,鐳射、鐳射光束、鐳射感測器或感測器或其他類似術語可以表示能夠返回距離度量和空間朝向的任何感測器,潛在地包括對時間的指示(例如典型的LIDAR感測器)。
G-PCC譯碼器(例如,G-PCC編碼器200或G-PCC解碼器300)可以藉由從在參數集(諸如幾何形狀參數集)中用信號通知的鐳射候選集合中選擇鐳射索引,來對節點中的平面模式的垂直平面位置進行譯碼,其中所選擇的鐳射索引指示與節點相交的鐳射光束。鐳射光束與節點的交點確定用於對平面模式的垂直平面位置進行算術譯碼的上下文索引。在以下描述中,該原理被稱為角度模式譯碼。
因此,在一些實例中,G-PCC譯碼器(例如,G-PCC編碼器200或G-PCC解碼器300)可以對表示點雲中的點的三維位置的八叉樹的節點中的平面模式的垂直平面位置進行譯碼。為了便於解釋,本案內容可以將G-PCC譯碼器正在譯碼的節點稱為當前節點。作為對平面模式的垂直平面位置進行譯碼的一部分,G-PCC譯碼器可以確定鐳射候選集合中的鐳射候選的鐳射索引。所確定的鐳射索引指示與當前節點相交的鐳射光束。鐳射候選集合可以包括LIDAR陣列中的鐳射中的每一者。在一些實例中,可以在參數集(諸如幾何形狀參數集)中指示鐳射候選集合。另外,作為對垂直平面位置進行譯碼的一部分,G-PCC譯碼器基於鐳射光束和當前節點的交點來確定上下文索引。例如,G-PCC譯碼器可以基於鐳射光束是在第一距離閾值之上、在第一距離閾值與第二距離閾值之間、在第二距離閾值與第三距離閾值之間還是在第三距離閾值之下,確定上下文索引。此外,作為對垂直平面位置進行譯碼的一部分,G-PCC譯碼器使用由所確定的上下文索引指示的上下文來對平面模式的垂直平面位置進行算術譯碼。
可以存在用於確定當前節點中的平面模式的垂直平面位置是否有資格使用角度模式進行譯碼的資格條件。若垂直平面位置沒有資格使用角度模式進行譯碼,則可以在不採用感測器資訊的情況下對平面模式的垂直平面位置進行譯碼。在一些實例中,資格條件可以確定是否僅有一個鐳射光束與當前節點相交。換言之,若僅有一個鐳射光束與當前節點相交,則當前節點的垂直平面位置可以有資格使用角度模式進行譯碼。在一些實例中,資格條件可以確定在鐳射候選集合中的鐳射之間的最小角度差。換言之,若包圍當前節點的角度小於鐳射光束之間的最小角度,則當前節點可以有資格使用角度模式進行譯碼。包圍當前節點的角度是從鐳射原點量測的在穿過節點的遠側底角的線與穿過節點的近側頂角的線之間的角度。當包圍當前節點的角度小於鐳射光束之間的最小角度差時,僅有一個鐳射光束與節點相交。在一些實例中,資格條件是使得垂直節點維度小於(或等於)最小角度差。換言之,若當前節點的垂直維度小於或等於被分隔開在當前節點到鐳射原點的最近垂直邊緣處的最小角度差的鐳射光束之間的垂直距離,則該節點可以有資格使用角度模式進行譯碼。
如前述,G-PCC譯碼器可以選擇與當前節點相交的鐳射光束的鐳射索引。在一些實例中,G-PCC譯碼器可以藉由選擇與當前節點中的標記點最近的鐳射光束來確定與當前節點相交的鐳射的索引。在一些實例中,當前節點中的標記點可以是當前節點的中心點,其具有位於當前節點的所有三個維度(例如,立方體或立方體維度)的一半處的坐標。在其他實例中,當前節點中的標記點可以是作為當前節點的一部分的任何其他點,諸如在節點內或在節點側面,或在節點邊緣或節點角上的任何點。
G-PCC譯碼器可以基於對候選鐳射的角度差進行比較來確定鐳射是否在標記點附近。例如,G-PCC譯碼器可以對鐳射光束的角度和標記點的角度之間的差進行比較。鐳射光束的角度可以被定義為在水平平面(z=0)和鐳射光束的方向之間。標記點的角度可以被定義為在水平平面和虛擬光束到標記點的方向之間。在此種情況下,原點可以是與感測器或雷射器的中心同位的。替代地,在一些實例中,可以在比較之前將數學函數或三角函數(諸如正切)應用於角度。
在一些實例中,G-PCC譯碼器可以基於垂直坐標差的比較來確定鐳射是否在標記點附近。例如,G-PCC譯碼器可以對標記點相對於感測器原點的垂直坐標(例如,標記點的z坐標)和鐳射與節點相交的垂直坐標進行比較。G-PCC解碼器可以藉由將水平平面和鐳射方向之間的角度的正切與藉由基於標記點的(x,y)坐標而取得歐式距離(三角學)而計算的距離相乘,來獲得鐳射與節點相交的垂直坐標。
在一些實例中,G-PCC譯碼器可以基於鐳射光束和標記點的相對位置來確定要用於對垂直平面位置語法元素進行譯碼的上下文索引。例如,若鐳射光束在標記點之上,則G-PCC譯碼器可以確定上下文索引是第一上下文索引,而若鐳射光束在標記點之下,則可以確定上下文索引是第二上下文索引。G-PCC譯碼器可以以與確定與節點相交的鐳射光束索引類似的方式(例如,藉由比較角度差、比較角度值的正切的差,或比較垂直坐標差)來確定鐳射光束是在標記點之上還是之下。
在一些實例中,作為確定上下文索引的一部分,G-PCC譯碼器可以確定距離閾值。G-PCC譯碼器可以使用距離閾值來比較鐳射光束和標記點之間的距離。距離閾值可以將當前節點內的距離範圍劃分為區間。區間可以具有相等或不相等的長度。若鐳射光束在由距離區間確定的距離範圍內,則該等區間之每一者區間可以對應於上下文索引。在一些實例中,存在藉由在標記點之上和之下的相等距離偏移而確定的兩個距離閾值,其定義了與三個上下文索引相對應的三個距離區間。G-PCC譯碼器可以以與確定與節點相交的鐳射的鐳射光束索引類似的方式(例如,藉由比較角度差、比較角度值的正切的差,或比較垂直坐標差)來確定鐳射光束是否屬於一區間。
採用感測器資訊的以上原理不限於對節點內的平面模式的垂直(Z)平面位置語法元素進行譯碼,而類似原理亦可以被應用於對節點內的平面模式的X或Y平面位置語法元素進行譯碼。若平面模式的X或Y平面位置模式更加適於對節點內的點分佈進行譯碼,則編碼器可以選擇其。例如,若被佔用的子節點全部位元於在X方向上定向的平面的一側,則可以使用X平面位置語法元素來對節點內的點分佈進行譯碼。若被佔用的子節點全部位元於在Y方向上定向的平面的一側,則可以使用Y平面位置語法元素來對節點內的點分佈進行譯碼。另外,在X、Y或Z方向上定向的兩個或兩個以上平面的組合可以用於指示子節點的佔用。
G-PCC譯碼器可以基於鐳射光束是在標記點之上還是之下(亦即,位於標記點之上還是之下),來在兩個上下文中確定上下文。在該實例中,標記點是節點的中心。此在圖5中圖示。更特別地,圖5是根據本案內容的一或多個技術的其中基於在節點504的標記點502之上或之下的鐳射光束位置500A、500B來確定上下文索引的實例的概念圖。因此,在圖5的實例中,若與節點504相交的鐳射在標記點502之上(如關於鐳射光束位置500A所示),則G-PCC譯碼器選擇第一上下文索引(例如,Ctx=0)。在圖5的實例中,標記點502位於節點504的中心處。若與節點504相交的鐳射在標記點502之下(如關於鐳射光束位置500B所示),則G-PCC譯碼器選擇第二上下文索引(例如,Ctx=1)。
如在上文中論述的,w19088描述了涉及確定用於平面譯碼模式的上下文contextAngular的上下文確定方法。在下文的表3中複製了w19088的與該上下文確定方法相關聯的文字。更特別地,表3圖示w19088的用於從10個可能的上下文索引的集合中確定上下文索引的規範文字。在w19088中提供的上下文確定方法基於對大整數值的比較來評估五個條件,以確定在範圍0到9內的上下文索引。該等比較在表3中利用<!>…</!>標籤來指示。
表3
| 首先,確定相對於下平面和上平面的兩個角度差m和M。 thetaLaserDelta = laser_angle [laserIndex [Child]] - theta32 Hr = laser_correction [laserIndex [Child]] * rInv thetaLaserDelta += Hr >= 0 ? -(Hr >> 17) : ((-Hr) >> 17) zShift = (rInv << (ChildNodeSizeZLog2 + 1)) >> 17 m = abs(thetaLaserDelta - zShift) M = abs(thetaLaserDelta + zShift) 隨後,從兩個角度差來推斷角度上下文。 contextAngular[Child] = <!>m > M ?</!> 1 : 0 diff = abs(m - M) <!>if (diff >= rInv >> 15)</!> contextAngular[Child] += 2 <!>if (diff >= rInv >> 14)</!> contextAngular[Child] += 2 <!>if (diff >= rInv >> 13)</!> contextAngular[Child] += 2 <!>if (diff >= rInv >> 12)</!> contextAngular[Child] += 2 |
在下文的表4中指定了在本案內容中提出的簡化的雙上下文推導。更特別地,表4圖示提出的示例性的簡化的雙上下文推導。條件數量被減少到一個,其利用<!>…</!>標籤來指示。該單一條件可以容易實施,因為該單一條件可以僅檢查整數值的正負號。
表4
| 首先,確定相對於節點的中心的經校正的角度差。 thetaLaserDelta = laser_angle [laserIndex [Child]] - theta32 Hr = laser_correction [laserIndex [Child]] * rInv thetaLaserDelta += Hr >= 0 ? -(Hr >> 17) : ((-Hr) >> 17) 隨後,從thetaLaserDelta的正負號來推斷角度上下文。 contextAngular[Child] = 0 <!>if (thetaLaserDelta < 0)</!> contextAngular[Child] = 1 |
在表4中以及在本案內容中的其他地方,laserIndex[Child]是被確定為最接近節點「Child」的中心點的鐳射光束的索引;laser_angle指示被確定為最接近節點「Child」的中心點的鐳射光束的角度的正切;thetaLaserDelta指示在被確定為最接近節點「Child」的中心點的鐳射光束的角度的正切(theta32)與偏移校正之間的差;laser_correction指示鐳射校正係數;Hr指示與垂直偏移校正相對應的角度的正切,contextAngular指示上下文;並且theta32可以如在本案內容中的其他地方所描述地確定。運算thetaLaserDelta += Hr >= 0 ? -(Hr >> 17) : ((-Hr) >> 17)提供了精度調整。
在一些實例中,G-PCC譯碼器基於鐳射光束位於兩個距離閾值之上或執行或在該等距離閾值之間來確定三個上下文。在該實例中,標記點是節點的中心。此在圖6中圖示。更特別地,圖6是圖示根據本案內容的一或多個技術的用於節點600的示例三上下文索引確定的概念圖。在圖6中,利用細虛線602A、602B指示距離區間閾值。利用實線604A、604B指示鐳射光束。該等鐳射光束中的每一者皆可以是鐳射候選。利用白色圓圈指示中心點606(標記點)。因此,在圖6的實例中,若鐳射(諸如對應於線604A的鐳射)線上602A之上,則G-PCC譯碼器選擇上下文索引ctx1。若鐳射線上602A、602B之間,則G-PCC譯碼器可以選擇上下文索引ctx0。若鐳射(諸如對應於線604B的鐳射)線上602B之下,則G-PCC譯碼器可以選擇上下文索引ctx2。
在下文的表5中提供了簡化的規範文字。更特別地,表5圖示提出的簡化的三上下文推導。在該實例中,G-PCC譯碼器使用兩個條件,此可以容易實施,因為該等條件僅檢查整數值的正負號。
表5
在表5中和在本案內容中的其他地方,ChildNodeSizeZLog2是節點Child的高度(z距離)的以2為底的對數。DeltaTop可以是藉由從鐳射差角度減去移位值而確定的頂部角度差。DeltaBottom可以是藉由將移位值與鐳射差角度相加的底部角度差。術語zShift可以是基於節點Child的頂角和底角之間的角度,並且被縮放到較小的區間。
| 首先,確定相對於下平面和上平面的兩個角度差m和M。 thetaLaserDelta = laser_angle [laserIndex [Child]] - theta32 Hr = laser_correction [laserIndex [Child]] * rInv thetaLaserDelta += Hr >= 0 ? -(Hr >> 17) : ((-Hr) >> 17) zShift = (rInv << ChildNodeSizeZLog2) >> 20 DeltaBottom = thetaLaserDelta + zShift DeltaTop = thetaLaserDelta - zShift 隨後,推斷角度上下文。 contextAngular[Child] = 0 <!>if (DeltaTop >= 0)</!> contextAngular[Child] = 1 <!>else if (DeltaBottom < 0)</!> contextAngular[Child] = 2 |
在一些實例中,G-PCC譯碼器在使用角度模式的情況下使用四個上下文來對平面模式的垂直平面位置進行譯碼。在此種實例中,G-PCC譯碼器可以基於鐳射光束在四個區間內的位置來確定上下文索引。在圖7中圖示該實例。圖7是圖示基於鐳射光束位置(實線箭頭)對用於對平面模式的垂直平面位置(角度模式)進行譯碼的示例上下文索引確定的概念圖,其中區間藉由細虛線分隔開。在圖7的實例中,線700A、700B和700C對應於距離區間閾值。此外,在圖7的實例中,標記點702位於節點704的中心處。線706對應於與節點704相交的鐳射光束。因為線706線上700A之上,所以G-PCC譯碼器可以選擇上下文索引ctx2以在對垂直平面位置進行譯碼時使用。
在下文的表6中指定了提出的簡化的四上下文推導。條件數量被減少到三個,其利用<!>…</!>標籤來指示。該等條件可以易於實施,因為其僅檢查整數值的正負號。表6圖示提出的用於對平面模式的垂直平面位置進行譯碼(角度模式情況)的簡化的四上下文推導的示例規範文字。
表6
| … 首先,確定相對於節點的中心的經校正的角度差。 thetaLaserDelta = laser_angle [laserIndex [Child]] - theta32 Hr = laser_correction [laserIndex [Child]] * rInv thetaLaserDelta += Hr >= 0 ? -(Hr >> 17) : ((-Hr) >> 17) 隨後,推斷角度上下文。 zShift = (rInv << ChildNodeSizeZLog2) >> 20 DeltaBottom = thetaLaserDelta + zShift DeltaTop = thetaLaserDelta - zShift contextAngular[Child] = <!>thetaLaserDelta >= 0</!> ? 0 : 1 if (<!>DeltaTop >= 0</!>) contextAngular[Child] += 2 else if (<!>DeltaBottom < 0</!>) contextAngular[Child] += 2 … |
圖8A是圖示根據本案內容的一或多個技術的用於對垂直平面位置進行編碼的示例操作的流程圖。G-PCC編碼器200可以執行圖8A的操作,作為對點雲進行編碼的一部分。
在圖8A的實例中,G-PCC編碼器200(例如,G-PCC編碼器200的算術編碼單元214(圖2))可以對表示由點雲資料表示的點雲中的點的三維位置的樹(例如,八叉樹)的節點中的平面模式的垂直平面位置進行編碼(800)。換言之,G-PCC編碼器200可以對垂直平面位置進行編碼。
作為對平面模式的垂直平面位置進行編碼的一部分,G-PCC編碼器200(例如,算術編碼單元214)可以確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與節點相交的鐳射光束(802)。G-PCC編碼器200可以根據在本案內容中的其他地方提供的實例中的任何實例來確定鐳射索引。例如,G-PCC編碼器200可以如上面的表2所示地確定鐳射索引。
另外,G-PCC編碼器200(例如,算術編碼單元214)可以基於鐳射光束是在第一距離閾值之上、在第一距離閾值與第二距離閾值之間、在第二距離閾值與第三距離閾值之間還是在第三距離閾值之下,來確定上下文索引(contextAngular)(804)。例如,在圖7的實例中,G-PCC編碼器200可以基於鐳射光束是在第一距離閾值(對應於線700A)之上、在第一距離閾值與第二距離閾值(對應於線700B)之間、在第二距離閾值與第三距離閾值(對應於線700C)之間還是在第三距離閾值之下,來確定上下文索引。在一些實例中,為了確定鐳射光束相對於第一、第二和第三距離閾值的位置,G-PCC編碼器200可以藉由從鐳射光束的角度的正切中減去穿過節點的中心的線的角度的正切來確定鐳射差角度(例如,thetaLaserDelta),藉由從鐳射差角度中減去移位值來確定頂部角度差(例如,DeltaTop);及藉由將移位值與鐳射差角度來確定底部角度差(例如,DeltaBottom)。
G-PCC編碼器200可以執行確定鐳射差角度是否大於或等於0的第一比較(例如,thetaLaserDelta>=0)。G-PCC編碼器200可以基於鐳射差角度是否大於或等於0來將上下文索引設置為0或1(例如,contextAngular[Child] = thetaLaserDelta >= 0 ? 0 : 1)。另外,G-PCC編碼器200可以執行確定頂部角度差是否大於或等於0的第二比較(例如,DeltaTop>=0)。當頂部角度差大於或等於0時,鐳射光束在第一距離閾值之上。G-PCC編碼器200亦可以執行確定底部角度差是否小於0的第三比較(例如,DeltaBottom<0)。當底部角度差小於0時,鐳射光束在第三距離閾值之下。G-PCC編碼器200可以基於頂部角度差大於或等於0來將上下文索引遞增2(例如,if (DeltaTop >= 0) contextAngular[Child] += 2),或者基於底部角度差小於0來將上下文索引遞增2(例如,else if (DeltaBottom < 0) contextAngular[Child] += 2)。
G-PCC編碼器200(例如,G-PCC編碼器200的算術編碼單元214)可以使用由所確定的上下文索引指示的上下文來對平面模式的垂直平面位置進行算術編碼(806)。例如,G-PCC編碼器200可以對指示垂直平面位置的語法元素執行CABAC編碼。
圖8B是圖示根據本案內容的一或多個技術的用於對垂直平面位置進行解碼的示例操作的流程圖。G-PCC解碼器300可以執行圖8B的操作,作為對由點雲資料表示的點雲進行重構的一部分。在圖8B的實例中,G-PCC解碼器300(例如,圖3的幾何形狀算術解碼單元302)可以對表示點雲中的點的三維位置的樹(例如,八叉樹)的節點中的平面模式的垂直平面位置進行解碼(850)。換言之,G-PCC解碼器300可以對垂直平面位置進行解碼。
作為對平面模式的垂直平面位置進行解碼的一部分,G-PCC解碼器300(例如,幾何形狀算術解碼單元302)可以確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與節點相交的鐳射光束(852)。G-PCC解碼器300可以根據在本案內容中的其他地方提供的實例中的任何實例來確定鐳射索引。例如,G-PCC解碼器300可以如上面的表2所示地確定鐳射索引。
另外,G-PCC解碼器300可以基於鐳射光束是在第一距離閾值之上、在第一距離閾值與第二距離閾值之間、在第二距離閾值與第三距離閾值之間還是在第三距離閾值之下,來確定上下文索引(contextAngular)(804)。G-PCC解碼器300可以以如前述的與G-PCC編碼器200相同的方式來確定上下文索引。
G-PCC解碼器300(例如,G-PCC解碼器300的幾何形狀算術解碼單元302)可以使用由所確定的上下文索引指示的上下文來對平面模式的垂直平面位置進行算術解碼(806)。例如,G-PCC解碼器300可以對指示垂直平面位置的語法元素執行CABAC解碼。在一些實例中,G-PCC解碼器300可以基於垂直平面位置來確定點雲中的一或多個點的位置。例如,G-PCC解碼器300可以基於垂直平面位置來確定節點的被佔用的子節點的位置。隨後,G-PCC解碼器300可以處理被佔用的子節點以確定被佔用的子節點內的點的位置,並且可以不需要對未被佔用的子節點執行進一步處理。
如上所提到的,本案內容的一或多個技術可以減少用於對IDCM垂直點位置偏移進行譯碼的上下文的數量。G-PCC譯碼器(例如,G-PCC編碼器200或G-PCC解碼器300)可以部分地藉由從鐳射候選集合中選擇鐳射索引來對節點內的IDCM的垂直點位置偏移進行譯碼(亦即,編碼或解碼)。可以在參數集(諸如幾何形狀參數集)中用信號通知鐳射候選集合,其中所選擇的鐳射索引指示與節點相交的鐳射光束。鐳射候選集合可以對應於LIDAR陣列中的鐳射。G-PCC譯碼器可以基於鐳射光束與節點的交點來確定要對來自IDCM的垂直點位置偏移的倉(位元)進行算術譯碼的上下文索引。
因此,在一些實例中,G-PCC譯碼器(例如,G-PCC編碼器200或G-PCC解碼器300)可以對表示點雲中的點的三維位置的樹(例如,八叉樹)的節點內的垂直點位置偏移進行譯碼。作為對垂直點位置偏移進行譯碼的一部分,G-PCC譯碼器可以確定鐳射候選集合中的鐳射候選的鐳射索引。所確定的鐳射索引指示與節點相交的鐳射光束。此外,作為對垂直位置偏移進行譯碼的一部分,G-PCC譯碼器可以基於鐳射光束與節點的交點來確定上下文索引。G-PCC譯碼器可以使用由所確定的上下文索引指示的上下文,來對垂直點位置偏移的倉進行算數譯碼。
在一些實例中,可以存在關於G-PCC譯碼器可以使用以確定節點是否有資格使用角度模式來對IDCM的垂直點位置偏移進行譯碼的資格條件。若垂直點位置偏移沒有資格在節點中使用角度模式進行譯碼,則G-PCC譯碼器可以在不採用感測器資訊的情況下對IDCM的垂直點位置偏移進行譯碼。在一些實例中,資格條件可以確定是否僅有一個鐳射與節點相交。換言之,若僅有一個鐳射與節點相交,則G-PCC譯碼器可以確定垂直點偏移有資格在節點中使用角度模式進行譯碼。
在一些實例中,資格條件可以確定鐳射候選集合中的鐳射之間的最小角度差。換言之,若在鐳射候選集合中的鐳射之間至少存在最小角度,則G-PCC譯碼器可以確定垂直點偏移有資格在節點中使用角度模式進行譯碼。在一些實例中,資格條件是使得垂直節點維度小於(或等於)最小角度差。換言之,若垂直節點維度小於或等於最小角度差,則G-PCC譯碼器可以確定垂直點偏移有資格在節點中使用角度模式進行譯碼。換言之,若當前節點的垂直維度小於或等於被分隔開當前節點到鐳射原點的最近垂直邊緣處的最小角度差的鐳射光束之間的垂直距離,則該節點可以有資格使用角度模式進行譯碼。
在一些實例中,G-PCC譯碼器藉由選擇與節點中的標記點最近的鐳射光束來確定與節點相交的鐳射的索引。節點中的標記點可以是節點的中心點,例如,其具有在節點的所有三個維度(例如,立方體或立方體維度)的一半處的坐標,或可以是節點中的任何其他點(諸如在節點內或在節點側面上,或在節點邊緣或節點角上的任何點)。
G-PCC譯碼器可以基於角度差的比較來確定鐳射是否在標記點附近。例如,G-PCC譯碼器可以對鐳射光束的角度與標記點的角度之間的差進行比較。鐳射光束的角度可以被定義為在水平平面(z=0)和鐳射光束的方向之間。標記點的角度可以被定義為在水平平面與虛擬光束到標記點的方向之間的角度。在此種情況下,原點可以是與感測器或雷射器的中心同位的。替代地,可以在比較之前將數學函數或三角函數(諸如正切函數)應用於角度。
在一些實例中,G-PCC譯碼器可以基於對垂直坐標差的比較來確定鐳射是否在標記點附近。例如,G-PCC譯碼器可以對標記點相對於感測器原點的垂直坐標(例如,標記點的z坐標)和鐳射與節點相交的垂直坐標進行比較。G-PCC譯碼器可以藉由將水平平面和鐳射方向之間的角度的正切與藉由基於標記點的(x,y)坐標而取得的歐式距離(三角學)所計算的距離相乘,從而獲得鐳射與節點相交的垂直坐標。
在一些實例中,G-PCC譯碼器可以基於鐳射光束相對於與節點內的IDCM的垂直點位置偏移的第j位元相對應的垂直區間的相對位置,來確定要對第j位元進行譯碼(例如,CABAC譯碼)的上下文索引。對垂直點位置偏移位元的編碼或解碼是按照順序的,諸如從最高有效位元(MSB)到最低有效位元(LSB)。在其中垂直點位置偏移位元是按照MSB到LSB的順序而譯碼的實例中,垂直點位置偏移的最大值(並且因此亦是MSB)是由垂直節點大小的值來確定的。
若鐳射光束在與第j位元相對應的垂直區間的中點之上,則G-PCC譯碼器可以確定上下文索引是第一上下文索引。若鐳射光束在中點之下,則G-PCC譯碼器可以確定上下文索引是第二上下文索引。G-PCC譯碼器可以以與確定與節點相交的鐳射光束的鐳射光束索引類似的方式(例如,藉由比較角度差、比較角度值的正切的差,或比較垂直坐標差)來確定鐳射光束在中點之上還是之下。
G-PCC譯碼器可以確定距離閾值並且使用距離閾值,來對鐳射光束和中點之間的距離進行比較以確定上下文索引。在一些實例中,距離閾值可以將在節點內與第j位元相對應的區間範圍劃分為子區間。子區間可以具有相等或不相等的長度。若鐳射光束在由距離子區間確定的距離範圍內,則每個子區間可以對應於上下文索引。在一些實例中,存在藉由在中點之上和之下的相等距離偏移而確定的兩個距離閾值。因此,在此種實例中,可以存在與三個上下文索引相對應的三個距離區間。G-PCC譯碼器可以以與確定與節點相交的鐳射光束索引類似的方式(亦即,藉由比較角度差、比較角度值的正切的差,或比較垂直坐標差),來確定鐳射光束是否屬於子區間。
採用感測器資訊的以上原理不限於對節點內的IDCM的垂直(Z)點位置偏移進行譯碼,而類似的原理亦可以被應用於對節點內的X或Y點位置偏移進行譯碼。
在一些實例中,G-PCC譯碼器基於鐳射光束在區間中位於標記點之上或之下,來在兩個上下文當中確定上下文。在該實例中,中點是區間的中心。此在圖9中圖示。更特別地,圖9是用於基於鐳射光束位置(實線)在利用白色圓圈指示的區間中點900之上或之下來確定上下文索引(例如,Ctx=0或Ctx=1)的實例的概念圖。
如上所論述的,w19088描述了涉及確定角度上下文idcmIdxAngular的上下文確定方法。為了方便起見,在下文的表7中複製了w19088中的相應文字。表7圖示用於確定用於對IDCM垂直位置偏移倉進行譯碼的上下文索引的文字。如表7所示,G-PCC譯碼器評估五個條件,以確定在範圍0到9內的上下文索引。該五個條件是基於對大整數值的比較。在表7中,該等條件藉由<!>…</!>標籤來指示。
表7
| 藉由以下各項來計算相對於虛擬區間的中間的相對鐳射位置thetaLaserDeltaVirtualInterval: zLidar = ((posZlidarPartial[i][j] + halfIntervalSize [j]) << 1) - 1 theta = zLidar*rInv theta32 = theta >= 0 ? theta >> 15 : -((-theta) >> 15) thetaLaserDeltaVirtualInterval = ThetaLaser - theta32 確定鐳射相對於虛擬區間中的下部z位置和上部z位置的兩個絕對角度差m和M: zShift = ((rInv << EffectiveChildNodeSizeZLog2) >> 17) >> j m = abs(thetaLaserDeltaVirtualInterval - zShift) M = abs(thetaLaserDeltaVirtualInterval + zShift) 隨後,從兩個絕對角度差來推斷角度上下文: idcmIdxAngular[i][j] = <!>m > M</!> ? 1: 0 diff = abs(m - M) <!>if (diff >= rInv >> 15)</!> idcmIdxAngular[i][j] += 2 <!>if (diff >= rInv >> 14)</!> idcmIdxAngular[i][j] += 2 <!>if (diff >= rInv >> 13)</!> idcmIdxAngular[i][j] += 2 <!>if (diff >= rInv >> 12)</!> idcmIdxAngular[i][j] += 2 |
在表7中和在本案內容的其他地方,zLidar指示與正被譯碼的位元相對應的當前區間中的中點。當最高有效位元(亦即位元0)正被譯碼時,posZlidarPartial[i][j]為0,而當位元1正被譯碼時,其等於halfIntervalSize,並且用於每個後續位元的posZlidarPartial值等於先前位元的posZlidarPartial值的一半。上面定義了halfIntervalSize[j]和zLidar。EffectiveChildNodeSizeZLog2指示垂直節點大小的以2為底的對數。
在下文的表8中指定了在本案內容中提出的簡化的雙上下文推導。更特別地,表8圖示用於確定雙上下文索引的簡化的規範文字。條件數量被減少到一個,其利用<!>…</!>標籤來指示。該單一條件可以容易實施,因為該單一條件可以僅檢查整數值的正負號。
表8
| 藉由以下各項來計算相對於虛擬區間的中間的相對鐳射位置thetaLaserDeltaVirtualInterval: zLidar = ((posZlidarPartial[i][j] + halfIntervalSize [j]) << 1) - 1 theta = zLidar*rInv theta32 = theta >= 0 ? theta >> 15 : -((-theta) >> 15) thetaLaserDeltaVirtualInterval = ThetaLaser - theta32 隨後,根據thetaLaserDeltaVirtualInterval的正負號來推斷角度上下文。 idcmIdxAngular[i][j] = 0 <!>if (thetaLaserDeltaVirtualInterval < 0)</!> idcmIdxAngular[i][j] = 1 |
在一些實例中,G-PCC譯碼器基於鐳射光束位於兩個距離閾值之上或之下或在距離閾值之間來確定三個上下文。在該實例中,標記點是區間的中心。此在圖10中圖示。更特別地,圖10是圖示與第j位元相對應的被劃分為三個子區間的示例IDCM垂直點偏移區間(1000)的概念圖。在圖10的實例中,利用實線圖示鐳射光束1002,並且利用細虛線1004A、1004B圖示閾值,並且利用白色圓圈指示中點1006。因為鐳射光束1002線上1004A之上,所以G-PCC譯碼器可以選擇上下文索引ctx1。
在下文的表9中指定了簡化的規範文字。更特別地,下文的表9圖示用於三上下文實例的簡化的規範文字。在該實例中,使用了兩個條件,此可以容易實施,因為該等條件僅檢查整數值的正負號。該等條件利用<!>…</!>標籤來指示。
表9
| 藉由以下各項來計算相對於虛擬區間的中間的相對鐳射位置thetaLaserDeltaVirtualInterval: zLidar = ((posZlidarPartial[i][j] + halfIntervalSize [j]) << 1) - 1 theta = zLidar*rInv theta32 = theta >= 0 ? theta >> 15 : -((-theta) >> 15) thetaLaserDeltaVirtualInterval = ThetaLaser - theta32 隨後,推斷角度上下文。 zShift = ((rInv << EffectiveChildNodeSizeZLog2) >> 20) >> j DeltaBottom = thetaLaserDeltaVirtualInterval + zShift DeltaTop = thetaLaserDeltaVirtualInterval - zShift idcmIdxAngular[i][j] = 0 <!>if (DeltaTop >= 0)</!> idcmIdxAngular[i][j] = 1 <!>else if (DeltaBottom < 0)</!> idcmIdxAngular[i][j] = 2 |
在一些實例中,在IDCM情況下,G-PCC譯碼器基於鐳射光束在相似區間內的位置來在四個上下文當中確定上下文。此在圖11的實例中圖示。圖11是圖示用於基於在由細虛線1104A、1104B、1104C指示的區間內的鐳射光束位置(實線箭頭)1102來確定用於對IDCM的垂直點位置偏移進行譯碼的上下文索引的示例技術的概念圖。在圖11的實例中,利用白色圓圈指示中點1006。因為鐳射光束1102線上1104A之上,所以G-PCC譯碼器可以選擇上下文索引ctx2。
在下文的表10指定了提出的簡化的四上下文推導。條件數量被減少到三個,其利用<!>…</!>標籤來指示。該等條件可以容易實施,因為其僅檢查整數值的正負號。表10包括提出的用於對IDCM垂直點位置偏移進行譯碼(角度模式情況)的簡化的四上下文推導的規範文字。
表10
| … 藉由以下各項來計算相對於虛擬區間的中間的相對鐳射位置thetaLaserDeltaVirtualInterval: zLidar = ((posZlidarPartial[i][j] + halfIntervalSize [j]) << 1) - 1 theta = zLidar*rInv theta32 = theta >= 0 ? theta >> 15 : -((-theta) >> 15) thetaLaserDeltaVirtualInterval = ThetaLaser - theta32 隨後,基於thetaLaserDeltaVirtualInterval來推斷角度上下文。 zShift = ( (rInv << ChildNodeSizeZLog2) >> 18 ) >> j DeltaBottom = thetaLaserDeltaVirtualInterval + zShift DeltaTop = thetaLaserDeltaVirtualInterval - zShift idcmIdxAngular[i][j] = <!>thetaLaserDeltaVirtualInterval >= 0</!> ? 0 : 1 if (<!>DeltaTop >= 0</!>) idcmIdxAngular[i][j] += 2 Else if (<!>DeltaBottom < 0</!>) idcmIdxAngular[i][j] += 2 … |
圖12A是圖示根據本案內容的一或多個技術的用於對IDCM垂直點偏移進行編碼的示例操作的流程圖。在圖12A的實例中,G-PCC編碼器200(例如,G-PCC編碼器200的算術編碼單元214(圖2))可以對表示由點雲資料表示的點雲中的點的三維位置的樹(例如,八叉樹)的節點內的垂直點位置偏移進行編碼(1200)。作為對垂直點位置偏移進行編碼的一部分,G-PCC編碼器200可以確定鐳射候選集合中的鐳射候選的鐳射索引(1202)。所確定的鐳射索引指示與節點相交的鐳射光束。G-PCC編碼器200可以根據在本案內容中的其他地方提供的實例中的任何實例來確定鐳射索引。例如,G-PCC編碼器200可以如上面的表2所示地確定鐳射索引。
另外,G-PCC編碼器200(例如,算術編碼單元214)可以基於鐳射光束是在第一距離閾值(對應於線1104A)之上、在第一距離閾值與第二距離閾值(對應於線1104B)之間、在第二距離閾值與第三距離閾值(對應於線1104C)之間還是在第三距離閾值之下,來確定上下文索引(contextAngular)(1204)。例如,在圖11的實例中,G-PCC編碼器200可以藉由從區間的角度的正切(theta32)中減去穿過節點的中點的線的角度的正切(ThetaLaser),來確定用於與倉相對應的區間的鐳射差角度(例如,thetaLaserDeltaVirtualInterval)。區間的角度可以對應於該區間的距鐳射集合的原點的角度。G-PCC編碼器200可以藉由從用於區間的鐳射差角度中減去移位值來確定頂部角度差(例如,DeltaTop)。G-PCC編碼器200可以藉由將移位值與用於區間的鐳射差角度相加來確定底部角度差(例如,DeltaBottom)。
G-PCC編碼器200可以執行確定用於區間的鐳射差角度是否大於或等於0的第一比較(例如,thetaLaserDeltaVirtualInterval >= 0)。G-PCC編碼器200可以基於用於區間的鐳射差角度是否大於或等於0來將上下文索引設置為0或1(例如,idcmIdxAngular[i][j] = thetaLaserDeltaVirtualInterval >= 0 ? 0 : 1)。G-PCC編碼器200可以執行確定頂部角度差是否大於或等於0的第二比較(例如,DeltaTop>=0)。當頂部角度差大於或等於0時,鐳射光束可以在第一距離閾值之上。G-PCC編碼器200可以執行確定底部角度差是否小於0的第三比較(例如,DeltaBottom<0)。當底部角度差小於0時,鐳射光束可以在第三距離閾值之下。G-PCC編碼器200可以基於頂部角度差大於或等於0來將上下文索引遞增2(例如,if (DeltaTop >= 0) idcmIdxAngular[i][j] += 2),或者基於底部角度差小於0來將上下文索引遞增2(例如,Else if (DeltaBottom < 0) idcmIdxAngular[i][j] += 2)。
G-PCC編碼器200(例如,G-PCC編碼器200的算術編碼單元214)可以使用由所確定的上下文索引指示的上下文來對垂直點位置偏移的倉進行算術編碼(1206)。例如,G-PCC編碼器200可以對指示垂直點位置偏移的語法元素執行CABAC編碼。
圖12B是圖示根據本案內容的一或多個技術的用於對IDCM垂直點偏移進行解碼的示例操作的流程圖。在圖12B的實例中,G-PCC解碼器300可以獲得包括經算術編碼的語法元素的位元串流(例如,幾何形狀位元串流或其他類型的位元串流),經算術編碼的語法元素指示表示由點雲資料表示的點雲中的點的三維位置的樹(例如,八叉樹)的節點內的垂直點位置(1248)。例如,G-PCC解碼器300可以從基於有線的或無線的通訊通道獲得位元串流。在一些實例中,G-PCC解碼器300可以從暫時性或非暫時性電腦可讀取儲存媒體獲得位元串流。處理單元、網路介面、記憶體控制器或其他類型的硬體可以獲得位元串流。
G-PCC解碼器300可以對表示點雲中的點的三維位置的樹(例如,八叉樹)的節點內的垂直點位置偏移進行解碼(1250)。作為對垂直點位置偏移進行解碼的一部分,G-PCC解碼器300可以確定鐳射候選集合中的鐳射候選的鐳射索引(1252)。所確定的鐳射索引指示與節點相交的鐳射光束。G-PCC解碼器300可以根據在本案內容的其他地方提供的實例中的任何實例來確定鐳射索引。例如,G-PCC解碼器300可以如上面的表2指出地確定鐳射索引。
另外,G-PCC解碼器300(例如,G-PCC解碼器300的幾何形狀算術解碼單元302(圖3))可以基於鐳射光束是在第一距離閾值之上、在第一距離閾值與第二距離閾值之間、在第二距離閾值與第三距離閾值之間還是在第三距離閾值之下來確定上下文索引(idcmIdxAngular)(1254)。如前述,G-PCC解碼器300可以以與G-PCC編碼器200相同的方式來確定上下文索引。
G-PCC解碼器300(例如,G-PCC解碼器300的幾何形狀算術解碼單元302)可以使用由所確定的上下文索引指示的上下文來對垂直點位置偏移的倉進行算術解碼(1256)。例如,G-PCC解碼器300可以對指示垂直點位置偏移的語法元素的倉執行CABAC解碼。作為對點雲進行重構的一部分,G-PCC解碼器300可以執行圖12B的操作。作為對點雲的一或多個點進行重構的一部分,G-PCC解碼器300可以基於垂直點位置偏移來確定點雲的一或多個點的位置。例如,G-PCC解碼器300可以將經重構的點雲中的點的垂直位置確定為垂直點位置偏移加上節點的原點的垂直位置。
如上所提到的,可以在諸如幾何形狀參數集之類的參數集中用信號通知number_lasers語法元素。number_lasers語法元素指示用於角度譯碼模式的鐳射數量。然而,根據本案內容的一或多個技術,可以將用於角度譯碼模式的鐳射數量作為number_lasers_minusL用信號通知(例如,在諸如幾何形狀參數集之類的參數集或其他語法標頭中),以使得藉由將值L與用信號通知的number_lasers_minusL值相加來獲得鐳射數量。因此,在一些實例中,G-PCC譯碼器(例如,G-PCC編碼器200或G-PCC解碼器300)可以對具有第一值的語法元素進行譯碼,其中第一值加上第二值指示鐳射數量,其中第二值是最小鐳射數量。
在一些實例中,值L等於1,因為對於角度模式在對例如平面模式的平面位置或IDCM的點位置偏移進行譯碼態樣有用而言,應當存在至少一個鐳射。可以在位元串流中使用可變長度碼(諸如k階指數Golomb碼或固定長度碼)來對number_lasers_minus1語法元素進行譯碼。在一些實例中,值L可以等於對於角度模式在譯碼方面有用而言所需要的最小鐳射數量。在一些實例中,可以在位元串流中使用可變長度碼(諸如k階指數Golomb碼或固定長度碼)來對number_lasers_minusL語法元素進行譯碼。
如下文的表11中,對幾何形狀參數集語法表進行修改,其中經修改的文字利用<!>…</!>標籤來指示。更特別地,表11圖示在幾何形狀參數集中的number_of_lasers_minus1的訊號傳遞。在表11中,<#>…</#>標籤表示與角度模式相關的語法元素。
表11
| geometry_parameter_set( ) { | 描述符 |
| … | … |
| geometry_planar_mode_flag | u(1) |
| if( geometry_planar_mode_flag ){ | |
| geom_planar_mode_th_idcm | ue(v) |
| geom_planar_mode_th[ 1 ] | ue(v) |
| geom_planar_mode_th[ 2 ] | ue(v) |
| } | |
| <#> geometry_angular_mode_flag</#> | u(1) |
| <#> if( geometry_angular_mode_flag ){ </#> | |
| <#> lidar_head_position[0] </#> | se(v) |
| <#> lidar_head_position[1] </#> | se(v) |
| <#> lidar_head_position[2] </#> | se(v) |
| <!> number_lasers_minus1</!> | ue(v) |
| <#> for( i = 0; i < (number_lasers_minus1 + 1); i++ ) {</#> | |
| <#> laser_angle[ i ] </#> | se(v) |
| <#> laser_correction[ i ] </#> | se(v) |
| <#> }</#> | |
| <#> planar_buffer_disabled</#> | u(1) |
| <#> implicit_qtbt_angular_max_node_min_dim_log2_to_split_z</#> | se(v) |
| <#> implicit_qtbt_angular_max_diff_to_split_z</#> | se(v) |
| <#> } </#> | |
| neighbour_context_restriction_flag | u(1) |
| inferred_direct_coding_mode_enabled_flag | u(1) |
| … |
藉由以下內容提供number_lasers_minus1語法元素的語義:
number_lasers_minus1值加1指定用於角度譯碼模式的鐳射數量。當不存在時,number_lasers_minus1被推斷為-1。
在本案內容的一些實例中,可以藉由省略歐式距離計算的平方根倒數來簡化角度模式。用於省略歐式距離計算的平方根倒數的原理是基於如下用於計算角度的正切的等式(三角學),如圖13所示。圖13是指示直角三角形1300的角和邊的概念圖。如圖13所示,正切(角A的角度)= a / b =對邊/鄰邊。
在本案內容中,基於以上原理,G-PCC譯碼器可以確定與當前節點(若其有資格的話)相交的鐳射的索引,及/或確定用於使用角度模式來對平面模式的垂直平面位置進行譯碼的上下文索引。令Z_marker為標記點相對於原點的垂直坐標,並且令Tan_laser為候選鐳射光束的方向與穿過原點的水平平面之間的角度的正切。兩個值可以是正的或負的:Z_marker_sign和Tan_laser_sign(假定值+1或-1)。G-PCC譯碼器可以藉由計算Z_marker(Z2_marker)的平方以及Tan_laser的平方乘以用於確定鐳射的垂直坐標(Z2_laser)的平方的歐式距離的平方(等式1)來確定相交的鐳射索引。兩個量Z_marker_sign*Z2_marker和Tan_laser_sign*Z2_laser之間的最小(絕對值)增量值確定與節點相交的鐳射的索引。可選地,在增量計算中可以包括近似鐳射校正偏移Z_correction_sign*Z2_correction。G-PCC譯碼器可以藉由檢查上面的最小增量值的正負號(在絕對值之前)來確定上下文索引。正增量值映射到一個上下文索引,而負增量值映射到第二上下文索引。替代地,例如,在三個上下文的情況下,可以將增量值與子區間進行比較以確定上下文索引(參見以上發明中的更多細節)。若當前節點是有資格的,則G-PCC譯碼器可以確定與當前節點相交的鐳射的索引,及/或確定用於使用角度模式來對IDCM垂直點位置偏移進行譯碼的上下文索引。該確定在本質上與先前的確定類似(同樣參見先前的發明)。
採用感測器資訊的以上原理不限於對節點內的平面模式的垂直(Z)平面位置語法元素進行譯碼,而類似原理亦可以被應用於對節點內的平面模式的X或Y平面位置語法元素進行譯碼。
若平面模式的X或Y平面位置模式更加適於對節點內的點分佈進行譯碼,則G-PCC編碼器200可以選擇其。同樣理解的是,採用感測器資訊的上述原理不限於對節點內的IDCM的垂直(Z)點位置偏移進行譯碼,而類似原理亦可以被應用於對節點內的X或Y點位置偏移進行譯碼。
在w19088的用於確定與當前節點相交的鐳射的鐳射索引的文字的基礎上,在下文的表12中提供了該實例的規範文字改變。更特別地,下文的表12圖示在不需要距離計算的平方根倒數的情況下確定穿過當前節點的鐳射索引的示例規範文字。
表12
| … 否則,若角度資格angular_eligible[Child]等於1,則以下作為在第8.2.5.1[1]節中描述的過程的延續來應用。 midNodeX = (1 << (ChildNodeSizeXLog2) >> 1) midNodeY = (1 << (ChildNodeSizeXLog2) >> 1) midNodeZ = (1 << (ChildNodeSizeZLog2) >> 1) xLidar = xNchild - lidar_head_position[0] + midNodeX yLidar = yNchild - lidar_head_position[1] + midNodeY zLidar = zNchild - lidar_head_position[2] + midNodeZ 其中(xNchild, yNchild, zNchild)指定幾何形狀八叉樹子節點Child在當前切片中的位置。 藉由以下各項來給出平方且縮放的歐式距離: r2 = (xLidar*xLidar + yLidar*yLidar) >> 3 (注意:對於減小結果的位元深度可能需要右移縮放 >>N) 藉由以下項來給出距midNode的垂直坐標的平方: z2 = zLidar * zLidar 基於子節點的父節點Parent,如下確定子節點的角度資格和相關聯的鐳射: laserIndex [Child] = UNKNOWN_LASER idcm4angular[Child] = 0 if (laserIndex [Parent] == UNKNOWN_LASER || deltaAngleR <= (midNodeZ<< (26 + 2))) { minDelta = 1 << (18 + 7) (注意:下文確定最小值,所以其被設置為最大值) for (j = 0; j < number_lasers; j++) { laser_angle2 = (((laser_angle[j] * laser_angle[j]) >> 3) * r2) >> 30) (注意:laser_angle陣列包含角度的正切;進行縮放以減小結果位元深度) laser_correction2 = laser_correction[j] * laser_correction [j] delta = (+/- laser_angle2 +/- laser_correction2 +/- z2) (注意:+/- 取決於laser_angle[j]、laser_correction[j]、zLidar在進行平方以獲得增量值之前的正負號;包括laser_correction2是可選的並且是近似的) deltaAbs = abs(delta) deltaSign = sign(delta) if (deltaAbs < minDelta) { minDelta = deltaAbs laserIndex [Child] = j signForCtx = deltaSign } } } else idcm4angular[Child] = 1 … |
如下在表13中,G-PCC譯碼器可以確定在節點中點之上或之下穿過節點的鐳射的上下文索引(contextAngular)。
表13
| … 根據signForCtx的正負號來推斷角度上下文。 contextAngular[Child] = 0 if (signForCtx < 0) contextAngular[Child] = 1 … |
鐳射角度和鐳射偏移的訊號傳遞
對於每個鐳射,用信號通知相應的鐳射角度和鐳射偏移(相對於頭部位置的鐳射位置)(例如,如利用在<!>…</!>標籤中包圍的文字指示的),如下文的表14所指示的。
表14
| geometry_parameter_set( ) { | 描述符 |
| … | … |
| geometry_planar_mode_flag | u(1) |
| if( geometry_planar_mode_flag ){ | |
| geom_planar_mode_th_idcm | ue(v) |
| geom_planar_mode_th[ 1 ] | ue(v) |
| geom_planar_mode_th[ 2 ] | ue(v) |
| } | |
| geometry_angular_mode_flag | u(1) |
| if( geometry_angular_mode_flag ){ | |
| lidar_head_position[0] | se(v) |
| lidar_head_position[1] | se(v) |
| lidar_head_position[2] | se(v) |
| number_lasers | ue(v) |
| <!> for( i = 0; i < number_lasers; i++ ) {</!> | |
| <!> laser_angle[ i ]</!> | se(v) |
| <!> laser_correction[ i ]</!> | se(v) |
| <!> }</!> | |
| planar_buffer_disabled | u(1) |
| implicit_qtbt_angular_max_node_min_dim_log2_to_split_z | se(v) |
| implicit_qtbt_angular_max_diff_to_split_z | se(v) |
| } | |
| neighbour_context_restriction_flag | u(1) |
| inferred_direct_coding_mode_enabled_flag | u(1) |
| … |
因此,在一些實例中,設備(例如,G-PCC編碼器200或G-PCC解碼器300)可以針對鐳射候選集合之每一者鐳射,用信號通知對應的鐳射角度和對應的鐳射偏移信號。
儘管在上面的語法描述中描述了鐳射角度和鐳射校正兩者是利用se(v)來譯碼的(亦即,帶正負號的整數0階Exp Golomb譯碼,其中左位元優先),但是與語法描述相比,軟體描述是不同的。通常,鐳射角度和鐳射校正在編碼器輸入配置中以浮點格式表示,並且值被縮放為整數,並且與偏移相加以將整數轉換為正整數。例如作為位元串流的一部分,可以如下用信號通知正整數:
for (auto val : params.encoder.lasersTheta) {
int << 18;
params.encoder.gps.geom_angular_theta_laser.push_back(round(val * one));
}
for (auto val : params.encoder.lasersZ) {
int << 3;
params.encoder.gps.geom_angular_z_laser.push_back(
round(val * params.encoder.sps.seq_source_geom_scale_factor * one));
}
for (int i = 0; i < gps.geom_angular_num_lidar_lasers(); i++) {
bs.writeUe(gps.geom_angular_theta_laser[i] + 1048576);
bs.writeUe(gps.geom_angular_z_laser[i] + 1048576);
}
可以按排序格式來排列鐳射角度,例如,角度隨著陣列索引而單調地遞增或遞減。若不按此種格式排列,則對輸入的預處理是可能的,以在譯碼之前對角度進行排序。觀察到鐳射角度彼此非常相似。在此種場景下,可以從索引i-1的角度來預測陣列索引i的角度,並且可以僅用信號通知差,亦即可以應用增量譯碼。
觀察到特定鐳射的角度與其鄰點鐳射非常相似。在此種場景下,可以從第(i-1)鐳射的角度來預測第i鐳射的角度,並且可以僅用信號通知差,亦即,可以利用se(v)譯碼來應用增量譯碼。
如下文的表15所示,類似的增量解碼亦可以被應用於鐳射校正。
表15
| geometry_parameter_set( ) { | 描述符 |
| … | … |
| geometry_planar_mode_flag | u(1) |
| if( geometry_planar_mode_flag ){ | |
| geom_planar_mode_th_idcm | ue(v) |
| geom_planar_mode_th[ 1 ] | ue(v) |
| geom_planar_mode_th[ 2 ] | ue(v) |
| } | |
| geometry_angular_mode_flag | u(1) |
| if( geometry_angular_mode_flag ){ | |
| lidar_head_position[0] | se(v) |
| lidar_head_position[1] | se(v) |
| lidar_head_position[2] | se(v) |
| number_lasers | ue(v) |
| <!> for( i = 0; i < number_lasers; i++ ) {</!> | |
| <!> laser_angle_delta[ i ]</!> | se(v) |
| <!> laser_correction_delta[ i ]</!> | se(v) |
| <!> }</!> | |
| planar_buffer_disabled | u(1) |
| implicit_qtbt_angular_max_node_min_dim_log2_to_split_z | se(v) |
| implicit_qtbt_angular_max_diff_to_split_z | se(v) |
| } | |
| neighbour_context_restriction_flag | u(1) |
| inferred_direct_coding_mode_enabled_flag | u(1) |
| … |
在G-PCC解碼器300處,可以如下分別從laser_angle_delta[i]和laser_correction_delta[i]來推導laser angle[i]和laser_correction[i]:
pred_angle = 0 ;
pred_correction = 0 ;
For(i=0;i<number_lasers;i++){
If (i>0){
pred_angle = laser_angle[i -1];
pred_correction = laser_correction[i -1];
}
laser_angle[i] = laser_angle_delta[i] + pred_angle ;
laser_correction[i] = laser_correction_delta[i] + pred_correction ;
}
在一些實例中,若對鐳射角度進行排序(單調遞增和遞減),則可以將laser_angle_delta[i](除了laser_angle_delta[0])譯碼為無正負號的整數,因為增量將全部為正或全部為負。
因此,對於laser_angle_delta [0],使用se(v)譯碼(亦即,帶正負號的整數0階Exp-Golomb譯碼,其中左位元優先),而對於其他laser_angle_delta[i](i>0),使用ue(v)譯碼。laser_offset_deltas是利用se(v)來解碼的,例如,如下文的表16所示。
表16
| geometry_parameter_set( ) { | 描述符 |
| … | … |
| geometry_planar_mode_flag | u(1) |
| if( geometry_planar_mode_flag ){ | |
| geom_planar_mode_th_idcm | ue(v) |
| geom_planar_mode_th[ 1 ] | ue(v) |
| geom_planar_mode_th[ 2 ] | ue(v) |
| } | |
| geometry_angular_mode_flag | u(1) |
| if( geometry_angular_mode_flag ){ | |
| lidar_head_position[0] | se(v) |
| lidar_head_position[1] | se(v) |
| lidar_head_position[2] | se(v) |
| number_lasers | ue(v) |
| <!>for(i=0; i <number_lasers; i++ ) {</!> | |
| <!> if (i==0) </!> | |
| <!> laser_angle_delta[ i ]</!> | se(v) |
| <!> else</!> | |
| <!> laser_angle_delta[ i ]</!> | ue(v) |
| <!> laser_correction_delta[ i ]</!> | se(v) |
| <!>}</!> | |
| planar_buffer_disabled | u(1) |
| implicit_qtbt_angular_max_node_min_dim_log2_to_split_z | se(v) |
| implicit_qtbt_angular_max_diff_to_split_z | se(v) |
| } | |
| neighbour_context_restriction_flag | u(1) |
| inferred_direct_coding_mode_enabled_flag | u(1) |
| … |
在另一實例中,可以利用具有階數k的Exp-Golomb碼來對laser_angle_delta[i]和laser_correction_delta[i]進行譯碼。k可以是自我調整的(基於增量值的大小)、固定的和編碼器可配置的,或者是固定的和預定的。在另一實例中,增量譯碼可以僅適用於鐳射角度,而不適用於鐳射校正。
圖14是圖示可以與本案內容的一或多個技術一起使用的示例測距系統1400的概念圖。在圖14的實例中,測距系統1400包括照明器1402和感測器1404。照明器1402可以發射光1406。在一些實例中,照明器1402可以將光1406作為一或多個鐳射光束進行發射。光1406可以具有一或多個波長,諸如紅外波長或可見光波長。在其他實例中,光1406不是相干的鐳射。當光1406遇到物件(諸如物件1408)時,光1406建立返回光1410。返回光1410可以包括後向散射及/或反射光。返回光1410可以藉由透鏡1411,透鏡1411引導返回光1410在感測器1404上建立物件1408的圖像1412。感測器1404基於圖像1412來產生信號1414。圖像1412可以包括點集合(例如,由圖14的圖像1412中的圓點表示)。
在一些實例中,照明器1402和感測器1404可以被安裝在旋轉結構上,使得照明器1402和感測器1404擷取環境的360度視圖。在其他實例中,測距系統1400可以包括一或多個光學部件(例如,反光鏡、准直器、衍射光柵等),其使得照明器1402和感測器1404能夠偵測特定範圍內(例如,高達360度)的一系列對象。儘管圖14的實例僅圖示單個照明器1402和感測器1404,但是測距系統1400可以包括照明器和感測器的多個集合。
在一些實例中,照明器1402產生結構光圖案。在此種實例中,測距系統1400可以包括在其上形成結構光圖案的相應圖像的多個感測器1404。測距系統1400可以使用結構光圖案的圖像之間的差異來確定到結構光圖案從其反向散射的物件1408的距離。當物件1408相對接近感測器1404(例如,0.2米到2米)時,基於結構光的測距系統可以具有高精度水平(例如,在亞毫米範圍內的精度)。此種高精度水平在臉孔辨識應用中可以是有用的,諸如解鎖行動設備(例如,行動電話、平板電腦等)和用於安全應用。
在一些實例中,測距系統1400是基於飛行時間(ToF)的系統。在其中測距系統1400是基於ToF的系統的一些實例中,照明器1402產生光脈衝。換言之,照明器1402可以調制發射光1406的幅度。在此種實例中,感測器1404偵測來自照明器1402所產生的光脈衝1406的返回光1410。隨後,測距系統1400可以基於在光1406被發射和被偵測到之間的延遲以及空氣中的已知光速來確定到光1406從其反向散射的物件1408的距離。在一些實例中,照明器1402可以調制發射光1404的相位,而不是(或者除了)調制發射光1404的幅度。在此種實例中,感測器1404可以偵測來自物件1408的返回光1410的相位,並且使用光速並且基於在照明器1402在特定相位處產生光1406與感測器1404在該特定相位處偵測到返回光1410之間的時間差來確定到物件1408上的點的距離。
在其他實例中,可以在不使用照明器1402的情況下產生點雲。例如,在一些實例中,測距系統1400的感測器1404可以包括兩個或兩個以上光學相機。在此種實例中,測距系統1400可以使用光學相機來擷取包括物件1408的環境的立體圖像。測距系統1400可以包括點雲產生器1420,其可以計算立體圖像中的位置之間的差異。隨後,測距系統1400可以使用該差異來確定到在立體圖像中所示的位置的距離。根據該等距離,點雲產生器1420可以產生點雲。
感測器1404亦可以偵測物件1408的其他屬性,諸如色彩和反射率資訊。在圖14的實例中,點雲產生器1416可以基於感測器1404所產生的信號1418來產生點雲。測距系統1400及/或點雲產生器1416可以形成資料來源104(圖1)的一部分。因此,可以根據本案內容的技術中的任何技術來編碼和/解碼由測距系統1400產生的點雲。
圖15是圖示可以在其中使用本案內容的一或多個技術的實例基於車輛的場景的概念圖。在圖15的實例中,車輛1500包括測距系統1502。測距系統1502可以以關於圖14論述的方式來實施。儘管在圖15的實例中未圖示,但是車輛1500亦可以包括資料來源(諸如資料來源104(圖1))和G-PCC編碼器(諸如G-PCC編碼器200(圖1))。在圖15的實例中,測距系統1502發射鐳射光束1504,該鐳射光束從行人1506或道路中的其他物件反射。車輛1500的資料來源可以基於由測距系統1502產生的信號來產生點雲。車輛1500的G-PCC編碼器可以對點雲進行編碼以產生位元串流1508,諸如幾何形狀位元串流203(圖2)和屬性位元串流205(圖2)。位元串流1508可以包括比由G-PCC編碼器獲得的未經編碼的點雲少得多的位元。
車輛1500的輸出介面(例如,輸出介面108(圖1))可以向一或多個其他設備發送位元串流1508。位元串流1508可以包括比由G-PCC編碼器獲得的未經編碼的點雲少得多的位元。因此,車輛1500能夠向其他設備更快地發送位元串流1508(與未經編碼的點雲資料相比)。另外,位元串流1508可以需要較少的資料儲存容量。本案內容的技術可以進一步減少位元串流1508中的位元數量。例如,基於鐳射光束和節點的交點來確定上下文索引,並且使用由上下文索引指示的上下文來對垂直平面位置或垂直點位置偏移進行算術譯碼,此可以進一步減少位元串流1508中的位元數量。
在圖15的實例中,車輛1500可以向另一車輛1510發送位元串流1508。車輛1510可以包括G-PCC解碼器,諸如G-PCC解碼器300(圖1)。車輛1510的G-PCC解碼器可以解碼位元串流1508以重構點雲。車輛1510可以將經重構的點雲用於各種目的。例如,車輛1510可以基於經重構的點雲來確定行人1506在車輛1500前面的道路中並且因此開始減速(例如,甚至在車輛1510的駕駛員意識到行人1506在道路中之前)。因此,在一些實例中,車輛1510可以基於經重構的點雲來執行自主導航操作。
另外或替代地,車輛1500可以向伺服器系統1512發送位元串流1508。伺服器系統1512可以將位元串流1508用於各種目的。例如,伺服器系統1512可以儲存位元串流1508以用於點雲的後續重構。在該實例中,伺服器系統1512可以將點雲連同其他資料(例如,由車輛1500產生的車輛遙測資料)一起使用,以訓練自主駕駛系統。在另一實例中,伺服器系統1512可以儲存位元串流1508以供後續重構以用於司法鑒定事故調查(例如,若車輛1500與行人1506碰撞)。
圖16是圖示可以在其中使用本案內容的一或多個技術的示例擴展現實系統的概念圖。擴展現實(XR)是用於涵蓋包括以下各項的一系列技術的術語:增強現實(AR)、混合現實(MR)和虛擬實境(VR)。在圖16的實例中,使用者1600位於第一位置1602上。使用者1600佩戴XR耳機1604。作為XR耳機1604的替代方式,使用者1600可以使用行動設備(例如,行動電話、平板電腦等)。XR耳機1604包括深度偵測感測器(諸如測距系統),其偵測在位置1602處在物件1606上的點的位置。XR耳機1604的資料來源可以使用由深度偵測感測器產生的信號來產生在位置1602處的物件1606的點雲表示。XR耳機1604可以包括G-PCC編碼器(例如,圖1的G-PCC編碼器200),其被配置為對點雲進行編碼以產生位元串流1608。
XR耳機1604可以向在第二位置1614處的使用者1612佩戴的XR耳機1610發送位元串流1608(例如,藉由諸如網際網路之類的網路)。XR耳機1610可以解碼位元串流1608以重構點雲。XR耳機1610可以使用點雲來產生表示在位置1602處的物件1606的XR視覺化(例如,AR、MR、VR視覺化)。因此,在一些實例中,諸如當XR耳機1610產生VR視覺化時,使用者1612可以具有位置1602的3D沉浸式體驗。在一些實例中,XR 耳機1610可以基於經重構的點雲來確定虛擬物件的位置。例如,XR耳機1610可以基於經重構的點雲來確定環境(例如,位置1602)包括平坦表面,並且隨後確定虛擬物件(例如,卡通字元)將被定位在平坦表面上。XR耳機1610可以產生其中虛擬物件位於所確定的位置處的XR視覺化。例如,XR耳機1610可以顯示位於平坦表面上的卡通角色。
本案內容的技術可以進一步減少位元串流1608中的位元數量。例如,基於鐳射光束和節點的交點來確定上下文索引,並且使用由上下文索引指示的上下文來對垂直平面位置或垂直點位置偏移進行算術譯碼,此可以進一步減少位元串流1608中的位元數量。
圖17是圖示可以在其中使用本案內容的一或多個技術的示例行動設備系統的概念圖。在圖17的實例中,行動設備1700(諸如行動電話或平板電腦)包括測距系統(諸如LIDAR系統),其偵測在行動設備1700的環境中的物件1702上的點的位置。行動設備1700的資料來源可以使用由深度偵測感測器產生的信號來產生物件1702的點雲表示。行動設備1700可以包括G-PCC編碼器(例如,圖1的G-PCC編碼器200),其被配置為對點雲進行編碼以產生位元串流1704。在圖17的實例中,行動設備1700可以向遠端設備1706(諸如伺服器系統或其他行動設備)發送位元串流。遠端設備1706可以解碼位元串流1704以重構點雲。遠端設備1706可以將點雲用於各種目的。例如,遠端設備1706可以使用點雲來產生行動設備1700的環境的地圖。例如,遠端設備1706可以基於經重構的點雲來產生建築物的內部的地圖。在另一實例中,遠端設備1706可以基於點雲來產生影像(例如,電腦圖形)。例如,遠端設備1706可以使用點雲的點作為多邊形的頂點,並且使用點的色彩屬性作為用於將多邊形著色的基礎。在一些實例中,遠端設備1706可以將經重構的點雲用於臉孔辨識或其他安全應用。
本案內容的技術可以進一步減少位元串流1704中的位元數量。例如,基於鐳射光束和節點的交點來確定上下文索引,並且使用由上下文索引指示的上下文來對垂直平面位置或垂直點位置偏移進行算術譯碼,此可以進一步減少位元串流1704中的位元數量。
可以單獨地或以任何組合來使用本案內容的各個態樣中的實例。
下文是可以根據本案內容的一或多個技術的態樣的非限制性列表。
態樣1A:一種處理點雲的方法,包括:對表示該點雲中的點的三維位置的八叉樹的節點中的平面模式的垂直平面位置進行譯碼,其中對該平面模式的該垂直平面位置進行譯碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束的位置;基於該鐳射光束和該節點的交點來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術譯碼。
態樣2A:根據態樣1A所述的方法,其中確定該上下文索引包括:基於該鐳射光束位於標記點之上還是之下來確定該上下文索引,其中該標記點是該節點的中心。
態樣3A:根據態樣1A所述的方法,其中確定該上下文索引包括:基於該鐳射光束位於第一距離閾值之上、第二距離閾值之下還是在該第一距離閾值與該第二距離閾值之間,來確定該上下文索引。
態樣4A:根據態樣1A所述的方法,其中確定該上下文索引包括:基於該鐳射光束位於第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是該第三距離閾值之下,來確定該上下文索引。
態樣5A:一種處理點雲的方法包括:對表示該點雲中的點的三維位置的八叉樹的節點內的垂直點位置偏移進行譯碼,其中對該垂直點位置偏移進行譯碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束的位置;基於該鐳射光束和該節點的交點來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該垂直點位置偏移的倉進行算術譯碼。
態樣6A:根據態樣5A所述的方法,其中確定該上下文索引包括:基於該鐳射光束位於標記點之上還是之下來確定該上下文索引,其中該標記點是該節點的中心。
態樣7A:根據態樣5A所述的方法,其中確定該上下文索引包括:基於該鐳射光束位於第一距離閾值之上、第二距離閾值之下還是在該第一距離閾值與該第二距離閾值之間,來確定該上下文索引。
態樣8A:根據態樣5A所述的方法,其中確定該上下文索引包括:基於該鐳射光束位於第一距離閾值之上、在該第一距離閾值和第二距離閾值之間、在該第二距離閾值與第三距離閾值之間、還是該第三距離閾值之下,來確定該上下文索引。
態樣9A:一種處理點雲的方法包括:對具有第一值的語法元素進行譯碼,其中該第一值加上第二值指示鐳射的數量,其中該第二值是最小鐳射數量。
態樣10A:根據態樣9A所述的方法,其中該語法元素是第一語法元素,該方法亦包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中該鐳射候選集合具該數量的鐳射,並且所確定的鐳射索引指示與表示該點雲中的點的三維位置的八叉樹的節點相交的鐳射光束的位置;基於該鐳射光束和該節點的交點來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對第二語法元素的倉進行算術譯碼。
態樣11A:一種處理點雲的方法,包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與表示該點雲中的點的三維位置中的位置的八叉樹的節點相交的鐳射光束的位置;使用角度模式,基於該鐳射光束和該節點的交點來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對第二語法元素的倉進行算術譯碼。
態樣12A:一種處理點雲的方法,包括:針對鐳射候選集合之每一者鐳射,用信號通知對應的鐳射角度和對應的鐳射偏移。
態樣13A:根據態樣12A所述的方法,亦包括根據態樣1A-11A中任一項所述的方法。
態樣14A:根據態樣1A-13A中任一項該的方法,亦包括:產生該點雲。
態樣15A:一種用於處理點雲的設備,該設備包括用於用於執行根據態樣1A-14A中任一項該的方法的一或多個構件。
態樣16A:根據態樣15A所述的設備,其中該一或多個構件包括在電路中實施的一或多個處理器。
態樣17A:根據態樣15A或16A中任一項所述的設備,亦包括:記憶體,其用於儲存表示該點雲的資料。
態樣18A:根據態樣15A-17A中任一項所述的設備,其中該設備包括解碼器。
態樣19A:根據態樣15A-18A中任一項所述的設備,其中該設備包括編碼器。
態樣20A:根據態樣15A-19A中任一項所述的設備,亦包括:用於產生該點雲的設備。
態樣21A:根據態樣15A-20A中任一項所述的設備,亦包括:用於基於該點雲來呈現影像的顯示器。
態樣22A:一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時,使得一或多個處理器執行根據態樣1A-14A中任一項所述的方法。
態樣1B:一種用於對點雲資料進行解碼的設備,包括:記憶體,其用於儲存表示該點雲資料的資料;及一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為:獲得包括經算術編碼的語法元素的位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及對該節點中的該平面模式的該垂直平面位置進行解碼,其中作為對該平面模式的該垂直平面位置進行解碼的一部分,該一或多個處理器被配置為使得該一或多個處理器進行以下操作:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼。
態樣2B:根據態樣1B所述的設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為:藉由從該鐳射光束的角度的正切中減去穿過該節點的中心的線的角度的正切來確定鐳射差角度;藉由從該鐳射差角度中減去移位值來確定頂部角度差;及藉由將該移位值與該鐳射差角度相加來確定底部角度差。
態樣3B:根據態樣2B所述的設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為:執行確定該鐳射差角度是否大於或等於0的第一比較;基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1;執行確定該頂部角度差是否大於或等於0的第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上;執行確定該底部角度差是否小於0的第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
態樣4B:根據態樣1B至3B中任一項所述的設備,其中該一或多個處理器亦被配置為重構該點雲,並且其中作為重構該點雲的一部分,該一或多個處理器被配置為基於該垂直平面位置來確定該點雲的一或多個點的位置。
態樣5B:根據態樣1B至4B中任一項所述的設備,其中該一或多個處理器亦被配置為:基於經重構的點雲來產生建築物的內部的地圖。
態樣6B:根據態樣1B至5B中任一項所述的設備,其中該一或多個處理器亦被配置為:基於經重構的點雲來執行自主導航操作。
態樣7B:根據態樣1B至6B中任一項所述的設備,其中該一或多個處理器亦被配置為:基於經重構的點雲來產生電腦圖形。
態樣8B:根據態樣7B所述的設備,其中該一或多個處理器被配置為:基於經重構的點雲來確定虛擬物件的位置;及產生該虛擬物件在其中處於所確定的位置的擴展現實(XR)視覺化。
態樣9B:根據態樣1B至8B中任一項所述的設備,其中該設備是行動電話或平板電腦中的一者。
態樣10B:根據態樣1B至9B中任一項所述的設備,其中該設備是車輛。
態樣11B:根據態樣1B至10B中任一項所述的設備,其中該設備是擴展現實設備。
態樣12B:根據態樣1B至11B中任一項所述的設備,亦包括:用於基於該點雲來呈現影像的顯示器。
態樣13B:一種用於對點雲資料進行編碼的設備,包括:記憶體,其用於儲存該點雲資料;及一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為對由該點雲資料表示的點雲進行編碼,其中作為對該點雲進行編碼的一部分,該一或多個處理器被配置為:對表示該點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼,其中作為對該平面模式的該垂直平面位置進行編碼的一部分,該一或多個處理器被配置為使得該一或多個處理器進行以下操作:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼。
態樣14B:根據態樣13B所述的設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為:藉由從該鐳射光束的角度的正切中減去穿過該節點的中心的線的角度的正切來確定鐳射差角度;藉由從該鐳射差角度中減去移位值來確定頂部角度差;及藉由將該移位值與該鐳射差角度相加來確定底部角度差。
態樣15B:根據態樣14B所述的設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為:執行確定該鐳射差角度是否大於或等於0的第一比較;基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1;執行確定該頂部角度差是否大於或等於0的第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上;執行確定該底部角度差是否小於0的第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
態樣16B:根據態樣13B至15B中任一項所述的設備,其中該一或多個處理器亦被配置為產生該點雲。
態樣17B:根據態樣16B所述的設備,其中作為產生該點雲的一部分,該一或多個處理器被配置為:基於來自LIDAR裝置的信號來產生該點雲。
態樣18B:根據態樣13B至17B中任一項所述的設備,其中該設備是行動電話或平板電腦中的一者。
態樣19B:根據態樣13B至18B中任一項所述的設備,其中該設備是車輛。
態樣20B:根據態樣13B至19B中任一項所述的設備,其中該設備是擴展現實設備。
態樣21B:根據態樣13B至20B中任一項所述的設備,其中該設備包括:被配置為發送該點雲資料的介面。
態樣22B:一種對點雲資料進行解碼的方法,包括:獲得包括經算術編碼的語法元素的位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及對該節點中的該平面模式的該垂直平面位置進行解碼,其中對該平面模式的該垂直平面位置進行解碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼。
態樣23B:根據態樣22B所述的方法,其中確定該上下文索引包括:藉由從該鐳射光束的角度的正切中減去穿過該節點的中心的線的角度的正切來確定鐳射差角度;藉由從該鐳射差角度中減去移位值來確定頂部角度差;及藉由將該移位值與該鐳射差角度相加來確定底部角度差。
態樣24B:根據態樣23B所述的方法,其中確定該上下文索引包括:執行確定該鐳射差角度是否大於或等於0的第一比較;基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1;執行確定該頂部角度差是否大於或等於0的第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上;執行確定該底部角度差是否小於0的第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
態樣25B:一種對點雲資料進行編碼的方法,包括:對表示由該點雲資料表示的點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼,其中對該平面模式的該垂直平面位置進行編碼包括:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼。
態樣26B:根據態樣25B所述的方法,其中確定該上下文索引包括:藉由從該鐳射光束的角度的正切中減去穿過該節點的中心的線的角度的正切來確定鐳射差角度;藉由從該鐳射差角度中減去移位值來確定頂部角度差;及藉由將該移位值與該鐳射差角度相加來確定底部角度差。
態樣27B:根據態樣26B所述的方法,其中確定該上下文索引包括:執行確定該鐳射差角度是否大於或等於0的第一比較;基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1;執行確定該頂部角度差是否大於或等於0的第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上;執行確定該底部角度差是否小於0的第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
態樣28B:根據態樣25B至27B中任一項所述的方法,亦包括:產生該點雲。
態樣29B:一種用於對點雲資料進行解碼的設備,包括:用於獲得包括經算術編碼的語法元素的位元串流的構件,該經算術編碼的語法元素指示表示由該點雲資料表示的點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及用於對該節點中的該平面模式的該垂直平面位置進行解碼的構件,其中該用於對該平面模式的該垂直平面位置進行解碼的構件包括:用於確定鐳射候選集合中的鐳射候選的鐳射索引的構件,其中所確定的鐳射索引指示與該節點相交的鐳射光束;用於基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引的構件;及用於使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼的構件。
態樣30B:一種用於對點雲資料進行編碼的設備,包括:用於對由該點雲資料表示的點雲進行編碼的構件,其中該用於對該點雲進行編碼的構件包括:用於對表示該點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼的構件,其中該用於對該平面模式的該垂直平面位置進行編碼的構件包括:用於確定鐳射候選集合中的鐳射候選的鐳射索引的構件,其中所確定的鐳射索引指示與該節點相交的鐳射光束;用於基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引的構件;及用於使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼的構件。
態樣31B:一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作:獲得包括經算術編碼的語法元素的位元串流,該經算術編碼的語法元素指示表示點雲中的點的三維位置的樹的節點的平面模式的垂直平面位置;及對該節點中的該平面模式的該垂直平面位置進行解碼,其中使得該一或多個處理器對該平面模式的該垂直平面位置進行解碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術解碼。
態樣32B:一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作:對點雲進行編碼,其中使得該一或多個處理器對該點雲進行編碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:對表示該點雲中的點的三維位置的樹的節點中的平面模式的垂直平面位置進行編碼,其中使得該一或多個處理器對該平面模式的該垂直平面位置進行編碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:確定鐳射候選集合中的鐳射候選的鐳射索引,其中所確定的鐳射索引指示與該節點相交的鐳射光束;基於該鐳射光束是在第一距離閾值之上、在該第一距離閾值與第二距離閾值之間、在該第二距離閾值與第三距離閾值之間還是在該第三距離閾值之下,來確定上下文索引;及使用由所確定的上下文索引指示的上下文來對該平面模式的該垂直平面位置進行算術編碼。
要認識到的是,根據實例,本文描述的技術中的任何技術的某些動作或事件可以以不同的循序執行,可以被添加、合併或完全省略(例如,並非所有描述的動作或事件對於該技術的實踐是必要的)。此外,在某些實例中,動作或事件可以例如經由多執行緒處理、中斷處理或多個處理器併發地而不是順序地執行。
在一或多個實例中,所描述的功能可以用硬體、軟體、韌體或其任何組合來實施。若用軟體來實施,則該功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或者經由其進行發送以及由基於硬體的處理單元執行。電腦可讀取媒體可以包括電腦可讀取儲存媒體,其對應於諸如資料儲存媒體的有形媒體或者通訊媒體,該通訊媒體包括例如根據通訊協定來促進電腦程式從一個地方傳送到另一個地方的任何媒體。以此種方式,電腦可讀取媒體通常可以對應於(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:坐標變換單元
203:幾何形狀位元串流
204:色彩變換單元
205:屬性位元串流
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:節點
402A:子節點
402B:子節點
402C:子節點
402D:子節點
402E:子節點
402F:子節點
402G:子節點
402H:子節點
500A:鐳射光束位置
500B:鐳射光束位置
502:標記點
504:節點
600:節點
602A:細虛線
602B:細虛線
604A:實線
604B:實線
606:中心點
700A:線
700B:線
700C:線
702:標記點
704:節點
706:線
800:步驟
802:步驟
804:步驟
806:步驟
850:步驟
852:步驟
854:步驟
856:步驟
900:區間中點
1000:步驟
1002:鐳射光束
1004A:細虛線
1004B:細虛線
1006:中點
1102:鐳射光束位置
1104A:細虛線
1104B:細虛線
1104C:細虛線
1200:步驟
1202:步驟
1204:步驟
1206:步驟
1248:步驟
1250:步驟
1252:步驟
1254:步驟
1256:步驟
1300:直角三角形
1400:測距系統
1402:照明器
1404:感測器
1406:光
1408:物件
1410:返回光
1411:透鏡
1412:圖像
1414:信號
1416:點雲產生器
1418:信號
1420:點雲產生器
1500:車輛
1502:測距系統
1504:鐳射光束
1506:行人
1508:位元串流
1510:車輛
1512:伺服器系統
1600:使用者
1602:第一位置
1604:XR耳機
1606:物件
1608:位元串流
1610:XR耳機
1612:使用者
1614:第二位置
1700:行動設備
1702:物件
1704:位元串流
1706:遠端設備
圖1是圖示可以執行本案內容的技術的示例編碼和解碼系統的方塊圖。
圖2是圖示示例幾何形狀點雲壓縮(G-PCC)編碼器的方塊圖。
圖3是圖示示例G-PCC解碼器的方塊圖。
圖4是圖示在垂直方向上的示例平面佔用的概念圖。
圖5是根據本案內容的一或多個技術的其中基於在節點的標記點之上或之下的鐳射光束位置來確定上下文索引的實例的概念圖。
圖6是圖示示例三上下文索引確定的概念圖。
圖7是圖示用於基於鐳射光束位置來對平面模式的垂直平面位置進行譯碼的示例上下文索引確定的概念圖,其中區間藉由細虛線來分隔。
圖8A是圖示根據本案內容的一或多個技術的用於對垂直平面位置進行編碼的示例操作的流程圖。
圖8B是圖示根據本案內容的一或多個技術的用於對垂直平面位置進行解碼的示例操作的流程圖。
圖9是用於基於在區間中點之上或之下的鐳射光束位置來確定上下文索引的實例的概念圖。
圖10是圖示與第j位元相對應的被劃分為三個子區間的示例推斷性直接譯碼模式(IDCM)垂直點偏移區間的概念圖。
圖11是圖示用於基於區間內的鐳射光束位置來確定用於對IDCM的垂直點位置偏移進行譯碼的上下文索引的示例技術的概念圖。
圖12A是圖示根據本案內容的一或多個技術的用於對IDCM垂直點偏移進行編碼的示例操作的流程圖。
圖12B是圖示根據本案內容的一或多個技術的用於對IDCM垂直點偏移進行解碼的示例操作的流程圖。
圖13是指示直角三角形的角和邊的概念圖。
圖14是圖示可以與本案內容的一或多個技術一起使用的示例測距系統的概念圖。
圖15是圖示可以在其中使用本案內容的一或多種技術的示例基於車輛的場景的概念圖。
圖16是圖示可以在其中使用本案內容的一或多種技術的示例擴展現實系統的概念圖。
圖17是圖示可以在其中使用本案內容的一或多種技術的示例行動設備系統的概念圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
850:步驟
852:步驟
854:步驟
856:步驟
Claims (32)
- 一種用於對點雲資料進行解碼的設備,該設備包括: 一記憶體,其用於儲存表示該點雲資料的資料;及 一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為: 獲得包括一經算術編碼的語法元素的一位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的一點雲中的點的三維位置的一樹的一節點的一平面模式的一垂直平面位置;及 對該節點中的該平面模式的該垂直平面位置進行解碼,其中作為對該平面模式的該垂直平面位置進行解碼的一部分,該一或多個處理器被配置為使得該一或多個處理器進行以下操作: 確定一鐳射候選集合中的一鐳射候選的一鐳射索引,其中該所確定的鐳射索引指示與該節點相交的一鐳射光束; 基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引;及 使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術解碼。
- 如請求項1所述之設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為: 藉由從該鐳射光束的一角度的一正切中減去穿過該節點的一中心的一線的一角度的一正切來確定一鐳射差角度; 藉由從該鐳射差角度中減去一移位值來確定一頂部角度差;及 藉由將該移位值與該鐳射差角度相加來確定一底部角度差。
- 如請求項2所述之設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為: 執行確定該鐳射差角度是否大於或等於0的一第一比較; 基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1; 執行確定該頂部角度差是否大於或等於0的一第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上; 執行確定該底部角度差是否小於0的一第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及 基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
- 如請求項1所述之設備, 其中該一或多個處理器亦被配置為重構該點雲,並且 其中作為重構該點雲的一部分,該一或多個處理器被配置為:基於該垂直平面位置來確定該點雲的一或多個點的位置。
- 如請求項1所述之設備,其中該一或多個處理器亦被配置為:基於該經重構的點雲來產生一建築物的一內部的一地圖。
- 如請求項1所述之設備,其中該一或多個處理器亦被配置為:基於經重構的點雲來執行自主導航操作。
- 如請求項1所述之設備,其中該一或多個處理器亦被配置為:基於該經重構的點雲來產生電腦圖形。
- 如請求項7所述之設備,其中該一或多個處理器被配置為: 基於該經重構的點雲來確定一虛擬物件的一位置;及 產生該虛擬物件在其中處於該所確定的位置的一擴展現實(XR)視覺化。
- 如請求項1所述之設備,其中該設備是一行動電話或平板電腦中的一者。
- 如請求項1所述之設備,其中該設備是一車輛。
- 如請求項1所述之設備,其中該設備是一擴展現實設備。
- 如請求項1所述之設備,亦包括:一顯示器,用於基於該點雲來呈現影像。
- 一種用於對點雲資料進行編碼的設備,該設備包括: 一記憶體,其用於儲存該點雲資料;及 一或多個處理器,耦合到該記憶體並且在電路中實施,該一或多個處理器被配置為對由該點雲資料表示的一點雲進行編碼,其中作為對該點雲進行編碼的一部分,該一或多個處理器被配置為: 對表示該點雲中的點的三維位置的一樹的一節點中的一平面模式的一垂直平面位置進行編碼,其中作為對該平面模式的該垂直平面位置進行編碼的一部分,該一或多個處理器被配置為使得該一或多個處理器進行以下操作: 確定一鐳射候選集合中的一鐳射候選的一鐳射索引,其中該所確定的鐳射索引指示與該節點相交的一鐳射光束; 基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引;及 使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術編碼。
- 如請求項13所述之設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為: 藉由從該鐳射光束的一角度的一正切中減去穿過該節點的一中心的一線的一角度的一正切來確定一鐳射差角度; 藉由從該鐳射差角度中減去一移位值來確定一頂部角度差;及 藉由將該移位值與該鐳射差角度相加來確定一底部角度差。
- 如請求項14所述之設備,其中作為確定該上下文索引的一部分,該一或多個處理器被配置為: 執行確定該鐳射差角度是否大於或等於0的一第一比較; 基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1; 執行確定該頂部角度差是否大於或等於0的一第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上; 執行確定該底部角度差是否小於0的一第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及 基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
- 如請求項13所述之設備,其中該一或多個處理器亦被配置為產生該點雲。
- 如請求項16所述之設備,其中作為產生該點雲的一部分,該一或多個處理器被配置為:基於來自一LIDAR裝置的信號來產生該點雲。
- 如請求項13所述之設備,其中該設備是一行動電話或一平板電腦中的一者。
- 如請求項13所述之設備,其中該設備是一車輛。
- 如請求項13所述之設備,其中該設備是一擴展現實設備。
- 如請求項13所述之設備,其中該設備包括:被配置為發送該點雲資料的介面。
- 一種對點雲資料進行解碼的方法,該方法包括: 獲得包括一經算術編碼的語法元素的一位元串流,該經算術編碼的語法元素指示表示由該點雲資料表示的一點雲中的點的三維位置的一樹的一節點的一平面模式的一垂直平面位置;及 對該節點中的該平面模式的該垂直平面位置進行解碼,其中對該平面模式的該垂直平面位置進行解碼包括: 確定一鐳射候選集合中的一鐳射候選的一鐳射索引,其中該所確定的鐳射索引指示與該節點相交的一鐳射光束; 基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引;及 使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術解碼。
- 如請求項22所述之方法,其中確定該上下文索引包括: 藉由從該鐳射光束的一角度的一正切中減去穿過該節點的一中心的一線的一角度的一正切來確定一鐳射差角度; 藉由從該鐳射差角度中減去一移位值來確定一頂部角度差;及 藉由將該移位值與該鐳射差角度相加來確定一底部角度差。
- 如請求項23所述之方法,其中確定該上下文索引包括: 執行確定該鐳射差角度是否大於或等於0的一第一比較; 基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1; 執行確定該頂部角度差是否大於或等於0的一第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上; 執行確定該底部角度差是否小於0的一第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及 基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
- 一種對點雲資料進行編碼的方法,該方法包括: 對表示由該點雲資料表示的一點雲中的點的三維位置的一樹的一節點中的一平面模式的一垂直平面位置進行編碼,其中對該平面模式的該垂直平面位置進行編碼包括: 確定一鐳射候選集合中的一鐳射候選的一鐳射索引,其中所確定的鐳射索引指示與該節點相交的一鐳射光束; 基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引;及 使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術編碼。
- 如請求項25所述之方法,其中確定該上下文索引包括: 藉由從該鐳射光束的一角度的一正切中減去穿過該節點的一中心的一線的一角度的一正切來確定一鐳射差角度; 藉由從該鐳射差角度中減去一移位值來確定一頂部角度差;及 藉由將該移位值與該鐳射差角度相加來確定一底部角度差。
- 如請求項26所述之方法,其中確定該上下文索引包括: 執行確定該鐳射差角度是否大於或等於0的一第一比較; 基於該鐳射差角度是否大於或等於0,來將該上下文索引設置為0或1; 執行確定該頂部角度差是否大於或等於0的一第二比較,其中當該頂部角度差大於或等於0時,該鐳射光束在該第一距離閾值之上; 執行確定該底部角度差是否小於0的一第三比較,其中當該底部角度差小於0時,該鐳射光束在該第三距離閾值之下;及 基於該頂部角度差大於或等於0或者基於該底部角度差小於0,來將該上下文索引遞增2。
- 如請求項25所述之方法,亦包括:產生該點雲。
- 一種用於對點雲資料進行解碼的設備,該設備包括: 用於獲得包括一經算術編碼的語法元素的一位元串流的構件,該經算術編碼的語法元素指示表示由該點雲資料表示的一點雲中的點的三維位置的一樹的一節點的一平面模式的一垂直平面位置;及 用於對該節點中的該平面模式的該垂直平面位置進行解碼的構件,其中該用於對該平面模式的該垂直平面位置進行解碼的構件包括: 用於確定一鐳射候選集合中的一鐳射候選的一鐳射索引的構件,其中該所確定的鐳射索引指示與該節點相交的一鐳射光束; 用於基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引的構件;及 用於使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術解碼的構件。
- 一種用於對點雲資料進行編碼的設備,該設備包括: 用於對由該點雲資料表示的一點雲進行編碼的構件,其中該用於對該點雲進行編碼的構件包括:用於對表示該點雲中的點的三維位置的一樹的一節點中的一平面模式的一垂直平面位置進行編碼的構件,其中該用於對該平面模式的該垂直平面位置進行編碼的構件包括: 用於確定一鐳射候選集合中的一鐳射候選的一鐳射索引的構件,其中該所確定的鐳射索引指示與該節點相交的一鐳射光束; 用於基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引的構件;及 用於使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術編碼的構件。
- 一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作: 獲得包括一經算術編碼的語法元素的一位元串流,該經算術編碼的語法元素指示表示一點雲中的點的三維位置的一樹的一節點的一平面模式的一垂直平面位置;及 對該節點中的該平面模式的該垂直平面位置進行解碼,其中使得該一或多個處理器對該平面模式的該垂直平面位置進行解碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令: 確定一鐳射候選集合中的一鐳射候選的一鐳射索引,其中該所確定的鐳射索引指示與該節點相交的一鐳射光束; 基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引;及 使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術解碼。
- 一種具有儲存在其上的指令的電腦可讀取儲存媒體,該等指令在被執行時使得一或多個處理器進行以下操作: 對一點雲進行編碼,其中使得該一或多個處理器對該點雲進行編碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令:對表示該點雲中的點的三維位置的一樹的一節點中的一平面模式的一垂直平面位置進行編碼,其中使得該一或多個處理器對該平面模式的該垂直平面位置進行編碼的該等指令包括在被執行時使得該一或多個處理器進行以下操作的指令: 確定一鐳射候選集合中的一鐳射候選的一鐳射索引,其中該所確定的鐳射索引指示與該節點相交的一鐳射光束; 基於該鐳射光束是在一第一距離閾值之上、在該第一距離閾值與一第二距離閾值之間、在該第二距離閾值與一第三距離閾值之間還是在該第三距離閾值之下,來確定一上下文索引;及 使用由該所確定的上下文索引指示的一上下文來對該平面模式的該垂直平面位置進行算術編碼。
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202063007282P | 2020-04-08 | 2020-04-08 | |
| US63/007,282 | 2020-04-08 | ||
| US202063009940P | 2020-04-14 | 2020-04-14 | |
| US63/009,940 | 2020-04-14 | ||
| US17/224,608 US11842520B2 (en) | 2020-04-08 | 2021-04-07 | Angular mode simplification for geometry-based point cloud compression |
| US17/224,608 | 2021-04-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202143726A true TW202143726A (zh) | 2021-11-16 |
Family
ID=75625690
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110112736A TW202143726A (zh) | 2020-04-08 | 2021-04-08 | 用於基於幾何形狀的點雲壓縮的角度模式簡化 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US11842520B2 (zh) |
| EP (1) | EP4133453A1 (zh) |
| KR (1) | KR20220166792A (zh) |
| CN (1) | CN115315724A (zh) |
| BR (1) | BR112022019538A2 (zh) |
| TW (1) | TW202143726A (zh) |
| WO (1) | WO2021207495A1 (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI786002B (zh) * | 2022-03-10 | 2022-12-01 | 國立臺中科技大學 | 二維影像生成點雲與零件切割之整合模型的建立方法 |
| TWI881505B (zh) * | 2023-10-25 | 2025-04-21 | 財團法人工業技術研究院 | 三維成像系統及三維成像方法 |
| US12548254B2 (en) | 2023-10-25 | 2026-02-10 | Industrial Technology Research Institute | Three-dimensional imaging system and three-dimensional imaging method |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3800886B1 (en) * | 2019-10-01 | 2025-03-12 | BlackBerry Limited | Angular mode for tree-based point cloud coding |
| EP3800892B1 (en) | 2019-10-01 | 2025-03-05 | BlackBerry Limited | Angular mode syntax for tree-based point cloud coding |
| CN114616592B (zh) | 2019-10-31 | 2025-08-08 | 黑莓有限公司 | 用于云压缩的方位角先验和树表示的方法和系统 |
| EP4052474A1 (en) | 2019-10-31 | 2022-09-07 | BlackBerry Limited | Angular priors for improved prediction in tree-based point cloud coding |
| KR102894579B1 (ko) | 2019-10-31 | 2025-12-02 | 블랙베리 리미티드 | 포인트 클라우드의 트리 표현 코딩을 위한 각도 사전 및 직접 코딩 모드 |
| US12373714B2 (en) | 2020-04-08 | 2025-07-29 | Qualcomm Incorporated | Coding of laser angles for angular and azimuthal modes in geometry-based point cloud compression |
| US11580672B2 (en) | 2020-04-08 | 2023-02-14 | Qualcomm Incorporated | Angular mode simplification for geometry-based point cloud compression |
| WO2022005159A1 (ko) * | 2020-06-29 | 2022-01-06 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법 |
| CN115988221B (zh) * | 2022-12-09 | 2025-09-05 | 北京大学深圳研究生院 | 预测编码方法、预测点选择方法及装置 |
| WO2024145910A1 (zh) * | 2023-01-06 | 2024-07-11 | Oppo广东移动通信有限公司 | 编解码方法、码流、编码器、解码器以及存储介质 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190103177A1 (en) * | 2017-01-10 | 2019-04-04 | F. Maury Matthews | Medical personal data card and system |
| US10902160B2 (en) * | 2017-02-22 | 2021-01-26 | Middle Chart, LLC | Cold storage environmental control and product tracking |
| US11625510B2 (en) * | 2017-02-22 | 2023-04-11 | Middle Chart, LLC | Method and apparatus for presentation of digital content |
| EP3468182A1 (en) * | 2017-10-06 | 2019-04-10 | InterDigital VC Holdings, Inc. | A method and apparatus for encoding a point cloud representing three-dimensional objects |
| US10499054B2 (en) | 2017-10-12 | 2019-12-03 | Mitsubishi Electric Research Laboratories, Inc. | System and method for inter-frame predictive compression for point clouds |
| WO2019075428A1 (en) | 2017-10-12 | 2019-04-18 | Shouty, LLC | SYSTEMS AND METHODS FOR DIRECT CONTINUOUS DIFFUSION OF CLOUD STORAGE |
| US10796457B2 (en) | 2018-06-26 | 2020-10-06 | Intel Corporation | Image-based compression of LIDAR sensor data with point re-ordering |
| US11128872B2 (en) | 2018-07-16 | 2021-09-21 | Qualcomm Incorporated | Position dependent intra prediction combination with wide angle intra prediction |
| US12205332B2 (en) | 2019-03-15 | 2025-01-21 | Lg Electronics Inc. | Device and method for processing point cloud data |
| EP3800886B1 (en) | 2019-10-01 | 2025-03-12 | BlackBerry Limited | Angular mode for tree-based point cloud coding |
| EP3800892B1 (en) | 2019-10-01 | 2025-03-05 | BlackBerry Limited | Angular mode syntax for tree-based point cloud coding |
| EP4052474A1 (en) * | 2019-10-31 | 2022-09-07 | BlackBerry Limited | Angular priors for improved prediction in tree-based point cloud coding |
| KR102894579B1 (ko) * | 2019-10-31 | 2025-12-02 | 블랙베리 리미티드 | 포인트 클라우드의 트리 표현 코딩을 위한 각도 사전 및 직접 코딩 모드 |
| EP4133732A1 (en) * | 2020-04-07 | 2023-02-15 | Apple Inc. | Improved predictive coding for point cloud compression |
| US11562509B2 (en) | 2020-04-08 | 2023-01-24 | Qualcomm Incorporated | Secondary component attribute coding for geometry-based point cloud compression (G-PCC) |
| US12373714B2 (en) | 2020-04-08 | 2025-07-29 | Qualcomm Incorporated | Coding of laser angles for angular and azimuthal modes in geometry-based point cloud compression |
-
2021
- 2021-04-07 US US17/224,608 patent/US11842520B2/en active Active
- 2021-04-08 WO PCT/US2021/026384 patent/WO2021207495A1/en not_active Ceased
- 2021-04-08 BR BR112022019538A patent/BR112022019538A2/pt unknown
- 2021-04-08 EP EP21720661.4A patent/EP4133453A1/en active Pending
- 2021-04-08 KR KR1020227033098A patent/KR20220166792A/ko active Pending
- 2021-04-08 TW TW110112736A patent/TW202143726A/zh unknown
- 2021-04-08 CN CN202180023482.0A patent/CN115315724A/zh active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI786002B (zh) * | 2022-03-10 | 2022-12-01 | 國立臺中科技大學 | 二維影像生成點雲與零件切割之整合模型的建立方法 |
| TWI881505B (zh) * | 2023-10-25 | 2025-04-21 | 財團法人工業技術研究院 | 三維成像系統及三維成像方法 |
| US12548254B2 (en) | 2023-10-25 | 2026-02-10 | Industrial Technology Research Institute | Three-dimensional imaging system and three-dimensional imaging method |
Also Published As
| Publication number | Publication date |
|---|---|
| BR112022019538A2 (pt) | 2022-11-16 |
| KR20220166792A (ko) | 2022-12-19 |
| WO2021207495A1 (en) | 2021-10-14 |
| EP4133453A1 (en) | 2023-02-15 |
| US11842520B2 (en) | 2023-12-12 |
| US20210327095A1 (en) | 2021-10-21 |
| CN115315724A (zh) | 2022-11-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11580672B2 (en) | Angular mode simplification for geometry-based point cloud compression | |
| CN116325749B (zh) | G-pcc中的预测几何编解码 | |
| TW202143726A (zh) | 用於基於幾何形狀的點雲壓縮的角度模式簡化 | |
| US12283074B2 (en) | Planar and azimuthal mode in geometric point cloud compression | |
| TW202147788A (zh) | 用於基於幾何形狀的點雲壓縮中的角度和方位角模式的鐳射角度的解碼 | |
| TW202147854A (zh) | 用於基於幾何形狀的點雲壓縮中的角度和方位角模式的鐳射角度的譯碼 | |
| TWI888586B (zh) | 用於在基於幾何的點雲壓縮中的量化參數值的縮放因數 | |
| CN115699771A (zh) | G-pcc中的属性残差编码 | |
| TW202147843A (zh) | 用於基於幾何結構的點雲壓縮(g-pcc)的次要分量屬性譯碼 | |
| CN115702441A (zh) | 用于基于几何的点云压缩(g-pcc)的经排序的激光角度 | |
| KR20230081708A (ko) | 지오메트리 포인트 클라우드 압축에서의 각도 모드 및 트리 내 양자화 | |
| WO2022076316A1 (en) | Scaling of quantization parameter values in geometry-based point cloud compression (g-pcc) | |
| WO2024226507A1 (en) | Entropy continuation and dependent frame entropy coding in point cloud compression |