Predictive Geometry Coding and Decoding in G-PCC

By reducing the number of context-encoded bins in G-PCC and adopting a modified zero prediction mode, the problem of high computational complexity in the angle mode is solved, and more efficient point cloud encoding and decoding is achieved.

CN116325749BActive Publication Date: 2025-09-05QUALCOMM INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180067573.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-09-27
Filing Date
2021-09-28
Publication Date
2025-09-05
Estimated Expiration
2041-09-28

AI Technical Summary

Technical Problem

In G-PCC, the prior art has a problem of high computational complexity when using angle mode for predicted geometric encoding and decoding, especially since a large number of context-encoded bins are used to signal the secondary residuals, resulting in low encoding and decoding efficiency.

Method used

Using the reduction of the number of context and/or context encoding bins, the residual data of signaling to r is reduced by signaling the absolute value of the quadratic residual value using a single syntax element, combined with the modified zero prediction mode, inheriting the prediction position φ and i instead of r, and reducing the residual data of signaling to r.

Benefits of technology

It reduces the computational complexity of point cloud encoding and decoding, improves the encoding and decoding efficiency, reduces the number of context encoding bins, and improves the performance of encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116325749B_ABST
    Figure CN116325749B_ABST
Patent Text Reader

Abstract

An example method for decoding a point cloud includes selecting a prediction mode for performing predictive geometric encoding and decoding of a position of a current node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; in response to selecting the zero prediction mode: determining a radius, an azimuth, and a laser index of a parent node of the current node; inferring the azimuth and the laser index of the predicted position of the current node as the azimuth and the laser index of the parent node; inferring the radius of the predicted position as a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determining the position of the current node based on the predicted position of the current node.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references

[0002] This application claims priority to U.S. Application No. 17 / 449,013, filed September 27, 2021, U.S. Provisional Patent Application No. 63 / 088,831, filed October 7, 2020, and U.S. Provisional Application No. 63 / 114,317, filed November 16, 2020, the entireties of which are incorporated herein by reference. U.S. Patent Application No. 17 / 449,013, filed September 27, 2021, claims the benefit of U.S. Provisional Patent Application No. 63 / 088,831, filed October 7, 2020, and U.S. Provisional Application No. 63 / 114,317, filed November 16, 2020. Technical Field

[0003] The present disclosure relates to point cloud encoding and decoding. Background Art

[0004] A point cloud is a collection of points in three-dimensional space. These points can correspond to points on objects within the three-dimensional space. Therefore, a point cloud can be used to represent the physical contents of a three-dimensional space. Point clouds can be useful in a variety of situations. For example, a point cloud can be used in the context of an autonomous vehicle to represent the location of objects on the road. In another example, a point cloud can be used in the context of representing the physical contents of an environment in order to locate virtual objects in augmented reality (AR) or mixed reality (MR) applications. Point cloud compression is the process of encoding and decoding point clouds. Encoding point clouds can reduce the amount of data required to store and transmit the point cloud. Summary of the Invention

[0005] In general, the present disclosure describes techniques for encoding and decoding nodes of a point cloud, such as for the Geometric Point Cloud Compression (G-PCC) standard currently under development. However, the example techniques are not limited to the G-PCC standard. In some examples of G-PCC, the position coordinates of a node (also referred to as a point) of a point cloud can be converted to an (r, φ, i) domain where the position of the node is represented by three parameters: radius r, azimuth angle φ, and laser index i. When predictive geometric encoding and decoding is performed using an angular mode in G-PCC, the G-PCC encoder can perform prediction in the (r, φ, i) domain. For example, the G-PCC encoder can determine a predicted position of a node and add the predicted position of the node to the main residual data to determine the reconstructed position of the node. Therefore, in at least some examples, the main residual can be encoded and decoded in the (r, φ, i) domain. Due to rounding errors (e.g., for coordinate conversion), the encoding and decoding of r, φ, i may be lossy. In some examples, this loss can be reduced or eliminated by encoding and decoding a second set of residuals that can be in the Cartesian domain. However, some implementations of G-PCC may require many context-coded bins to signal the primary and secondary residuals, which may be undesirably computationally intensive.

[0006] According to one or more aspects of the present disclosure, the G-PCC codec can use a reduced number of contexts and / or context encoding bins to signal the quadratic residual. For example, instead of using two separate syntax elements (e.g., ptn_sec_residual_abs_minus2 encoded with contexts 0…15, and ptn_sec_residual_abs_minus17 with 0 as a prefix context and bypassing the encoding of the suffix) to signal the absolute value of the quadratic residual value, the G-PCC codec can use a single syntax element to signal the absolute value of the quadratic residual value. For example, the G-PCC encoder can signal a single syntax element that specifies the absolute value of the quadratic residual value, which has a first set of prefix contexts (e.g., 0…4) and a second set of suffix contexts (e.g., 5…8). In this way, the technology of the present disclosure can reduce the number of contexts and / or context encoding bins used to signal the quadratic residual. In this way, the technology of the present disclosure can reduce the computational complexity of point cloud encoding and decoding.

[0007] As described above, when the angle mode is used for predictive geometry coding in G-PCC, the G-PCC encoder can determine the predicted position of the node and add the predicted position of the node to the residual data to determine the reconstructed position of the node. G-PCC can provide several techniques to determine the predicted position of the node. As an example, G-PCC provides a zero prediction mode in which r, φ, i of the predicted position can be inferred to be all zero. As another example, G-PCC provides an incremental prediction mode in which r, φ, i of the predicted position is inherited (e.g., copied) from r, φ, i of the reconstructed node (e.g., the parent node of the current node). However, the zero prediction mode may be very inefficient and, therefore, zero prediction may be rarely used.

[0008] In accordance with one or more techniques of the present disclosure, a G-PCC encoder may perform a modified zero prediction mode in which a subset of components of the predicted position of the current node is inherited from the parent node. For example, instead of inheriting all three r, φ, i of the predicted position from the parent node, the G-PCC codec may inherit φ and i of the predicted position from the parent node and infer r to be a minimum value (e.g., 0 or a separately signaled minimum value). By inheriting φ and i of the predicted position instead of r, the G-PCC codec may avoid having to signal large residual data values ​​for r, where φ and i values ​​are otherwise similar (and therefore have small residual data values). In this way, the techniques of the present disclosure may improve the codec efficiency of point cloud coding.

[0009] In one example, a method for encoding a point cloud includes obtaining a value of a quadratic residual for geometrically encoding and decoding a current prediction tree node of the point cloud; and encoding the value of the quadratic residual, wherein encoding the value includes: encoding a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and encoding a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0010] In another example, a method for decoding a point cloud includes obtaining a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of the point cloud; and decoding the value of the quadratic residual, wherein encoding the value includes: decoding a prefix bin of a syntax element using a first set of CABAC contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and decoding a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0011] In another example, a device for encoding a point cloud includes: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in a circuit and configured to: obtain a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of the point cloud; and encode the value of the quadratic residual, wherein to encode the value, the one or more processors are configured to: encode a prefix bin of a syntax element using a first set of CABAC contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and encode a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0012] In another example, a device for decoding a point cloud includes: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in a circuit and configured to: obtain a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of the point cloud; and decode the value of the quadratic residual, wherein to decode the value, the one or more processors are configured to: decode a prefix bin of a syntax element using a first set of CABAC contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and decode a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0013] In another example, a computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud encoder to: obtain a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of a point cloud; and encode the value of the quadratic residual, wherein the instructions that cause the one or more processors to encode the value include instructions that cause the one or more processors to perform the following operations: encode a prefix bin of a syntax element using a first set of CABAC contexts, the syntax element having a value specifying the absolute value of the value of the quadratic residual minus 2; and encode a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0014] In another example, a computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud decoder to: obtain a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of a point cloud; and decode the value of the quadratic residual, wherein the instructions that cause the one or more processors to decode the value include instructions that cause the one or more processors to perform the following operations: decode a prefix bin of a syntax element using a first set of CABAC contexts, the syntax element having a value specifying the absolute value of the value of the quadratic residual minus 2; and decode a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0015] In another example, a method for decoding a point cloud includes: selecting a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; in response to selecting the zero prediction mode: determining the radius, azimuth, and laser index of a parent node of the current prediction tree node; inferring the azimuth and laser index of the predicted position of the current prediction tree node as the azimuth and laser index of the parent node; inferring the radius of the predicted position as a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determining the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0016] In another example, a method for encoding a point cloud includes: selecting a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of a point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; wherein the selected mode is the zero prediction mode: determining the radius, azimuth, and laser index of a parent node of the current prediction tree node; inferring the azimuth and laser index of the predicted position of the current prediction tree node as the azimuth and laser index of the parent node; inferring the radius of the predicted position as a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determining the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0017] In another example, a device for decoding a point cloud includes: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in a circuit and configured to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; in response to selecting the zero prediction mode: determine the radius, azimuth, and laser index of a parent node of the current prediction tree node; infer the azimuth and laser index of the predicted position of the current prediction tree node as the azimuth and laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0018] In another example, a device for encoding a point cloud includes: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in a circuit and configured to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; wherein the selected mode is the zero prediction mode: determine the radius, azimuth, and laser index of a parent node of the current prediction tree node; infer the azimuth and laser index of the predicted position of the current prediction tree node to be the azimuth and laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0019] In another example, a computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud decoding device to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of a point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; in response to selecting the zero prediction mode: determine the radius, azimuth, and laser index of a parent node of the current prediction tree node; infer the azimuth and laser index of the predicted position of the current prediction tree node to be the azimuth and laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0020] In another example, a computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud encoding device to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of a point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; wherein the selected prediction mode is the zero prediction mode: determine the radius, azimuth, and laser index of a parent node of the current prediction tree node; infer the azimuth and laser index of the predicted position of the current prediction tree node to be the azimuth and laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0021] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figure 1 is a block diagram illustrating an example encoding and decoding system that may perform the techniques of this disclosure.

[0023] Figure 2 is a block diagram illustrating an example Geometric Point Cloud Compression (G-PCC) encoder.

[0024] Figure 3 is a block diagram illustrating an example G-PCC decoder.

[0025] Figure 4 A conceptual diagram of the prediction tree used for predictive geometry coding.

[0026] Figure 5A and Figure 5B This is a conceptual diagram of the rotating LIDAR acquisition model.

[0027] Figure 6 is a conceptual diagram illustrating an example ranging system that may be used with one or more techniques of this disclosure.

[0028] Figure 7 is a conceptual diagram illustrating an example vehicle-based scenario in which one or more techniques of this disclosure may be employed.

[0029] Figure 8 is a conceptual diagram illustrating an example extended reality system in which one or more techniques of this disclosure may be employed.

[0030] Figure 9 is a conceptual diagram illustrating an example mobile device system in which one or more techniques of this disclosure may be employed.

[0031] Figure 10A and Figure 10B is a conceptual diagram illustrating a range update process in binary arithmetic coding.

[0032] Figure 11 is a conceptual diagram illustrating output processing in binary arithmetic coding and decoding.

[0033] Figure 12 is a block diagram illustrating a context-adaptive binary arithmetic codec in a G-PCC encoder.

[0034] Figure 13 is a block diagram illustrating a context-adaptive binary arithmetic codec in a G-PCC decoder.

[0035] Figure 14 is a flow chart illustrating an example technique for processing a point cloud in accordance with one or more techniques of this disclosure.

[0036] Figure 15 is a flow chart illustrating an example technique for processing a point cloud in accordance with one or more techniques of this disclosure. DETAILED DESCRIPTION

[0037] Figure 1 is a block diagram illustrating an example encoding and decoding system 100 that can implement the techniques of this disclosure. The techniques of this disclosure are generally directed to encoding and decoding (encoding and / or decoding) point cloud data, i.e., supporting point cloud compression. Generally, point cloud data includes any data used to process point clouds. The codec can efficiently compress and / or decompress point cloud data.

[0038] like Figure 1 As shown, the system 100 includes a source device 102 and a target device 116. The source device 102 provides encoded point cloud data to be decoded by the target device 116. Figure 1 In the example of , source device 102 provides point cloud data to target device 116 via computer-readable medium 110. Source device 102 and target device 116 may include any of a variety of devices, including a desktop computer, a notebook (i.e., laptop) computer, a tablet computer, a set-top box, a telephone handset such as a smartphone, a television, a camera, a display device, a digital media player, a video game console, a video streaming device, a land or sea vehicle, a spacecraft, an aircraft, a robot, a LIDAR device, a satellite, etc. In some cases, source device 102 and target device 116 may be equipped for wireless communication.

[0039] exist Figure 1In the example of , source device 102 includes a data source 104, a memory 106, a G-PCC encoder 200, and an output interface 108. Target device 116 includes an input interface 122, a G-PCC decoder 300, a memory 120, and a data consumer 118. According to the present invention, the G-PCC encoder 200 of source device 102 and the G-PCC decoder 300 of target device 116 can be configured to apply the techniques of the present invention related to predictive geometry coding and decoding. Thus, source device 102 represents an example of an encoding device, while target device 116 represents an example of a decoding device. In other examples, source device 102 and target device 116 can include other components or arrangements. For example, source device 102 can receive data (e.g., point cloud data) from an internal or external source. Similarly, target device 116 can interface with an external data consumer instead of including the data consumer in the same device.

[0040] like Figure 1 The system 100 shown is merely an example. In general, other digital encoding and / or decoding devices can perform the techniques related to predictive geometry coding and decoding disclosed herein. The source device 102 and the target device 116 are merely examples of such devices, wherein the source device 102 generates encoded data to be sent to the target device 116. The present disclosure refers to a "codec" device as a device that performs the encoding and decoding (encoding and / or decoding) of data. Therefore, the G-PCC encoder 200 and the G-PCC decoder 300 represent examples of codec devices, particularly encoders and decoders, respectively. In some examples, the source device 102 and the target device 116 can operate in a substantially symmetrical manner, such that each of the source device 102 and the target device 116 includes an encoding component and a decoding component. Therefore, the system 100 can support one-way or two-way transmission between the source device 102 and the target device 116, for example, for streaming, playback, broadcasting, telephony, navigation, and other applications.

