Interpredictive coding for geometric point cloud compression

Inter-prediction techniques using a reference point in a different frame address inefficiencies in point cloud compression by reducing residual data size and enhancing coding efficiency.

JP7834755B2Active Publication Date: 2026-03-24QUALCOMM INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-12-29
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Existing point cloud compression techniques face inefficiencies in coding overhead due to the distance between predicted and actual parameters, particularly in angular modes, which affect coding efficiency.

Method used

Implement inter-prediction techniques using a reference point in a different frame to predict parameters such as radius, azimuth angle, and laser index, reducing residual data size by using parameters closer to the actual values.

Benefits of technology

Improves coding efficiency by minimizing residual data size and enhancing bit usage in point cloud compression.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007834755000037
    Figure 0007834755000037
  • Figure 0007834755000038
    Figure 0007834755000038
  • Figure 0007834755000039
    Figure 0007834755000039
Patent Text Reader

Abstract

One example of processing a point cloud includes, in response to a decision to predict a current point in the point cloud using predictive geometry coding, selecting a prediction mode for the current point from a set of prediction modes, the set of prediction modes including at least an intra-prediction mode and an inter-prediction mode, and, in response to selecting the inter-prediction mode for the current point, predicting the current point of the point cloud using inter-prediction.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application claims priority to U.S. Patent Application No. 17 / 646,217 filed on 28 December 2021, and to U.S. Provisional Application No. 63 / 131,716 filed on 29 December 2020, U.S. Provisional Application No. 63 / 134,492 filed on 6 January 2021, U.S. Provisional Application No. 63 / 170,907 filed on 5 April 2021, U.S. Provisional Application No. 63 / 177,186 filed on 20 April 2021, U.S. Provisional Application No. 63 / 179,892 filed on 26 April 2021, and U.S. Provisional Application No. 63 / 218,170 filed on 2 July 2021, the entire contents of which are incorporated herein by reference. U.S. Application No. 17 / 646,217, filed on 28 December 2021, claims the benefits of U.S. Provisional Application No. 63 / 131,716, filed on 29 December 2020, U.S. Provisional Application No. 63 / 134,492, filed on 6 January 2021, U.S. Provisional Application No. 63 / 170,907, filed on 5 April 2021, U.S. Provisional Application No. 63 / 177,186, filed on 20 April 2021, U.S. Provisional Application No. 63 / 179,892, filed on 26 April 2021, and U.S. Provisional Application No. 63 / 218,170, filed on 2 July 2021.

[0002] This disclosure relates to point cloud coding and decoding. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] G-PCC DIS, ISO / IEC JTC1 / SC29 / WG11 w19328, Brussels, Belgium, January 2020. [Non-Patent Document 2] G-PCC Codec Description v8, ISO / IEC JTC1 / SC29 / WG11 w19525, Brussels, Belgium, January 2020. [Brief explanation of the drawing]

[0004] [Figure 1] A block diagram showing an exemplary encoding and decoding system capable of performing the techniques of the present disclosure. [Figure 2] A block diagram showing an exemplary geometry point cloud compression (G-PCC) encoder according to one or more aspects of the present disclosure. [Figure 3] A block diagram showing an exemplary G-PCC decoder according to one or more aspects of the present disclosure. [Figure 4] A conceptual diagram showing an octree partitioning for geometry coding according to one or more aspects of the present disclosure. [Figure 5A] A conceptual diagram showing a rotating LIDAR acquisition model according to one or more aspects of the present disclosure. [Figure 5B] A conceptual diagram showing a rotating LIDAR acquisition model according to one or more aspects of the present disclosure. [Figure 6] A conceptual diagram showing a prediction tree for predictive geometry coding according to one or more aspects of the present disclosure. [Figure 7] A conceptual diagram showing an exemplary inter-prediction process for predicting points of a point cloud according to one or more aspects of the present disclosure. [[ID=2,]] [Figure 8] A flowchart showing an exemplary technique for inter-predicting points of a point cloud according to one or more aspects of the present disclosure. [Figure 9] A conceptual diagram showing an exemplary distance measurement system that can be used with one or more techniques of the present disclosure. [Figure 10] A conceptual diagram showing an exemplary vehicle-based scenario in which one or more techniques of the present disclosure can be used. [Figure 11] A conceptual diagram showing an exemplary extended reality system in which one or more techniques of the present disclosure can be used. [Figure 12] A conceptual diagram showing an exemplary mobile device system in which one or more techniques of the present disclosure can be used.

Summary of the Invention

Means for Solving the Problems

[0005] Generally, the present disclosure describes techniques for coding nodes of a point cloud using inter-prediction for current developing geometry point cloud compression (G-PCC) standards and the like. However, the exemplary techniques are not limited to the G-PCC standard. In some examples of G-PCC, the coordinates of the position of a node (also called a point) of a point cloud can be converted to the (r, φ, i) domain where the position of the node is represented by three parameters, a radius r, an azimuth angle φ, and a laser index i (e.g., a laser identifier). When using an angular mode for predictive geometry coding in G-PCC, a G-PCC coder can perform a prediction in the (r, φ, i) domain. For example, to code a particular node of a particular frame of a point cloud, the G-PCC coder determines the predicted radius r, azimuth angle φ, and laser index i of the particular node based on another node of the particular frame, and adds the predicted radius r, azimuth angle φ, and laser index i of that node to residual data (e.g., a residual radius r, a residual azimuth angle φ, and a residual laser index i) to determine the reconstructed radius r, azimuth angle φ, and laser index i of the particular node. Coding the residual data can sometimes account for most of the coding overhead, so the coding efficiency (e.g., the amount of bits used to code a point) can be a factor of how close the predicted radius r, azimuth angle φ, and laser index i of a particular node are to the reconstructed radius r, azimuth angle φ, and laser index i of the particular node. Thus, it may be desirable to enable the generation of predicted parameters for a node that are as close as possible to the actual parameters of the node.

[0006] According to one or more techniques of the present disclosure, a G-PCC coder may predict the current point in the current frame of a point cloud using interpretation. For example, to predict the current point using interpretation, a G-PCC coder may identify a reference point in a frame different from the current frame and predict one or more parameters of the current point (e.g., radius r, azimuth angle φ, and laser index i) based on one or more parameters of the reference point. Predicting the current point using interpretation may reduce the size of residual data if the parameters of the reference point are closer to the parameters of the current point than to the parent or other available points in the current frame. In this way, the techniques of the present disclosure may enable a G-PCC coder to improve coding efficiency.

[0007] For example, a method for processing a point cloud includes the steps of: selecting a prediction mode for the current point from a set of prediction modes in response to a decision to predict the current point in the point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-prediction mode and an inter-prediction mode; and predicting the current point in the point cloud using inter-prediction in response to the selection of an inter-prediction mode for the current point.

[0008] In another example, a device for processing a point cloud comprises a memory configured to store at least a portion of the point cloud, and one or more processors implemented in the circuit, wherein the one or more processors are configured to select a prediction mode for the current point from a set of prediction modes in response to a decision to predict the current point in the point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-prediction mode and an inter-prediction mode, and to predict the current point in the point cloud using inter-prediction in response to the selection of an inter-prediction mode for the current point.

[0009] In another example, a computer-readable storage medium stores instructions, and when the instructions are executed by one or more processors, the one or more processors are instructed to select a prediction mode for the current point in the point cloud from a set of prediction modes in response to a decision to predict the current point in the point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-prediction mode and an inter-prediction mode, and, in response to the selection of an inter-prediction mode for the current point, to predict the current point in the point cloud using inter-prediction.

[0010] Details of one or more examples are described in the accompanying drawings and the following description. Other features, purposes, and advantages will become apparent from the description, drawings, and claims. [Modes for carrying out the invention]

[0011] When using angular mode for predictive geometry coding in G-PCC, the G-PCC coder can perform predictions in the (r,φ,i) domain. For example, to code a specific node in a particular frame of a point cloud, the G-PCC coder may determine the predicted radius r, azimuth angle φ, and laser index i of that node based on another node in that frame, and then add the predicted radius r, azimuth angle φ, and laser index i of that node to residual data (e.g., residual radius r, residual azimuth angle φ, and residual laser index i) to determine the reconfigured radius r, azimuth angle φ, and laser index i of that node. Since coding residual data can account for a significant portion of the coding overhead, coding efficiency (e.g., the amount of bits used to code a point) may be a factor in how close the predicted radius r, azimuth angle φ, and laser index i of a particular node are to the reconfigured radius r, azimuth angle φ, and laser index i of that node. Therefore, it may be desirable to enable the generation of predicted parameters for a node that are as close as possible to the actual parameters of the node.

[0012] According to one or more techniques of the present disclosure, a G-PCC coder may predict the current point in the current frame of a point cloud using interpretation. For example, to predict the current point using interpretation, a G-PCC coder may identify a reference point in a frame different from the current frame and predict one or more parameters of the current point (e.g., radius r, azimuth angle φ, and laser index i) based on one or more parameters of the reference point. Predicting the current point using interpretation may reduce the size of residual data if the parameters of the reference point are closer to the parameters of the current point than to the parent or other available points in the current frame. In this way, the techniques of the present disclosure may enable a G-PCC coder to improve coding efficiency.

[0013] Figure 1 is a block diagram showing an exemplary coding and decoding system 100 capable of performing the techniques of the present disclosure. The techniques of the present disclosure generally concern coding (encoding and / or decoding) point cloud data, i.e., supporting point cloud compression. Generally, point cloud data includes any data for processing a point cloud. Coding may be effective for compressing and / or decompressing point cloud data.

[0014] As shown in Figure 1, system 100 includes a source device 102 and a destination device 116. The source device 102 provides encoded point cloud data to be decoded by the destination device 116. In detail, in the example of Figure 1, the source device 102 provides the point cloud data to the destination device 116 via a computer-readable medium 110. The source device 102 and destination device 116 may comprise any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as smartphones, televisions, cameras, display devices, digital media players, video gaming consoles, video streaming devices, land or sea vehicles, spacecraft, aircraft, robots, LIDAR devices, satellites, etc. In some cases, the source device 102 and destination device 116 may be equipped for wireless communication.

[0015] In the example in Figure 1, the source device 102 includes a data source 104, a memory 106, a G-PCC encoder 200, and an output interface 108. The destination device 116 includes an input interface 122, a G-PCC decoder 300, a memory 120, and a data consumer 118. According to this disclosure, the G-PCC encoder 200 of the source device 102 and the G-PCC decoder 300 of the destination device 116 may be configured to apply the techniques of this disclosure relating to predictive geometry coding. Thus, the source device 102 represents an example of an encoding device, and the destination device 116 represents an example of a decoding device. In other examples, the source device 102 and the destination device 116 may include other components or arrangements. For example, the source device 102 may receive data (e.g., point cloud data) from an internal or external source. Similarly, the destination device 116 may interface with an external data consumer rather than including a data consumer within the same device.

[0016] System 100, as shown in Figure 1, is merely an example. In general, other digital coding and / or decoding devices may perform the techniques of this disclosure relating to predictive geometry coding. Source device 102 and destination device 116 are merely examples of devices such that source device 102 generates coded data for transmission to destination device 116. This disclosure refers to a device that performs coding (encoding and / or decoding) of data as a “coding” device. Thus, G-PCC encoder 200 and G-PCC decoder 300 represent examples of coding devices, specifically, encoder and decoder, respectively. In some examples, source device 102 and destination device 116 may operate substantially symmetrically such that each of source device 102 and destination device 116 includes coding and decoding components. Thus, system 100 may support one-way or two-way transmission between source device 102 and destination device 116 for, for example, streaming, playback, broadcast, telephony, navigation, and other applications.

[0017] Generally, data source 104 represents the source of data (i.e., raw, unencoded point cloud data) and may provide a sequential series of “frames” of data to the G-PCC encoder 200, which then encodes the data for the frames. The data source 104 of source device 102 may include point cloud capture devices such as various cameras or sensors, e.g., a 3D scanner or LiDAR (light detection and ranging) device, one or more video cameras, an archive containing previously captured data, and / or a data feed interface for receiving data from a data content provider. Alternatively or additionally, point cloud data may be computer-generated from scanner, camera, sensor, or other data. For example, data source 104 may generate computer graphics-based data as source data, or it may result in a combination of live data, archived data, and computer-generated data. In each case, the G-PCC encoder 200 encodes the captured data, the previously captured data, or the computer-generated data. The G-PCC encoder 200 can rearrange the frames from the order in which they were received (sometimes called the "display order") to a coding order for coding. The G-PCC encoder 200 can generate one or more bitstreams containing encoded data. The source device 102 can then output the encoded data onto a computer-readable medium 110 via the output interface 108 for reception and / or retrieval by, for example, the input interface 122 of the destination device 116.

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

[0019] The computer-readable medium 110 may represent any type of medium or device capable of transporting encoded data from the source device 102 to the destination device 116. For example, the computer-readable medium 110 may represent a communication medium that enables the source device 102 to directly transmit encoded data to the destination device 116 in real time, for example, over a radio frequency network or a computer-based network. According to a communication standard such as a wireless communication protocol, the output interface 108 may modulate the transmit signal containing the encoded data, and the input interface 122 may demodulate the received transmit signal. The communication medium may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may 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 may include routers, switches, base stations, or any other equipment that may be useful in facilitating communication from the source device 102 to the destination device 116.

[0020] In some examples, the source device 102 may output encoded data to the storage device 112 via the output interface 108. Similarly, the destination device 116 may access the encoded data from the storage device 112 via the input interface 122. The 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.

[0021] In some examples, source device 102 may output encoded data to a file server 114 or another intermediate storage device capable of storing the encoded data generated by source device 102. Destination device 116 may access the stored data from file server 114 via streaming or download. File server 114 may be any type of server device capable of storing encoded data and transmitting that encoded data to destination device 116. File server 114 may represent a web server (for example, a website), a File Transfer Protocol (FTP) server, a Content Delivery Network device, or a Network Attached Storage (NAS) device. Destination device 116 may access the encoded data from file server 114 through any standard data connection, including an Internet connection. This may include wireless channels (e.g., Wi-Fi connection), wired connections (e.g., digital subscriber line (DSL), cable modem, etc.), or a combination of both suitable for accessing the encoded data stored on file server 114. The file server 114 and the input interface 122 may be configured to operate according to a streaming transmission protocol, a download transmission protocol, or a combination thereof.

[0022] The output interface 108 and input interface 122 may represent a wireless transmitter / receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to any of the various IEEE 802.11 standards, or other physical components. In examples where the output interface 108 and input interface 122 include wireless components, the output interface 108 and input interface 122 may be configured to transfer data, such as encoded data, according to cellular communication standards such as 4G, 4G-LTE (Long Term Evolution), LTE Advanced, or 5G. In some examples where the output interface 108 includes a wireless transmitter, the output interface 108 and input interface 122 may be configured to transfer data, such as encoded data, according to other wireless standards such as the IEEE 802.11 specification, the IEEE 802.15 specification (e.g., ZigBee®), or the Bluetooth® standard. In some examples, the source device 102 and / or destination device 116 may include their respective system-on-chip (SoC) devices. For example, the source device 102 may include an SoC device for performing functions arising from the G-PCC encoder 200 and / or the output interface 108, and the destination device 116 may include an SoC device for performing functions arising from the G-PCC decoder 300 and / or the input interface 122.

[0023] The techniques of this disclosure can be applied to encoding and decoding that support any of a variety of applications, such as communication between autonomous vehicles, communication between scanners, cameras, sensors and processing devices such as local or remote servers, geographical mapping, or other applications.

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