[0041] In general, data source 104 represents a data source (i.e., raw, unencoded point cloud data) and can provide a continuous series of "frames" of data to G-PCC encoder 200, which encodes the frame data. Data source 104 of source device 102 can include a point cloud capture device, such as any of a variety of cameras or sensors, such as a 3D scanner or light detection and ranging (LIDAR) device, one or more cameras, an archive containing previously captured data, and / or a data feed interface that receives data from a data content provider. Alternatively or additionally, the point cloud data can be generated by a computer from a scanner, camera, sensor, or other data. For example, data source 104 can generate computer graphics-based data as source data, or produce a combination of real-time data, archived data, and computer-generated data. In each case, G-PCC encoder 200 encodes captured, pre-captured, or computer-generated data. G-PCC encoder 200 can rearrange the frames from the order in which they were received (sometimes referred to as "display order") into a codec order for encoding and decoding. G-PCC encoder 200 may generate one or more bitstreams including the encoded data. Source device 102 may then output the encoded data onto computer-readable medium 110 via output interface 108 for receipt and / or retrieval by input interface 122 of target device 116, for example.

[0042] The memory 106 of the source device 102 and the memory 120 of the target device 116 can represent general purpose memory. In some examples, the memory 106 and the memory 120 can store original data, such as original data from the data source 104 and original decoded data from the G-PCC decoder 300. Additionally or alternatively, the memory 106 and the memory 120 can store software instructions that can be executed by, for example, the G-PCC encoder 200 and the G-PCC decoder 300, respectively. Although in this example, the memory 106 and the memory 120 are shown separately from the G-PCC encoder 200 and the G-PCC decoder 300, it should be understood that the G-PCC encoder 200 and the G-PCC decoder 300 can also include internal memory for functionally similar or equivalent purposes. In addition, the memory 106 and the memory 120 can store encoded data, such as data output from the G-PCC encoder 200 and input to the G-PCC decoder 300. In some examples, portions of memory 106 and memory 120 may be allocated as one or more buffers, eg, for storing raw, decoded, and / or encoded data. For example, memory 106 and memory 120 may store data representing a point cloud.

[0043] The computer-readable medium 110 can represent any type of medium or device capable of transmitting encoded data from the source device 102 to the target device 116. In one example, the computer-readable medium 110 represents a communication medium that enables the source device 102 to transmit the encoded data directly to the target device 116 in real time, for example, via a radio frequency network or a computer-based network. The output interface 108 can modulate a transmit signal comprising the encoded data, and the input interface 122 can demodulate the received transmit signal according to a communication standard such as a wireless communication protocol. The communication medium can include any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium can form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. The communication medium can include a router, a switch, a base station, or any other device that can be used to facilitate communication from the source device 102 to the target device 116.

[0044] In some examples, source device 102 may output the encoded data from output interface 108 to storage device 112. Similarly, target device 116 may access the encoded data from storage device 112 via input interface 122. Storage device 112 may include any of a variety of distributed or locally accessed data storage media, such as a hard drive, Blu-ray disc, DVD, CD-ROM, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded data.

[0045] In some examples, source device 102 may output the encoded data to a file server 114 or another intermediate storage device that may store the encoded data generated by source device 102. Target device 116 may access the stored data from file server 114 via streaming or downloading. File server 114 may be any type of server device capable of storing encoded data and transmitting the encoded data to target device 116. File server 114 may represent a web server (e.g., for a website), a file transfer protocol (FTP) server, a content delivery network device, or a network attached storage (NAS) device. Target device 116 may access the encoded data from file server 114 via any standard data connection, including an internet connection. This may include a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., a digital subscriber line (DSL), a cable modem, etc.), or a combination of both, suitable for accessing the encoded data stored on file server 114. File server 114 and input interface 122 may be configured to operate according to a streaming protocol, a download transfer protocol, or a combination thereof.

[0046] Output interface 108 and input interface 122 may represent wireless transmitters / receivers, modems, wired network components (e.g., Ethernet cards), wireless communication components that operate according to any of the various IEEE 802.11 standards, or other physical components. In examples where output interface 108 and input interface 122 include wireless components, output interface 108 and input interface 122 may be configured to transmit data, such as encoded data, according to a cellular communication standard (e.g., 4G, 4G-LTE (Long Term Evolution), LTE Advanced, 5G, etc.). In some examples where output interface 108 includes a wireless transmitter, output interface 108 and input interface 122 may be configured to transmit data, such as encoded data, according to other wireless standards (e.g., IEEE 802.11 specifications, IEEE 802.15 specifications (e.g., ZigBee 5G), etc.). TM ),Bluetooth TM In some examples, source device 102 and / or destination device 116 may include corresponding system-on-chip (SoC) devices. For example, source device 102 may include a SoC device for performing the functions attributed to G-PCC encoder 200 and / or output interface 108, and destination device 116 may include a SoC device for performing the functions attributed to G-PCC decoder 300 and / or input interface 122.

[0047] The techniques of this disclosure may be applied to encoding and decoding to support any of a variety of applications, such as communication between autonomous vehicles, communication between scanners, cameras, sensors and processing devices (e.g., local or remote servers), geographic mapping, or other applications.

[0048] The input interface 122 of the destination device 116 receives the encoded bitstream from the computer-readable medium 110 (e.g., a communication medium, a storage device 112, a file server 114, etc.). The encoded bitstream may include signaling information defined by the G-PCC encoder 200, which is also used by the G-PCC decoder 300, such as syntax elements with values ​​describing the characteristics and / or processing of the encoded and decoded units (e.g., slices, pictures, groups of pictures, sequences, etc.). The data consumer 118 uses the decoded data. For example, the data consumer 118 can use the decoded data to determine the position of a physical object. In some examples, the data consumer 118 can include a display to present an image based on the point cloud.

[0049] The G-PCC encoder 200 and the G-PCC decoder 300 can each be implemented as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When these techniques are partially implemented in software, the device can store instructions for the software in an appropriate non-transitory computer-readable medium and use one or more processors to execute the instructions in hardware to perform the technology of the present disclosure. Each of the G-PCC encoder 200 and the G-PCC decoder 300 can be included in one or more encoders or decoders, any of which can be integrated into the corresponding device as part of a combined encoder / decoder (CODEC). The device including the G-PCC encoder 200 and / or the G-PCC decoder 300 may include one or more integrated circuits, microprocessors, and / or other types of devices.

[0050] The G-PCC encoder 200 and the G-PCC decoder 300 can operate according to a codec standard, such as the Video Point Cloud Compression (V-PCC) standard or the Geometric Point Cloud Compression (G-PCC) standard. The present disclosure may generally relate to encoding and decoding (e.g., encoding and decoding) a picture to include the process of encoding or decoding data. The encoded bitstream typically includes a series of values ​​of syntax elements that represent codec decisions (e.g., codec mode).

[0051] The present disclosure may generally refer to "signaling" certain information, such as syntax elements. The term "signaling" may generally refer to the communication of values ​​for syntax elements and / or other data used to decode encoded data. That is, the G-PCC encoder 200 may signal the values ​​of syntax elements in the bitstream. Generally, signaling refers to generating values ​​in the bitstream. As described above, the source device 102 may deliver the bitstream to the target device 116 in substantially real time, or may deliver the bitstream to the target device 116 in non-real time, such as may occur when storing syntax elements to the storage device 112 for later retrieval by the target device 116.

[0052] ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) is investigating the potential need for standardization of point cloud codecs with compression capabilities significantly exceeding current methods and will work towards creating such a standard. The group is conducting this exploration through a collaborative effort called the 3D Graphics Group (3DG) to evaluate compression technology designs proposed by experts in the field.

[0053] Point cloud compression activity is divided into two different approaches. The first approach is "Video Point Cloud Compression" (V-PCC), which segments 3D objects and projects the segments into multiple 2D planes (represented as "patches" in 2D frames), which are further encoded and decoded by traditional 2D video codecs such as the High Efficiency Video Codec (HEVC) (ITU-T H.265) codec. The second approach is "Geometry-based Point Cloud Compression" (G-PCC), which directly compresses 3D geometry, i.e., the positions of a set of points in 3D space, and the associated attribute values ​​(for each point associated with the 3D geometry). G-PCC addresses the compression of point clouds in category 1 (static point clouds) and category 3 (dynamically acquired point clouds). The latest draft of the G-PCC standard is available in G-PCC DIS, ISO / IEC JTC1 / SC29 / WG11 w19328, Brussels, Belgium, January 2020, and a description of the codec is available in G-PCC Codec Description v8, ISO / IEC JTC1 / SC29 / WG11 w19525, Brussels, Belgium, January 2020.

[0054] A point cloud contains a set of points in 3D space and may have attributes associated with the point. Attributes can be color information, such as R, G, B or Y, Cb, Cr, or reflectance information, or other properties. Point clouds can be captured by various cameras or sensors (such as LIDAR sensors and 3D scanners), or they can be computer-generated. Point cloud data is used in a variety of applications, including but not limited to construction (modeling), graphics (3D models for visualization and animation), and the automotive industry (LIDAR sensors to aid navigation).

[0055] The 3D space occupied by point cloud data can be enclosed by a virtual bounding box. The positions of points in the bounding box can be represented with a certain precision; therefore, the positions of one or more points can be quantized based on the precision. At the smallest level, the bounding box is divided into voxels, which are the smallest spatial units represented by a unit cube. A voxel in a bounding box can be associated with zero, one, or more points. The bounding box can be partitioned into multiple cubic / cuboid regions, which can be called tiles. Each tile can be encoded into one or more strips. The division of the bounding box into strips and tiles can be based on the number of points in each partition, or based on other considerations (for example, specific areas can be encoded as tiles). Strip regions can be further divided using segmentation decisions similar to those in video codecs.

[0056] Figure 2 An overview of the G-PCC encoder 200 is provided. Figure 3An overview is provided of a G-PCC decoder 300. The modules shown are logical and do not necessarily correspond one-to-one with the code implemented in the reference implementation of the G-PCC codec, namely the TMC13 test model software studied by ISO / IEC MPEG (JTC 1 / SC 29 / WG 11).

[0057] In the G-PCC encoder 200 and the G-PCC decoder 300, the point cloud positions are first encoded and decoded. The attribute encoding and decoding depends on the decoded geometry. Figure 2 and Figure 3 In the example, the gray-shaded modules are options that are commonly used for Category 1 data. The diagonal crosshatch modules are options that are commonly used for Category 3 data. All other modules are common between Category 1 and Category 3.

[0058] For category 3 data, the compressed geometry is typically represented as an octree from the root down to the leaf level for individual voxels. For category 1 data, the compressed geometry is typically represented by a pruned octree (i.e., an octree from the root down to the leaf level for blocks larger than a voxel) plus a model that approximates the surface within each leaf of the pruned octree. In this way, category 1 and category 3 data share the octree codec mechanism, while category 1 data can additionally approximate the voxels within each leaf with a surface model. The surface model used is a triangulation with 1-10 triangles per block, resulting in triangle soup. Therefore, category 1 geometry codecs are called trisoup geometry codecs, while category 3 geometry codecs are called octree geometry codecs.

[0059] At each node of the octree, the occupancy is signaled (when not inferred) for one or more of its children (up to eight nodes). Multiple neighborhoods are specified, including (a) nodes that share faces with the current octree node, (b) nodes that share faces, edges, or vertices with the current octree node, etc. Within each neighborhood, the occupancy of the node and / or its children can be used to predict the occupancy of the current node or its children. For points that are sparsely populated in some nodes of the octree, the codec also supports a direct encoding and decoding mode in which the 3D position of the point is encoded directly. A flag can be signaled to indicate signaling direct mode. At the lowest level, the number of points associated with the octree node / leaf node can also be encoded and decoded.

[0060] Once the geometry is encoded and decoded, the attributes corresponding to the geometry points are encoded and decoded. When there are multiple attribute points corresponding to a reconstructed / decoded geometry point, the attribute value representing the reconstructed point can be derived.

[0061] There are three attribute codec methods in G-PCC: Region Adaptive Hierarchical Transform (RAHT) codec, interpolation-based hierarchical nearest neighbor prediction (prediction transform), and interpolation-based hierarchical nearest neighbor prediction with an update / lifting step (lifting transform). RAHT and lifting are typically used for category 1 data, while prediction is typically used for category 3 data. However, any method can be used for any data, and just like the geometry codec in G-PCC, the attribute codec method used to encode and decode point clouds is specified in the bitstream.

[0062] The encoding and decoding of attributes can be performed in levels of detail (LODs), where with each level of detail, a finer representation of the point cloud attributes can be obtained. Each level of detail can be specified based on a distance metric to neighboring nodes or based on a sampling distance.

[0063] The residual obtained as an output of the profiled coding method is quantized at the G-PCC encoder 200. The quantized residual may be coded using context-adaptive arithmetic coding.

[0064] exist Figure 2 In the example, the G-PCC encoder 200 may include a coordinate transformation unit 202, a color transformation unit 204, a voxelization unit 206, an attribute transfer unit 208, an octree analysis unit 210, a surface approximation analysis unit 212, an arithmetic coding unit 214, a geometric reconstruction unit (GRU) 216, a RAHT unit 218, an LOD generation unit 220, a lifting unit 222, a coefficient quantization unit 224 and an arithmetic coding unit 226.

[0065] like Figure 2 As shown in the example of , the G-PCC encoder 200 can receive a set of positions and a set of attributes. The positions can include the coordinates of a point in the point cloud. The attributes can include information about the point in the point cloud, such as the color associated with the point in the point cloud.

[0066] The coordinate transformation unit 202 can apply a transformation to the coordinates of the point to transform the coordinates from the original domain to the transformed domain. This disclosure may refer to the transformed coordinates as transformed coordinates. The color transformation unit 204 can apply a transformation to transform the color information of the attribute to a different domain. For example, the color transformation unit 204 can transform the color information from the RGB color space to the YCbCr color space.

[0067] In addition, Figure 2In the example of , the voxelization unit 206 can voxelize the transformed coordinates. Voxelization of the transformed coordinates can include quantizing and removing some points of the point cloud. In other words, multiple points of the point cloud can be grouped into a single "voxel", which can then be treated as a point in some aspects. In addition, the octree analysis unit 210 can generate an octree based on the voxelized transformed coordinates. In addition, in Figure 2 In the example of , the surface approximation analysis unit 212 can analyze the points to potentially determine a surface representation of the point set. The arithmetic coding unit 214 can entropy encode syntax elements representing information about the octree and / or surface determined by the surface approximation analysis unit 212. The G-PCC encoder 200 can output these syntax elements in a geometry bitstream.

[0068] The geometric reconstruction unit 216 can reconstruct the transformed coordinates of points in the point cloud based on the octree, data indicating the surface determined by the surface approximation analysis unit 212, and / or other information. Due to voxelization and surface approximation, the number of transformed coordinates reconstructed by the geometric reconstruction unit 216 may differ from the number of original points in the point cloud. This disclosure may refer to the resulting points as reconstructed points. The attribute transfer unit 208 can transfer attributes of the original points in the point cloud to the reconstructed points in the point cloud.

[0069] Furthermore, the RAHT unit 218 may apply RAHT coding to the attributes of the reconstruction points. Alternatively or additionally, the LOD generation unit 220 and the lifting unit 222 may apply LOD processing and lifting, respectively, to the attributes of the reconstruction points. The RAHT unit 218 and the lifting unit 222 may generate coefficients based on the attributes. The coefficient quantization unit 224 may quantize the coefficients generated by the RAHT unit 218 or the lifting unit 222. The arithmetic coding unit 226 may apply arithmetic coding to syntax elements representing the quantized coefficients. The G-PCC encoder 200 may output these syntax elements in the attribute bitstream.

[0070] exist Figure 3 In the example, the G-PCC decoder 300 may include a geometric arithmetic decoding unit 302, an attribute arithmetic decoding unit 304, an octree synthesis unit 306, an inverse quantization unit 308, a surface approximation synthesis unit 310, a geometric reconstruction unit 312, a RAHT unit 314, a LoD generation unit 316, an inverse lifting unit 318, an inverse transform coordinate unit 320 and an inverse transform color unit 322.

[0071] The G-PCC decoder 300 may obtain a geometry bitstream and an attribute bitstream. The geometry arithmetic decoding unit 302 of the decoder 300 may apply arithmetic decoding (e.g., context-adaptive binary arithmetic coding (CABAC) or other types of arithmetic decoding) to syntax elements in the geometry bitstream. Similarly, the attribute arithmetic decoding unit 304 may apply arithmetic decoding to syntax elements in the attribute bitstream.

[0072] The octree synthesis unit 306 may synthesize an octree based on syntax elements parsed from the geometry bitstream. In the case where surface approximation is used in the geometry bitstream, the surface approximation synthesis unit 310 may determine a surface model based on syntax elements parsed from the geometry bitstream and based on the octree.

[0073] Furthermore, the geometric reconstruction unit 312 may perform reconstruction to determine the coordinates of the points in the point cloud. The inverse transform coordinate unit 320 may apply an inverse transform to the reconstructed coordinates to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the original domain.

[0074] In addition, Figure 3 In the example of , the inverse quantization unit 308 may inverse quantize the property value. The property value may be based on syntax elements obtained from the property bitstream (eg, including syntax elements decoded by the property arithmetic decoding unit 304).

[0075] Depending on how the attribute values ​​are encoded, the RAHT unit 314 may perform RAHT encoding and decoding to determine the color values ​​of the points of the point cloud based on the inverse quantized attribute values. Alternatively, the LOD generation unit 316 and the inverse lifting unit 318 may use a level of detail based technique to determine the color values ​​of the points of the point cloud.

[0076] In addition, Figure 3 In the example of , inverse color transform unit 322 may apply an inverse color transform to the color values. The inverse color transform may be the inverse of the color transform applied by color transform unit 204 of encoder 200. For example, color transform unit 204 may transform color information from an RGB color space to a YCbCr color space. Thus, inverse color transform unit 322 may transform color information from a YCbCr color space to an RGB color space.

[0077] Shown Figure 2 and Figure 3The various units of the encoder 200 and the decoder 300 are described to help understand the operations performed by the encoder 200 and the decoder 300. These units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Fixed-function circuits refer to circuits that provide specific functions and are preset on executable operations. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functions in executable operations. For example, a programmable circuit can execute software or firmware that causes the programmable circuit to operate in a manner defined by the instructions of the software or firmware. Fixed-function circuits can execute software instructions (for example, to receive parameters or output parameters), but the type of operation performed by the fixed-function circuit is generally unchanged. In some examples, one or more units can be different circuit blocks (fixed-function or programmable), and in some examples, one or more units can be integrated circuits.

[0078] Predictive geometry codecs were introduced as an alternative to octree geometry codecs, where nodes are arranged in a tree structure (which defines the prediction structure) and various prediction strategies are used to predict the coordinates of each node in the tree relative to its predictor. Figure 4 This is a conceptual diagram showing an example of a prediction tree, which is a directed graph with arrows pointing in the direction of the prediction. Horizontally shaded nodes are root vertices and have no predictors; grid-shaded nodes have two children; diagonally shaded nodes have three children, unshaded nodes have one child, and vertically shaded nodes are leaf nodes, which have no children. Each node has only one parent.

[0079] Four prediction strategies can be specified for each node based on its parent node (p0), great-grandfather node (p1), and great-great-grandfather node (p2). The prediction strategies include no prediction, incremental prediction (p0), linear prediction (2*p0–p1), and parallelogram prediction (2*p0+p1–p2).

[0080] The encoder (e.g., G-PCC encoder 200) can use any algorithm to generate the prediction tree; the algorithm used can be determined based on the application / use case, and several strategies can be used. For each node, the encoder can encode the residual coordinate values ​​in the bitstream starting from the root node in a depth-first manner. Predictive geometry coding can be particularly useful for category 3 (e.g., LIDAR) point cloud data, for example, for low-latency applications.

[0081] The angular mode can be used for predictive geometric codecs, where the characteristics of the LIDAR sensor can be used to more efficiently encode and decode the prediction tree. The position coordinates are converted to (r, φ, i) (radius, azimuth and laser index) and the prediction is performed in this domain (the residuals are encoded and decoded in the r, φ, i domain). Due to rounding errors, the encoding and decoding in r, φ, i is not lossless, so a second set of residuals corresponding to Cartesian coordinates can be encoded and decoded. The description of the encoding and decoding strategy for the angular mode for predictive geometric codecs is reproduced below. This description is based on Figure 5A and Figure 5B , Figure 5A and Figure 5B This is a conceptual diagram of the rotating LIDAR acquisition model.

[0082] The method focuses on point clouds acquired using a rotating LIDAR model. Here, the LIDAR has N lasers (e.g., N=16, 32, 64) rotating around the Z axis according to an azimuth angle φ (see Figure 5A and Figure 5B ). Each laser can have a different elevation angle θ(i) i=1…N and height Assume that the laser i hits Figure 5A The coordinate system described in defines a point M with Cartesian integer coordinates (x, y, z).

[0083] The position of M is modeled using three parameters (r, φ, i) and is calculated as follows:

[0084] ·

[0085] φ=atan²(y,x)

[0086] ·

[0087] More precisely, the G-PCC encoder can use a quantized version of (r,φ,i) expressed as Three integers and i are calculated as follows:

[0088] ·

[0089] ·

[0090] ·

[0091] in

[0092] ·(q r ,o r ) and (q φ ,o φ ) are control and The quantization parameter of the accuracy.

[0093] · sign(t) is a function that returns 1 if t is positive, and returns (-1) otherwise.

[0094] |t| is the absolute value of t.

[0095] To avoid reconstruction mismatches due to the use of floating point operations, andtan(θ(i)) i=1…N The value of can be precomputed and quantized as follows:

[0096]

[0097]

[0098] in

[0099] · and (q θ ,o θ ) are control and The quantization parameter of the accuracy.

[0100] The reconstructed Cartesian coordinates are obtained as follows:

[0101] ·

[0102] ·

[0103] ·

[0104] where app_cos(.) and app_sin(.) are approximate values ​​of cos(.) and sin(.). The calculations can use fixed-point representation, lookup tables, and linear interpolation.

[0105] Please note that due to the following reasons, Might be different from (x,y,z):

[0106] -Quantification

[0107] -approximation

[0108] - Model is not accurate

[0109] - Model parameters are not accurate

[0110] Assume (r x ,r y ,r z ) is the reconstruction residual, defined as follows:

[0111] -

[0112] -

[0113] -

[0114] In this method, the G-PCC encoder 200 may proceed as follows:

[0115] Model parameters and And the quantization parameter q r q θ and q φ Encoding

[0116] Apply the geometric prediction scheme described in G-PCC DIS to represent

[0117] o New predictors can be introduced that take advantage of the characteristics of LIDAR. For example, the rotation speed of the LIDAR scanner around the z-axis is usually constant. Therefore, we can predict the current as follows:

[0118]

[0119] in

[0120] o(δ φ (k)) k=1…K is the set of potential speeds that the encoder can choose from. The index k can be written explicitly into the bitstream, or can be inferred from the context based on a deterministic strategy applied by both the encoder and decoder, and

[0121] on(j) is the number of points to skip, which may be written explicitly into the bitstream or may be inferred from the context based on a deterministic strategy applied by both the encoder and decoder.

[0122] Reconstruct the residual (r) using each node code x ,r y ,r z )

[0123] The G-PCC decoder 300 may proceed as follows:

[0124] Decoding model parameters and And the quantization parameter q r q θ and q φ

[0125] Decode the BPDU associated with the node according to the geometric prediction scheme described in the G-PCC DIS parameter

[0126] Calculate the reconstruction coordinates as described above

[0127] Decoding residual (r x ,r y ,r z )

[0128] As discussed in the next section, lossy compression can be achieved by quantizing the reconstructed residual (r x ,r y ,r z ) to support

[0129] The original coordinates (x, z, z) are calculated as follows

[0130] o

[0131] o

[0132] o

[0133] Lossy compression can be achieved by reconstructing the residual (r x ,r y ,r z ) is achieved by applying quantization or by discarding points.

[0134] The quantized reconstruction residual is calculated as follows:

[0135] ·

[0136] ·

[0137] ·

[0138] Among them, (q x ,o x )、(q y ,o y )and(q z ,o z ) are control and The quantization parameter of the accuracy.

[0139] In some examples, the G-PCC encoder 200 and / or the G-PCC decoder 300 can use trellis quantization to further improve RD (rate-distortion) performance results. The quantization parameter can be changed at the sequence / frame / slice / block level to achieve region-adaptive quality and for rate control purposes.

[0140] The following is an example of the predictive geometry codec syntax, semantics, syntax binarization, and context tables:

[0141]

[0142]

[0143]

[0144] ptn_qp_offset_eq0_flag, ptn_qp_offset_sign_flag, and ptn_qp_offset_abs_minus1 together specify the offset of the slice geometry quantization parameter (if present). Any absence of ptn_qp_offset_sign_flag or ptn_qp_offset_abs_minus1 is inferred to be 0.

[0145] When nodeIdx%PtnQpInterval is equal to 0, the node QP of the next PtnQpInterval node in decoding order is determined as follows:

[0146] When geom_scaling_enabled_flag is equal to 1:

[0147] PtnQp[nodeIdx / PtnQpInterval]=

[0148] geom_base_qp+geom_slice_qp_offset

[0149] +(2×ptn_qp_offset_sign_flag–1)

[0150] ×(!ptn_qp_offset_eq0_flag+ptn_qp_offset_abs_minus1)

[0151] Otherwise, PtnQp[nodeIdx] is set equal to 0.

[0152] ptn_point_cnt_gt1_flag and ptn_point_cnt_minus2 together specify the number of points represented by the current prediction tree node. When not present, the values ​​of ptn_point_cnt_gt1_flag and ptn_point_cnt_minus2 are both inferred to be 0. The number of points represented by the current prediction tree node is derived as follows:

[0153] PtnPointCount[nodeIdx]=1+ptn_point_cnt_gt1_flag+ptn_point_cnt_minus2

[0154] ptn_child_cnt[nodeIdx] is the number of direct child nodes of the current prediction tree node that exist in the geometric prediction tree.

[0155] ptn_pred_mode[nodeIdx] is the mode used to predict the position associated with the current node.

[0156] ptn_phi_mult_eq0_flag, ptn_phi_mult_sign_flag, ptn_phi_mult_eq1_flag, ptn_phi_mult_abs_minus2, and ptn_phi_mult_abs_minus17 collectively specify the multiplication factor used in delta angular prediction. When ptn_phi_mult_eq0_flag is present, it specifies whether the factor is equal to zero. When ptn_phi_mult_eq1_flag is present, it specifies whether the magnitude of the factor is equal to one. A ptn_phi_mult_sign_flag equal to one indicates that the sign of the factor is positive. A ptn_phi_mult_sign_flag equal to zero indicates that the sign of the factor is negative. Any absence of ptn_phi_mult_sign_flag, ptn_phi_mult_abs_minus2, or ptn_phi_mult_abs_minus17 is inferred to be zero. Any absence of ptn_phi_mult_eq0_flag or ptn_phi_mult_eq1_flag is inferred to be 1.

[0157] The phi factor of the current tree node is derived as follows:

[0158] PtnPhiMult[nodeIdx]=

[0159] (2×ptn_phi_mult_sign_flag–1)

[0160] ×(!ptn_phi_mult_eq0_flag+!ptn_phi_mult_eq1_flag

[0161] +ptn_phi_mult_abs_minus2+ptn_phi_mult_abs_minus17)

[0162] ptn_residual_eq0_flag[k], ptn_residual_sign_flag[k], ptn_residual_abs_log2[k], and ptn_residual_abs_remaining[k] together specify the first prediction residual for the k-th geometric position component. ptn_residual_eq0_flag[k] specifies whether the residual component is equal to zero. ptn_residual_sign_flag[k] equal to 1 indicates that the sign of the residual component is positive. ptn_residual_sign_flag[k] equal to 0 indicates that the sign of the residual component is negative. Any absence of ptn_residual_sign_flag[k], ptn_residual_abs_log2[k], or ptn_residual_abs_remaining[k] is inferred to be 0.

[0163] The first prediction residual associated with the current tree node is derived as follows:

[0164] for(k=0;k<3;k++)