[0025] The G-PCC encoder 200 and the G-PCC decoder 300 can each be implemented 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, among other suitable encoder and / or decoder circuits. When the technique is partially implemented in software, the device may store instructions for the software in a suitable non-temporary computer-readable medium and execute the instructions in hardware using one or more processors to perform the technique of this disclosure. Each of the G-PCC encoder 200 and the G-PCC decoder 300 may be contained within one or more encoders or decoders, any of which may be integrated as part of a composite encoder / decoder (codec) within their respective devices. A device containing the G-PCC encoder 200 and / or G-PCC decoder 300 may comprise one or more integrated circuits, microprocessors, and / or other types of devices.

[0026] The G-PCC encoder 200 and G-PCC decoder 300 may operate according to coding standards such as the Video Point Cloud Compression (V-PCC) standard or the Geometry Point Cloud Compression (G-PCC) standard. This disclosure may refer to the coding of a picture (e.g., encoding and decoding) to include the process of encoding or decoding data in general. The encoded bitstream generally contains a set of values ​​for syntax elements that represent coding decisions (e.g., coding modes).

[0027] This disclosure may, in general, 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 the encoded data. That is, the G-PCC encoder 200 may signal values ​​for syntax elements in the bitstream. In general, signaling refers to generating values ​​in the bitstream. As described above, the source device 102 may transport the bitstream to the destination device 116, either substantially in real time or not in real time, such as when storing the syntax elements in the storage device 112 for later retrieval by the destination device 116.

[0028] ISO / IEC MPEG (JTC1 / SC29 / WG11) is investigating the potential need for standardization of point cloud coding techniques with compression capabilities significantly exceeding those of current methods, and aims to create a standard. This group is working on this investigation in collaboration with the 3-Dimensional Graphics Team (3DG), a joint research group known as the 3-Dimensional Graphics Team, to evaluate the designs of compression techniques proposed by experts in the field.

[0029] Point cloud compression activities can be categorized into two distinct methods. The first method is "video point cloud compression" (V-PCC), which segments a 3D object and projects the segments onto multiple 2D planes (represented as "patches" in a 2D frame), which are then further coded by legacy 2D video codecs such as the High Efficiency Video Coding (HEVC) (ITU-T H.265) codec. The second method 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 point cloud compression in both Category 1 (static point clouds) and Category 3 (dynamically acquired point clouds). A draft of the G-PCC standard is available in G-PCC DIS, ISO / IEC JTC1 / SC29 / WG11 w19328, Brussels, Belgium, January 2020, and a codec description is available in G-PCC Codec Description v8, ISO / IEC JTC1 / SC29 / WG11 w19525, Brussels, Belgium, January 2020.

[0030] A point cloud contains a set of points in 3D space and may have attributes associated with each point. These attributes may be color information such as R, G, B, or Y, Cb, Cr, or reflectance information, or other attributes. Point clouds may be captured by various cameras or sensors, such as LIDAR sensors and 3D scanners, or they may 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 used to aid navigation).

[0031] The 3D space occupied by point cloud data may be enclosed by a virtual bounding box. The positions of points within the bounding box may be represented with a certain degree of precision, and therefore the positions of one or more points may be quantized based on precision. At the minimum level, the bounding box is divided into voxels, the smallest unit of space, represented by a unit cube. Voxels within the bounding box may be associated with zero, one, or more points. The bounding box may be divided into multiple cubic / rectangular regions, which may be called tiles. Each tile may be coded into one or more slices. The division of the bounding box into slices and tiles may be based on the number of points in each division or on other factors (for example, certain regions may be coded as tiles). Slice regions may be further divided using division decisions similar to those in video codecs.

[0032] Figure 2 provides an overview of the G-PCC encoder 200. Figure 3 provides an overview of the G-PCC decoder 300. The illustrated modules are logical and do not necessarily have a one-to-one correspondence with the standard implementation of the G-PCC codec, i.e., the code implemented in the TMC13 test model software studied by ISO / IEC MPEG (JTC1 / SC29 / WG11).

[0033] In both the G-PCC encoder 200 and the G-PCC decoder 300, the point cloud positions are coded first. Attribute coding depends on the decoded geometry. In Figures 2 and 3, modules 212, 218, 310, and 314 are options typically used for Category 1 data. Modules 220, 222, 316, and 318 are options typically used for Category 3 data. All other modules are common between Categories 1 and 3.

[0034] For Category 3 data, the compressed geometry is typically represented as an octane tree from the root to the leaf level of each individual voxel. For Category 1 data, the compressed geometry is typically represented by a pruned octane tree (i.e., an octane tree from the root down to the leaf level for blocks larger than voxels) with a model that approximates the surface within each leaf of the pruned octane tree. In this way, both Category 1 and Category 3 data share an octane tree coding mechanism, and Category 1 data may, additionally, approximate the voxels within each leaf using a surface model. The surface model used is a triangulation containing 1 to 10 triangles per block, resulting in a triangulation soup. Thus, the Category 1 geometry codec is known as the Trisoup geometry codec, and the Category 3 geometry codec is known as the octane tree geometry codec.

[0035] Figure 4 is a conceptual diagram illustrating an exemplary octvine partition for geometry coding using the technique of the present disclosure. In the example shown in Figure 4, the octvine 400 may be partitioned into a set of nodes. For example, each node may be a cubic node. At each node of the octvine, if the occupancy rate of one or more of the node's child nodes, which may contain up to eight nodes, is not inferred by the G-PCC decoder 300, the G-PCC encoder 200 may signal the occupancy rate of the node by points in the point cloud to the G-PCC decoder 300. Multiple neighborhoods are specified, including (a) nodes that share a face with the current octvine node, (b) nodes that share a face, edge, or vertex with the current octvine node, etc. Within each neighborhood, the occupancy rate of the node and / or its children may be used to predict the occupancy rate of the current node or its children. For sparse points at some nodes of the octvine, the codec also supports a direct coding mode in which the 3D location of the point is directly coded. A flag may be signaled to indicate that the direct mode is being signaled. In direct mode, the positions of points in a point cloud can be coded directly without any compression. At the lowest level, the number of points associated with an octave node / leaf node can also be coded.

[0036] When geometry is coded, attributes corresponding to the geometric points are coded. When there are multiple attribute points corresponding to a single reconstructed / decoded geometric point, an attribute value representing the reconstructed point can be derived.

[0037] G-PCC offers three attribute coding methods: Region Adaptive Hierarchical Transform (RAHT) coding, interpolation-based hierarchical nearest neighbor prediction (predictive transformation), and interpolation-based hierarchical nearest neighbor prediction with update / lifting steps (lifting transformation). RAHT and lifting transformations are typically used for Category 1 data, while predictive transformations are typically used for Category 3 data. However, any method may be used for any data; the attribute coding method used to code the point cloud is simply specified in the bitstream, just as with using the geometry codec in G-PCC.

[0038] Attribute coding may be performed at a certain level of detail (LOD), and each level of detail may be used to obtain a more precise representation of the point cloud attributes. Each level of detail may be specified based on a distance metric from neighboring nodes or based on the sampling distance.

[0039] In the G-PCC encoder 200, the residuals obtained as the output of the coding method for the attributes are quantized (for example, by one of the arithmetic coding units 214 and / or 226). The quantized residuals can then be coded using context-adaptive arithmetic coding.

[0040] In the example shown in Figure 2, 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 geometry reconstruction unit 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.

[0041] As shown in the example in Figure 2, the G-PCC encoder 200 may receive a set of locations and a set of attributes. Locations may include the coordinates of points in the point cloud. Attributes may include information about points in the point cloud, such as the color associated with the points in the point cloud.

[0042] The coordinate transformation unit 202 may apply a transformation to the coordinates of a point so as to transform the coordinates from the initial domain to the transformation domain. In this disclosure, the transformed coordinates may be referred to as the transformed coordinates. The color transformation unit 204 may apply a transformation to transform the color information of an attribute to a different domain. For example, the color transformation unit 204 may transform the color information from the RGB color space to the YCbCr color space.

[0043] Furthermore, in the example in Figure 2, the voxelization unit 206 may voxelize the transformed coordinates. Voxelization of the transformed coordinates may involve quantization and the removal of some points from the point cloud. In other words, multiple points in the point cloud may be contained within a single "voxel," which may then be treated as a single point in some respects. Furthermore, the octree analysis unit 210 may generate an octree based on the voxelized transformed coordinates. Additionally, in the example in Figure 2, the surface approximation analysis unit 212 may analyze the points to potentially determine the surface representation of the set of points. The arithmetic coding unit 214 may entropy code syntax elements representing the octree and / or surface approximation analysis unit 212's determined surface information. The G-PCC encoder 200 may output these syntax elements in a geometry bitstream.

[0044] The geometry reconstruction unit 216 may reconstruct the transformed coordinates of points in the point cloud based on an octree, surface approximation analysis unit 212, and / or other information. The number of transformed coordinates reconstructed by the geometry reconstruction unit 216 may differ from the original number of points in the point cloud due to voxelization and surface approximation. The obtained points may be referred to as reconstructed points in this disclosure. The attribute transfer unit 208 may transfer the attributes of the original points in the point cloud to the reconstructed points in the point cloud. As shown in Figure 2, the attribute transfer unit 208 may transfer attributes to either or both of the RAHT unit 218 and the LOD generation unit 220.

[0045] Furthermore, the RAHT unit 218 may apply RAHT coding to the attributes of the reconfigured 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 reconfigured 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 the syntax elements representing the quantized coefficients. The G-PCC encoder 200 may output these syntax elements in the attribute bitstream.

[0046] In the example shown in Figure 3, the G-PCC decoder 300 may include a geometry 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 geometry reconstruction unit 312, a RAHT unit 314, an LoD generation unit 316, an inverse lifting unit 318, an inverse coordinate transformation unit 320, and an inverse color transformation unit 322.

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

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

[0049] Furthermore, the geometry reconstruction unit 312 may perform reconstruction to determine the coordinates of points in the point cloud. The inverse coordinate transformation unit 320 may apply an inverse transformation to the reconstructed coordinates (positions) of points in the point cloud to convert them back from the transformation domain to the initial domain.

[0050] Furthermore, in the example in Figure 3, the inverse quantization unit 308 can inverse quantize attribute values. Attribute values ​​can be based on syntax elements obtained from the attribute bitstream (for example, syntax elements decoded by the attribute arithmetic decoding unit 304). As shown in Figure 3, the inverse quantization unit 308 can transfer attribute values ​​to one or both of the RAHT unit 314 and the LOD generation unit 316.

[0051] Depending on how the attribute values ​​are encoded, the RAHT unit 314 may perform RAHT coding to determine the color values ​​for the points in the point cloud based on the inversely quantized attribute values. Alternatively, the LOD generation unit 316 and the inverse lifting unit 318 may determine the color values ​​for the points in the point cloud using a detail-based technique.

[0052] Furthermore, in the example in Figure 3, the inverse color conversion unit 322 may apply an inverse color conversion to the color values. The inverse color conversion may be the reverse of the color conversion applied by the color conversion unit 204 of the encoder 200. For example, the color conversion unit 204 may convert color information from the RGB color space to the YCbCr color space. Accordingly, the inverse color conversion unit 322 may convert color information from the YCbCr color space to the RGB color space.

[0053] The various units in Figures 2 and 3 are shown to help understand the operations performed by the encoder 200 and decoder 300. The units may be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Fixed-function circuits refer to circuits that provide a specific function and are preset for the operations they can perform. Programmable circuits refer to circuits that can be programmed to perform a variety of tasks and offer flexibility in the operations they can perform. For example, a programmable circuit may execute software or firmware that operates the programmable circuit in a manner defined by software or firmware instructions. Fixed-function circuits may execute software instructions (e.g., to receive or output parameters), but the type of operation performed by a fixed-function circuit is generally immutable. In some examples, one or more of the units may be different circuit blocks (fixed-function or programmable), and in some examples, one or more of the units may be integrated circuits.

[0054] Predictive geometry coding was introduced as an alternative to octree geometry coding, where nodes are placed 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 associated with its predictor. Figure 6 shows a conceptual diagram of Predictive Tree 600, an example of a directed graph, where arrows point in the prediction direction. 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 node.

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

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

[0057] The angular mode may also be used in predictive geometry coding, where the characteristics of the LIDAR sensor can be utilized to code the predictive tree more efficiently. The position coordinates are converted to (r,φ,i) (radius, azimuth, and laser index), and the prediction is performed within this domain (the residuals are coded within the r,φ,i domain). Due to errors in rounding, the coding in r,φ,i is not lossless, and therefore a second set of residuals corresponding to Cartesian coordinates may be coded. A description of the coding and decoding strategies used for the angular mode for predictive geometry coding is reproduced below. The description is based on Figures 5A and 5B, which are conceptual diagrams of a rotating LIDAR acquisition model.

[0058] The technique of this disclosure may be applicable to point clouds obtained using a rotating Lidar model, where Lidar 502 has N lasers (e.g., N=16, 32, 64) rotating around the Z axis according to the azimuth angle φ (see Figures 5A and 5B). Each laser has a different elevation angle θ(i) i=1...N and height σ(i) i=1...N It may have the following. Laser i corresponds to a point M having Cartesian integer coordinates (x, y, z) defined according to coordinate system 500, which is explained in Figure 5A.

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

[0060]

number

[0061] The coding process is

[0062]

number

[0063] We may also use the quantized version of (r,φ,i) shown by, where three integers

[0064]

number

[0065] ,

[0066]

number

[0067] And i can be calculated as follows:

[0068]

number

[0069] however, · (q r ,o r ) and (q φ ,o φ )teeth,

[0070]

number

[0071] and

[0072]

number

[0073] These are quantization parameters that control the precision of each element. The `sign(t)` function returns 1 if t is positive, and (-1) otherwise. • |t| is the absolute value of t.

[0074] To avoid reconstruction inconsistencies caused by the use of floating-point arithmetic, σ(i)i=1...N and tan(θ(i)) i=1...N can be pre - calculated and quantized as follows.

[0075]

Math

[0076] However, · (q σ ,o σ ) and (q θ ,o θ ) are

[0077]

Math

[0078] and

[0079]

Math

[0080] the quantization parameters that control the respective precisions of The reconstructed Cartesian coordinates are obtained as follows.

[0081]

Math

[0082] However, app_cos(.) and app_sin(.) are approximations of cos(.) and sin(.). The calculations can be done using fixed - point representation, look - up tables, and linear interpolation.

[0083] <  In some examples,

[0084]

Math

[0085] teeth, - Quantization - Approximate value - Model inaccuracies - Inaccuracy of model parameters For various reasons, including the above, it can be different from (x,y,z).

[0086] In some cases, the reconstruction residual (r x ,r y ,r z ) can be defined as follows:

[0087]

number

[0088] In this method, the encoder (for example, the G-PCC encoder 200) may proceed as follows: • Model parameters

[0089]

number

[0090] and

[0091]

number

[0092] and the quantization parameter q r , q σ , q θ , and q φ Encode • Represents the geometry prediction scheme described in G-PCC DIS.

[0093]

number

[0094] Applies to ○ New predictors that take advantage of the characteristics of lidar can be introduced. For example, the rotation speed of a lidar scanner around the z axis is usually constant. Therefore, the G-PCC decoder is currently

[0095]

number

[0096] This can be predicted as follows:

[0097]

number

[0098] however, ○ (δ φ (k)) k=1...K is a set of possible speeds from which the encoder can select. Index k can be explicitly written to the bitstream or can be inferred from the context based on the deterministic strategy applied by both the encoder and the decoder. n(j) is the number of skipped points, which can be explicitly written to the bitstream or inferred from the context based on the deterministic strategy applied by both the encoder and the decoder. • Using each node, the reconstructed residual (r x ,r y ,r z Encode )

[0099] The decoder (for example, the G-PCC decoder 300) may proceed as follows: • Model parameters

[0100]

number

[0101] and

[0102]

number

[0103] and the quantization parameter q r , q σ , q θ , and q φ Decode · According to the geometry prediction scheme described in the G-PCC International Standard Proposal (DIS), the nodes are related

[0104]

number

[0105] Decode the parameters • As explained above, reconstructed coordinates