[0165] PtnResidual[nodeIdx][k]=

[0166] (2×ptn_residual_sign_flag–1)

[0167] ×(!ptn_residual_eq0_flag[k]

[0168] +((1<<ptn_residual_abs_log2[k])> >1)

[0169] +ptn_residual_abs_remaining[k])

[0170] ptn_sec_residual_eq0_flag[k], ptn_sec_residual_eq1_flag[k], ptn_sec_residual_sign_flag[k], ptn_sec_residual_abs_minus2[k], and ptn_sec_residual_abs_minus17[k] collectively specify the quadratic residual of the k-th geometric position component. ptn_sec_residual_eq0_flag[k] specifies whether the residual component is equal to zero. When ptn_sec_residual_eq1_flag[k] is present, it specifies whether the magnitude of the residual component is equal to one. A ptn_sec_residual_sign_flag[k] equal to one specifies that the sign of the residual component is positive. A ptn_sec_residual_sign_flag[k] equal to zero specifies that the sign of the residual component is negative. Any non-existent ptn_src_residual_sign_flag[k], ptn_sec_residual_abs_minus2[k], or ptn_sec_residual_abs_minus17[k] is inferred to be 0. Any non-existent ptn_sec_residual_eq0_flag[k] or ptn_sec_residual_eq1_flag[k] is inferred to be 1.

[0171] The second prediction residual associated with the current tree node is derived as follows:

[0172] for(k=0;k<3;k++)

[0173] PtnSecResidual[nodeIdx][k]=

[0174] (2×ptn_sec_residual_sign_flag–1)

[0175] ×(!ptn_sec_residual_eq0_flag[k]+!ptn_sec_residual_eq1_flag[k]

[0176] +ptn_sec_residual_abs_minus2[k]+ptn_sec_residual_abs_minus17[k])

[0177]

[0178]

[0179]

[0180]

[0181] The above implementation of predictive geometry codec may have one or more disadvantages. As an example, the above implementation of predictive geometry codec with angle codec mode may require many context-coded bins because the above implementation requires primary (r, φ, i) and secondary (r x ,r y ,r z ) residuals, which is computationally intensive. As another example, the above implementation of the predictive geometry codec uses a 2-bit fixed length codec for both the signaling of the predictor index and the number of child nodes signaling (a total of 4 candidates in both cases), which may not be optimal because the candidates are not equally probable. As another example, for the main residual in the above implementation of the predictive geometry codec, the signaling associated with the laser index (i) may be redundant, for example when a single laser capture point count is used. As another example, in the above implementation of the predictive geometry codec, the zero predictor (or "no prediction" as described above) is very inefficient, and it may be rarely used for prediction. In addition, for the "r" part, because it is non-negative and because the prediction is always zero, the residual sign of the "r" component can always be inferred, and thus the corresponding signaling is redundant.

[0182] According to one or more techniques of the present disclosure, an encoder (e.g., G-PCC encoder 200) and / or a decoder (e.g., G-PCC decoder 300) can overcome the above-mentioned shortcomings. As a first example, the encoder and / or decoder can perform context and context-encoded bin reduction on the quadratic residual and phi multiplier. As a second example, the encoder and / or decoder can perform variable length encoding and decoding for the number of child nodes and predictor index signaling. As a third example, when the content is captured by a single laser, the encoder and / or decoder can remove the signaling of the laser index. As a fourth example, the encoder and / or decoder can modify the zero prediction by utilizing the azimuth and laser index of the parent neighbor and sign inference.

[0183] Some detailed examples of the technology disclosed in this disclosure are as follows:

[0184] As described above, according to the first example, the encoder and / or decoder can perform context and context-encoded bin reduction on the secondary residual and phi multiplier. For example, the secondary residual encoding can be simplified by removing the ptn_sec_residual_abs_minus17[k] syntax element and the associated 3*15=45 contexts. In some examples, the binarization and context of ptn_sec_residual_abs_minus2[k] can be modified. Some example modifications are shown below, where <add> ...< / add> The content is added to the tag and <remove> ...< / remove> The content was deleted from the tag.

[0185]

[0186] ptn_sec_residual_eq0_flag[k], ptn_sec_residual_eq1_flag[k], ptn_sec_residual_sign_flag[k], <add> and< / add> ptn_sec_residual_abs_minus2[k], <remove> and ptn_sec_residual_abs_minus17[k]< / remove> Together they specify the quadratic residual of the kth geometric position component. ptn_sec_residual_eq0_flag[k] specifies whether the residual component is equal to zero. When ptn_sec_residual_eq1_flag[k] is present, it specifies whether the magnitude of the residual component is equal to 1. ptn_sec_residual_sign_flag[k] equal to 1 indicates that the sign of the residual component is positive. ptn_sec_residual_sign_flag[k] equal to 0 indicates that the sign of the residual component is negative. Any absence of ptn_src_residual_sign_flag[k], <add> or< / add> ptn_sec_residual_abs_minus2[k] <remove> or ptn_sec_residual_abs_minus17[k]< / remove> are inferred to be 0. Any ptn_sec_residual_eq0_flag[k] or ptn_sec_residual_eq1_flag[k] not present is inferred to be 1.

[0187] The second prediction residual associated with the current tree node is derived as follows:

[0188] for(k=0;k<3;k++)

[0189] PtnSecResidual[nodeIdx][k]=

[0190] (2×ptn_sec_residual_sign_flag–1)

[0191] ×(!ptn_sec_residual_eq0_flag[k]+!ptn_sec_residual_eq1_flag[k]

[0192] +

[0193] ptn_sec_residual_abs_minus2[k] <remove> +ptn_sec_residual_abs_minus17[k]< / remove> )

[0194]

[0195]

[0196] Alternatively, the G_PCC codec can use a specific number of prefix contexts (e.g., a context) and suffix contexts (e.g., b context) for exponential Golomb codecs to perform signaling. The use of prefix and suffix contexts can be effective (e.g., providing codec gain) when there is significant energy in the quadratic residual component. In one example, a = 5 and b = 4.

[0197]

[0198] Secondly, the syntax associated with the phi multiplier is simplified by removing 8 contexts and modifying the signaling, as follows:

[0199]

[0200] ptn_phi_mult_eq0_flag, ptn_phi_mult_sign_flag, ptn_phi_mult_eq1_flag, ptn_phi_mult_abs_minus2 and <remove> ptn_phi_mult_abs_minus17< / remove> <add> ptn_phi_mult_abs_minus9< / add> Specifies the multiplication factor used in the delta angle prediction. When ptn_phi_mult_eq0_flag is present, specifies whether the factor is equal to zero. When ptn_phi_mult_eq1_flag is present, specifies whether the magnitude of the factor is equal to 1. ptn_phi_mult_sign_flag equal to 1 indicates that the sign of the factor is positive. ptn_phi_mult_sign_flag equal to 0 indicates that the sign of the factor is negative. Any absence of ptn_phi_mult_sign_flag, ptn_phi_mult_abs_minus2, or <remove> ptn_phi_mult_abs_minus17< / remove> <add> ptn_phi_mult_abs_minus9< / add>are inferred to be 0. Any ptn_phi_mult_eq0_flag or ptn_phi_mult_eq1_flag not present is inferred to be 1.

[0201] The phi factor of the current tree node is derived as follows:

[0202] PtnPhiMult[nodeIdx]=

[0203] (2×ptn_phi_mult_sign_flag–1)

[0204] ×(!ptn_phi_mult_eq0_flag+!ptn_phi_mult_eq1_flag

[0205] +ptn_phi_mult_abs_minus2+ <remove>ptn_phi_mult_abs_minus17< / RE MOVE> <add> ptn_phi_mult_abs_minus9< / add> )

[0206]

[0207]

[0208]

[0209] As described above, according to the second example, the encoder and / or decoder can perform variable length coding for the number of child nodes and predictor index signaling. Currently, the number of predictor modes and child node signaling information are both signaled in a 2-bit fixed length codec, where the 3 contexts have the following mapping:

[0210] predict Ptn_pred_mode Number of child nodes Ptn_child_cnt Zero prediction 00 0 00 Incremental prediction 01 1 01 Linear prediction 10 2 10 Parallelogram Prediction 11 3 11

[0211] However, to address non-equally probable symbol statistics, it is recommended to signal this with variable-length binarization, e.g., truncated unary binarization. This can reduce the total number of bins associated with signaling. Since the statistics of predMode may differ depending on whether angular mode is applied, different mappings can be used depending on whether angular mode is enabled, which is already signaled in the corresponding geometry parameter set.

[0212]

[0213]

[0214]

[0215]

[0216] As described above, according to the third example, when the content is captured by a single laser, the encoder and / or decoder can remove the signaling of the laser index (e.g., not encode and not decode). When num_lasers_minus1 is equal to 0, the laser index is the same for all points in the point cloud. Therefore, the associated residual signaling for the laser index may be redundant (i.e., there is no need to signal the residual of the third component). Considering that the third component corresponds to the laser index, the syntax changes as shown below. (It may change if there is an axis conversion).

[0217]

[0218]

[0219] If there is an axis switch, the component corresponding to the laser index is not signaled.

[0220] Furthermore, when num_lasers_minus1 is 1 (only two lasers), the residual can be zero, -1, or +1, however, for the non-zero case, the sign and subsequent information can be inferred and no signaling is required. For example, if we have two lasers and laserIdx is 0 and 1, then if the predicted laserIdx is 1 and the residual is non-zero, then it can be inferred that the current laserIdx = 0. Therefore, in this case, it is sufficient to just signal ptn_residual_eq0_flag[2]. Therefore, the following syntax changes can be implemented:

[0221]

[0222] As described above, according to the fourth example, the encoder and / or decoder may modify the zero prediction by utilizing the azimuth angle and laser index of the parent neighbor and the sign inference.

[0223] Currently, zero prediction in the angle domain corresponds to all components being equal to 0. However, current implementations of zero prediction can be inefficient and are therefore rarely used.

[0224] According to one or more techniques of this disclosure, an encoder or decoder can inherit the azimuth and laser index from a parent node (ancestor) if the parent node is available. Thus, in some ways, it is similar to incremental prediction, except that the radius is set to zero (or the minimum radius value).

[0225] The following changes to the position prediction process are required (section 8.2.6.4) [w19522]:

[0226] #####################################################################

[0227] When predMode is equal to 0, the predicted point position is <remove> 0< / remove> :

[0228] for(k=0;k<3;k++){

[0229] predPos[k]=0

[0230] <add>if(geometry_angular_enabled_flag&&k)

[0231] predPos[k]=aPos0[k]< / add>

[0232] }

[0233] When predmode is equal to 1, the predicted point location is the location associated with the first ancestor.

[0234] for(k=0;k<3;k++)

[0235] predPos[k]=aPos0[k]

[0236] When predmode equals 2, the predicted point position is a linear combination of the positions associated with the first two ancestors

[0237] for(k=0;k<3;k++)

[0238] predPos[k]=aPos0[k]+aPos0[k]-aPos1[k]

[0239] Otherwise, predmode equals 3 and the predicted point position is a linear combination of the positions associated with all three ancestors.

[0240] for(k=0;k<3;k++)

[0241] predPos[k]=aPos0[k]+aPos1[k]-aPos2[k]

[0242] #####################################################################

[0243] Second, when using the zero predictor, the corresponding residual is inferred to be positive since the prediction radius is zero, and therefore the corresponding sign does not need to be signaled but is inferred. The same is true when the angle mode is disabled.

[0244]

[0245]

[0246] Alternatively, the minimum value of the radius (smallest radius among all points) can be signaled in the slice header, which can be used as the radius of the zero predictor instead of 0.

[0247] To improve the zero predictor, the phi multiplier can be applied to all predictors, not just the delta predictor. The following change in syntax is:

[0248]

[0249] Figure 6 is a conceptual diagram illustrating an example ranging system 600 that may be used with one or more techniques of this disclosure. Figure 6 In the example of , ranging system 600 includes an illuminator 602 and a sensor 604. Illuminator 602 can emit light 606. In some examples, illuminator 602 can emit light 606 as one or more laser beams. Light 606 can be one or more wavelengths, such as infrared wavelengths or visible wavelengths. In other examples, light 606 is not a coherent laser. When light 606 encounters an object, such as object 608, light 606 produces return light 610. Return light 610 can include backscattered light and / or reflected light. Return light 610 can pass through lens 611, which guides return light 610 to create an image 612 of object 608 on sensor 604. Sensor 604 generates signal 614 based on image 612. Image 612 can include a set of points (e.g., a Figure 6 612).

[0250] In some examples, the illuminator 602 and the sensor 604 can be mounted on a rotating structure so that the illuminator 602 and the sensor 604 capture a 360-degree view of the environment. In other examples, the ranging system 600 can include one or more optical components (e.g., mirrors, collimators, diffraction gratings, etc.) that enable the illuminator 602 and the sensor 604 to detect objects within a certain range (e.g., up to 360 degrees). Although Figure 6 The example of FIG. 6 shows only a single illuminator 602 and sensor 604 , but the ranging system 600 may include a collection of multiple illuminators and sensors.

[0251] In some examples, the illuminator 602 generates a structured light pattern. In such an example, the ranging system 600 may include multiple sensors 604 on which respective images of the structured light pattern are formed. The ranging system 600 can use the differences between the images of the structured light pattern to determine the distance to the object 608 from which the structured light pattern was backscattered. When the object 608 is relatively close to the sensor 604 (e.g., 0.2 meters to 2 meters), the ranging system based on structured light can have a high level of accuracy (e.g., accuracy in the sub-millimeter range). This high level of accuracy can be useful in facial recognition applications (e.g., unlocking mobile devices (e.g., mobile phones, tablets, etc.)) and security applications.

[0252] In some examples, ranging system 600 is a time-of-flight (ToF)-based system. In some examples where ranging system 600 is a ToF-based system, illuminator 602 generates light pulses. In other words, illuminator 602 can modulate the amplitude of emitted light 606. In such examples, sensor 604 detects return light 610 from the light pulses 606 generated by illuminator 602. Ranging system 600 can then determine the distance to object 608 from which light 606 was backscattered based on the delay between the time when light 606 was emitted and detected and the known speed of light in air. In some examples, illuminator 602 can modulate the phase of emitted light 606 instead of (or in addition to) modulating the amplitude of emitted light 606. In such examples, sensor 604 can detect the phase of light 610 returned from object 608 and determine the distance to a point on object 608 using the speed of light and the time difference between when illuminator 602 generates light 606 at a particular phase and when sensor 604 detects return light 610 at the particular phase.

[0253] In other examples, a point cloud can be generated without using illuminator 602. For example, in some examples, sensor 604 of ranging system 600 can include two or more optical cameras. In such an example, ranging system 600 can use the optical cameras to capture stereo images of an environment including object 608. Ranging system 600 can include point cloud generator 616, which can calculate disparities between locations in the stereo images. Ranging system 600 can then use the disparities to determine the distance to the locations shown in the stereo images. Based on these distances, point cloud generator 616 can generate a point cloud.

[0254] Sensor 604 may also detect other properties of object 608, such as color and reflectance information. Figure 6 In the example of , the point cloud generator 616 can generate a point cloud based on the signal 614 generated by the sensor 604. The ranging system 600 and / or the point cloud generator 616 can form a data source 104 ( Figure 1 ). Thus, the point cloud generated by the ranging system 600 can be encoded and / or decoded according to any of the techniques of this disclosure.

[0255] Figure 7 is a conceptual diagram illustrating an example vehicle-based scenario in which one or more techniques of this disclosure may be used. Figure 7 In the example of FIG, the vehicle 700 includes a ranging system 702. The ranging system 702 can be referenced Figure 7 Although Figure 7 Although not shown in the example of FIG, the vehicle 700 may also include a data source, such as the data source 104 ( Figure 1 ), and a G-PCC encoder, such as G-PCC encoder 200 ( Figure 1 ).exist Figure 7 In the example of FIG, a range measurement system 702 emits a laser beam 704, which is reflected from a pedestrian 706 or other object in the road. The data source of the vehicle 700 can generate a point cloud based on the signal generated by the range measurement system 702. The G-PCC encoder of the vehicle 700 can encode the point cloud to generate a bit stream 708, such as a geometry bit stream ( Figure 2 ) and attribute bitstream ( Figure 2 ). The bitstream 708 may include significantly fewer bits than the unencoded point cloud obtained by the G-PCC encoder.

[0256] The output interface of the vehicle 700 (eg, the output interface 108 ( Figure 1 )) can send bitstream 708 to one or more other devices. Bitstream 808 may include significantly fewer bits than the unencoded point cloud obtained by the G-PCC encoder. Therefore, vehicle 700 can send bitstream 708 to other devices more quickly than unencoded point cloud data. In addition, bitstream 708 may require less data storage capacity.

[0257] exist Figure 7 In the example of FIG, vehicle 700 may send a bitstream 708 to another vehicle 710. Vehicle 710 may include a G-PCC decoder, such as G-PCC decoder 300 ( Figure 1 ). The G-PCC decoder of vehicle 710 can decode bitstream 708 to reconstruct the point cloud. Vehicle 710 can use the reconstructed point cloud for various purposes. For example, vehicle 710 can determine based on the reconstructed point cloud that pedestrian 706 is in the road ahead of vehicle 700 and therefore begin to slow down, for example, even before the driver of vehicle 710 realizes that pedestrian 706 is in the road. Therefore, in some examples, vehicle 710 can perform autonomous navigation operations based on the reconstructed point cloud.

[0258] Additionally or alternatively, vehicle 700 can send bitstream 708 to server system 712. Server system 712 can use bitstream 708 for various purposes. For example, server system 712 can store bitstream 708 for subsequent reconstruction of the point cloud. In this example, server system 712 can use the point cloud along with other data (e.g., vehicle telemetry data generated by vehicle 700) to train an autonomous driving system. In other examples, server system 712 can store bitstream 708 for subsequent reconstruction in a forensic collision investigation (e.g., if vehicle 700 collides with pedestrian 706).

[0259] Figure 8 is a conceptual diagram illustrating an example extended reality system in which one or more techniques of the present disclosure may be used. Extended reality (XR) is a term used to encompass a range of technologies, including augmented reality (AR), mixed reality (MR), and virtual reality (VR). Figure 8 In the example of FIG, a user 800 is located at a first location 802. The user 800 wears an XR headset 804. As an alternative to the XR headset 804, the user 800 may use a mobile device (e.g., a mobile phone, a tablet, etc.). The XR headset 804 includes a depth detection sensor, such as an ranging system, which detects the position of a point on an object 806 at the location 802. The data source of the XR headset 804 may use the signal generated by the depth detection sensor to generate a point cloud representation of the object 806 at the location 802. The XR headset 804 may include a G-PCC encoder (e.g., Figure 1 G-PCC encoder 200), which is configured to encode the point cloud to generate a bitstream 808.

[0260] The XR headset 804 may transmit a bitstream 808 (e.g., via a network such as the internet) to an XR headset 810 worn by a user 812 at a second location 814. The XR headset 810 may decode the bitstream 808 to reconstruct a point cloud. The XR headset 810 may use the point cloud to generate an XR visualization (e.g., an AR, MR, or VR visualization) representing an object 806 at location 802. Thus, in some examples, such as when the XR headset 810 generates a VR visualization, the user 812 may have a 3D immersive experience of location 802. In some examples, the XR headset 810 may determine the location of a virtual object based on the reconstructed point cloud. For example, the XR headset 810 may determine that the environment (e.g., location 802) includes a flat surface based on the reconstructed point cloud, and then determine that a virtual object (e.g., a cartoon character) is to be positioned on the flat surface. The XR headset 810 may generate an XR visualization in which the virtual object is at the determined location. For example, the XR headset 810 may display a cartoon character sitting on a flat surface.

[0261] Figure 9 is a conceptual diagram illustrating an example mobile device system in which one or more techniques of this disclosure may be used. Figure 9 In an example of FIG, a mobile device 900, such as a mobile phone or tablet, includes a range-finding system, such as a LIDAR system, that detects the positions of points on an object 902 in the environment of the mobile device 900. A data source of the mobile device 900 may use a signal generated by a depth-detecting sensor to generate a point cloud representation of the object 902. The mobile device 900 may include a G-PCC encoder (e.g., Figure 1 , which is configured to encode the point cloud to generate a bitstream 904. Figure 9 In an example, the mobile device 900 can send a bit stream to a remote device 906 (e.g., a server system or other mobile device). The remote device 906 can decode the bit stream 904 to reconstruct the point cloud. The remote device 906 can use the point cloud for various purposes. For example, the remote device 906 can use the point cloud to generate an environmental map of the mobile device 900. For example, the remote device 906 can generate a map of the interior of a building based on the reconstructed point cloud. In another example, the remote device 906 can generate an image (e.g., computer graphics) based on the point cloud. For example, the remote device 906 can use the points of the point cloud as vertices of a polygon and use the color attributes of the points as the basis for coloring the polygon. In some examples, the remote device 906 can use the reconstructed point cloud for facial recognition or other security applications.

[0262] Figure 10A and Figure 10B An example of this process is shown at bin n, where Figure 10A In example 201, the range at bin n includes the probability (p) of the LPS given a specific context state (σ) σ ) given by RangeMPS and RangeLPS. Example 201 shows an update of the range at bin n+1 when the value of bin n equals MPS. In this example, the lower limit remains unchanged, but the range value at bin n+1 is reduced to the value of RangeMPS at bin n. Figure 10B Example 203 shows an update of the range at bin n+1 when the value of bin n is not equal to the MPS (i.e., equal to the LPS). In this example, the lower limit is moved to the lower range value of RangeLPS at bin n, and furthermore, the range value at bin n+1 is reduced to the value of RangeLPS at bin n.

[0263] In some examples, the range can be represented using 9 bits and the lower limit can be represented using 10 bits. There is a renormalization process that maintains the range and lower limit with sufficient accuracy. Renormalization occurs whenever the range is less than 256. Therefore, after renormalization, the range is always equal to or greater than 256. Depending on the value of the range and lower limit, the BAC outputs a '0' or '1' to the bitstream, or updates an internal variable (called BO: bits-outstanding) for future output. Figure 11 An example of a BAC output that depends on the range is shown. For example, when the range and lower limit are above a certain threshold (e.g., 512), a '1' is output to the bitstream. When the range and lower limit are below a certain threshold (e.g., 512), a '0' is output to the bitstream. When the range and lower limit are between certain thresholds, nothing is output to the bitstream. Instead, the BO value is incremented and the next bin is encoded.

[0264] As mentioned above, arithmetic coding methods can be used to provide high compression efficiency. This is achieved by first converting non-binary syntax elements into binary representations (e.g., 0, 1) using a process called binarization. The resulting conversion entries are called bins or bin strings. These bins or bin strings are then fed into the arithmetic coding process. Figure 11 An example context-adaptive binary arithmetic coding (CABAC) encoding stage is shown. The example CABAC encoding stage can be implemented in a G-PCC encoder, for example, by Figure 2 The arithmetic coding unit 214 and / or the arithmetic coding unit 226 of the G-PCC encoder 200 are implemented.

[0265] In some examples of G-PCC, context-adaptive binary arithmetic coding (CABAC) can be used to generate bins through a binarization process. For each encoded bin value, an appropriate context model is selected. These context models are used to encode each bin value into output bits based on the bin probability value. When the probability of a bin being 0 or 1 is the same, the CABAC engine bypasses the context modeling and bin encoding. This is the bypass encoding and decoding stage discussed below. Otherwise, when the bin value is encoded and the model is based on the probability of the bin value, an appropriate context model is specified. As the encoder encodes more bins, the context is adjusted. Finally, the context-encoded bin value or the original bitstream is sent or otherwise provided to the decoder.

[0266] Figure 12 is a block diagram of an example arithmetic coding unit 214 that can be configured to perform CABAC according to the techniques of this disclosure. Syntax elements 1180 are input to arithmetic coding unit 214. If the syntax element is already a binary-valued syntax element (e.g., a flag or other syntax element that has only values ​​of 0 and 1), the binarization step can be skipped. If the syntax element is a non-binary-valued syntax element (e.g., a syntax element that can have values ​​other than 1 or 0), the non-binary-valued syntax element is binarized by binarizer 1200. Binarizer 1200 performs a mapping of the non-binary-valued syntax element into a sequence of binary decisions. These binary decisions are often referred to as "bins." For example, for transform coefficient levels, the level value can be broken down into consecutive bins, with each bin indicating whether the absolute value of the coefficient level is greater than a certain value. For example, bin 0 (sometimes called a significance flag) indicates whether the absolute value of the transform coefficient level is greater than 0. Bin 1 indicates whether the absolute value of the transform coefficient level is greater than 1, and so on. A unique mapping can be developed for each non-binary-valued syntax element.

[0267] Each bin generated by the binarizer 1200 is fed to the binary arithmetic coding side of the arithmetic coding unit 214. That is, for a predetermined set of non-binary valued syntax elements, each bin type (e.g., bin 0) is coded before the next bin type (e.g., bin 1). Coding can be performed in either normal mode or bypass mode. In bypass mode, the bypass coding engine 1260 performs arithmetic coding using a fixed probability model, for example, using Golomb-Rice or exponential Golomb coding. Bypass mode is typically used for more predictable syntax elements.

[0268] The codec design in normal mode performs CABAC. Normal mode CABAC is used to encode and decode bin values, where the probability of the bin value is predictable given the value of the previously encoded bin. The probability that a bin is an LPS is determined by the context modeler 1220. The context modeler 1220 outputs the bin value and the probability state of the context (e.g., the probability state σ, including the value of the LPS and the probability of the LPS occurring). The context can be the initial context of a series of bins, or can be determined based on the encoded values ​​of the previously encoded bins. The identity of the context can be expressed and / or determined based on the value of the variable ctxInc (context increment, e.g., the value of ctxInc representing the increment applied to the previous context). As described above, the context modeler 1220 can update the state based on whether the received bin is an MPS or an LPS. After the context modeler 1220 determines the context and the probability state σ, the normal coding engine 1240 performs BAC on the bin value.

[0269] Figure 13 is a block diagram of an example arithmetic decoding unit 302 that may be configured to perform CABAC according to the techniques of this disclosure. Figure 13 The arithmetic decoding unit 302 is used with Figure 12 CABAC is performed in the reverse manner of the arithmetic coding unit 214 described in

[15] . The coded bits from the bitstream 2180 are input to the arithmetic decoding unit 302. Depending on whether the coded bits were entropy coded using normal mode or bypass mode, the coded bits are fed to either the context modeler 2200 or the bypass decoding engine 2220. If the coded bits were coded in bypass mode, the bypass decoding engine will use, for example, Golomb-Rice or exponential Golomb decoding to retrieve the bins of binary-valued syntax elements or non-binary syntax elements.

[0270] If the coded bits are coded in a conventional mode, the context modeler 2200 may determine a probability model for the coded bits, and the conventional decoding engine 2240 may decode the coded bits to generate a bin of a non-binary valued syntax element (or the syntax element itself, if it is a binary value). After the context modeler 2200 determines the context and the probability state σ, the conventional decoding engine 2240 performs BAC to decode the bin value. In other words, the conventional decoding engine 2240 may determine the probability state of the context and decode the bin based on the previously coded bin and the current range. After decoding the bin, the context modeler 2200 may update the probability state of the context based on the window size and the decoded bin value.

[0271] Figure 14 is a flow chart illustrating an example method for encoding a current prediction tree node according to one or more techniques of this disclosure. The current prediction tree node (PTN) may be included in the point cloud. Although with respect to the G-PCC encoder 200 ( Figure 1 and Figure 2 ), but it should be understood that other devices may be configured to perform the same Figure 14 For example, a G-PCC decoder, such as the G-PCC decoder 300 ( Figure 1 and Figure 3 ) can be executed with Figure 14 methods that are complementary to the ones used in the previous example (e.g., decoding instead of encoding).