[0106]

number

[0107] Calculate · Residual (r x ,r y ,r z Decrypt ) ○ As will be explained in the next section, irreversible compression involves reconstruction residuals (r x ,r y ,r z This can be supported by quantizing ) • Calculate the original coordinates (x, y, z) as follows:

[0108]

number

[0109] Irreversible compression involves reconstruction residuals (r x ,r y ,r z This can be achieved by applying quantization to the points, or by dropping points.

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

[0111]

number

[0112] However, (q x, o x ), (q y, o y ) and (q z, o z )teeth,

[0113]

number

[0114] ,

[0115]

number

[0116] and

[0117]

number

[0118] These are quantization parameters that control the precision of each element.

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

[0120] The techniques described above may have one or more drawbacks. Predictive geometry coding utilizes a rotating LiDAR mechanism to predict the position of one point from another point in the point cloud. However, this mechanism is limited to points within the same point cloud frame. Information from points in a previously coded frame (i.e., a reference frame) may not be used for prediction.

[0121] According to one or more techniques of this disclosure, a G-PCC coder (e.g., a G-PCC encoder 200 and / or a G-PCC decoder 300) may perform point cloud compression using interpretation. By using interpretation, the G-PCC coder may provide additional bitrate savings using point redundancy across frames. Examples in various aspects of this disclosure may be used individually or in any combination.

[0122] While this description primarily concerns polar coordinate systems, the methods disclosed in this application may also be applicable to other coordinate systems, such as Cartesian coordinate systems, spherical coordinate systems, or any custom coordinate systems that may be used to represent / code point cloud positions and attributes.

[0123] A G-PCC coder may decide whether to code a point using inter-prediction or intra-prediction. For example, a G-PCC encoder may perform an analysis to determine whether it is beneficial (for example, with respect to bitrate or other conditions) to code a particular point using inter-prediction or intra-prediction. In some examples, a G-PCC coder may make this decision in one of the following ways:

[0124] 1. Use the first set of conditions in the encoder and the first set of conditions in the decoder.

[0125] 2. The encoder uses a first set of conditions to signal syntax elements indicating an interpredictive mode, and the decoder determines the mode based on the signaled syntax elements.

[0126] The first set of conditions can be derived using one or more properties of a point, such as its Cartesian position, angular coordinates (radius, azimuth, elevation), and the prediction mode of neighboring nodes. Some examples of conditions included in the first set of conditions are as follows:

[0127] 1. The point belongs to a frame that is neither an intracoded frame nor one that corresponds to a random access point.

[0128] 2. The azimuth angle of the current point is different from the azimuth angle of the point decoded before the current frame, or the delta azimuth angle between the current point and the previous point is non-zero. In some examples, an approximation of the delta azimuth angle, or a quantized version of the delta azimuth angle, may be used to determine the interprediction mode of the current node.

[0129] 3. The point belongs to a slice of a specific type (i.e., a P-slice or B-slice, which indicates interpretation, may be applied).

[0130] 4. A flag is signaled to indicate whether interprediction is enabled for a particular frame. This flag may be signaled in syntax elements associated with the frame (e.g., slice / slice header, frame header, etc.) or in the parameter set referenced by the frame. For example, the inter_prediction_enabled_flag may be signaled in the Geometry Parameter Set (GPS) to specify whether interprediction is enabled for point cloud frames / slices that reference the GPS. When inter_prediction_enabled_flag indicates that interprediction is not enabled, interprediction instructions for points in the point cloud may not be signaled.

[0131] In some alternative forms, the interpretation mode for a point may be determined based on the residual azimuth angle associated with the point, or the phi multiplier.

[0132] In some alternative configurations, interpretation (or one or more interpretation modes) may only be enabled when angular modes are enabled (i.e., interpretation may be disabled if angular modes are not enabled).

[0133] A G-PCC coder can select a reference frame. In some examples, a G-PCC coder may use a previously decoded frame (or, in some cases, a frame preceding in the decoding order) as the reference frame. In other examples, a frame number indication (using an LSB value or delta frame number value) may be used to specify the reference frame. More generally, two or more frames may be specified as reference frames, and a point may be coded from one of the reference frames using interpretation (the indication of the reference frame associated with the point may be signaled or derived).

[0134] In another example, predictions can be performed from two or more frames (e.g., biprediction). Thus, a G-PCC coder may predict a point in the current frame based on a reference point in a first reference frame and a reference point in a second reference frame.

[0135] A G-PCC coder can utilize multiple interpretation modes. When a point is interpreted, there can be one or more methods for predicting the point from a reference frame. Different mode values ​​may be used to specify each type of prediction (for example, a G-PCC coder may signal a syntax element indicating the interpretation mode used for the current point). As one exemplary interpretation mode, a point may be predicted from zero-motion candidates from a reference frame (for example, a reference point in the reference frame may be a zero-motion candidate). As another exemplary interpretation mode, a point may be predicted from global motion candidates from a reference frame. As yet another exemplary interpretation mode, a point may be predicted from candidate points from a reference frame, and other parameters (for example, motion vectors) may be used to specify the candidate points.

[0136] Some details about different types of interpretations are provided below as examples.

[0137] The G-PCC coder can utilize a partial interprediction mode. In one example, interprediction may be applied only to predict a subset of the properties of points in a point cloud. One or more properties to which intraprediction is not applied can be coded using intraprediction or by other techniques. Some examples of partial interprediction modes are as follows:

[0138] 1. When it is indicated that a point is interpreted, the radius of the point may be predicted from a reference point (or reference frame) when the angular mode is enabled, and the azimuth angle and laser ID (or elevation angle) may be derived based on intraprediction or other techniques.

[0139] 2. If it is indicated that a point is interpreted, both the radius and azimuth of the point are predicted from the reference point (or reference frame) when the angle mode is enabled, and the G-PCC coder may derive the laser ID (or elevation angle) based on the interpretation or other techniques.

[0140] G-PCC coders can perform interpredictive mode signaling. In some examples, the interpredictive mode associated with a point can be signaled in the bitstream. This can be signaled as a flag or as a mode value. Some exemplary interpredictive mode signaling techniques are as follows:

[0141] 1. An inter-pred-flag equal to 0 may indicate that the point is predicted using intra-prediction, and an inter-pred-flag equal to 1 may indicate that the point is predicted using inter-prediction. In some examples, based on the instruction that the point is predicted using inter-prediction, the mode value may be signaled to specify how to perform inter-prediction of the point.

[0142] 2. When points are predicted using interpretation, a mode value may be signaled, where a mode value of 0 specifies that zero-motion candidates are used for prediction, and a mode value of 1 specifies that global-motion candidates are used for prediction.

[0143] In this disclosure, the interpretation mode may be used interchangeably with an indication of whether or not points are coded using interpretation and with a particular interpretation technique used.

[0144] Several conditions can influence how a G-PCC coder signals interpredictive modes. In some cases, interpredictive modes may only be signaled when a second set of conditions is applied. This second set of conditions can be derived using one or more properties of a point, such as Cartesian position, angular coordinates (radius, azimuth, elevation), and neighboring node prediction modes. Some examples of conditions included in the second set of conditions are as follows:

[0145] 1. The point belongs to a frame that is neither an intracoded frame nor one that corresponds to a random access point.

[0146] 2. The azimuth angle of the current point is different from the azimuth angle of the previously decoded point, or the delta azimuth angle between the current point and the previous point is non-zero. In some examples, an approximation of the delta azimuth angle, or a quantized version of the delta azimuth angle, may be used to determine the interprediction mode of the current node.

[0147] 3. The delta azimuth angle between the current point and the previous point is greater than a threshold value, which may be fixed, signaled in the bitstream, or derived based on a syntax element signaled in the bitstream.

[0148] More generally, the second set of conditions may include, but are not limited to, one or more criteria, including delta azimuthal value, delta radius value, delta laserID value, and delta elevation value. This delta value of a characteristic may be indicated by the corresponding residual value signaled in the bitstream for the point. The second set of conditions may also include delta coordinate values ​​(delta x, delta y, delta z) in the Cartesian domain.

[0149] When the interprediction mode is not signaled for a particular point, it can be inferred that the interprediction mode is a fixed value for that point.

[0150] 4. When the interpretation mode is not signaled for a point, the value is assumed to be 0 (or a value specifying the intraprediction).

[0151] Signaling optimization. In some cases, the interpretation mode may not be signaled for all points; instead, the interpretation mode may be derived from the signaled syntax elements in the bitstream.

[0152] 1. Interpretation modes can be signaled for prediction trees, and interpretation modes can be applied to all points in the prediction tree.

[0153] 2. Interpretation modes may be signaled in a geometry slice, and interpretation modes may be applied to all points in the slice.

[0154] 3. Interpretation modes may be signaled for prediction blocks (specified as a fixed number of points or a signaled number of points, etc.), and interpretation modes may be applied to all points in a prediction block.

[0155] In some examples, the interpretation mode may signal only a few nodes specified by the tree depth.

[0156] 4. Interpretation modes can only be signaled for the root node of the prediction tree.

[0157] In one example, when interpretation is applied to some properties of a point (e.g., radius) and intraprediction is applied to other properties of the point (e.g., azimuth, laserID), only a subset of intraprediction modes may be possible (e.g., only mode 0 of intraprediction may be possible for azimuth and laserID). In some examples, if only one intraprediction mode is possible, the mode value is not signaled and is inferred in the decoder. In some examples, if a subset (two or more) of intraprediction modes is possible, more optimized coding of the mode syntax elements may be applied (e.g., fewer bits may be sufficient to code the index to the subset of modes).

[0158] For each point and corresponding to each prediction mode, the G-PCC coder can derive predicted values ​​for one or more properties of the current point based on the location of one or more points in the reference frame. An example prediction process is as follows:

[0159] 1a. When a zero-motion candidate is selected, the prediction candidate may be selected as the point with the closest azimuth angle and laser ID corresponding to a specific value of azimuth angle and laser ID (e.g., the reconfigured azimuth angle value and laser ID of the current point), and the radius value of the prediction candidate is selected as the predicted value of the radius of the current node.

[0160] 1b. When a zero-motion candidate is selected, the prediction candidate may be selected as the point with the closest azimuth angle and laser ID corresponding to specific values ​​of azimuth angle and laser ID (e.g., the reconfigured azimuth angle value and laser ID of a previously decoded and reconstructed point), and the radius, azimuth angle, and laser ID values ​​of the prediction candidate are selected as the prediction values ​​for the radius, azimuth angle, and laser ID of the current node.

[0161] 2a. When a global motion candidate is selected, a prediction candidate may be selected as the point with the closest azimuth angle and laser ID to a specific value of azimuth angle and laser ID after applying global motion compensation to the prediction candidate, and the radius value of the prediction candidate is selected as the predicted value of the radius of the current node.

[0162] 2b. When a global motion candidate is selected, the predicted candidate after applying global motion compensation to the predicted candidate may be selected as the point with the closest azimuth angle and laser ID corresponding to specific values ​​of azimuth angle and laser ID (e.g., the reconfigured azimuth angle value and laser ID of a previously decoded and reconstructed point), and the radius, azimuth angle, and laser ID values ​​of the predicted candidate are selected as the predicted values ​​of radius, azimuth angle, and laser ID of the current node.

[0163] 3a. When a general candidate is selected, the prediction candidate may be selected as the point with the closest azimuth angle and laser ID to a specific value of the azimuth angle and laser ID after applying the motion vector (associated with the current point) to the prediction candidate, and the radius value of the prediction candidate is selected as the predicted value of the radius of the current node.

[0164] 3b. When a general-purpose candidate is selected, the predicted candidate after applying the motion vector to the predicted candidate may be selected as the point with the closest azimuth angle and laser ID corresponding to specific values ​​of azimuth angle and laser ID (e.g., the reconfigured azimuth angle value and laser ID of a previously decoded and reconstructed point), and the radius, azimuth angle, and laser ID values ​​of the predicted candidate are selected as the predicted values ​​of radius, azimuth angle, and laser ID of the current node.

[0165] In some examples, motion vectors can be used to derive a point, which is then used to derive the radius, azimuth, and laser ID (or elevation) of the current point, or to derive predictions of these values. In some examples, motion vectors can be used to derive predictions of the x, y, and z coordinates, or to derive predictions of these values.

[0166] In some examples, two or more points within a reference frame may be used to derive a predicted value. The number of points may be signaled in the slice header or in the GPS. In some examples, an index to two or more points within a reference frame may be signaled to specify the particular points to be used for inter prediction.

[0167]

[0168] When zero motion candidates are selected, two prediction candidates are selected as the two points with the two closest azimuth angles and laser IDs corresponding to specific values of the azimuth angle and laser ID, and the average value of the radii of the two prediction candidates is selected as the predicted value of the radius of the current node.

[0169] When two or more prediction candidates are selected as candidates for inter prediction (e.g., based on proximity of laser ID and / or azimuth angle), the prediction candidates may be selected by signaling an index to a list comprising two or more prediction candidates. In some alternative forms, a weighted average (weights calculated based on the difference in the laser ID values of the current point and the predictor, and / or the difference between the azimuth angle of the current point and the predictor) may also be used as a prediction candidate.

[0170] In some examples, one or more points in a compensated reference frame may be considered zero-motion candidates for the current frame. In some examples, points in a reference frame to which motion compensation is applied may belong to a specific feature in the point cloud (e.g., an object) or may be labeled by some estimation algorithm (e.g., ground, non-ground). Global motion parameters (e.g., rotation, translation) may be signaled in the bitstream.

[0171] In some examples, in addition to the global motion parameters, additional adjustment values ​​may be signaled for one or more of the following: x, y, z, radius, azimuth, and laserID. For example, when a predictor frame is prepared by applying motion compensation (e.g., using motion parameters), one or more additional adjustment values ​​for x, y, and z may be applied in the Cartesian domain, and one or more adjustment values ​​for radius, azimuth, and laserID may be applied in the spherical domain.

[0172] In some cases, adjustment values ​​may be specified for the entire sequence (representing "global" adjustments), and these values ​​may also be incorporated into the global motion parameters.

[0173] In some examples, adjustment values ​​may be specified for groups of frames (representing "group" adjustments), and these values ​​may also be incorporated into global motion parameters.

[0174] In some cases, adjustment values ​​may be specified for each frame (representing "frame" adjustments), and these values ​​may also be incorporated into the global motion parameters.

[0175] In some examples, adjustment values ​​may be specified for different regions of the point cloud (representing "local" adjustments), and these values ​​may also be incorporated into the global motion parameter or signaled as changes to global motion applicable to the frame.

[0176] One or more of the global, frame, and local adjustments may be signaled, and when two or more of these parameters exist, the corresponding adjustments may be applied sequentially or together (for example, global, frame, and local x adjustments xg, xf, and xl may be applied as xg+xf+xl to points belonging to a region, respectively). In another example, all adjustments at one level (e.g., global) may be applied before adjustments at a different level (e.g., frame) are applied.

[0177] The motion vector associated with a point's interprediction mode may be signaled in the bitstream. In some cases, multiple points may share the same motion vector and may be signaled in the slice or in a parameter set (e.g., GPS, or a parameter set specifically used for motion parameters). In some cases, the motion vector associated with a particular point may be predicted from spatially or temporally interpredicted neighboring points, and only the difference between the actual motion vector and the predicted motion vector may be signaled.

[0178] The G-PCC coder can perform context selection. For example, the G-PCC coder may determine the context to be used for a predicted geometry parameter / syntax element based on one or more syntax elements signaled in the bitstream, or their derived variables. The use of additional context may improve the codec's compression efficiency.

[0179] In some cases, the G-PCC coder may use a first parameter associated with a point to determine the context for other syntax elements associated with that point. For example, the context for one or more syntax elements associated with a phi multiplier (e.g., ptn_phi_mult_abs_gt0_flag, ptn_phi_mult_sign_flag, ptn_phi_mult_abs_gt1_flag, ptn_phi_mult_abs_minus2, ptn_phi_mult_abs_minus9) may be selected based on the interflags.

[0180] For example, the inter-flag indicates whether a first set of contexts is selected when inter-prediction is used, or whether a second set of contexts is selected when intra-prediction is used. This can be applied to coding the phi multiplier, first and second-order residuals (spherical position coding: azimuth, radius, elevation, or laserID) for predictive geometries where angular mode is enabled.

[0181] If the context for a syntax element depends on a first set of conditions, one context may be selected when the first set of conditions is true and a first parameter associated with a point takes a first value, and a second context may be selected when the first set of conditions is true and a first parameter associated with a point takes a second value different from the first value.

[0182] The following describes different options for the first parameter, each of which may result in a different trade-off between compression efficiency and memory (more contexts may require more memory associated with the contextual state).

[0183] 1. In one example, the first parameter could be an interface flag associated with a point.

[0184] 2. In another example, the first parameter could be the prediction mode associated with a point (for example, the prediction mode used in the prediction geometry).

[0185] 3. In a further example, the first parameter may be a tuple consisting of an interFlag and a prediction mode associated with a point, for example, (interFlag, predMode).

[0186] 4. When there are two or more interpretation candidates (e.g., a zero-motion candidate, a global-motion candidate, etc.), assume that interPredMode represents various interpretation candidates (e.g., 0 for intra, 1 for zero-motion candidate, 2 for global-motion candidate, etc.). The first parameter may be interPredMode.

[0187] In some examples, the G-PCC coder may use different conditions / parameters for different types of frames. For example, for intracoded frames (frames that do not have references to other frames in the sequence for prediction), a second parameter may be selected to determine the context as described in this disclosure, and for other frames (e.g., intercoded frames), a third parameter may be selected to determine the context as described in this disclosure. The second and third parameters may be different (for example, for intraframes, the prediction mode may be selected as the second parameter, and for interframes, a tuple of prediction mode and interflag may be selected as the third parameter). The G-PCC coder may extend similar context selection to one or more syntax elements / components (e.g., first-order residuals, second-order residuals).

[0188] Figure 7 is a conceptual diagram illustrating an exemplary intra-prediction process for predicting points in a point cloud according to one or more embodiments of the present disclosure. As shown in Figure 7, the current frame 750 may contain a plurality of points 752A to 752L (collectively, "point 752"), and the reference frame 754 may contain a plurality of points 756A to 756L (collectively, "point 756"). The reference frame 754 may be a frame that is coded and / or reconstructed before the current frame 750 is coded and / or reconstructed (for example, the reference frame 754 may precede the current frame 750 in the coding order). The G-PCC coder may utilize intra-prediction to predict one or more of the points 752 in the current frame 750 based on one or more of the points 756 in the reference frame 754. For example, a G-PCC decoder (or the reconstruction loop of a G-PCC encoder) may predict one or more parameters (e.g., r, φ, i) of the current point 752A among the points 752 based on one or more of the points 756.

[0189] To perform intraprediction to predict the current point within the current frame, the G-PCC coder may determine a reference point in a reference frame different from the current frame and predict one or more parameters of the current point based on the reference point. For example, to predict the current point 752A, the G-PCC coder may determine a reference point 756A and predict one or more parameters of the current point 752A based on one or more parameters of reference point 756A. The determined reference point is sometimes called the identified reference point.

[0190] The G-PCC coder may determine the reference point using any preferred technique. For example, the G-PCC coder may determine the pivot point that precedes the current point in the coding order within the current frame, and then determine the reference point based on one or more parameters of the pivot point. For example, if the coding order is counterclockwise, the G-PCC coder may determine that point 752B is the point before the current point 752A (for example, the point that comes immediately before the current point in the coding order) (i.e., determine that point 752B is the pivot point), and then determine the reference point based on one or more parameters of the pivot point 752B.

[0191] To determine a reference point based on one or more parameters of a pivot point, a G-PCC coder may determine a reference pivot point within a reference frame based on the azimuth angle of the pivot point, and a reference point based on the reference pivot point. For example, a G-PCC coder may determine a point in reference frame 754 that has the same azimuth angle (or the same azimuth angle and the same laser ID) as pivot point 752B. In the example in Figure 7, the G-PCC coder may determine that point 756B is the reference pivot point because it has the same azimuth angle as pivot point 752B. In the example in Figure 7, the reference pivot point corresponds to an actual point (for example, an actual point in frame 754), but the techniques of the present disclosure are not necessarily limited thereto. For example, in some examples, the reference pivot point may be a virtual point that does not correspond to a reconstructed point in reference frame 754.

[0192] In some cases, the G-PCC coder may determine the reference pivot point based on the actual (e.g., unscaled) azimuth angle of the pivot point. In other cases, the G-PCC coder may determine the reference pivot point based on the scaled azimuth angle of the pivot point. For example, the G-PCC coder may determine the scaled azimuth angle by scaling the azimuth angle of the pivot point by a constant value.

[0193] Based on the reference pivot point, to determine a reference point, the G-PCC coder may identify a point in the reference frame that has an azimuth angle greater than the azimuth angle of the reference pivot point. For example, the G-PCC coder may determine which of the points 756 has an azimuth angle greater than the azimuth angle of the reference pivot point and select the point with the smallest azimuth angle (from the set of points 756 that have an azimuth angle greater than the azimuth angle of the reference pivot point). In this example in Figure 7, point 756A may be the point in reference frame 754 that has the smallest azimuth angle greater than the azimuth angle of the reference pivot point 756B. Therefore, the G-PCC coder may identify point 756A as the reference point for performing an intra-prediction of the current point 752A.

[0194] In some cases, the G-PCC coder may determine the reference point based on the actual (e.g., unscaled) azimuth angle of the reference pivot point. In other cases, the G-PCC coder may determine the reference point based on the scaled azimuth angle of the reference pivot point. For example, the G-PCC coder may determine the scaled azimuth angle of the reference pivot point by scaling the pivot point's azimuth angle by a constant value. Thus, in some cases, the G-PCC coder may determine the reference point by identifying the point (e.g., point 756A) that has the smallest scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point. In some cases, the G-PCC coder may utilize the point with the second smallest azimuth angle greater than the scaled azimuth angle. For example, the G-PCC coder may determine the reference point by identifying the point (e.g., point 756L) that has the second smallest scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point.

[0195] The G-PCC coder can predict the parameters of the current point 752A based on the parameters of reference point 756A. For example, the G-PCC coder can signal residual data representing the difference between the parameters of the current point 752A and reference point 756A. The G-PCC decoder can then reconstruct the parameters of the current point 752A by adding the residual data to the parameters of reference point 756A.

[0196] While the techniques of this disclosure were described above as using a single reference point within a single reference frame, they are not limited thereto. For example, multiple reference points within a single reference frame may be used together to predict the current point. For instance, a G-PCC coder may determine multiple reference points within a reference frame and based on a reference pivot point. Based on these multiple reference points, the G-PCC coder may predict one or more parameters of the current point within the current frame. Alternatively, reference points from multiple reference frames may be used to predict the current point.

[0197] As described above, the G-PCC coder can perform azimuth prediction. Let (r, phi, laserID) be the three coordinates of the pivot point in a spherical coordinate system (referred to as radius, azimuth, and laser ID). The techniques disclosed herein may also be applicable to other coordinate systems.

[0198] In some examples, a G-PCC coder may code points in the current point cloud frame in an ordered format, as follows:

[0199] 1. For the current point in the current frame, the G-PCC coder may select a pivot point in the current frame that precedes the first point in the decoding order. In some examples, the pivot point is the point that precedes the current point in the decoding order. In some examples, the pivot point is the second preceding point in the current frame in the decoding order. More generally, two or more preceding points may be selected as the pivot point for the current point. In some examples, the pivot point may be a virtual point derived based on a previously decoded point in the current frame and an azimuth displacement that is a multiple of the azimuth quantization scale value (derived from a predetermined or signaled syntax element).

[0200] 2. The G-PCC coder may select a reference pivot point, a point in the reference frame associated with the pivot point. The reference pivot point may be selected as a point in the reference frame that has the same azimuth angle and laser ID as the pivot point. In some examples, points with other laser ID values ​​may also be candidates for the reference pivot point (for example, the reference pivot point may be selected as a point in the reference frame that has the same azimuth angle as the pivot point and a laser ID within the range [LaserID - M, LaserID + M], where LaserID is the laser ID of the pivot point, and M is a fixed value (e.g., 1), or selected based on the distance of the pivot point from the origin, or derived as a function of LaserID (e.g., a smaller value of LaserID may result in a smaller M, and a larger value of LaserID may result in a larger M)). In some examples, a distance metric may be defined using the azimuth angle and laser ID, and the reference pivot point may be selected using the distance metric as the point having the minimum distance from the pivot point's azimuth angle and laser ID. Normalized azimuth angle values ​​can be obtained by scaling the azimuth angle by a first constant value, normalized laser IDs can be obtained by scaling the laser ID by a second constant value, and distance metrics can be obtained by calculating norms (e.g., L2 norm, L1 norm) for the normalized laser IDs and azimuth angle values ​​of the pivot point and reference point. More generally, the reference pivot point can be selected as a point in the reference frame that is in the neighborhood of a point having the same azimuth angle and laser ID as the pivot point. In some examples, the reference pivot point may be a virtual point in the reference frame derived from the pivot point that has the same azimuth angle and laser ID as the pivot point.

[0201] 3. The G-PCC coder may select a reference point in the reference frame associated with the reference pivot point. A reference point may be selected as a point in the reference frame having the smallest azimuth angle greater than that of the reference pivot point and the same laser ID as the reference pivot point. Alternatively, a reference point may be selected as a point in the reference frame having the second smallest azimuth angle greater than that of the reference pivot point and the same laser ID as the reference pivot point. In some examples, interpretation may be disabled for the current point when a reference point is unavailable. In some examples, a reference point may be selected as the reference pivot point.

[0202] 4. The G-PCC coder can calculate the first residual between the reference point and the reference pivot point.

[0203] 5. The G-PCC coder may use the first residual to derive a first prediction for the current value. The prediction may be derived by adding the components of the first residual to the respective components of the pivot point (for example, the radius prediction may be obtained by adding the radius component of the first residual to the radius component of the pivot point (similarly for the azimuth)). In some examples, the first prediction may be set equal to the reference point.

[0204] 6. The G-PCC coder can encode a second residual between the first prediction and the current point's position.

[0205] 7. Components of the residuals: One or more residuals disclosed in this disclosure may include one or more of the following: The residual may comprise a radial residual between the reference pivot point and the reference point. The residual may comprise an azimuth residual between the reference pivot point and the reference point.

[0206] 8. A G-PCC coder may derive the current point based on the first prediction and the second residual. In some examples, a G-PCC coder may derive the current point from the second residual (for example, without relying on the first prediction).

[0207] The G-PCC coder may apply one or more of the techniques described above to the quantized azimuth values, and the scale value used for quantization may be derived from the signaled value or predetermined. The quantized azimuth values ​​and laserID may be used to search for inter-predicted points in reference. For example, the azimuth of a previously decoded and reconstructed point may be quantized, and the inter-predicted point with the quantized azimuth and laserID closest to the quantized azimuth and laserID of the previous point may be selected as a predictor for the azimuth, radius, and laserID of the current point, either as a quantized / inversely quantized predictor or as a dequantized predictor.

[0208] The G-PCC coder may apply one or more of the techniques described above to the quantized laserID value, and the scale value used for quantization may be derived from the signaled value or predetermined. The azimuth and quantized laserID values ​​may be used to search for inter-predicted points in reference. For example, the laserID of a previously decoded and reconstructed point may be quantized, and the inter-predicted point with the azimuth and quantized laserID closest to the azimuth and quantized laserID of the previous point may be selected as a predictor for the azimuth, radius, and laserID of the current point, either as a quantized / inversely quantized predictor or as a dequantized predictor.

[0209] The G-PCC coder may apply one or more of the techniques described above to quantized azimuth and quantized laserID values, and the scale value used for quantization may be derived from signaled values ​​or predetermined. The quantized azimuth and quantized laserID values ​​may be used to search for inter-predicted points in reference. For example, the azimuth and laserID of a previously decoded and reconstructed point may be quantized, and the inter-predicted point with the closest quantized azimuth and quantized laserID to the previous point may be selected as a predictor for the azimuth, radius, and laserID of the current point, either as a quantized / inversely quantized predictor or as a dequantized predictor.

[0210] In some cases, a reference frame may refer to a set of (radius, azimuth, laserID) tuples derived from the reference frame. For example, for each point in the reference frame, if there are no other points in the set with the same azimuth and laserID, the G-PCC coder may add the radius, azimuth, and laserID to the set. In some cases, a quantized value of the azimuth may be added. In some cases, even if there is another tuple in the set with the same phi and laserID, e.g., (r1, phi, laserID), if the value of r is less than the value of r1, (r, phi, laserID) may be added (in this case, the existing tuple (r1, phi, laserID) may be replaced by the new (r, phi, laserID)). In some cases, points in the reference frame may be in the x, y, and z domains, and points may be stored for reference either as is or converted to the spherical domain. In some cases, motion-compensated positions may be added to the reference frame. Compensation can be obtained based on signaled motion vectors (e.g., global motion vectors with rotation and / or translation) associated with the current frame and reference frame.

[0211] The G-PCC coder can perform context selection for interprediction modes. As described above, the G-PCC coder can signal interprediction flags and interprediction modes. The context to be used by the G-PCC coder for coding interprediction flags or interprediction modes may be selected as follows: The G-PCC coder may set b1, b2, b3, ... bN to be interprediction flag values ​​for N previously decoded points (where b1 is the previous node, b2 is the one immediately preceding b1, etc.). The G-PCC coder may select the context index as a number generated by using b1, b2, ... bN, such that ctxIdx = b1 + b2 << 1 + b3 << 2 + ... bN << (N-1). In another example, the G-PCC coder may select the context index as b1 + b2 + ... + bN. In some examples, the values ​​of b1, b2, ..., bN may also be used to select the context for other syntactic elements, such as the interpretation mode and motion vector. In some examples, N may be fixed as 5.

[0212] The G-PCC coder can perform improved radial residual coding. The radius, azimuth, and laserID associated with each point can be coded in the predictive geometry coding. The residual of the radial component for each point can be coded using the "equal_to_zero" flag, a sign bit, a number of bits for the remaining residual, and / or the remaining residual. The number of bits may be an indicator of the relative value of the radial residual. When points captured by the LIDAR are close to each other in a point cloud (e.g., points of an object or building captured by one of the lasers), the radius may not change significantly across the points. Since the object (most likely a solid) is continuous, continuous LIDAR scan points may be returned to the sensor, where the azimuth difference between continuous points is close to the sampling frequency of the azimuth. The difference in azimuth or azimuth residual for adjacent points on the object (of the same laser) is close to zero.

[0213] The context for the number of bits in the radial residual is selected based on the azimuth residual of the current point. For example, based on the absolute value of the azimuth residual, the context may be switched as follows, where N is a fixed value (signaling or predetermined). Table 1 below provides an example of a context index for the number of bits used in the number of bits for the radial residual N.

[0214] [Table 1]

[0215] Note that other methods may be used to select context indices based on radius residuals.

[0216] The following specific examples illustrate implementations of some of the techniques of this disclosure.

[0217] (Examples) (Example A) For each point in a point cloud frame that is not fully intracoded (random access point), a flag may be used to specify whether the point is coded using interpretation. When interpretation is applied, a "zero motion vector" candidate is selected from a point in the reference frame that has the same laser ID value as the current point and the closest quantized azimuth angle value to the current point, in order to predict the radius of the predicted point. Changes to the syntax structure are provided below: <add> ...< / add> The tag indicates an addition. <delete> ...< / delete> (The tag indicates deletion.)

[0218] [Table 2A]

[0219] [Table 2B]

[0220] <add> A ptn_inter_flag[nodeIdx] value equal to 0 specifies that the radius residual of the current node will be coded using intra-prediction. A ptn_inter_flag[nodeIdx] value equal to 1 specifies that the radius residual of the current node will be coded using inter-prediction. When there is no value for ptn_inter_flag[nodeIdx], the value of ptn_inter_flag[nodeIdx] is inferred to be equal to 0. < / add>

[0221] The value of InterEnableFlag is set to 0 when the current point cloud frame is a random access point or an all - intra frame, and is set to 1 otherwise.

[0222] In some alternative forms, when ptn_inter_flag is equal to 1, the syntax element ptn_pred_mode[ ] is not signaled and is inferred to be the default value (e.g., equal to 0 corresponding to prediction geometry mode 0).

[0223] The change to the position prediction process is as follows. Position prediction process The input to this process is - A variable predMode indicating the prediction mode of the current node, - Arrays aPos0, aPos1, and aPos2 with values aPosX[k], where k = 0..2 and X = 0..2. Each array contains the positions associated with the X - th generation ancestor nodes in the depth - first tree traversal order, - A variable curDepth indicating the distance at the nodes between the current node and the root node of the current prediction tree, <add> - This variable, interFlag, indicates whether the radius of the current node is coded using interpretation. < / add> The output from this process is an array predPos with values predPos[k], where k = 0..2, indicating the predicted point positions associated with the nodeIdx - th tree node. When predMode is equal to 0, the predicted point positions are calculated as follows. for (k = 0; k < 3; k++) predPos[k] = 0 if (geometry_angular_enabled_flag) { predPos[0] = ptn_radius_min_value if (curDepth > 0) { predPos[1] = aPos0[1] predPos[2] = aPos0[2] } } When predMode is equal to 1, the predicted point position is the position associated with the first ancestor. for (k = 0; k < 3; k++) predPos[k] = aPos0[k] When predMode is equal to 2, the predicted point position is a linear combination of the positions associated with the first two ancestors. for (k = 0; k < 3; k++) predPos[k] = aPos0[k] + aPos0[k] - aPos1[k] Otherwise, predMode is equal to 3, and the predicted point position is a linear combination of the positions associated with all three ancestors. for (k = 0; k < 3; k++) predPos[k] = aPos0[k] + aPos1[k] - aPos2[k] <add> When interFlag is equal to 1, predPos

[0000] is derived as follows: Assume that refFramePos[k] for k=0..2 is the position of a point in the reference frame, and that refFramePos

[0002] = predPos

[0002] , and that the absolute difference between the value of refFramePos

[0001] and predPos

[0001] is the smallest among the points in the reference frame. predPos

[0000] is set to be equal to refFramePos

[0000] . < / add> In one alternative form, the quantized values ​​of refFramePos

[0001] and predPos

[0001] are used to measure the absolute difference in the values, provided that the quantization scale is a fixed number (e.g., geom_angular_azimuth_step_minus1 + 1).

[0224] (Example B) In Example B, the prediction mode may not be signaled when interpretation is used. For example, when interpretation is used, the prediction mode is inferred to be equal to 0. Changes to the syntax structure are provided below. <add> ...< / add> The tag indicates an addition. <delete> ...< / delete> (The tag indicates deletion.)

[0225]

Table 3

[0226] When ptn_pred_mode[nodeIdx] is not signaled, ptn_pred_mode[nodeIdx] can be inferred to be equal to 0. In some examples, the following inferences can be added. When ptn_inter_flag[nodeIdx] is equal to 1, ptn_pred_mode[nodeIdx] is inferred to be equal to 0.

[0227] (Example C) In Example C, the signaling order of phi and the prediction mode may not be changed. The signaling of the prediction mode may be conditioned on the signaling of the inter flag. The signaling of ptn_phi_mult_abs_gt0_flag may also be conditioned on the inter flag. The changes to the syntax structure are provided below ([ <add> ...< / add> The tag indicates addition, <delete> ...< / delete> and the tag indicates deletion).

[0228]

Table 4

[0229] When ptn_inter_flag[nodeIdx] is not signaled, ptn_inter_flag[nodeIdx] is inferred to be equal to 0.

[0230] When ptn_phi_mult_abs_gt0_flag[nodeIdx] is not signaled, ptn_phi_mult_abs_gt0_flag[nodeIdx] is inferred to be equal to 0. In another example, the following inference is added. When ptn_inter_flag[nodeIdx] is equal to 1, ptn_phi_mult_abs_gt0_flag[nodeIdx] is inferred to be equal to 1.

[0231] (Example D) In Example D, the order of pred mode and phi syntax elements may not be changed. For example, the interflag may be signaled after the pred mode but before the phi syntax elements.

[0232] [Table 5]

[0233] When ptn_pred_mode[nodeIdx] is greater than 0 and InterEnableFlag is equal to 1 (ptn_inter_flag[] is not signaled), ptn_inter_flag[nodeIdx] is inferred to be 0.

[0234] (Example E) Example E is similar to Example A, with the addition that the signaling of the interflag also depends on the value of pred_mode. The following entire syntax is added.

[0235] [Table 6]

[0236] If InterEnableFlag is equal to 1, PtnPhiMult[nodeIdx] is equal to 0, or ptn_pred_mode[nodeIdx] is not equal to 0, then ptn_inter_flag[nodeIdx] is inferred to be equal to 0.

[0237] (Example F) In this example, the prediction for the radius, predPos

[0000] , is obtained by comparing not only the azimuth of points with the same laser ID as the current point, but also points with adjacent laser IDs.

[0238] When interFlag is equal to 1, the G-PCC coder may derive predPos

[0000] as follows: The G-PCC coder may set refFramePos[k] for k = 0..2 to be the position of a point in the reference frame, so that refFramePos

[0002] takes one of the values ​​in { predPos

[0002] - 1, predPos

[0002] , predPos

[0002] + 1}, so that the absolute difference between the value of refFramePos

[0001] and predPos

[0001] is the smallest among the points in the reference frame. The G-PCC coder may set predPos

[0000] to be equal to refFramePos

[0000] .

[0239] In some cases, points from more laser IDs within the reference frame may be considered to obtain the reference point.

[0240] In other cases, instead of comparing azimuth angles (i.e., refFramePos

[0001] and predPos

[0001] ), the weighted cost function may be specified as follows: J (refPos) = w1 * f1(refPos[1], predPos[1]) + w2 * f2 (refPos[2], predPos[2])

[0241] The point in the reference frame with position refPos[k] for k = 0..2 that is selected to predict the radius is the point that has the minimum value of J(refPos).

[0242] In some cases, the value of f1(x, y) can be the square of the difference between x and y, or more generally, any function that represents the distance between the current point and the reference point in the azimuth (or second) dimension.

[0243] In some cases, the value of f2(x, y) can be the square of the difference / absolute difference between x and y, or more generally, any function that represents the distance between the current point and the reference point in the laser ID (or third) dimension.

[0244] In other cases, two or more reference candidates may be selected for a point, and an interpreted candidate index may be signaled to specify which reference candidate is selected for that point.

[0245] For example, regarding the current point, three points in the reference frame may be selected as follows: - predPos

[0002] has the azimuth angle value closest to predPos[1] - Point with a laser ID equal to 1 - A point having a laser ID equal to predPos

[0002] , which has the closest azimuth angle value to predPos[1]. - A point with a laser ID equal to predPos

[0002] + 1, which has the closest azimuth angle value to predPos[1].

[0246] An index to this set / list can be signaled to specify the points to be selected for prediction.

[0247] More generally, for each current point coded using interpretation for radius, - The reference frame is selected based on a predetermined decision (e.g., the previously decoded frame) or based on one or more signaled instructions (e.g., frame index / counter value). - The set RefCandSuperSet is selected from among the points in the reference frame based on a first set of conditions (for example, one or more methods disclosed in this application based on the laser ID range and / or azimuth range). - The subset RefCandSubset is selected from RefCandSuperSet based on a second set of conditions (e.g., the closest azimuth angle from the current point for a particular laser ID). - If RefCandSubset has two or more entries, the entries in the list RefCandList are positioned based on a third set of conditions (for example, based on the increasing laser ID difference from the current point); otherwise (only one candidate in RefCandSubset), the single candidate in RefCandSubset is used for prediction. - Signal the index to the entry in RefCandList used for prediction. - Use a prediction entry to predict the radius of the current point.

[0248] In some cases, interpretation may be disabled when a point in the reference frame does not exist in RefCandSubset, and the inter flag may or may not be signaled in this case.

[0249] (Example G) According to one or more aspects of the present disclosure, a G-PCC coder may signal parameters for deriving azimuthal quantization / scaling in the bitstream. In some examples, the G-PCC coder may interpret all three components using previously decoded points in the current point cloud frame.

[0250] The azimuth scale value (used when deriving interpretation candidates) can be signaled in GPS as follows:

[0251] [Table 7]

[0252] In some cases, inter_azim_scale_log2 may be signaled independently of inter_prediction_enabled_flag.

[0253] In another example, the angle mode can also be used to adjust the signaling of inter_azim_scale_log2.

[0254] [Table 8]

[0255] The following is an exemplary semantics for the syntax elements mentioned above.

[0256] A value of 1 for `inter_prediction_enabled_flag` indicates that interprediction may be used for point cloud frames that reference GPS. A value of 0 for `inter_prediction_enabled_flag` indicates that interprediction will not be used for point cloud frames that reference GPS.

[0257] inter_azim_scale_log2 is used to scale the azimuth points that may be used in the derivation of the inter-prediction reference. The value of inter_azim_scale_log2 should be within the range of 0 to numAzimBits, including both endpoints. (The variable numAzimBits can specify the maximum number of bits used to represent the azimuth angle.)

[0258] In some examples, the inter_azim_scale_log2 syntax element may be an example of a syntax element that specifies the base-2 logarithm value of the scaling factor. The G-PCC coder may then determine the scaled azimuth angle (for example, the scaled azimuth angle of the pivot point) based on the scaling factor.

[0259] When a frame is coded, the reconstructed spherical positions of one or more points within the frame may be stored in a reference frame that can be used as an interpredictive reference by future frames. The reconstructed spherical positions may be stored in a hash table as follows: - The G-PCC coder can obtain a spherical coordinate representation for the reconstructed point. - The G-PCC coder can obtain the azimuth angle and laser index derived from the reconstructed point, and use the tuple of the derived azimuth angle and laser index as an index to the hash table. For example, the derived quantized azimuth angle, denoted as quantized(val), can be derived by a G-PCC coder as follows: int offset = azimScaleLog2 ? (1 << (azimScaleLog2 - 1)) : 0; quantized(val) = val >= 0 ? (val + offset) >> azimScaleLog2 : -((-val + offset) >> azimScaleLog2);

[0260] In some cases, azimScaleLog2 may not be signaled and may be inferred to one of the following: - Value 0 (i.e., no quantization). - The smallest power of 2 that is less than or equal to the signaled azimuth angular velocity in the bitstream. - The smallest power of 2 less than or equal to (azimuth angular velocity / 2) signaled in the bitstream. Different sequences may have different azimuth scale values. - Each entry in the hash table can be derived from one or more reconstructed points. - In one alternative form, the hash table entry for the frame may be the first point in the decryption order within the reconstructed frame, having specific values ​​for the derived azimuth angle and laser index. - In one alternative form, the hash table entry for the frame may be a point in the reconstructed frame having the smallest radius among the points having a specific value of the derived azimuth angle and laser index. - In another alternative form, the hash table entries for the frame may be point values ​​that coincide with the average, mean, median, weighted average, geometric mean, etc., calculated using points that have specific values ​​for the derived azimuth and laser index.

[0261] In some examples, the reconstructed point position (r, phi, laserID) in the spherical domain can be entered into the azimuth table as follows: Table index = (quantized(Phi), laserID), Table entry = (r, phi, laserId).

[0262] When coding the current point (within the current frame), the following steps may be performed: The G-PCC coder may set prevNode = (r1, phi1, laserID1) to be the previous node in the current frame in the decoding order. In some alternative forms, prevNode may be selected as the parent node of the current node. • In the table associated with the reference frame, the G-PCC coder may check whether an index (quantized(phi), laserID1) exists where quantized(phi) is greater than quantized(phi1). If no such index exists, the G-PCC coder may not apply interpretation for the current node. If at least one such index exists, the G-PCC coder may select the index with the smallest quantized(phi) (greater than quantized(phi1)). The G-PCC coder may use the entries associated with the selected indices (r_inter, phi_inter, laserId_inter) above as inter predictors for the current point.

[0263] In some examples, the following code may be used to implement the above technique with a combination of arrays of hash tables (instead of a 2D hash table), where computePhiQuantized() corresponds to the quantize() function described earlier. In the following case, refPointVals is a vector of hash tables that store reference points, refPointVals[currLaserId] is a hash table corresponding to index laserID = currLaserId, and all entries in refPointVals[currLaserId] are stored with an incrementing value of quantized(phi). Since this table is stored with an incrementing quantized(phi), the upper_bound function is used to search for the first quantized(phi) laser greater than the current quantized azimuth angle quantize(currAzim). In the following example, idx is equal to refPointVals[currLaserId].end(), there is no such table index, and therefore inter-prediction is not used. When present, idx->second specifies the inter-prediction candidate (r_inter, phi_inter, laserID_inter).

[0264] In some alternatives, a hash table may not store points with increasing values ​​of quantized(phi), and instead, a hash function may be used to parse and restore the table entries. In another alternative, a generic table / data structure may be used to store points from a reference frame. As mentioned above, the following code may be used to implement the above techniques. auto quantizedPhi = computePhiQuantized(currAzim); if (refPointVals[currLaserId].size()) { auto idx = refPointVals[currLaserId].upper_bound(quantizedPhi); if (idx == refPointVals[currLaserId].end()) return std::pair<bool, point_t> (false, 0); else return std::pair<bool, point_t> (true, idx->second); } return std::pair<bool, point_t> (false, 0); • When interpretation is used, the G-PCC coder may signal a flag indicating that interpretation is being used. • To code the residuals, the interpretation candidates derived above are used (in the decoder, the prediction candidates are used to add the residuals and to derive the reconstructed spherical coordinate position of the current point).

[0265] Figure 8 is a flowchart illustrating an exemplary technique for interpreting points in a point cloud according to one or more embodiments of the present disclosure. While the description is given with respect to the G-PCC encoder 200 (Figures 1 and 2), it should be understood that other devices may be configured to perform a method similar to that of Figure 8.

[0266] The G-PCC encoder 200 may decide whether or not to predict the current point in the current point cloud frame using predictive geometry coding (850). In response to the decision to predict the current point using predictive geometry coding (the "Yes" branch of 850), the G-PCC encoder 200 may select a prediction mode for the current point from a set of prediction modes (852). The set of prediction modes may include at least an intra-predictive mode and an inter-predictive mode. The G-PCC encoder 200 may select a prediction mode for the current point using various techniques, but generally may select a prediction mode that results in minimizing the number of bits that need to be signaled. In response to the decision not to predict the current point using predictive geometry coding (the "No" branch of 850), the G-PCC encoder 200 may predict the current point using a different technique, such as octree geometry coding (860).

[0267] The G-PCC encoder 200 may determine whether or not the interprediction mode is selected for the current point (854). In response to the selection of the interprediction mode for the current point (the "Yes" branch of 854), the G-PCC encoder 200 may use interprediction to predict the current point in the point cloud (856). In response to the non-selection of the interprediction mode for the current point (the "No" branch of 854), the G-PCC encoder 200 may use a different technique of predictive geometry coding, such as intraprediction, to predict the current point in the point cloud (858).

[0268] To predict the current point in the point cloud using interpretation (856), the G-PCC encoder 200 may perform the techniques described above with reference to Figure 7. For example, the G-PCC encoder 200 may determine a pivot point in the current point cloud frame (i.e., the current point cloud or current frame), determine a reference point cloud frame (i.e., a reference point cloud or reference frame), determine a reference pivot point in the reference point cloud frame based on the pivot point in the current point cloud frame, determine a reference point in the reference point cloud frame based on the reference pivot point, and encode residual data (e.g., in a bitstream) representing the difference between the parameters of the reference point (e.g., radius r, azimuth angle φ, and laser index i) and the parameters of the current point.

[0269] In some examples, the G-PCC encoder 200 may encode a first syntax element in the bitstream that indicates whether the current point is coded using interprediction. For example, the G-PCC encoder 200 may encode an interprediction flag having a value that indicates whether the current point is coded using interprediction (for example, a value of 0 may indicate that the current point is coded using intraprediction, while a value of 1 may indicate that the current point is coded using interprediction). The G-PCC decoder may determine whether the current point is coded using interprediction based on the value of the first syntax element.

[0270] The signaling of a first syntax element (for example, indicating whether the current point is coded using interpretation) may be conditional. As a first exemplary condition, the G-PCC encoder 200 may encode a second syntax element indicating whether interpretation is enabled (for example, for the current point cloud frame). If the G-PCC encoder 200 encodes a second syntax element with a value indicating that interpretation is enabled, the G-PCC encoder 200 may encode the first syntax element. On the other hand, if the G-PCC encoder 200 encodes a second syntax element with a value indicating that interpretation is not enabled, the G-PCC encoder 200 may not encode the first syntax element. As another exemplary condition, the G-PCC encoder may signal (e.g., encode) the first syntax element if the current point cloud frame is not an intracoded frame (for example, it may not encode the first syntax element if the current point cloud frame is an intracoded frame). As another exemplary condition, the G-PCC encoder may signal (e.g., encode) the first syntax element if the current point cloud frame does not correspond to random access points (for example, it may not encode the first syntax element if the current point cloud frame corresponds to random access points). As another exemplary condition, the G-PCC encoder may signal (e.g., encode) the first syntax element if the slice containing the current point is of a particular type (for example, a P-slice or a B-slice, which would enable interprediction). As another exemplary condition, the G-PCC encoder may signal (e.g., encode) the first syntax element when the angular mode is enabled (e.g., it may not encode the first syntax element when the angular mode is not enabled).

[0271] The G-PCC encoder 200 can encode one or more syntax elements using context-adaptive binary arithmetic coding (CABAC). In some examples, the G-PCC encoder 200 may select a context based on the value of an interpredictive element (e.g., a first syntax element). For example, the G-PCC encoder 200 may select a context for CABAC coding one or more syntax elements representing phi multipliers (e.g., ptn_phi_mult_abs_gt0_flag, ptn_phi_mult_sign_flag, ptn_phi_mult_abs_gt1_flag, ptn_phi_mult_abs_minus2, ptn_phi_mult_abs_minus9) based on the value of an interpredictive syntax element. As another example, the G-PCC encoder 200 may select a context for CABAC coding one or more syntax elements representing first-order residual data (e.g., ptn_residual_abs_gt0_flag, ptn_residual_sign_flag, ptn_residual_abs_log2, ptn_residual_abs_remaining) based on the values ​​of the interpredictive syntax elements. As yet another example, the G-PCC encoder 200 may select a context for CABAC coding an instance of the interpredictive syntax element based on the values ​​of N previous instances of the interpredictive syntax element (e.g., 2, 3, 4, 5, 6, 7, 8) (e.g., instances of the interpredictive syntax element coded for previous points).

[0272] Figure 9 is a conceptual diagram showing an exemplary distance measuring system 700 that may be used with one or more techniques of the present disclosure. In the example of Figure 9, the distance measuring system 700 includes an illuminator 702 and a sensor 704. The illuminator 702 may emit light 706. In some examples, the illuminator 702 may emit light 706 as one or more laser beams. Light 706 may be within one or more wavelengths, such as infrared wavelengths or visible light wavelengths. In other examples, light 706 is not coherent laser light. When light 706 encounters an object such as object 708, light 706 produces reflected light 710. Reflected light 710 may include backscattered and / or reflected light. Reflected light 710 may pass through a lens 711 that guides the reflected light 710 to produce an image 712 of object 708 on the sensor 704. The sensor 704 generates a signal 714 based on the image 712. Image 712 may contain a set of dots (for example, represented by the dots in Image 712 in Figure 9).

[0273] In some examples, the illuminator 702 and sensor 704 may be mounted on a rotating structure (e.g., a rotating LiDAR sensor) so that the illuminator 702 and sensor 704 capture a 360-degree view of the environment. In other examples, the distance measuring system 700 may include one or more optical components (e.g., mirrors, collimators, diffraction gratings, etc.) that enable the illuminator 702 and sensor 704 to detect the distance of an object within a specific range (e.g., up to 360 degrees). Although the example in Figure 9 shows only a single illuminator 702 and sensor 704, the distance measuring system 700 may include multiple sets of illuminators and sensors.

[0274] In some examples, the illuminator 702 generates a structured light pattern. In such examples, the distance measuring system 700 may include a plurality of sensors 704 on which each image of the structured light pattern is formed. The distance measuring system 700 may use the parallax between the images of the structured light pattern to determine the distance from there to an object 708 on which the structured light pattern is backscattered. A structured light-based distance measuring system can have a high level of accuracy (e.g., accuracy in the sub-millimeter range) when the object 708 is relatively close to the sensors 704 (e.g., 0.2 meters to 2 meters). This high level of accuracy can be useful in facial recognition applications, such as unlocking mobile devices (e.g., mobile phones, tablet computers, etc.), and for security applications.

[0275] In some examples, the distance measuring system 700 is a time-of-flight (ToF) based system. In some examples where the distance measuring system 700 is a ToF based system, the illuminator 702 generates pulses of light. In other words, the illuminator 702 may modulate the amplitude of the emitted light 706. In such examples, the sensor 704 detects the reflected light 710 from the pulses of light 706 generated by the illuminator 702. The distance measuring system 700 can then determine the distance to the object 708 from which the light 706 is backscattered, based on the delay between when the light 706 is emitted and when it is detected, and the known speed of light in air. In some examples, instead of modulating the amplitude of the emitted light 706 (or in addition to that), the illuminator 702 may modulate the phase of the emitted light 706. In such an example, the sensor 704 may detect the phase of the reflected light 710 from the object 708 and, using the speed of light and based on the time difference between when the illuminator 702 produced the light 706 at a particular phase and when the sensor 704 detected the reflected light 710 at that particular phase, determine the distance to a point on the object 708.

[0276] In other examples, point clouds may be generated without using the illuminator 702. For example, in some examples, the sensor 704 of the distance measuring system 700 may include two or more optical cameras. In such examples, the distance measuring system 700 may use the optical cameras to capture a stereoscopic image of the environment including an object 708. The distance measuring system 700 may include a point cloud generator 716 that can calculate the parallax between locations in the stereoscopic image. The distance measuring system 700 may then use the parallax to determine the distance to the locations shown in the stereoscopic image. From these distances, the point cloud generator 716 may generate a point cloud.

[0277] Sensor 704 may also detect other attributes of object 708, such as color and reflection information. In the example in Figure 9, point cloud generator 716 may generate a point cloud based on the signal 714 generated by sensor 704. Distance measuring system 700 and / or point cloud generator 716 may form part of data source 104 (Figure 1). Thus, the point cloud generated by distance measuring system 700 may be encoded and / or decoded according to any of the techniques of this disclosure.

[0278] Figure 10 is a conceptual diagram illustrating an exemplary vehicle-based scenario in which one or more of the techniques of the present disclosure may be used. In the example of Figure 10, the vehicle 800 includes a distance measuring system 802. The distance measuring system 802 may be implemented in the manner described with respect to Figure 9. Although not shown in the example of Figure 10, the vehicle 800 may also include a data source, such as a data source 104 (Figure 1), and a G-PCC encoder, such as a G-PCC encoder 200 (Figure 1). In the example of Figure 10, the distance measuring system 802 emits a laser beam 804 that reflects off pedestrians 806 or other objects in the road. The data source of the vehicle 800 may generate a point cloud based on the signal generated by the distance measuring system 802. The G-PCC encoder of the vehicle 800 may encode the point cloud to generate a bitstream 808, such as a geometry bitstream (Figure 2) and an attribute bitstream (Figure 2). The bitstream 808 may contain far fewer bits than the unencoded point cloud obtained by the G-PCC encoder.

[0279] The output interface of vehicle 800 (for example, output interface 108 (Figure 1)) can transmit bitstream 808 to one or more other devices. Bitstream 808 may contain far fewer bits than the unencoded point cloud acquired by the G-PCC encoder. Therefore, vehicle 800 may be able to transmit bitstream 808 to other devices more quickly than the unencoded point cloud data. Additionally, bitstream 808 may require less data storage capacity.

[0280] In the example shown in Figure 10, vehicle 800 may transmit bitstream 808 to another vehicle 810. Vehicle 810 may include a G-PCC decoder, such as G-PCC decoder 300 (Figure 1). The G-PCC decoder in vehicle 810 may decode bitstream 808 to reconstruct a point cloud. Vehicle 810 may use the reconstructed point cloud for various purposes. For example, based on the reconstructed point cloud, vehicle 810 may determine that pedestrian 806 is on the road ahead of vehicle 800 and therefore begin to slow down, for example, even before the driver of vehicle 810 realizes that pedestrian 806 is on the road. Thus, in some examples, vehicle 810 may perform autonomous navigation operations based on the reconstructed point cloud.

[0281] As an addition or alternative, vehicle 800 may transmit bitstream 808 to server system 812. Server system 812 may use bitstream 808 for various purposes. For example, server system 812 may store bitstream 808 for subsequent reconstruction of the point cloud. In this example, server system 812 may use the point cloud along with other data (e.g., vehicle telemetry data generated by vehicle 800) to train an autonomous driving system. In another example, server system 812 may store bitstream 808 for subsequent reconstruction for forensic crash investigation.

[0282] Figure 11 is a conceptual diagram illustrating an exemplary extended reality system in which one or more techniques of the present disclosure may be used. Extended reality (XR) is a term used to cover a variety of techniques, including augmented reality (AR), mixed reality (MR), and virtual reality (VR). In the example of Figure 11, user 900 is located at a first location 902. User 900 is wearing an XR headset 904. As an alternative to the XR headset 904, user 900 may use a mobile device (e.g., a mobile phone, tablet computer, etc.). The XR headset 904 includes depth-sensing sensors, such as a distance measuring system, that detect the position of points on an object 906 at location 902. The data source of the XR headset 904 may generate a point cloud representation of the object 906 at location 902 using signals generated by the depth-sensing sensors. The XR headset 904 may include a G-PCC encoder (e.g., the G-PCC encoder 200 in Figure 1) configured to encode the point cloud to produce a bitstream 908.

[0283] The XR headset 904 may transmit the bitstream 908 (for example, via a network such as the Internet) to the XR headset 910 worn by user 912 at a second location 914. The XR headset 910 may decode the bitstream 908 and reconstruct the point cloud. The XR headset 910 may use the point cloud to generate an XR visualization (e.g., an AR, MR, or VR visualization) representing an object 906 at location 902. Thus, in some examples, user 912 may have a 3D immersive experience of location 902, for example, when the XR headset 910 generates a VR visualization. In some examples, the XR headset 910 may determine the position of a virtual object based on the reconstructed point cloud. For example, based on the reconstructed point cloud, the XR headset 910 may determine that the environment (e.g., location 902) includes a flat surface, and then determine that a virtual object (e.g., a cartoon character) should be placed on that flat surface. The XR headset 910 can generate XR visualizations in which virtual objects are located at a predetermined position. For example, the XR headset 910 could show a cartoon character sitting on a flat surface.

[0284] Figure 12 is a conceptual diagram showing an exemplary mobile device system in which one or more techniques of the present disclosure may be used. In the example of Figure 12, a mobile device 1000 (e.g., a wireless communication device), such as a mobile phone or tablet computer, includes a distance measuring system, such as a LIDAR system, which detects the location of a point on an object 1002 in the environment of the mobile device 1000. The data source of the mobile device 1000 may generate a point cloud representation of the object 1002 using signals generated by a depth-sensing sensor. The mobile device 1000 may include a G-PCC encoder (e.g., the G-PCC encoder 200 in Figure 1) configured to encode the point cloud to generate a bitstream 1004. In the example of Figure 12, the mobile device 1000 may transmit the bitstream to a remote device 1006, such as a server system or another mobile device. The remote device 1006 may decode the bitstream 1004 to reconstruct the point cloud. The remote device 1006 may use the point cloud for various purposes. For example, the remote device 1006 may use a point cloud to generate a map of the environment of the mobile device 1000. For example, the remote device 1006 may generate a map of the interior of a building based on the reconstructed point cloud. In another example, the remote device 1006 may generate an image (e.g., computer graphics) based on a point cloud. For example, the remote device 1006 may use the points of the point cloud as polygon vertices and the color attributes of the points as a basis for shading the polygon. In some examples, the remote device 1006 may use the reconstructed point cloud for facial recognition or other security applications.

[0285] The following numbered clauses may represent one or more aspects of this disclosure.

[0286] Clause 1A. A method for processing a point cloud, comprising the step of selectively coding points in the point cloud using interpretation.

[0287] Clause 2A. The method of Clause 1A, wherein the step of coding a point using interpretation includes the step of coding a value for the radius residual of the point using interpretation.

[0288] Clause 3A. The method of Clause 2A, further comprising the step of coding a first syntax element via a bitstream that indicates whether or not a point is coded using interpretation.

[0289] Clause 4A. The method of Clause 3A, further comprising the step of coding a second syntax element indicating whether interprediction is enabled via a bitstream, wherein the step of coding a first syntax element includes the step of coding a first syntax element in response to the second syntax element indicating that interprediction is enabled.

[0290] Clause 5A. The method of Clause 3A or Clause 4A, wherein the first syntax element comprises the ptn_inter_flag syntax element.

[0291] Clause 6A. The method of Clause 4A or 5A, wherein the second syntax element comprises an InterEnableFlag syntax element.

[0292] Clause 7A. The method of Clause 4A, wherein the second syntax element indicates whether interpretation is enabled for a particular frame containing a point.

[0293] Clause 8A. Any method of Clauses 1A to 7A, further comprising the steps of determining that the angular mode is enabled and determining that, in response to the determination that the angular mode is enabled, the interpretation is enabled.

[0294] Clause 9A. Any method of Clauses 1A to 8A, wherein the step of coding a point using interpretation includes the step of coding a first subset of the point's properties using interpretation, and the method further includes the step of coding a second subset of the point's properties using intrapretation.

[0295] Clause 10A. Any method of Clauses 1A through 9A, wherein the step of coding a point using interpretation includes the step of determining the value of the point based on a reference frame.

[0296] Clause 11A. Any method of Clauses 1A to 10A, further comprising the step of coding one or more syntax elements for predictive geometry parameters in a bitstream.

[0297] Clause 12A. The method of Clause 11A, further comprising the step of determining the context for context-adaptive coding of one or more syntax elements for predictive geometry parameters based on the values ​​of one or more other syntax elements coded in a bitstream.

[0298] Clause 13A. Any method of Clauses 1A to 12A, further comprising the step of coding one or more syntax elements in a bitstream that have values ​​representing global motion parameters.

[0299] Clause 14A. Any method of Clauses 1A to 13A, further comprising the steps of coding a first syntax element in a bitstream that specifies whether interpretation is enabled or not, and coding a second syntax element in the bitstream that specifies a scale for azimuth points in response to the first syntax element that specifies interpretation is enabled.

[0300] Clause 15A. Any method of Clauses 1A to 13A, further comprising the steps of coding a first syntax element in the bitstream that specifies whether interpretation is enabled or not, and coding a second syntax element in the bitstream that specifies a scale for azimuth points, regardless of whether the first syntax element specifies whether interpretation is enabled or not.

[0301] Clause 16A. The method of Clause 14A or Clause 15A, wherein a first syntax element specifying whether interprediction is enabled comprises the inter_prediction_enabled_flag syntax element, and a second syntax element specifying the scale for azimuth points comprises the inter_azim_scale_log2 syntax element.

[0302] Clause 17A. A device for processing point clouds, comprising one or more means for performing any of the methods described in Clauses 1A to 16A.

[0303] Clause 18A. A device according to Clause 17A, wherein one or more means comprises one or more processors implemented in a circuit.

[0304] Clause 19A. A device according to Clause 17A or 18A, further comprising memory for storing data representing a point cloud.

[0305] Clause 20A. Any device under Clauses 17A to 19A, wherein the device is equipped with a decoder.

[0306] Clause 21A. Any device under Clauses 17A through 20A, wherein the device is equipped with an encoder.

[0307] Clause 22A. Any device from Clauses 17A to 21A, further comprising a device for generating point clouds.

[0308] Clause 23A. Any device according to Clauses 17A to 22A, further comprising a display for presenting an image based on a point cloud.

[0309] Clause 24A. A computer-readable storage medium storing instructions, wherein, when the instructions are executed, causes one or more processors to perform any of the methods described in Clauses 1A to 16A.

[0310] Clause 1B. A method for processing a point cloud, comprising the steps of: selecting a prediction mode for a current point from a set of prediction modes in response to a decision to predict a current point in the point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-predictive mode and an inter-predictive mode; and predicting the current point in the point cloud using inter-predictive mode in response to the selection of an inter-predictive mode for the current point.

[0311] Clause 2B. The method of Clause 1B, wherein the step of selecting a prediction mode includes coding a first syntax element via a bitstream indicating whether the current point is coded using interprediction, and selecting an interprediction mode as the prediction mode for the current point in response to the first syntax element indicating that the current point is coded using interprediction.

[0312] Clause 3B. The method of Clause 2B, further comprising the step of coding a second syntax element indicating whether interprediction is enabled via a bitstream, wherein the step of coding a first syntax element includes the step of coding a first syntax element in response to the second syntax element indicating that interprediction is enabled.

[0313] Clause 4B. The method of Clause 3B, wherein the second syntax element indicates whether interpretation is enabled for a particular frame containing the current point.

[0314] Clause 5B. The method of Clause 1B, wherein the current point is in the current frame, and the step of predicting the current point using interpretation includes the steps of determining a reference point in a reference frame different from the current frame, and predicting one or more parameters of the current point based on the reference point.

[0315] Clause 6B. The method of Clause 5B, wherein the reference frame is a motion-compensated reference frame.

[0316] Clause 7B. The method of Clause 5B, wherein the step of predicting one or more parameters includes the step of predicting one or more of the azimuth angle of the current point, the laser identifier, and the radius.

[0317] Clause 8B. The method of Clause 5B, wherein the step of determining a reference point includes the steps of determining a pivot point that precedes the current point in the coding order within the current frame, and determining a reference point based on one or more parameters of the pivot point.

[0318] Clause 9B. The method of Clause 8B, wherein the step of determining a reference point based on one or more parameters of a pivot point includes the steps of determining a reference pivot point based on the azimuth angle of a pivot point within a reference frame, and determining a reference point based on a reference pivot point.

[0319] Clause 10B. The method of Clause 9B, wherein the step of determining a reference pivot point further includes the step of determining a reference pivot point based on a laser identifier of a pivot point.

[0320] Clause 11B. The method of Clause 9B, wherein the reference pivot point is a virtual point within the reference frame.

[0321] Clause 12B. The method of Clause 9B, wherein the step of determining a reference pivot point based on the azimuth of a pivot point includes the step of determining a reference pivot point based on the scaled azimuth of a pivot point.

[0322] Clause 13B. The method of Clause 12B, further comprising the steps of coding a syntax element that specifies a base-2 logarithmic value of a scaling factor, and determining the scaled azimuth angle of a pivot point based on the scaling factor.

[0323] Clause 14B. The method of Clause 9B, wherein the step of determining a reference point based on a reference pivot point includes the step of identifying a point in the reference frame that has an azimuth angle greater than the azimuth angle of the reference pivot point.

[0324] Clause 15B. The method of Clause 14B, wherein the step of identifying a point in the reference frame having an azimuth angle greater than the azimuth angle of the reference pivot point includes the step of identifying a point in the reference frame having a scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point.

[0325] Clause 16B. The method of Clause 15B, wherein the step of identifying a point having a scaled azimuth greater than the scaled azimuth of a reference pivot point includes the step of identifying a point having a minimum scaled azimuth greater than the scaled azimuth of a reference pivot point.

[0326] Clause 17B. The method of Clause 15B, wherein the step of identifying a point having a scaled azimuth greater than the scaled azimuth of a reference pivot point includes the step of identifying a point having a second smallest scaled azimuth greater than the scaled azimuth of a reference pivot point.

[0327] Clause 18B. The method of Clause 9B, wherein the step of determining a reference point includes the step of determining a plurality of reference points within a reference frame and based on a reference pivot point, and the step of predicting one or more parameters of the current point based on the reference points includes the step of predicting one or more parameters of the current point based on the plurality of reference points.

[0328] Clause 19B. The method of Clause 5B, wherein the identified reference point has zero motion candidates.

[0329] Clause 20B. The method of Clause 1B, further comprising the step of coding a third syntax element indicating an interprediction mode for the current point via a bitstream, and the step of predicting the current point of the point cloud using the interprediction mode.

[0330] The method of Clause 21B, wherein the step of selecting a prediction mode includes coding an interprediction syntax element via a bitstream indicating whether the current point is coded using interprediction, and selecting an interprediction mode as the prediction mode for the current point when the interprediction syntax element indicates that the current point is coded using interprediction, the method further includes selecting a context for context-adaptive binary arithmetic coding (CABAC) of one or more syntax elements based on the value of the interprediction syntax element.

[0331] Clause 22B. The method of Clause 21B, wherein one or more syntax elements comprise one or more syntax elements representing a phi multiplier and one or more syntax elements representing first-order residual data.

[0332] Clause 23B. The method of Clause 21B, further comprising the step of selecting a context for CABAC coding the interpredictive syntax element based on the values ​​of the interpredictive syntax element for N previous points in the point cloud.

[0333] Clause 24B. The method of Clause 23B, where N is 5.

[0334] Clause 25B. A device for processing a point cloud, comprising a memory configured to store at least a portion of the point cloud, and one or more processors implemented in a circuit, wherein the one or more processors are configured to select a prediction mode for the current point in the point cloud from a set of prediction modes in response to a decision to predict the current point in the point cloud using predictive geometry coding, the set of prediction modes including at least an intra-prediction mode and an inter-prediction mode, and to predict the current point in the point cloud using inter-prediction in response to the selection of an inter-prediction mode for the current point.

[0335] Clause 26B. A device of Clause 25B, configured such that one or more processors code a first syntax element via a bitstream indicating whether the current point is coded using interprediction, and in response to the first syntax element indicating that the current point is coded using interprediction, select the interprediction mode as the prediction mode for the current point.

[0336] Clause 27B. A device of Clause 26B, further configured to have one or more processors code a second syntax element via a bitstream indicating whether interprediction is enabled or not, and to code a first syntax element, one or more processors are configured to code a first syntax element in response to the second syntax element indicating that interprediction is enabled or not.

[0337] Clause 28B. The device of Clause 27B, wherein the second syntax element indicates whether interpretation is enabled for a particular frame containing the current point.

[0338] Clause 29B. A device of Clause 25B, wherein the current point is in the current frame, and using interprediction, one or more processors are configured to determine a reference point in a reference frame different from the current frame, and to predict one or more parameters of the current point based on the reference point.

[0339] Clause 30B. A device under Clause 29B where the reference frame is a motion-compensated reference frame.

[0340] Clause 31B. A device according to Clause 29B, wherein one or more processors are configured to predict one or more of the azimuth angle, laser identifier, and radius of a current point in order to predict one or more parameters.

[0341] Clause 32B. A device of Clause 29B, in which one or more processors are configured to determine a reference point, within the current frame, a pivot point that precedes the current point in coding order, and a reference point based on one or more parameters of the pivot point.

[0342] Clause 33B. A device according to Clause 32B, wherein one or more processors are configured to determine a reference point in a reference frame based on one or more parameters of a pivot point, by determining a reference pivot point based on the azimuth angle of the pivot point and determining a reference point based on the reference pivot point.

[0343] Clause 34B. The device of Clause 33B, wherein one or more processors are configured to determine a reference pivot point based on a laser identifier of the pivot point.

[0344] Clause 35B. A device of Clause 33B in which the reference pivot point is a virtual point within the reference frame.

[0345] Clause 36B. A device according to Clause 33B, in which one or more processors are configured to determine a reference pivot point based on the azimuth angle of a pivot point.

[0346] Clause 37B. A device according to Clause 36B, further configured to encode a syntax element specifying a base-2 logarithmic value of a scaling factor, and to determine the scaled azimuth angle of a pivot point based on the scaling factor.

[0347] Clause 38B. A device according to Clause 33B, in which one or more processors are configured to identify a point having an azimuth angle greater than the azimuth angle of the reference pivot point as a reference point in a reference frame, in order to determine a reference point based on the reference pivot point.

[0348] Clause 39B. A device according to Clause 38B, in which one or more processors are configured to identify a point in a reference frame as a reference point having a scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point, in order to identify a point in a reference frame having a scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point.

[0349] Clause 40B. A device according to Clause 39B, in which one or more processors are configured to identify, as a point, a point having the smallest scaled azimuth greater than the scaled azimuth of the reference pivot point, in order to identify a point having a scaled azimuth greater than the scaled azimuth of the reference pivot point.

[0350] Clause 41B. A device according to Clause 39B, in which one or more processors are configured to identify, as a point, a point having a second smallest scaled azimuth angle that is greater than the scaled azimuth angle of the reference pivot point, in order to identify a point having a scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point.

[0351] Clause 42B. A device according to Clause 33B, wherein one or more processors are configured to determine a plurality of reference points in a reference frame and based on a reference pivot point in order to determine a reference point, and one or more processors are configured to predict one or more parameters of the current point based on the plurality of reference points in order to predict one or more parameters of the current point based on the reference points.

[0352] Clause 43B. A device of Clause 29B in which the identified reference point has zero motion candidates.

[0353] Clause 44B. A device of Clause 25B, further configured to predict the current point using the inter-prediction mode, with one or more processors further configured to code a third syntax element indicating an inter-prediction mode for the current point via a bitstream, and using inter-prediction to predict the current point of the point cloud.

[0354] A device of Clause 45B, configured such that, in order to select a prediction mode, one or more processors code an interprediction syntax element via a bitstream indicating whether the current point is coded using interprediction, and when the interprediction syntax element indicates that the current point is coded using interprediction, the interprediction mode is selected as the prediction mode for the current point, and the one or more processors are further configured to select a context for context-adaptive binary arithmetic coding (CABAC) of one or more syntax elements based on the value of the interprediction syntax element.

[0355] Clause 46B. A device according to Clause 45B, wherein one or more syntax elements comprise one or more syntax elements representing a phi multiplier and one or more syntax elements representing first-order residual data.

[0356] Clause 47B. The device of Clause 45B, further configured to have one or more processors that select a context for CABAC coding an interpredictive syntax element based on the values ​​of the interpredictive syntax element for N previous points in the point cloud.

[0357] Clause 48B. A device of Clause 47B where N is 5.

[0358] Clause 49B. The device of Clause 25B, further comprising a rotating LiDAR sensor, and one or more processors configured to generate a point cloud based on data generated by the rotating LiDAR sensor.

[0359] Clause 50B. The device in Clause 25B is a vehicle that includes a rotating LiDAR sensor.

[0360] Clause 51B. A device under Clause 25B, where the device is a wireless communications device.

[0361] Clause 52B. A computer-readable storage medium for storing instructions, wherein when an instruction is executed by one or more processors, the computer-readable storage medium causes one or more processors to select a prediction mode for the current point in a point cloud from a set of prediction modes in response to a decision to predict the current point in a point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-prediction mode and an inter-prediction mode, and in response to the selection of an inter-prediction mode for the current point, to predict the current point in the point cloud using inter-prediction.

[0362] Clause 1C. A method for processing a point cloud, comprising the steps of: selecting a prediction mode for a current point from a set of prediction modes in response to a decision to predict a current point in the point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-predictive mode and an inter-predictive mode; and predicting the current point in the point cloud using inter-predictive mode in response to the selection of an inter-predictive mode for the current point.

[0363] The method of Clause 1C, wherein the step of selecting a prediction mode includes the steps of coding a first syntax element via a bitstream indicating whether the current point is coded using interprediction, and selecting an interprediction mode as the prediction mode for the current point in response to the first syntax element indicating that the current point is coded using interprediction.

[0364] Clause 3C. The method of Clause 2C, further comprising the step of coding a second syntax element indicating whether interprediction is enabled via a bitstream, wherein the step of coding a first syntax element includes the step of coding a first syntax element in response to the second syntax element indicating that interprediction is enabled.

[0365] Clause 4C. The method of Clause 3C, wherein the second syntax element indicates whether interpretation is enabled for a particular frame containing the current point.

[0366] Clause 5C. Any method of Clauses 1C to 4C, wherein the step of predicting the current point using interpretation is that the current point is in the current frame, and the step of predicting the current point is that of determining a reference point in a reference frame different from the current frame, and predicting one or more parameters of the current point based on the reference point.

[0367] Clause 6C. The method of Clause 5C, wherein the reference frame is a motion-compensated reference frame.

[0368] Clause 7C. A method of Clause 5C or 6C, wherein the step of predicting one or more parameters includes the step of predicting one or more of the azimuth angle, laser identifier, and radius of the current point.

[0369] Clause 8C. Any method of Clauses 5C to 7C, wherein the step of determining a reference point includes the steps of determining a pivot point that precedes the current point in the coding order within the current frame, and determining a reference point based on one or more parameters of the pivot point.

[0370] Clause 9C. The method of Clause 8C, wherein the step of determining a reference point based on one or more parameters of a pivot point includes the steps of determining a reference pivot point in a reference frame based on the azimuth angle of a pivot point, and determining a reference point based on a reference pivot point.

[0371] Clause 10C. The method of Clause 9C, wherein the step of determining a reference pivot point further includes the step of determining a reference pivot point based on a laser identifier of the pivot point.

[0372] Clause 11C. The method of Clause 9C or 10C, wherein the reference pivot point is a virtual point within the reference frame.

[0373] Clause 12C. The method of Clause 9C, wherein the step of determining a reference pivot point based on the azimuth of a pivot point includes the step of determining a reference pivot point based on the scaled azimuth of a pivot point.

[0374] Clause 13C. The method of Clause 12C, further comprising the steps of coding a syntax element that specifies a base-2 logarithmic value of a scaling factor, and determining the scaled azimuth angle of a pivot point based on the scaling factor.

[0375] Clause 14C. Any method of Clauses 9C to 13C, wherein the step of determining a reference point based on a reference pivot point includes the step of identifying a point in the reference frame that has an azimuth angle greater than the azimuth angle of the reference pivot point.

[0376] Clause 15C. The method of Clause 14C, wherein the step of identifying a point in the reference frame having an azimuth angle greater than the azimuth angle of the reference pivot point includes the step of identifying a point in the reference frame having a scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point.

[0377] Clause 16C. The method of Clause 15C, wherein the step of identifying a point having a scaled azimuth greater than the scaled azimuth of a reference pivot point includes the step of identifying a point having a minimum scaled azimuth greater than the scaled azimuth of a reference pivot point.

[0378] Clause 17C. The method of Clause 15C, wherein the step of identifying a point having a scaled azimuth greater than the scaled azimuth of a reference pivot point includes the step of identifying a point having a second smallest scaled azimuth greater than the scaled azimuth of a reference pivot point.

[0379] Clause 18C. Any method of Clauses 9C to 17C, wherein the step of determining a reference point includes the step of determining a plurality of reference points within a reference frame and based on a reference pivot point, and the step of predicting one or more parameters of the current point based on the reference points includes the step of predicting one or more parameters of the current point based on the plurality of reference points.

[0380] Clause 19C. Any method of Clauses 5C through 18C, wherein the identified reference point has zero motion candidates.

[0381] Clause 20C. Any method of Clauses 1C to 19C, further comprising the step of coding a third syntax element indicating an interprediction mode for the current point via a bitstream, and the step of predicting the current point of the point cloud using the interprediction mode.

[0382] Clause 21C. Any method of Clauses 1C to 20C, wherein the step of selecting a prediction mode includes coding an interprediction syntax element via a bitstream indicating whether the current point is coded using interprediction, and selecting an interprediction mode as the prediction mode for the current point when the interprediction syntax element indicates that the current point is coded using interprediction, and the method further includes the step of selecting a context for context-adaptive binary arithmetic coding (CABAC) of one or more syntax elements based on the value of the interprediction syntax element.

[0383] Clause 22C. The method of Clause 21C, wherein one or more syntax elements comprise one or more syntax elements representing a phi multiplier and one or more syntax elements representing first-order residual data.

[0384] Clause 23C. The method of Clause 21C or 22C, further comprising the step of selecting a context for CABAC coding the interpredictive syntax element based on the values ​​of the interpredictive syntax element for N previous points in the point cloud.

[0385] Clause 24C. The method of Clause 23C, where N is 5.

[0386] Clause 25C. A device for processing a point cloud, comprising a memory configured to store at least a portion of the point cloud, and one or more processors implemented in a circuit, wherein the one or more processors are configured to select a prediction mode for the current point in the point cloud from a set of prediction modes in response to a decision to predict the current point in the point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-prediction mode and an inter-prediction mode, and to predict the current point in the point cloud using inter-prediction in response to the selection of an inter-prediction mode for the current point.

[0387] Clause 26C. A device of Clause 25C, configured such that one or more processors code a first syntax element via a bitstream indicating whether the current point is coded using interprediction, and in response to the first syntax element indicating that the current point is coded using interprediction, select the interprediction mode as the prediction mode for the current point.

[0388] Clause 27C. A device of Clause 26C, further configured to have one or more processors coding a second syntax element via a bitstream indicating whether interprediction is enabled or not, and to code a first syntax element, one or more processors configured to code a first syntax element in response to the second syntax element indicating that interprediction is enabled or not.

[0389] Clause 28C. The device of Clause 27C, wherein the second syntax element indicates whether interpretation is enabled for a particular frame containing the current point.

[0390] Clause 29C. Any device of Clauses 25C to 28C, wherein the current point is in the current frame, and using interprediction, one or more processors are configured to determine a reference point in a reference frame different from the current frame, and to predict one or more parameters of the current point based on the reference point.

[0391] Clause 30C. A device of Clause 29C whose reference frame is a motion-compensated reference frame.

[0392] Clause 31C. A device according to Clause 29C or 30C, in which one or more processors are configured to predict one or more of the azimuth angle, laser identifier, and radius of a current point in order to predict one or more parameters.

[0393] Clause 32C. A device according to any of Clauses 29C to 31C, wherein one or more processors are configured to determine a pivot point that precedes the current point in coding order within the current frame, and to determine a reference point based on one or more parameters of the pivot point.

[0394] Clause 33C. A device according to Clause 32C, wherein one or more processors are configured to determine a reference point in a reference frame based on one or more parameters of a pivot point, by determining a reference pivot point based on the azimuth angle of the pivot point and determining a reference point based on the reference pivot point.

[0395] Clause 34C. A device according to Clause 33C, wherein one or more processors are configured to determine a reference pivot point based on a laser identifier of the pivot point.

[0396] Clause 35C. A device of Clause 33C or 34C in which the reference pivot point is a virtual point within the reference frame.

[0397] Clause 36C. A device according to any of Clauses 33C to 35C, in which one or more processors are configured to determine a reference pivot point based on the azimuth angle of the pivot point.

[0398] Clause 37C. A device according to Clause 36C, further configured to encode a syntax element specifying a base-2 logarithmic value of a scaling factor, and to determine the scaled azimuth angle of a pivot point based on the scaling factor.

[0399] A device according to any of the clauses 33C to 37C, wherein one or more processors are configured to identify a point having an azimuth angle greater than the azimuth angle of the reference pivot point as a reference point in the reference frame, based on the reference pivot point.

[0400] Clause 39C. A device according to Clause 38C, in which one or more processors are configured to identify a point in a reference frame as a reference point, having a scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point, in order to identify a point in a reference frame that has a scaled azimuth angle greater than the scaled azimuth angle of the reference pivot point.

[0401] Clause 40C. A device according to Clause 39C, in which one or more processors are configured to identify, as a point, a point having the smallest scaled azimuth greater than the scaled azimuth of the reference pivot point, in order to identify a point having a scaled azimuth greater than the scaled azimuth of the reference pivot point.

[0402] Clause 41C. A device according to Clause 39C, in order to identify a point having a scaled azimuth greater than the scaled azimuth of a reference pivot point, one or more processors configured to identify, as a point, a point having a second smallest scaled azimuth greater than the scaled azimuth of the reference pivot point.

[0403] A device according to any of the clauses 33C to 41C, wherein one or more processors are configured to determine a plurality of reference points in a reference frame and based on a reference pivot point in order to determine a reference point, and one or more processors are configured to predict one or more parameters of the current point based on the plurality of reference points in order to predict one or more parameters of the current point based on the reference points.

[0404] Clause 43C. A device of any of Clauses 29C through 42C, in which the identified reference point has zero motion candidates.

[0405] Clause 44C. A device of any of Clauses 25C to 43C, further configured to predict the current point using the inter-prediction mode, with one or more processors further configured to code a third syntax element indicating an inter-prediction mode for the current point via a bitstream, and to predict the current point of the point cloud using the inter-prediction mode.

[0406] A device according to any of the clauses 25C to 44C, wherein, in order to select a prediction mode, one or more processors are configured to code an interprediction syntax element via a bitstream indicating whether the current point is coded using interprediction, and to select the interprediction mode as the prediction mode for the current point when the interprediction syntax element indicates that the current point is coded using interprediction, and further configured to select a context for context-adaptive binary arithmetic coding (CABAC) of one or more syntax elements based on the value of the interprediction syntax element.

[0407] Clause 46C. A device of Clause 45C, wherein one or more syntax elements comprise one or more syntax elements representing a phi multiplier and one or more syntax elements representing first-order residual data.

[0408] Clause 47C. A device of Clause 45C or 46C, further configured to have one or more processors that select a context for CABAC coding an interpredictive syntax element based on the values ​​of the interpredictive syntax element for N previous points in the point cloud.

[0409] A device of Clause 47C, where N is 5.

[0410] Clause 49C. A device according to any of Clauses 25C to 48C, further comprising a rotating LiDAR sensor, and one or more processors configured to generate a point cloud based on data generated by the rotating LiDAR sensor.

[0411] Clause 50C. A device is a vehicle that includes a rotating LIDAR sensor, as defined in any of Clauses 25C through 49C.

[0412] Clause 51C. A device that is a wireless communications device, as defined in any of Clauses 25C through 49C.

[0413] Clause 52C. A computer-readable storage medium for storing instructions, wherein when an instruction is executed by one or more processors, the computer-readable storage medium causes one or more processors to select a prediction mode for the current point in a point cloud from a set of prediction modes in response to a decision to predict the current point in a point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-prediction mode and an inter-prediction mode, and in response to the selection of an inter-prediction mode for the current point, to predict the current point in the point cloud using inter-prediction.

[0414] It should be noted that, depending on the example, some of the actions or events among the techniques described herein may be performed in different sequences, and may be added, merged, or completely excluded (for example, not all actions or events described may be necessary for the practice of the technique). Furthermore, in some examples, the actions or events may be performed not sequentially, but in parallel, for example, through multithreading, interrupt handling, or across multiple processors.

[0415] In one or more examples, the described functions may be implemented as hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on a computer-readable medium or transmitted via a computer-readable medium and executed by a hardware-based processing unit. The computer-readable medium may include computer-readable storage media corresponding to tangible media such as data storage media, or communication media including any medium that facilitates the transfer of computer programs from one location to another, for example, according to a communication protocol. Thus, the computer-readable medium may generally correspond to (1) non-temporary tangible computer-readable storage media, or (2) communication media such as signals or carrier waves. The data storage medium may be any available medium 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.

[0416] As an example, and not an 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 used to store desired program code in the form of instructions or data structures and accessible by a computer. Any connection is also appropriately called computer-readable media. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals, or other temporary media, but instead refer to non-temporary tangible storage media. The terms "disk" and "disc" as used herein include compact discs (CDs), laser discs, optical discs, digital multipurpose discs (DVDs), floppy disks, and Blu-ray discs. A disk typically reproduces data magnetically, while a disc reproduces data optically using a laser. Any combination of the above should also be included within the scope of computer-readable media.

[0417] 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. Therefore, the terms “processor” and “processing circuit” as used herein may refer to any of the above-described structures or any other structure suitable for implementing the techniques described herein. In addition, in some embodiments, the functions described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into a composite codec. Furthermore, the techniques may be fully implemented in one or more circuits or logic elements.

[0418] The techniques of this disclosure can be implemented in a wide variety of devices or apparatus, including wireless handsets, integrated circuits (ICs), or sets of ICs (e.g., chipsets). While various components, modules, or units have been described in this disclosure to highlight the functional aspects of devices configured to perform the disclosed techniques, they do not necessarily require implementation by different hardware units. Rather, as described above, the various units may be combined in a codec hardware unit, or they may be provided by a set of interoperable hardware units, including one or more processors as described above, along with suitable software and / or firmware.

[0419] Various examples have been described. These and other examples fall within the scope of the following claims. [Explanation of Symbols]

[0420] 100 coding and decoding systems, systems 102 Source Device 104 Data Sources 106 memory 108 Output Interfaces 110 Computer-readable media 112 Storage Devices 116 Destination device 114 File Server 118 Data Consumers 120 memory 122 Input Interfaces 200 G-PCC encoder, encoder 202 Coordinate Transformation Unit 204 Color Conversion Unit 206 Voxelization Unit 208 Attribute Transfer Unit 210 8-tree analysis unit 212 Modules, Surface Approximation Analysis Unit 214, 226 Arithmetic coding units 216, 312 Geometry Reconstruction Units 218, 314 modules, RAHT unit 220 modules, LOD generation unit 222 Modules, Lifting Units 224 coefficient quantization units 300 G-PCC decoder, decoder 302 Geometry Arithmetic Decoding Unit 304 Attribute Arithmetic Decoding Unit 306 8-tree composite unit 308 Inverse Quantization Unit 310 Module, Surface Approximation Synthesis Unit 316 Modules, LoD Generation Unit, LOD Generation Unit 318 Modules, Reverse Lifting Unit 320 Inverse Coordinate Transformation Unit 322 Reverse Color Conversion Unit 400 8-tree 500 coordinate system 502 Rider 600 prediction trees 700, 802 Distance Measurement System 702 Lighting fixtures 704 Sensor 706 Light, Synchrotron Radiation Objects 708, 906, and 1002 710 Reflected light 711 Lens 712 images 714 Signal 716 Point Cloud Generator 750 Current Frame 752, 752A~752L, 756, 756A~756L points 752A Current point 752B Pivot point 754 Reference frame, frame 756A Reference Point 756B Reference pivot point Vehicles 800 and 810 804 Laser beam 806 Pedestrian 808, 908, 1004 bitstreams 812 Server System 900, 912 users 902 First location, location 904, 910 XR Headset 914 Second location 1000 mobile devices 1006 Remote device

Claims

1. A method for processing point clouds, Steps include selecting a prediction mode for the current point from a set of prediction modes in response to a decision to predict the current point in the point cloud using predictive geometry coding, wherein the set of prediction modes includes at least an intra-prediction mode and an inter-prediction mode; The steps of predicting the current point of the point cloud using interprediction in response to the selection of the interprediction mode for the current point, Includes, The step of selecting the prediction mode is, A step of coding a first syntax element via a bitstream that indicates whether the current point is coded using interpretation, The steps include selecting the inter-prediction mode as the prediction mode for the current point in response to the first syntax element indicating that the current point is coded using inter-prediction, Includes, The step of predicting the current point, assuming that the current point is within the current frame, using interpretation, is: The steps include determining a reference point within a reference frame different from the current frame, A prediction step, comprising predicting one or more parameters of the current point based on the reference point, the steps of predicting one or more of the azimuth angle, laser identifier, and radius of the current point, including method.

2. The method described above is The step of coding a second syntax element via the bitstream that indicates whether interpretation is enabled or disabled. It further includes, The method according to claim 1, wherein the step of coding the first syntax element includes the step of coding the first syntax element in response to a second syntax element indicating that interpretation is enabled.

3. The method according to claim 2, wherein the second syntax element indicates whether interpretation is enabled for a particular frame containing the current point.

4. The method according to claim 1, wherein the reference frame is a motion-compensated reference frame.

5. The step of determining the reference point is, Within the current frame, the steps include determining a pivot point that precedes the current point in the coding order, The steps include determining the reference point based on one or more parameters of the pivot point, and The method according to claim 1, including the method described in claim 1.

6. The step of determining the reference point based on one or more parameters of the pivot point is: Within the aforementioned reference frame, the step of determining a reference pivot point based on the azimuth angle of the pivot point, The steps include determining the reference point based on the aforementioned reference pivot point, and The method according to claim 5, including the method described in claim 5.

7. The method according to claim 6, wherein the step of determining the reference pivot point further includes the step of determining the reference pivot point based on a laser identifier of the pivot point.

8. The method according to claim 6, wherein the reference pivot point is a virtual point within the reference frame.

9. The step of determining the reference pivot point based on the azimuth angle of the pivot point is: The step of determining the reference pivot point based on the scaled azimuth angle of the pivot point. The method according to claim 6, including the method described in claim 6.

10. The steps involve coding a syntax element that specifies a base-2 logarithmic value for the scaling factor, A step of determining the scaled azimuth angle of the pivot point based on the scaling factor. The method according to claim 9, further comprising:

11. A device for processing point clouds, A memory configured to store at least a portion of the point cloud, The circuit comprises one or more processors implemented in the circuit, and the one or more processors In response to a decision to predict the current point in the point cloud using predictive geometry coding, a prediction mode for the current point is selected from a set of prediction modes, wherein the set of prediction modes includes at least an intra-predictive mode and an inter-predictive mode, and In response to the selection of the interpretation mode for the current point, to predict the current point of the point cloud using interpretation. It is configured to do the following: To select the prediction mode, one or more processors Coding a first syntax element via a bitstream indicating whether the current point is coded using interpretation, and In response to the first syntax element indicating that the current point is coded using interprediction, the interprediction mode is selected as the prediction mode for the current point. It is configured to do the following: The current point is within the current frame, and the current point can be predicted using interpretation. Determining a reference point within a reference frame different from the current frame, Predicting one or more parameters of the current point based on the aforementioned reference point, including predicting one or more of the azimuth angle, laser identifier, and radius of the current point; including, device.

12. The device according to claim 11, further comprising means for carrying out the method described in any one of claims 2 to 10.

13. A computer-readable storage medium for storing instructions, wherein when an instruction is executed by one or more processors, the storage medium causes one or more processors to perform the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Motion-compensated compression of dynamic voxelized point clouds

    US20170347120A1

  • Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

    WO2020175708A1

  • Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

    WO2022075428A1