[0272] The G-PCC encoder 200 may obtain values ​​of quadratic residuals for geometric encoding of a current prediction tree node (PTN) of a point cloud (1402). As described above, when using angular mode for predictive geometric encoding in G-PCC, the G-PCC encoder 200 may perform prediction in the (r, φ, i) domain. Due to rounding errors, encoding and decoding of r, φ, i may be lossy. In some examples, this loss may be reduced or eliminated by encoding and decoding a second set of residuals (referred to as quadratic residuals) that may be in the Cartesian domain. For example, the current PTN may include three quadratic residuals (r, φ, i). x ,r y ,r z ), one or more of which can be used Figure 14 encoding technology.

[0273] The G-PCC encoder 200 may encode the value of the quadratic residual. To encode the value of the quadratic residual, the G-PCC encoder 200 may encode a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value that specifies the absolute value of the value of the quadratic residual minus 2 (1404); and encode a suffix bin of the syntax element using a second set of contexts that is different from the first set of CABAC contexts (1406). For example, the arithmetic coding unit 214 of the G-PCC encoder 200 may encode the prefix bin of the ptn_sec_residual_abs_minus2 syntax element using a context having a context index (ctxIdx) between 0 and a-1, and encode the suffix bin of the ptn_sec_residual_abs_minus2[k] syntax element using a context having a context index (ctxIdx) between a and a+b-1. In some examples, a may be 5 and b may be 4.

[0274] In some examples, in addition to the syntax element having a value specifying the absolute value of the value of the quadratic residual minus 2, the G-PCC encoder 200 may encode one or more other syntax elements that specify the value of the quadratic residual. As one example, the G-PCC encoder 200 may encode a syntax element having a value specifying whether the value of the quadratic residual is equal to zero (e.g., ptn_sec_residual_eq0_flag). As another example, if the value of the quadratic residual is not equal to zero, the G-PCC encoder 200 may encode a syntax element having a value specifying the sign of the value of the quadratic residual (e.g., ptn_sec_residual_sign_flag) and a syntax element having a value specifying whether the value of the quadratic residual is greater than one (e.g., ptn_sec_residual_eq1_flag).

[0275] However, as discussed above and in accordance with one or more techniques of this disclosure, the G-PCC encoder 200 can avoid encoding a syntax element that specifies the absolute value of the quadratic residual minus 17 (e.g., ptn_sec_residual_abs_minus17), even if the absolute value of the quadratic residual is greater than 17. By not encoding the syntax element that specifies the absolute value of the quadratic residual minus 17, and by context-coding the prefix and suffix of the syntax element that specifies the absolute value of the quadratic residual minus 2, the G-PCC encoder 200 can reduce the number of contexts and / or context-coded bins used to signal the quadratic residual. In this way, the techniques of this disclosure can reduce the computational complexity of point cloud encoding and decoding.

[0276] The techniques of this disclosure may be applicable to signaling other than quadratic residuals. For example, the G-PCC encoder 200 may obtain a value for a phi multiplier for geometry encoding and decoding a current prediction tree node of a point cloud (1408) and encode the value of the phi multiplier by encoding at least a syntax element (e.g., ptn_phi_mult_abs_minus9) having a value that specifies the absolute value of the value of the phi multiplier minus 9 (1410). However, similar to the quadratic residual, the G-PCC encoder 200 may avoid encoding a syntax element that specifies the absolute value of the phi multiplier minus 17 (e.g., even if the absolute value of the phi multiplier is greater than 17).

[0277] As described above, in some examples, the G-PCC encoder can signal the number of direct child nodes of the PTN. For example, the G-PCC encoder 200 can encode a syntax element (e.g., Ptn_child_cnt) that represents the number of direct child nodes of the current prediction tree node in the geometric prediction tree representing the point cloud. In some examples, the G-PCC encoder 200 can encode the syntax element using a fixed length codec (e.g., binarization). For example, the G-PCC encoder 200 can use the following table to encode the syntax element representing the number of direct child nodes.

[0278] Number of child nodes Ptn_child_cnt 0 00 1 01 2 10 3 11

[0279] However, in some examples, it may be undesirable to utilize a fixed length codec. For example, the probability distribution of the number of child nodes may result in more PTNs having one child node than PTNs having 0, 2, or 3 child nodes. In accordance with one or more techniques of the present disclosure, the G-PCC encoder 200 may utilize a variable length codec to encode a syntax element (e.g., Ptn_child_cnt) (1412) that represents the number of direct child nodes of a current prediction tree node present in a geometric prediction tree representing a point cloud. For example, the G-PCC encoder 200 may utilize the following table to encode the syntax element that represents the number of direct child nodes.

[0280] Number of child nodes Ptn_child_cnt 0 10 1 0 2 110 3 111

[0281] As can be seen from the above table, variable-length encoding and decoding of the syntax element representing the number of direct child nodes may include using a shorter codeword when the number of direct child nodes is 1 than when the number of direct child nodes is 0 (for example, using the codeword "0" when the number of child nodes is 1, and using the codeword "10" when the number of direct child nodes is 0).

[0282] Figure 15 is a flow chart illustrating an example method for decoding a current prediction tree node according to one or more techniques of this disclosure. The current prediction tree node (PTN) may be included in the point cloud. Although with respect to the G-PCC decoder 300 ( Figure 1 and Figure 3 ), but it should be understood that other devices may be configured to perform the same Figure 15 For example, a G-PCC encoder, such as G-PCC encoder 200 ( Figure 1 and Figure 2 ) can be executed with Figure 15 The method is complementary to the method of (e.g., encoding as opposed to decoding, such as in a reconstruction loop performed by GRU 216).

[0283] The G-PCC decoder 300 can select a prediction mode from a plurality of predefined prediction modes for performing predictive geometric coding on the position of the current prediction tree node of the point cloud. As described above, the plurality of prediction modes can include at least a zero prediction mode and an incremental prediction mode. In some examples, the G-PCC decoder 300 can select a prediction mode based on the value of a syntax element. For example, the geometric arithmetic decoder unit 302 can decode a ptn_pred_mode syntax element having a value that specifies which prediction mode to select.

[0284] In response to selecting the zero prediction mode (1502), the G-PCC decoder 300 may perform zero prediction to determine the location of the current PTN. To perform zero prediction, the G-PCC decoder 300 may determine the radius, azimuth, and laser index of the parent node of the current prediction tree node (1504). For example, the G-PCC decoder 300 may obtain the radius, azimuth, and laser index of the parent node from a memory (e.g., as previously determined by the G-PCC decoder 300).

[0285] The G-PCC decoder 300 may infer the azimuth and laser index of the predicted position of the current prediction tree node as the azimuth and laser index of the parent node (1506). For example, the G-PCC decoder 300 may copy the azimuth and laser index of the parent node as the azimuth and laser index of the predicted position of the current node.

[0286] The G-PCC decoder 300 may infer the radius of the predicted position to be the minimum radius value (1508). For example, the G-PCC decoder 300 may always set the radius of the predicted position to the minimum radius value. In some examples, the minimum radius value may always be zero. In some examples, the minimum radius value may be greater than zero. For example, the G-PCC decoder 300 may decode a syntax element (e.g., from a slice header) that specifies the minimum radius value.

[0287] In order to complete the execution of zero prediction, the G-PCC decoder 300 can determine the position of the current prediction tree node based on the predicted position of the current prediction tree node (1510). For example, the G-PCC decoder 300 can obtain a residual radius value representing the difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node. In some examples, such as when the selected mode is the zero prediction mode, the G-PCC decoder 300 can infer that the sign of the residual radius value is positive (for example, and avoid having to signal whether the sign is positive or negative). The G-PCC decoder 300 can add the residual radius value to the minimum radius value (for example, the radius value of the predicted position of the current PTN) to obtain the radius value of the position of the current PTN. The G-PCC decoder 300 can similarly obtain and add the residuals of other components (for example, azimuth and laser index).

[0288] In some examples, the G-PCC decoder 300 can modify decoding based on the number of lasers used to generate the point cloud. For example, the G-PCC decoder 300 can determine the number of lasers used to capture light detection and ranging (LIDAR) data representing the point cloud (1512); and in response to determining that the number of lasers is 1, infer that the laser index of all nodes in the point cloud is the same value (e.g., the laser index value is 0) (1514). In this way, the G-PCC decoder 300 can avoid having to signal and / or predict the laser index. In this way, the technology of the present disclosure can reduce the number of bits required to represent the point cloud and / or reduce the complexity of point cloud encoding and decoding.

[0289] The following numbered clauses may describe one or more aspects of the present disclosure:

[0290] Clause 1A. A method of processing a point cloud, the method comprising: obtaining a value of a quadratic residual for geometric encoding of the point cloud, the value being greater than 17; and encoding and decoding the value of the quadratic residual without encoding and decoding a syntax element specifying the value of the quadratic residual minus 17.

[0291] Clause 2A. The method of clause 1A, wherein the syntax element comprises a ptn_sec_residual_abs_minus17 syntax element.

[0292] Clause 3A. The method of clause 1A or 2A, further comprising: obtaining a value of a phi multiplier for geometric encoding and decoding of a point cloud, the value of the phi multiplier being greater than 17; and encoding and decoding the value of the phi multiplier without encoding and decoding a syntax element that specifies the value of the phi multiplier minus 17.

[0293] Clause 4A. The method of clause 3A, wherein the syntax element specifying the value of the phi multiplier minus 17 comprises a ptn_phi_mult_abs_minus17 syntax element.

[0294] Clause 5A. The method of clause 3A or clause 4A, further comprising: encoding and decoding a syntax element that specifies a value of the phi multiplier minus 9.

[0295] Clause 6A. The method of any of clauses 1A-5A, wherein encoding the value of the quadratic residual comprises encoding bits of a syntax element specifying the value of the quadratic residual minus N using an exponential Golomb codec with an a prefix context and a b suffix context.

[0296] Clause 7A. The method of clause 6A, wherein N is 2.

[0297] Clause 8A. The method of clause 6A or 7A, wherein a is 5.

[0298] Clause 9A. The method of any of clauses 6A-8A, wherein b is 4.

[0299] Clause 1B. A method for processing a point cloud, the method comprising: encoding and decoding a syntax element using a variable length codec, the syntax element representing the number of direct child nodes of a current prediction tree node present in a geometric prediction tree representing the point cloud; and encoding and decoding a syntax element representing a pattern for predicting a position associated with the current prediction tree node using a variable length codec.

[0300] Clause 2B. The method of clause 1B, wherein the syntax element representing the number of direct child nodes of the current prediction tree node present in the geometry prediction tree comprises a ptn_child_cnt syntax element.

[0301] Clause 3B. The method of clause 1B or 2B, wherein the syntax element representing a mode for predicting a position associated with the current prediction tree node comprises a ptn_pred_mode syntax element.

[0302] Clause 1C. A method of processing a point cloud, the method comprising: in response to determining that a single laser was used to capture light detection and ranging (LIDAR) data representing the point cloud, refraining from signaling a laser index value for the single laser.

[0303] Clause 1D. A method of processing a point cloud, the method comprising: performing zero prediction of the point cloud based on azimuth, laser index, and sign inference of parent neighbors.

[0304] Clause 1E. A method for encoding a point cloud, the method comprising: obtaining a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of the point cloud; and encoding the value of the quadratic residual, wherein encoding the value comprises: encoding a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and encoding a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0305] Clause 2E. The method of clause 1E, wherein the syntax element comprises a ptn_sec_residual_abs_minus2 syntax element.

[0306] Clause 3E. The method of any of clauses 1E-2E, wherein the absolute value of the quadratic residual is greater than 17, and wherein encoding the value of the quadratic residual does not include encoding a syntax element that specifies the absolute value of the quadratic residual minus 17.

[0307] Clause 4E. A method according to any of clauses 1E-3E, wherein the first set of CABAC contexts includes CABAC contexts having context indices between 0 and a-1, and wherein the second set of CABAC contexts includes CABAC contexts having context indices between a and a+b-1.

[0308] Clause 5E. The method of clause 4E, wherein a is 5 and wherein b is 4.

[0309] Clause 6E. A method according to any of clauses 1E-5E, wherein the syntax element includes a first syntax element, and wherein encoding the value of the quadratic residual further comprises: encoding a second syntax element having a value specifying whether the value of the quadratic residual is equal to zero; if the value of the quadratic residual is not equal to zero: encoding a third syntax element having a value of a sign specifying the value of the quadratic residual; and encoding a fourth syntax element having a value specifying whether the value of the quadratic residual is greater than one; wherein if the value of the quadratic residual is greater than one, the first syntax element is encoded.

[0310] Clause 7E. A method according to any of clauses 1E-6E, wherein the current prediction tree node is a first prediction tree node, wherein the syntax element includes a first syntax element, and the method further includes: obtaining a value of a phi multiplier for geometrically encoding and decoding a second prediction tree node of the point cloud; and encoding the value of the phi multiplier, wherein encoding the value of the phi multiplier includes: encoding a fifth syntax element having a value that is the absolute value of the value of the specified phi multiplier minus 9.

[0311] Clause 8E. The method of clause 7E, wherein the absolute value of the phi multiplier is greater than 17, and wherein encoding the value of the phi multiplier does not include encoding a syntax element that specifies the value of the phi multiplier minus 17.

[0312] Clause 9E. A method according to any of clauses 1E-8E, wherein the current prediction tree node is a first prediction tree node and wherein the syntax element includes a first syntax element, the method further comprising: encoding a sixth syntax element using a variable length codec, the sixth syntax element having a value representing the number of direct child nodes of the second prediction tree node present in the geometric prediction tree representing the point cloud.

[0313] Clause 10E. The method of clause 9E, wherein the sixth syntax element representing the number of direct child nodes of the second prediction tree node present in the geometry prediction tree comprises a ptn_child_cnt syntax element.

[0314] Clause 11E. The method of clause 9E, wherein encoding the sixth syntax element using a variable length codec comprises using a shorter codeword if the number of direct child nodes is one than if the number of direct child nodes is zero.

[0315] Clause 12E. A method for decoding a point cloud, the method comprising: obtaining a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of the point cloud; and decoding the value of the quadratic residual, wherein encoding the value comprises: decoding a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and decoding a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0316] Clause 13E. The method of clause 12E, wherein the syntax element comprises a ptn_sec_residual_abs_minus2 syntax element.

[0317] Clause 14E. The method of any of clauses 12E-13E, wherein the absolute value of the quadratic residual is greater than 17, and wherein decoding the value of the quadratic residual does not include decoding a syntax element that specifies the absolute value of the quadratic residual minus 17.

[0318] Clause 15E. A method according to any of clauses 12E-14E, wherein the first set of CABAC contexts includes CABAC contexts having context indices between 0 and a-1, and wherein the second set of CABAC contexts includes CABAC contexts having context indices between a and a+b-1.

[0319] Clause 16E. The method of clause 15E, wherein a is 5, and wherein b is 4.

[0320] Clause 17E. A method according to any of clauses 12E-16E, wherein the syntax elements include a first syntax element, and wherein decoding the value of the quadratic residual further comprises: decoding a second syntax element having a value specifying whether the value of the quadratic residual is equal to zero; if the value of the quadratic residual is not equal to zero: decoding a third syntax element having a value of a symbol specifying the value of the quadratic residual; and decoding a fourth syntax element having a value specifying whether the value of the quadratic residual is greater than one; wherein if the value of the quadratic residual is greater than one, the first syntax element is decoded.

[0321] Clause 18E. A method according to any of clauses 12E-17E, wherein the current prediction tree node is a first prediction tree node, wherein the syntax element includes a first syntax element, and the method further includes: obtaining a value of a phi multiplier for geometrically encoding and decoding a second prediction tree node of the point cloud; and decoding the value of the phi multiplier, wherein decoding the value of the phi multiplier includes: decoding a fifth syntax element having a value that is the absolute value of the value of the specified phi multiplier minus 9.

[0322] Clause 19E. The method of clause 18E, wherein the absolute value of the phi multiplier is greater than 17, and wherein decoding the value of the phi multiplier does not include decoding a syntax element that specifies the value of the phi multiplier minus 17.

[0323] Clause 20E. A method according to any of clauses 12E-19E, wherein the current prediction tree node is a first prediction tree node, wherein the syntax elements include a first syntax element, and the method further comprises: decoding a sixth syntax element using variable length coding, the sixth syntax element having a value representing the number of direct child nodes of the second prediction tree node present in the geometric prediction tree representing the point cloud.

[0324] Clause 21E. The method of clause 20E, wherein the sixth syntax element representing the number of direct child nodes of the second prediction tree node present in the geometry prediction tree comprises a ptn_child_cnt syntax element.

[0325] Clause 22E. The method of clause 20E, wherein decoding the sixth syntax element using the variable length codec comprises using a shorter codeword if the number of direct child nodes is one than if the number of direct child nodes is zero.

[0326] Item 23E. A device for encoding a point cloud, the device comprising: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in circuitry and configured to: obtain a value of a quadratic residual for geometrically encoding and decoding a current prediction tree node of the point cloud; and encode the value of the quadratic residual, wherein to encode the value, the one or more processors are configured to: encode a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and encode a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0327] Clause 24E. The apparatus of clause 23E, wherein the syntax element comprises a ptn_sec_residual_abs_minus2 syntax element.

[0328] Clause 25E. An apparatus according to any of clauses 23E-24E, wherein the absolute value of the quadratic residual is greater than 17, and wherein to encode the value of the quadratic residual, the one or more processors are not configured to encode a syntax element that specifies the absolute value of the quadratic residual minus 17.

[0329] Clause 26E. An apparatus as described in any of clauses 23E-25E, wherein the first set of CABAC contexts includes CABAC contexts having context indices between 0 and a-1, and wherein the second set of CABAC contexts includes CABAC contexts having context indices between a and a+b-1.

[0330] Clause 27E. The apparatus of clause 26E, wherein a is 5 and wherein b is 4.

[0331] Clause 28E. A device according to any of clauses 23E-27E, wherein the syntax elements include a first syntax element, and wherein, in order to further encode the value of the quadratic residual, the one or more processors are configured to: encode a second syntax element having a value specifying whether the value of the quadratic residual is equal to zero; in the case where the value of the quadratic residual is not equal to zero: encode a third syntax element having a value of a symbol specifying the value of the quadratic residual; and encode a fourth syntax element having a value specifying whether the value of the quadratic residual is greater than one; wherein if the value of the quadratic residual is greater than one, the first syntax element is encoded.

[0332] Clause 29E. A device according to any of clauses 23E-29E, wherein the current prediction tree node is a first prediction tree node, wherein the syntax element includes a first syntax element, and wherein the one or more processors are further configured to: obtain a value of a phi multiplier for geometrically encoding and decoding a second prediction tree node of the point cloud; and encode the value of the phi multiplier, wherein, to encode the value of the phi multiplier, the one or more processors are configured to: encode a fifth syntax element having a value that is the absolute value of the value of the specified phi multiplier minus 9.

[0333] Clause 30E. The apparatus of clause 29E, wherein the absolute value of the phi multiplier is greater than 17, and wherein to encode the value of the phi multiplier, the one or more processors are not configured to encode a syntax element that specifies the value of the phi multiplier minus 17.

[0334] Clause 31E. A device according to any of clauses 23E-30E, wherein the current prediction tree node is a first prediction tree node, wherein the syntax elements include a first syntax element, and wherein the one or more processors are further configured to: encode a sixth syntax element using a variable length codec, the sixth syntax element having a value representing the number of direct child nodes of the second prediction tree node present in a geometric prediction tree representing a point cloud.

[0335] Clause 32E. The apparatus of clause 31E, wherein the sixth syntax element representing the number of direct child nodes of the second prediction tree node present in the geometry prediction tree comprises a ptn_child_cnt syntax element.

[0336] Clause 33E. The apparatus of clause 31E, wherein, to encode the sixth syntax element using variable length codec, the one or more processors are configured to use a shorter codeword when the number of direct child nodes is one than when the number of direct child nodes is zero.

[0337] Item 34E. A device for decoding a point cloud, the device comprising: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in circuitry and configured to: obtain a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of the point cloud; and decode the value of the quadratic residual, wherein to decode the value, the one or more processors are configured to: decode a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value specifying an absolute value of the value of the quadratic residual minus 2; and decode a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0338] Clause 35E. The apparatus of clause 34E, wherein the syntax element comprises a ptn_sec_residual_abs_minus2 syntax element.

[0339] Clause 36E. An apparatus according to any of clauses 34E-35E, wherein the absolute value of the quadratic residual is greater than 17, and wherein to decode the value of the quadratic residual, the one or more processors are not configured to decode a syntax element that specifies the absolute value of the quadratic residual minus 17.

[0340] Clause 37E. An apparatus as described in any of clauses 34E-36E, wherein the first set of CABAC contexts includes CABAC contexts having context indices between 0 and a-1, and wherein the second set of CABAC contexts includes CABAC contexts having context indices between a and a+b-1.

[0341] Clause 38E. The apparatus of clause 37E, wherein a is 5 and wherein b is 4.

[0342] Clause 39E. A device according to any of clauses 34E-38E, wherein the syntax elements include a first syntax element, and wherein, in order to further decode the value of the quadratic residual, the one or more processors are configured to: decode a second syntax element having a value specifying whether the value of the quadratic residual is equal to zero; in the case where the value of the quadratic residual is not equal to zero: decode a third syntax element having a value of a symbol specifying the value of the quadratic residual; and decode a fourth syntax element having a value specifying whether the value of the quadratic residual is greater than one; wherein if the value of the quadratic residual is greater than one, the first syntax element is decoded.

[0343] Clause 40E. A device according to any of clauses 34E-39E, wherein the current prediction tree node is a first prediction tree node, wherein the syntax element includes a first syntax element, and wherein the one or more processors are further configured to: obtain a value of a phi multiplier for geometrically encoding and decoding a second prediction tree node of the point cloud; and decode the value of the phi multiplier, wherein, in order to decode the value of the phi multiplier, the one or more processors are configured to: decode a fifth syntax element having a value that is the absolute value of the value of the specified phi multiplier minus 9.

[0344] Clause 41E. An apparatus as recited in any of clauses 34E-40E, wherein the absolute value of the phi multiplier is greater than 17, and wherein to decode the value of the phi multiplier, the one or more processors are not configured to decode a syntax element that specifies the value of the phi multiplier minus 17.

[0345] Clause 42E. A device according to any of clauses 34E-41E, wherein the current prediction tree node is a first prediction tree node, wherein the syntax elements include a first syntax element, and wherein the one or more processors are further configured to: decode a sixth syntax element using variable length coding, the sixth syntax element having a value representing the number of direct child nodes of the second prediction tree node present in a geometric prediction tree representing a point cloud.

[0346] Clause 43E. The apparatus of clause 42E, wherein the sixth syntax element representing the number of direct child nodes of the second prediction tree node present in the geometry prediction tree comprises a ptn_child_cnt syntax element.

[0347] Clause 44E. The apparatus of clause 42E, wherein, to decode the sixth syntax element using variable length codec, the one or more processors are configured to use a shorter codeword when the number of direct child nodes is one than when the number of direct child nodes is zero.

[0348] Clause 45E. A computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud encoder to: obtain a value of a quadratic residual for geometrically encoding and decoding a current prediction tree node of a point cloud; and encode the value of the quadratic residual, wherein the instructions that cause the one or more processors to encode the value include instructions that cause the one or more processors to: encode a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value that specifies the absolute value of the value of the quadratic residual minus 2; and encode a suffix bin of the syntax element using a second set of CABAC contexts that is different from the first set of CABAC contexts.

[0349] Clause 46E. A computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud decoder to: obtain a value of a quadratic residual for geometric encoding and decoding a current prediction tree node of a point cloud; and decode the value of the quadratic residual, wherein the instructions that cause the one or more processors to decode the value include instructions that cause the one or more processors to perform the following operations: decode a prefix bin of a syntax element using a first set of context-adaptive binary arithmetic coding (CABAC) contexts, the syntax element having a value that specifies the absolute value of the value of the quadratic residual minus 2; and decode a suffix bin of the syntax element using a second set of the contexts that is different from the first set of CABAC contexts.

[0350] Clause 1F. A method for decoding a point cloud, the method comprising: selecting a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; in response to selecting the zero prediction mode: determining a radius, an azimuth, and a laser index of a parent node of the current prediction tree node; inferring the azimuth and the laser index of the predicted position of the current prediction tree node to be the azimuth and the laser index of the parent node; inferring the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determining a position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0351] Clause 2F. The method of clause 1F further comprising: in response to selecting the incremental prediction mode: inferring the radius, azimuth, and laser index of the prediction position of the current prediction tree node to be the radius, azimuth, and laser index of the parent node.

[0352] Clause 3F. The method of any of Clauses 1F-2F, wherein the minimum radius value is zero.

[0353] Clause 4F. The method of any of Clauses 1F-3F, wherein the minimum radius value is greater than zero.

[0354] Clause 5F. A method according to any of clauses 1F-4F, wherein determining the position of the current node based on the predicted position includes: obtaining a residual radius value representing the difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node.

[0355] Clause 6F. The method of clause 5F, wherein obtaining the residual radius value comprises: inferring a sign of the residual radius value to be positive in response to selecting the zero prediction mode.

[0356] Clause 7F. The method of any of clauses 1F-6F further comprising: determining a number of lasers used to capture light detection and ranging (LIDAR) data representing the point cloud; and in response to determining that the number of lasers is one, inferring that the laser index of all nodes in the point cloud is the same value.

[0357] Clause 8F. The method of any of clauses 1F-7F, wherein selecting the prediction mode comprises decoding a syntax element having a value indicating the selected prediction mode.

[0358] Clause 9F. A method for encoding a point cloud, the method comprising: selecting a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; wherein the selected mode is the zero prediction mode: determining the radius, azimuth, and laser index of a parent node of the current prediction tree node; inferring the azimuth and laser index of the predicted position of the current prediction tree node to be the azimuth and laser index of the parent node; inferring the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determining the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0359] Clause 10F. The method of Clause 9F further comprising: in response to selecting the incremental prediction mode: extrapolating the radius, azimuth, and laser index of the prediction position of the current prediction tree node to the radius, azimuth, and laser index of the parent node.

[0360] Clause 11F. The method of any of clauses 9F-10F, wherein the minimum radius value is zero.

[0361] Clause 12F. The method of any of clauses 9F-11F, wherein the minimum radius value is greater than zero.

[0362] Clause 13F. A method according to any of clauses 9F-12F, wherein determining the position of the current node based on the predicted position includes: obtaining a residual radius value representing a difference between a radius value of the predicted position of the current prediction tree node and a radius value of the position of the current prediction tree node.

[0363] Clause 14F. The method of clause 13F, wherein obtaining the residual radius value comprises: inferring a sign of the residual radius value to be positive if the selected mode is a zero prediction mode.

[0364] Clause 15F. The method of any of clauses 9F-14F further comprising: determining a number of lasers used to capture light detection and ranging (LIDAR) data representing the point cloud; and in response to determining that the number of lasers is one, inferring that the laser index of all nodes in the point cloud is the same value.

[0365] Clause 16F. The method of any of clauses 9F-15F, wherein selecting the prediction mode comprises encoding a syntax element having a value indicating the selected prediction mode.

[0366] Item 17F. A device for decoding a point cloud, the device comprising: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in circuitry and configured to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; in response to selecting the zero prediction mode: determine a radius, an azimuth, and a laser index of a parent node of the current prediction tree node; infer the azimuth and the laser index of the predicted position of the current prediction tree node to be the azimuth and the laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine a position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0367] Clause 18F. A device according to clause 17F, wherein the one or more processors are further configured to: in response to selecting the incremental prediction mode: infer the radius, azimuth and laser index of the predicted position of the current prediction tree node to the radius, azimuth and laser index of the parent node.

[0368] Clause 19F. The apparatus of any of Clauses 17F-18F, wherein the minimum radius value is zero.

[0369] Clause 20F. The apparatus of any of clauses 17F-19F, wherein the minimum radius value is greater than zero.

[0370] Clause 21F. An apparatus according to any of clauses 17F-20F, wherein, in order to determine the position of the current node based on the predicted position, one or more processors are configured to: obtain a residual radius value representing the difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node.

[0371] Clause 22F. The apparatus of clause 21F, wherein, to obtain the residual radius value, the one or more processors are configured to: infer a positive sign for the residual radius value in response to selecting the zero prediction mode.

[0372] Clause 23F. An apparatus according to any of clauses 17F-22F, wherein the one or more processors are further configured to: determine a number of lasers used to capture light detection and ranging (LIDAR) data representing the point cloud; and in response to determining that the number of lasers is one, infer that the laser index of all nodes in the point cloud is the same value.

[0373] Clause 24F. The apparatus of any of clauses 17F-23F, wherein, to select the prediction mode, the one or more processors are further configured to: decode a syntax element having a value indicative of the selected prediction mode.

[0374] Item 25F. A device for encoding a point cloud, the device comprising: a memory configured to store at least a portion of the point cloud; and one or more processors implemented in circuitry and configured to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; wherein the selected mode is the zero prediction mode: determine a radius, an azimuth, and a laser index of a parent node of the current prediction tree node; infer the azimuth and the laser index of the predicted position of the current prediction tree node to be the azimuth and the laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0375] Clause 26F. A device according to clause 25F, wherein the one or more processors are further configured to: in response to selecting the incremental prediction mode: infer the radius, azimuth and laser index of the predicted position of the current prediction tree node to the radius, azimuth and laser index of the parent node.

[0376] Clause 27F. The apparatus of any of clauses 25F-26F, wherein the minimum radius value is zero.

[0377] Clause 28F. The apparatus of any of clauses 25F-27F, wherein the minimum radius value is greater than zero.

[0378] Clause 29F. A device according to any of clauses 25F-28F, wherein, in order to determine the position of the current node based on the predicted position, one or more processors are configured to: obtain a residual radius value representing the difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node.

[0379] Clause 30F. The apparatus of clause 29F, wherein, to obtain the residual radius value, the one or more processors are configured to: infer a sign of the residual radius value to be positive in response to selecting the zero prediction mode.

[0380] Clause 31F. An apparatus according to any of clauses 25F-30F, wherein the one or more processors are further configured to: determine a number of lasers used to capture light detection and ranging (LIDAR) data representing the point cloud; and in response to determining that the number of lasers is one, infer that the laser index of all nodes in the point cloud is the same value.

[0381] Clause 32F. The apparatus of any of clauses 25F-31F, wherein, to select the prediction mode, the one or more processors are further configured to: encode a syntax element having a value indicative of the selected prediction mode.

[0382] Item 3F. A computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud decoding device to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of a point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; in response to selecting the zero prediction mode: determine a radius, an azimuth, and a laser index of a parent node of the current prediction tree node; infer the azimuth and the laser index of the predicted position of the current prediction tree node to be the azimuth and the laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine a position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0383] Item 34F. A computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud encoding device to: select a prediction mode for performing predictive geometric encoding and decoding of a position of a current prediction tree node of a point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; wherein the selected prediction mode is the zero prediction mode: determine the radius, azimuth, and laser index of a parent node of the current prediction tree node; infer the azimuth and laser index of the predicted position of the current prediction tree node to be the azimuth and laser index of the parent node; infer the radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and determine the position of the current prediction tree node based on the predicted position of the current prediction tree node.

[0384] Clause 1Z. An apparatus for processing a point cloud, the apparatus comprising one or more components for performing the method of any of clauses 1A-1F.

[0385] Clause 2Z. The apparatus of Clause 1Z, wherein the one or more components comprise one or more processors implemented in circuitry.

[0386] Clause 3Z. The apparatus of any of clauses 1Z or 2Z, further comprising a memory storing data representing the point cloud.

[0387] Clause 4Z. The apparatus of any of clauses 1Z-3Z, wherein the apparatus comprises a decoder.

[0388] Clause 5Z. The apparatus of any of clauses 1Z-4Z, wherein the apparatus comprises an encoder.

[0389] Clause 6Z. The apparatus of any of clauses 1Z-5Z, further comprising an apparatus for generating a point cloud.

[0390] Clause 7Z. The apparatus of any of clauses 1Z-6Z, further comprising a display for presenting an image based on the point cloud.

[0391] Clause 8Z. A computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to perform the method of any of clauses 1A-1F.

[0392] The examples in various aspects of this disclosure may be used alone or in any combination.

[0393] It should be appreciated that, depending on the examples, certain actions or events of any technique described herein may be performed in a different order, may be added, combined, or excluded entirely (e.g., not all described actions or events are necessary for the practice of the technique). Furthermore, in some examples, actions or events may be performed in parallel, such as through multithreading, interrupt handling, or multiple processors, rather than sequentially.

[0394] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or codes on a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media corresponding to tangible media (e.g., data storage media), or communication media including any media that facilitates the transfer of a computer program from one place to another (e.g., according to a communication protocol). In this manner, computer-readable media may generally correspond to (1) non-transitory tangible computer-readable storage media or (2) communication media such as signals or carrier waves. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures for implementing the techniques described in this disclosure. A computer program product may include computer-readable media.

[0395] By way of example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory or any other medium that can be used to store the required program code in the form of instructions or data structures and that can be accessed by a computer. In addition, any connection is appropriately referred to as a computer-readable medium. For example, if a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) or wireless technology (such as infrared, radio and microwave) is used to send instructions from a website, server or other remote source, the coaxial cable, fiber optic cable, twisted pair, DSL or wireless technology (such as infrared, radio and microwave) is included in the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals or other temporary media, but rather refer to non-temporary tangible storage media. The disks and optical disks used herein include compact disks (CDs), laser disks, optical disks, digital versatile disks (DVDs), floppy disks and Blu-ray disks, wherein disks typically reproduce data magnetically, while optical disks reproduce data optically with lasers. The above combinations should also be included within the scope of computer-readable media.

[0396] The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Thus, the terms "processor" and "processing circuitry" as used herein may refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described herein. Furthermore, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into a combined codec. Furthermore, these techniques may be fully implemented in one or more circuits or logic elements.

[0397] The techniques of this disclosure can be implemented in a variety of devices or apparatuses, including wireless handsets, integrated circuits (ICs), or IC collections, such as chip collections. Various components, modules, or units are described in this disclosure to emphasize the functional aspects of devices configured to perform the disclosed techniques, but they do not necessarily need to be implemented by different hardware units. Instead, as described above, the various units can be combined in a codec hardware unit, or provided by a collection of interoperable hardware units (including one or more processors as described above) together with appropriate software and / or firmware.

[0398] Various examples have been described. These and other examples are within the scope of the following claims.< / remove>

Claims

1. A method for decoding a point cloud, the method comprising: Selecting a prediction mode for performing predictive geometric coding on a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; Determining the radius, azimuth angle, and laser index of the parent node of the current prediction tree node; In response to selecting the zero prediction mode: Inferring the azimuth angle and the laser index of the predicted position of the current prediction tree node as the azimuth angle and the laser index of the parent node; inferring a radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and Based on the predicted position of the current prediction tree node, the position of the current prediction tree node is determined.

2. The method according to claim 1, further comprising: In response to selecting the incremental prediction mode: The radius, the azimuth angle, and the laser index of the predicted position of the current prediction tree node are extrapolated to the radius, the azimuth angle, and the laser index of the parent node. The method of claim 1 , wherein the minimum radius value is zero. The method of claim 1 , wherein the minimum radius value is greater than zero.

5. The method of claim 1 , wherein determining the position of the current node based on the predicted position comprises: A residual radius value representing a difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node is obtained.

6. The method according to claim 5, wherein obtaining the residual radius value comprises: In response to selecting the zero prediction mode, the sign of the residual radius value is inferred to be positive.

7. The method according to claim 1, further comprising: determining a number of lasers used to capture light detection and ranging (LIDAR) data representing the point cloud; as well as In response to determining that the number of lasers is one, laser indices for all nodes in the point cloud are inferred to be the same value.

8. The method of claim 1 , wherein selecting the prediction mode comprises: A syntax element having a value indicating the selected prediction mode is decoded.

9. A method for encoding a point cloud, the method comprising: Selecting a prediction mode for performing predictive geometric coding on a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; Determining the radius, azimuth angle, and laser index of the parent node of the current prediction tree node; The selected mode is the zero prediction mode: Inferring the azimuth angle and the laser index of the predicted position of the current prediction tree node as the azimuth angle and the laser index of the parent node; inferring a radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and Based on the predicted position of the current prediction tree node, the position of the current prediction tree node is determined.

10. The method according to claim 9, further comprising: In response to selecting the incremental prediction mode: The radius, the azimuth angle, and the laser index of the predicted position of the current prediction tree node are extrapolated to the radius, the azimuth angle, and the laser index of the parent node. The method of claim 9 , wherein the minimum radius value is zero. The method of claim 9 , wherein the minimum radius value is greater than zero.

13. The method of claim 9, wherein determining the position of the current node based on the predicted position comprises: A residual radius value representing a difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node is obtained.

14. The method according to claim 13, wherein obtaining the residual radius value comprises: Wherein the selected mode is the zero prediction mode, the sign of the residual radius value is inferred to be positive.

15. The method according to claim 9, further comprising: determining a number of lasers used to capture light detection and ranging (LIDAR) data representing the point cloud; as well as In response to determining that the number of lasers is one, laser indices for all nodes in the point cloud are inferred to be the same value.

16. The method of claim 9, wherein selecting the prediction mode comprises: A syntax element having a value indicating the selected prediction mode is encoded.

17. A device for decoding a point cloud, the device comprising: a memory configured to store at least a portion of the point cloud; as well as One or more processors implemented in circuitry and configured to: Selecting a prediction mode for performing predictive geometric coding on a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; Determining the radius, azimuth angle, and laser index of the parent node of the current prediction tree node; In response to selecting the zero prediction mode: Inferring the azimuth angle and the laser index of the predicted position of the current prediction tree node as the azimuth angle and the laser index of the parent node; inferring a radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and Based on the predicted position of the current prediction tree node, the position of the current prediction tree node is determined.

18. The apparatus of claim 17, wherein the one or more processors are further configured to: In response to selecting the incremental prediction mode: The radius, the azimuth angle, and the laser index of the predicted position of the current prediction tree node are extrapolated to the radius, the azimuth angle, and the laser index of the parent node. The apparatus of claim 17 , wherein the minimum radius value is zero.

20. The apparatus of claim 17, wherein the minimum radius value is greater than zero.

21. The apparatus of claim 17, wherein: To determine the position of the current node based on the predicted position, the one or more processors are configured to: A residual radius value representing a difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node is obtained.

22. The apparatus according to claim 21, wherein To obtain the residual radius value, the one or more processors are configured to: In response to selecting the zero prediction mode, the sign of the residual radius value is inferred to be positive.

23. The device of claim 17, wherein the one or more processors are further configured to: determining a number of lasers used to capture Light Detection and Ranging (LIDAR) data representing the point cloud; and In response to determining that the number of lasers is one, laser indices for all nodes in the point cloud are inferred to be the same value.

24. The apparatus of claim 17, wherein: To select the prediction mode, the one or more processors are further configured to: A syntax element having a value indicating the selected prediction mode is decoded.

25. A device for encoding a point cloud, the device comprising: a memory configured to store at least a portion of the point cloud; as well as One or more processors implemented in circuitry and configured to: Selecting a prediction mode for performing predictive geometric coding on a position of a current prediction tree node of the point cloud from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: a zero prediction mode and an incremental prediction mode; Determining the radius, azimuth angle, and laser index of the parent node of the current prediction tree node; The selected mode is the zero prediction mode: Inferring the azimuth angle and the laser index of the predicted position of the current prediction tree node as the azimuth angle and the laser index of the parent node; inferring a radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and Based on the predicted position of the current prediction tree node, the position of the current prediction tree node is determined.

26. The apparatus of claim 25, wherein the one or more processors are further configured to: In response to selecting the incremental prediction mode: The radius, the azimuth angle, and the laser index of the predicted position of the current prediction tree node are extrapolated to the radius, the azimuth angle, and the laser index of the parent node.

27. The apparatus of claim 25, wherein the minimum radius value is zero.

28. The apparatus of claim 25, wherein the minimum radius value is greater than zero.

29. The apparatus of claim 25, wherein: To determine the position of the current node based on the predicted position, the one or more processors are configured to: A residual radius value representing a difference between the radius value of the predicted position of the current prediction tree node and the radius value of the position of the current prediction tree node is obtained.

30. The apparatus of claim 29, wherein: To obtain the residual radius value, the one or more processors are configured to: In response to selecting the zero prediction mode, the sign of the residual radius value is inferred to be positive.

31. The device of claim 25, wherein the one or more processors are further configured to: determining a number of lasers used to capture Light Detection and Ranging (LIDAR) data representing the point cloud; and In response to determining that the number of lasers is one, laser indices for all nodes in the point cloud are inferred to be the same value.

32. The apparatus of claim 25, wherein: To select the prediction mode, the one or more processors are further configured to: A syntax element having a value indicating the selected prediction mode is encoded.

33. A computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud decoding device to: A prediction mode for performing predictive geometric coding on a position of a current prediction tree node of the point cloud is selected from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: Zero prediction mode and incremental prediction mode; Determining the radius, azimuth angle, and laser index of the parent node of the current prediction tree node; In response to selecting the zero prediction mode: Inferring the azimuth angle and the laser index of the predicted position of the current prediction tree node as the azimuth angle and the laser index of the parent node; inferring a radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; and Based on the predicted position of the current prediction tree node, the position of the current prediction tree node is determined.

34. A computer-readable storage medium storing instructions that, when executed, cause one or more processors of a point cloud encoding device to: A prediction mode for performing predictive geometric coding on a position of a current prediction tree node of the point cloud is selected from a plurality of predefined prediction modes, wherein the plurality of prediction modes include at least: Zero prediction mode and incremental prediction mode; Determining the radius, azimuth angle, and laser index of the parent node of the current prediction tree node; The prediction mode selected is the zero prediction mode: Inferring the azimuth angle and the laser index of the predicted position of the current prediction tree node as the azimuth angle and the laser index of the parent node; inferring a radius of the predicted position to be a minimum radius value, wherein the minimum radius value is different from the radius of the parent node; as well as Based on the predicted position of the current prediction tree node, the position of the current prediction tree node is determined.

Citation Information

Patent Citations

  • Video decoder with enhanced cabac decoding

    CN103959782A

  • Methods and devices for entropy coding point clouds

    CN111615792A