Predictive Geometry Coding for Point Cloud Compression

BR112025021695A2Pending Publication Date: 2026-09-08
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
BR112025021695
Authority / Receiving Office
BR · BR
Patent Type
Applications
Publication Date
2026-09-08

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1 / 81 Predictive Geometry Coding for Point Cloud Compression

[0001] This application claims priority over U.S. Patent Application No. 18 / 629,517, filed April 8, 2024, and U.S. Provisional Patent Application No. 63 / 496,656, filed April 17, 2023, the contents of which are incorporated herein by reference in their entirety. U.S. Patent Application No. 18 / 629,517, filed April 8, 2024, claims the benefit of U.S. Provisional Patent Application No. 63 / 496,656, filed April 17, 2023. TECHNICAL FIELD

[0002] This disclosure relates to point cloud encoding and decoding. BACKGROUND

[0003] A point cloud is a collection of points in three-dimensional space. The points can correspond to points on objects in three-dimensional space. In this way, a point cloud can be used to represent the physical content of three-dimensional space. Point clouds can be useful in a wide variety of situations. For example, point clouds can be used in the context of autonomous vehicles to represent the positions of objects on a highway. In another example, point clouds can be used in the context of representing the physical content of an environment for the purposes of positioning virtual objects in an augmented reality (AR) or mixed reality (MR) application. Point cloud compression is a process for encoding and decoding point clouds. Encoding point clouds can reduce the amount of data required for storing and transmitting point clouds. SUMMARY

[0004] In general, this disclosure describes techniques for predictive geometry coding for point cloud compression. This disclosure describes examples in which information analysis or signaling is used. Petition 870250091416, dated 07 / 10 / 2025, pp. 326 / 441 2 / 81 A residual azimuthal angle value for a current point in a point cloud is independent of the radius value of the current point or the radius value of a previous point in the point cloud that precedes the current point in decoding order. For example, whether a point cloud encoder or a point cloud decoder analyzes the information for the residual azimuthal angle value for the current block may not be conditional on the radius value of the current point or the radius value of a previous point in the point cloud.

[0005] In some techniques, the analysis of the residual azimuth value required the reconstructed radii of the previous point(s). Consequently, in some of these techniques, there is a dependency on the analysis of syntax elements in the reconstruction of the points. With the example techniques described in this disclosure, by analyzing or signaling the residual azimuth value independently of the values ​​of the reconstructed syntax elements (e.g., radius value of the current point or radius value of a previous point), the example techniques can improve the analysis process. For example, the analysis of the residual azimuth value may be able to occur in parallel with, or may not need to wait for, the determination of the radius value of the current point or the radius value of a previous point, which in turn may decrease the time required for decoding and thus improve the overall operation of point cloud compression.

[0006] In one example, the disclosure describes a method for processing a point cloud, wherein the method comprises: determining that angular mode is enabled to encode or decode a current point of points in the point cloud; and parsing or signaling information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in order of decoding, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the Petition 870250091416, dated 07 / 10 / 2025, pp. 327 / 441 3 / 81 current point is indicative of an azimuthal angle of the current point based on an f used to capture the points of the point cloud.

[0007] In one example, the disclosure describes a device for processing a point cloud, wherein the device comprises: one or more memories configured to store the point cloud; and one or more processors implemented in a circuit set and configured to: determine that angular mode is enabled to encode or decode a current point cloud;and analyze or signal information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in order of decoding, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a laser used to capture the points in the point cloud.

[0008] In one example, the disclosure describes a computer-readable storage medium that stores instructions on it which, when executed, cause one or more processors to: determine that angular mode is enabled to encode or decode a current point of points in a point cloud; and parse or signal information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in order of decoding, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a laser used to capture the points of the point cloud.

[0009] The details of one or more examples are set out in the attached drawings and in the description below. Other attributes, objectives and Petition 870250091416, dated 07 / 10 / 2025, pp. 328 / 441 4 / 81 advantages will become evident from the description, drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0011] Figure 2 is a block diagram illustrating an example geometry point cloud compression (G-PCC) encoder.

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

[0013] Figure 4 is a block diagram that illustrates an example geometry encoding unit from Figure 2 in more detail.

[0014] Figure 5 is a block diagram that illustrates an attribute encoding unit from Figure 2 in more detail.

[0015] Figure 6 is a block diagram that illustrates an example geometry decoding unit from Figure 3 in more detail.

[0016] Figure 7 is a block diagram that illustrates an example attribute decoding unit from Figure 3 in more detail.

[0017] Figure 8 is a conceptual diagram that illustrates an example of octree splitting for geometric coding.

[0018] Figure 9 is a conceptual diagram that illustrates an example of a prediction tree.

[0019] Figure 10A and Figure 10B are conceptual diagrams that illustrate an example of a rotating LIDAR acquisition model.

[0020] Figure 11 is a conceptual diagram that illustrates an example of interprediction of a current point (curPoint) from a point (interPredPt) in the reference frame.

[0021] Figure 12 is an example decoder flowchart.

[0022] Figure 13 is a conceptual diagram that illustrates an example of an additional interpreter point obtained from the first point that has Petition 870250091416, dated 07 / 10 / 2025, pp. 329 / 441 5 / 81 azimuth greater than the interpreter point.

[0023] Figure 14 is a conceptual diagram illustrating the sampling of azimuthal angles and radii using uniform quantization, as in G-PCC Ed. 1.

[0024] Figure 15 is a conceptual diagram illustrating the non-uniform quantization of azimuthal angles, leading to uniform quantization arcs.

[0025] Figure 16 is a conceptual diagram illustrating the uniform quantization of circular arcs using the Δφarc quantization step.

[0026] Figure 17 is a conceptual diagram that illustrates an example of quantized residual azimuthal angle entropic encoding using the bounded B.

[0027] Figure 18 is a conceptual diagram that illustrates an example of a laser survey of two different objects.

[0028] Figure 19 is a flowchart illustrating an example method for coding residual radius magnitude.

[0029] Figure 20 is a flowchart that illustrates a method for decoding an example of residual radius magnitude.

[0030] Figures 21A and 21B are graphs that illustrate the r-ΔΔφ relationship.

[0031] Figure 22 is a flowchart that illustrates an example method according to one or more examples described in this disclosure.

[0032] Figure 23 is a flowchart that illustrates an example method according to one or more examples described in this disclosure.

[0033] Figure 24 is a flowchart that illustrates an example method according to one or more examples described in this disclosure.

[0034] Figure 25 is a conceptual diagram illustrating an example range measurement system that can be used with one or more techniques of this disclosure.

[0035] Figure 26 is a conceptual diagram that illustrates a scenario based on an example vehicle in which one or more techniques from this disclosure can be used. Petition 870250091416, dated 07 / 10 / 2025, pp. 330 / 441 6 / 81

[0036] Figure 27 is a conceptual diagram illustrating an example extended reality system in which one or more techniques from this disclosure can be used.

[0037] Figure 28 is a conceptual diagram illustrating an example mobile device system in which one or more techniques from this disclosure can be used. DETAILED DESCRIPTION

[0038] In geometry point cloud compression (G-PCC), a point cloud encoder encodes point values ​​into a point cloud and signal information that a point cloud decoder uses to decode (e.g., reconstruct) the point values. In this way, the point cloud decoder reconstructs the point cloud.

[0039] An example technique for encoding or decoding points in a point cloud is in angular mode. In angular mode, the coordinates of the points are represented with radius (r), azimuthal angle value (φ), and laser index (i). The azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a LiDAR system used to capture the points in the point cloud (e.g., based on a laser from the LiDAR system). The radius is the distance between the laser from the LiDAR system and the current point.

[0040] In a rotating LiDAR system, one or more lasers may be rotating around an axis, with lasers emitting at certain intervals, and the sensor captures the reflected light which is then used to determine the distance of points (corresponding to the ground, objects, buildings, etc., in the scene) from the LiDAR system. Typical rotating LiDAR systems use a coordinate system relative to themselves to indicate the coordinates of the points, with the xy axis horizontal to the ground on which the LiDAR system is placed and the z-axis pointing vertically. Thus, the azimuthal angle indicates the angle with the x-axis in the xy plane. However, other conventions may also be used, since the techniques disclosed in the present invention are not restricted to any coordinate system or convention. Petition 870250091416, dated 07 / 10 / 2025, pp. 331 / 441 7 / 81 private used.

[0041] Furthermore, the point cloud encoder and point cloud decoder can use inter- or intraprediction, quantization, and entropy coding techniques to reduce the amount of information that the point cloud encoder signals and the point cloud decoder analyzes. For example, as part of inter- or intraprediction, instead of signaling the actual value for that azimuthal angle, the point cloud encoder can signal information for a residual value of the azimuthal angle, where the residual value of the azimuthal angle is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point. An example of the predictor azimuthal angle is a previously decoded point that is close to the azimuth position of the current point in a reference frame (e.g., previously decoded frame).Another example of a predictive azimuthal angle is the azimuthal angle of the previously decoded point in the current frame. The techniques described are not limited to any particular predictor and apply regardless of which predictor is used for the azimuthal angle.

[0042] The point cloud encoder can signal, in a bitstream, and the point cloud decoder can analyze, from the bitstream, information that the point cloud decoder uses to decode (e.g., reconstruct) the residual value of the azimuthal angle. In this disclosure, the term signal or analyze refers to the information that the point cloud encoder includes in the bitstream and that the point cloud decoder receives from the bitstream. The term decode or reconstruct refers to determining (e.g., generating) the actual values ​​from the analyzed information.

[0043] This disclosure describes example techniques for analyzing or signaling information for a residual azimuthal angle value for a current point in a point cloud independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in decoding order. In general, there may be Petition 870250091416, dated 07 / 10 / 2025, pp. 332 / 441 8 / 81 benefits in separating and keeping distinct the operations of information analysis and the operations of determining (e.g., decoding or reconstructing) the actual values ​​of the analyzed information. This allows analysis and reconstruction to be performed in parallel. That is, a point cloud decoder may be able to analyze information for a residual value of the azimuthal angle of a current point in parallel with, or at least independently of, the determination (e.g., decoding or reconstruction) of values ​​from a previous point.

[0044] However, some techniques required a point cloud decoder to determine whether certain information for the residual azimuthal angle value for the current point should be analyzed based on whether a condition based on the radius value of the current point or the radius value of a previous point is satisfied. Consequently, in these techniques, the analysis of information for the residual azimuthal angle value of the current point may be delayed until the determination of the radius value for the current point or the radius value of a previous point. With the example techniques described in this disclosure, the analysis or signaling information for a residual azimuthal angle value for the current point may be independent of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in decoding order.In this way, the analysis of information for the residual value of the azimuthal angle for the current point can occur in parallel with, or at least cannot be delayed by, the determination of the radius value of the current point or the radius value of a previous point.

[0045] Furthermore, in those techniques where the analysis of the residual value of the azimuthal angle for the current point depended on the radius value of the current point or the radius value of the previous point, a quantization parameter to quantize or dequantize the residual value of the azimuthal angle for the current point and one or more context values ​​to encode or decode the residual value of the azimuthal angle for the current point also depended on the radius value of the current point or the radius value of the previous point. With the example techniques Petition 870250091416, dated 07 / 10 / 2025, pp. 333 / 441 9 / 81 described in this disclosure, the point cloud decoder can determine the quantization parameter and / or one or more context values ​​to decode the residual azimuthal angle value independently of the radius value of the current point or the radius value of the previous point in the point cloud.

[0046] Figure 1 is a block diagram illustrating an example encoding and decoding system 100 that can perform the techniques of this disclosure. The techniques of this disclosure relate generally to the process of encoding (e.g., encoding and / or decoding) point cloud data, i.e., to support point cloud compression. In general, point cloud data includes any data for processing a point cloud. The encoding process can be effective in compressing and / or decompressing point cloud data.

[0047] As shown in Figure 1, the 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 a destination device 116. In particular, in the example in 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 the destination device 116 may comprise any of a wide range of devices, including desktop computers, notebook computers (i.e., laptop computers), tablet computers, set-top boxes, telephone handsets such as smartphones, televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, land or sea vehicles, spacecraft, aircraft, robots, LIDAR devices, satellites, or similar devices.In some cases, source device 102 and destination device 116 can be equipped for wireless communication.

[0048] In the example in Figure 1, the source device 102 includes a data source 104, a memory 106, a point cloud encoder 200 (e.g., G-PCC encoder or other encoder types), and an interface. Petition 870250091416, dated 07 / 10 / 2025, pp. 334 / 441 10 / 81 output 108. The destination device 116 includes an input interface 122, a point cloud decoder (e.g., G-PCC decoder or other decoder types), a memory 120, and a data consumer 118. According to this disclosure, the point cloud encoder 200 of the source device 102 and the point cloud decoder 300 of the destination device 116 can be configured to apply the techniques of this disclosure related to predictive geometry coding for point cloud compression, such as analysis or signaling information for a residual azimuthal angle value for a current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that is prior to the current point in decoding order.Thus, source device 102 represents an example of an encoding device, while destination device 116 represents an example of a decoding device. In other examples, source device 102 and destination device 116 may include other components or arrangements. For example, source device 102 may receive data (e.g., point cloud data) from an internal or external source. Similarly, destination device 116 may interface with an external data consumer, rather than including a data consumer within the same device.

[0049] As shown in Figure 1, system 100 is merely an example. In general, other digital encoding and / or decoding devices can perform the techniques of this disclosure related to predictive geometry encoding for point cloud compression, such as analysis or signaling information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in decoding order. Source device 102 and destination device 116 are merely examples of devices in which source device 102 generates encoded data for transmission to destination device 116. This disclosure refers to an encoding device, such as Petition 870250091416, dated 07 / 10 / 2025, pp. 335 / 441 11 / 81 a device that performs the encoding (encoding and / or decoding) of data. Thus, the point cloud encoder 200 and the point cloud decoder 300 represent examples of encoding devices, in particular, an encoder and a decoder, respectively. In some examples, the source device 102 and the destination device 116 may operate in a substantially symmetrical manner, such that each of the source device 102 and the destination device 116 includes encoding and decoding components. Thus, the system 100 may support unidirectional or bidirectional transmission between the source device 102 and the destination device 116, for example, for streaming, playback, broadcast, telephony, navigation, and other applications.

[0050] In general, data source 104 represents a data source (i.e., raw, unencoded point cloud data) and can provide a sequential series of data frames to the point cloud encoder 200, which encodes the data into frames. Data source 104 of source device 102 may include a point cloud capture device, such as any of a variety of cameras or sensors, for example, a three-dimensional scanning device or a light detection and ranging (LIDAR) device, one or more video cameras, a file 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 a scanning device, a camera, a sensor, or other data type.For example, data source 104 can generate data based on computer graphics, like the source data, or produce a combination of live data, archived data, and computer-generated data. In each case, point cloud encoder 200 encodes the captured, pre-captured, or computer-generated data. Point cloud encoder 200 can then rearrange the frames from the received order (sometimes called the display order) into one. Petition 870250091416, dated 07 / 10 / 2025, pp. 336 / 441 12 / 81 encoding order for the encoding process. The point cloud encoder 200 can generate one or more bitstreams including encoded data. The source device 102 can then output the encoded data via the output interface 108 to the computer-readable medium 110 for reception and / or retrieval, for example, by the input interface 122 of the destination device 116.

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

[0052] The computer-readable medium 110 may represent any type of medium or device capable of carrying encoded data from the source device 102 to the destination device 116. In one example, the computer-readable medium 110 represents a communication medium to enable the source device 102 to transmit encoded data directly. Petition 870250091416, dated 07 / 10 / 2025, pp. 337 / 441 13 / 81 to the destination device 116 in real time, for example, via a radio frequency network or computer-based network. The output interface 108 can modulate a transmission signal that includes the encoded data, and the input interface 122 can demodulate the received transmission signal according to a communication standard, such as a wireless communication protocol. The communication medium can comprise any wireless or wired communication medium, such as a radio frequency spectrum (RF radio frequency) or one or more physical transmission lines. The communication medium can be part of a packet-based network, such as a local area network, a wide area network, or a global network, such as the Internet. The communication medium can include routers, switches, base stations, or any other equipment that may be useful to facilitate communication between the source device 102 and the destination device 116.

[0053] In some examples, source device 102 may output encoded data from output interface 108 to storage device 112. Similarly, destination device 116 may access encoded data from storage device 112 via input interface 122. Storage device 112 may include any of several distributed or locally accessed data storage media, such as a hard disk, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or non-volatile memory, or any other digital storage media suitable for storing encoded data.

[0054] In some examples, source device 102 may output encoded data to file server 114 or another intermediate storage device that can store the encoded data generated by source device 102. Destination device 116 may access stored data from file server 114 via streaming or download. File server 114 may be any type of server device with the capability to store encoded data and transmit that encoded data to destination device 116. File server 114 Petition 870250091416, dated 07 / 10 / 2025, pp. 338 / 441 14 / 81 can represent a web server (e.g., for a website), a file transfer protocol (FTP) server, a content delivery network device, or a network attached storage (NAS) device. The target device 116 can access encrypted data from file server 114 through any standard data connection, including an internet connection. This can include a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., digital subscriber line (DSL), cable modem, etc.), or a combination of both that is suitable for accessing encrypted data stored on file server 114. File server 114 and input interface 122 can be configured to operate according to a streaming protocol, a download protocol, or a combination thereof.

[0055] Output interface 108 and input interface 122 may represent wireless transmitters / receivers, modems, wired network communication components (e.g., Ethernet cards), wireless communication components operating in accordance with any of a variety of Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards, or other physical components. In examples where output interface 108 and input interface 122 comprise wireless components, output interface 108 and input interface 122 may be configured to transfer data, such as encoded data, in accordance with a cellular communication standard such as fourth generation (4G), 4G-LTE (long-term evolution), advanced LTE, fifth generation (5G), or similar.In some instances where output interface 108 comprises a wireless transmitter, output interface 108 and input interface 122 can be configured to transfer data, such as encoded data, according to other wireless standards, such as an IEEE 802.11 specification, an IEEE 802.15 specification (e.g., ZigBee™). Petition 870250091416, dated 07 / 10 / 2025, pp. 339 / 441 15 / 81 a Bluetooth™ standard or similar. In some examples, the source device 102 and / or the destination device 116 may include their respective system-on-a-chip (SoC) devices. For example, the source device 102 may include a SoC device to perform the functionality assigned to the media encoder 200 and / or the output interface 108, and the destination device 116 may include a SoC device to perform the functionality assigned to the point cloud decoder 300 and / or the input interface 122.

[0056] The techniques of this disclosure can be applied to encode and decode in support of any of a variety of applications, such as communication between autonomous vehicles, communication between scanning devices, cameras, sensors and processing devices, such as local or remote servers, geographic mapping or other applications.

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

[0058] Each of the 200 point cloud encoder and 300 point cloud decoder can be implemented as any one of a variety of suitable encoder and / or decoder circuit sets, such as one or more microprocessors, digital signal processors (DSPs), circuits Petition 870250091416, dated 07 / 10 / 2025, pp. 340 / 441 16 / 81 application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the techniques are partially implemented in software, a device may store instructions for the software on a suitable non-transient, computer-readable medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Each of the 200 point cloud encoder and 300 point cloud decoder may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder / decoder (CODEC encoder / decoder) in a respective device.A device that includes the 200 point cloud encoder and / or the 300 point cloud decoder may comprise one or more integrated circuits, microprocessors, and / or other types of devices.

[0059] The 200 point cloud encoder and the 300 point cloud decoder can operate according to an encoding standard, such as a video point cloud compression (V-PCC) standard or a geometry point cloud compression (G-PCC) standard. This disclosure may refer generally to the process of encoding (e.g., encoding and decoding) images to include the process of encoding or decoding data. An encoded bitstream generally includes a series of values ​​for syntax elements representing decisions of the encoding process (e.g., encoding modes).

[0060] This disclosure can generally refer to the signaling of certain information, such as syntax elements. The term signaling can generally refer to the communication of values ​​for syntax elements and / or other data used to decode the encoded data. That is, the 200 point cloud encoder can signal values ​​for syntax elements in the bitstream. In general, signaling refers to the generation of a Petition 870250091416, dated 07 / 10 / 2025, pages 341 / 441 17 / 81 value in the bitstream. As mentioned above, the source device 102 can transport the bitstream to the destination device 116 substantially in real time or in non-real time, as may occur during the storage of syntax elements in the storage device 112 for later retrieval by the destination device 116.

[0061] This disclosure may refer, in general, to the analysis of certain information, such as syntax elements. The term analysis may, in general, refer to the evaluation of a received bitstream for syntax elements, which includes a determination of whether a particular syntax element or other information is included in the bitstream.

[0062] The ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) is studying the potential need for standardization of point cloud encoding technology with a compression capability that significantly exceeds that of current approaches and aims to create the standard. The group is working together on this exploratory activity in a collaborative effort known as the 3DG (3-dimensional graphics team) to evaluate compression technology designs proposed by its experts in this area.

[0063] Point cloud compression activities are categorized into two different approaches. The first approach is video point cloud compression (V-PCC), which segments the three-dimensional object and projects the segments onto multiple two-dimensional planes (which are represented as patches in the two-dimensional frame), which are additionally encoded by a legacy two-dimensional video codec, such as a High Efficiency Video Coding (HEVC) codec (ITU-T H.265). The second approach is geometry-based point cloud compression (G-PCC), which directly compresses the three-dimensional geometry, i.e., the position of a set of points in three-dimensional space, and the associated attribute values ​​(for each point associated with the three-dimensional geometry). G-PCC addresses point cloud compression in category 1 (static point clouds) and category 3 (point clouds). Petition 870250091416, dated 07 / 10 / 2025, pp. 342 / 441 18 / 81 dynamically acquired). A recent preliminary version of the G-PCC standard is available in G-PCC DIS, ISO / IEC JTC1 / SC29 / WG11 w19088, Brussels, Belgium, January 2020, and a description of the codec is available in G-PCC Codec Description v6, ISO / IEC JTC1 / SC29 / WG11 w19091, Brussels, Belgium, January 2020.

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

[0065] The three-dimensional space occupied by point cloud data can be enclosed by a virtual bounding box. The position of the points in the bounding box can be represented with a certain precision; therefore, the positions of one or more points can be quantified based on precision. At the smallest level, the bounding box is divided into voxels, which are the smallest unit of space represented by a unit cube. A voxel in the bounding box can be associated with zero, one, or more than one point. The bounding box can be divided into multiple cube / cuboid regions, which can be called tiles. Each tile can be encoded into one or more slices. The partitioning of the bounding box into slices and tiles can be based on the number of points in each partition or can be based on other considerations (e.g., a particular region can be encoded as tiles).The slice regions can be further partitioned using splitting decisions similar to those in video codecs.

[0066] Figure 2 provides an overview of the 200 point cloud encoder. Figure 3 provides an overview of the point cloud decoder. Petition 870250091416, dated 07 / 10 / 2025, pp. 343 / 441 19 / 81 points 300. The modules shown are logical and do not necessarily correspond, one-to-one, to the code implemented in the reference implementation of the G-PCC codec, that is, the TMC13 test model software studied by ISO / IEC MPEG (JTC 1 / SC 29 / WG 11). In the example in Figure 2, the point cloud encoder 200 may include a geometry encoding unit 250 and an attribute encoding unit 260. In general, the geometry encoding unit 250 is configured to encode the positions of the points in the point cloud frame to produce geometry bitstream 203. The attribute encoding unit 260 is configured to encode the attributes of the points in the point cloud frame to produce attribute bitstream 205. As will be explained below, the attribute encoding unit 260 may also use the positions as well as the encoded geometry of the geometry encoding unit 250 to encode the attributes.

[0067] In the example in Figure 3, the point cloud decoder 300 may include a geometry decoding unit 350 and an attribute decoding unit 360. In general, the geometry encoding unit 350 is configured to decode the geometry bitstream 203 to retrieve the point positions in the point cloud frame. The attribute decoding unit 360 is configured to decode the attribute bitstream 205 to retrieve the point attributes from the point cloud frame. As will be explained below, the attribute decoding unit 360 may also use the decoded geometry positions from the geometry decoding unit 350 to decode the attributes.

[0068] In both the 200 point cloud encoder and the 300 point cloud decoder, point cloud positions are encoded first. Attribute encoding depends on the decoded geometry. In Figures 4 to 7 of this disclosure, vertical hash encoding units are typically used options for Category 1 data. Diagonally hatched encoding units are typically used options for Category 3 data. All other modules are common between Petition 870250091416, dated 07 / 10 / 2025, pp. 344 / 441 20 / 81 categories 1 and 3.

[0069] For Category 3 data, compressed geometry is typically represented as an octree from the root to a sheet level of individual voxels. For Category 1 data, compressed geometry is typically represented by a pruned octree (i.e., an octree from the root to a sheet level of blocks larger than voxels) plus a model that approximates the surface in each sheet of the pruned octree. In this way, Category 1 and 3 data share the octree encoding mechanism, while Category 1 data can, in addition, approximate the voxels in each sheet with a surface model. The surface model used is a triangulation comprising 1 to 10 triangles per block, resulting in a triangle soup. The Category 1 geometry codec is therefore known as the Trisoup geometry codec, while the Category 3 geometry codec is known as the Octree geometry codec.

[0070] At each node of an octree, an occupancy is signaled (when not inferred) for one or more of its child nodes (up to eight nodes). Multiple neighborhoods are specified, including (a) nodes that share a face with a current octree node, (b) nodes that share a face, edge, or vertex with the current octree node, etc. In each neighborhood, the occupancy of a node and / or its children can be used to predict the occupancy of the current node or its children. For points that are sparsely filled at certain octree nodes, the codec also supports a direct encoding mode, where the three-dimensional position of the point is directly encoded. A flag can be signaled to indicate that a direct mode is signaled. At the lowest level, the number of points associated with the node / leaf node of the octree can also be encoded. Figure 8 is a conceptual diagram illustrating an example of octree splitting for geometric encoding.

[0071] Once the geometry is encoded, the attributes corresponding to the geometry points are encoded. When there are multiple attribute points corresponding to a reconstructed / decoded geometry point, an attribute value can be derived that is representative of the reconstructed point. Petition 870250091416, dated 07 / 10 / 2025, pages 345 / 441 21 / 81

[0072] There are three attribute coding methods in G-PCC: region adaptive hierarchical transform (RAHT) coding, interpolation-based hierarchical nearest neighbor prediction (predictive transform), and interpolation-based hierarchical nearest neighbor prediction with an update / elevation step (elevation transform). RAHT and elevation are typically used for category 1 data, while prediction is typically used for category 3 data. However, any method can be used for any data, and as with geometry codecs in G-PCC, the attribute coding method used to encode the point cloud is specified in the bitstream.

[0073] Attribute encoding can be conducted at a level of detail (LoD) where, with each level of detail, a finer representation of the point cloud attribute can be obtained. Each level of detail can be specified based on the distance metric from neighboring nodes or based on a sampling distance.

[0074] In the 200 point cloud encoder, the residuals obtained as output from the coding methods for the attributes are quantized. The residuals can be obtained by subtracting the attribute value from a prediction that is derived based on points in the neighborhood of the current point and based on the attribute values ​​of previously coded points. The quantized residuals can be coded using context-adaptive arithmetic coding.

[0075] The 200 point cloud encoder and the 300 point cloud decoder can be configured to encode point cloud data using predictive geometry coding as an alternative to octree geometry coding. In predictive tree coding, the point cloud nodes are arranged in a tree structure (which defines the prediction structure), and various prediction strategies are used to predict the coordinates of each node in the tree relative to its predictors.

[0076] Figure 9 is a conceptual diagram that illustrates an example of Petition 870250091416, dated 07 / 10 / 2025, pp. 346 / 441 22 / 81 Prediction Tree 900. In the example in Figure 9, the prediction tree 900 is shown as a directed graph where the arrows point in the direction of prediction. The node with horizontal lines 900 is the root node and has no predictors. The nodes with crossed lines (e.g., nodes 902, 904) have two children; the node with diagonal lines (e.g., node 906) has 3 children; the open nodes have one child, and the nodes with vertical lines (e.g., nodes 908, 910, 912, 914, and 916) are leaf nodes and have no children. Each node, apart from the root node, has only one parent node.

[0077] Consequently, a node that is the root vertex has no predictors. Other nodes may have 1, 2, 3 or more children. Other nodes may be leaf nodes that have no children. In one example, each node of the predictor has only one parent node.

[0078] In one example, four prediction strategies are specified for each node, based on its father (p0), grandfather (p1), and great-grandfather (p2): • No prediction / zero prediction (0) • Delta prediction (p0) • Linear prediction (2*p0 - p1) • Parallelogram prediction (p0 + p1 - p2).

[0079] The 200 point cloud encoder can employ any algorithm to generate the prediction tree; the algorithm used can be determined based on the application / use case, and various strategies can be used. For each node, the residual coordinate values ​​are encoded in the bitstream from the root node in a depth-first manner. Predictive geometry encoding can be particularly useful for Category 3 point cloud data (acquired by LIDAR), for example, for low-latency applications.

[0080] In some examples, the angular mode can be used in predictive geometry coding, where the characteristics of LIDAR sensors can be used in coding the prediction tree more efficiently. The coordinates of the positions are converted to (r, φ, i) (radius, azimuth (also called azimuthal angle value) and laser index) and Petition 870250091416, dated 07 / 10 / 2025, pp. 347 / 441 23 / 81 a prediction is made in this domain (the residuals are encoded in the τ,φ,ϊ domain). Due to rounding errors, the encoding in τ,φ,ί is not smaller and therefore a second set of residuals is encoded, which corresponds to the Cartesian coordinates. A description of the encoding and decoding strategies used for the angular mode for predictive geometric coding is provided below.

[0081] The angular mode for predictive geometry coding can be used with point clouds acquired using a wiring Lidar model. In the present invention, the lidar has N lasers (e.g., N = 16, 32, 64) rotating around the Z-axis according to an azimuth angle φ (see Figures 10A and 10B). Each laser can have different elevation θ(ι)ι=1.N and height ς(ι)ί=1.N. In one example, laser i strikes a point M, with Cartesian integer coordinates (x,y,z), defined according to the coordinate system described in Figures 10A and 10B of an example wiring Lidar acquisition model.

[0082] The angular mode for predictive geometry coding can include modeling the position of M with three parameters (r, φ, i), which are calculated as follows: • r = ^x2+ y2 Equation (1) • φ = atan2 (y, x) Equation (2) • i = arg min {z + ç(y) — rx tan(0( / ))},}=1...N Equation (3).

[0083] More precisely, the angular mode for predictive geometry coding uses the quantized version of (τ,φ,ι), denoted (r,¢, i), where the three integers r,0 and i are calculated as follows: • r = floor (^X+ + °r) = hypot(x,y) Equation (4) Petition 870250091416, dated 07 / 10 / 2025, pp. 348 / 441 24 / 81 • φ = sign(atan2(y,x)) x floor ^atan^^y'x^ +0$) Equation (5) • i = arg min {z + ç(y) — rx tan (0( / ))} j=1...N Equation (6) where • (qr, or) and ($φ, 0φ) are quantization parameters that control the precision of $ er, respectively. • sign(t) is the function that returns 1 if t is positive and (-1) otherwise. • |t| is the absolute value of t.

[0084] To avoid reconstruction incompatibilities due to the use of floating-point operations, the values ​​of q(i)i=1^Ne tan(0(i))i=1^w can be pre-calculated and quantized as follows: ~ί·\ r z-aã sz ci / |^(i)|, z(i) = sign(ç(i)) x floor I--+ \Qç 0') Equation (7) t(i) = sign(q(tan(3 (jf)) x floor / |tan(0( / ')1\ Qe oe) Equation (8) where • (gç,oç)e (qe,oe') are quantization parameters that control the precision of ç and Θ, respectively. The reconstructed Cartesian coordinates are obtained as follows: • x = rounder x qrx app_cos( <f x qφ)') Equation (9) • y = round(rx qrx app_sin($ x qφ)') Equation (10) • Z = round(rx qrx t(i) x qe— Z(i) x Qç), Equation (11) where app_cos(.) and app_sin(.) are approximations of cos(.) and sin(.) The Petition 870250091416, dated 07 / 10 / 2025, pp. 349 / 441 25 / 81 calculations can be performed using a fixed-point representation, a lookup table, and linear interpolation.

[0085] Note that (x, y, z) may be different from (x, y, z) for several reasons: - quantization - approximations - model inaccuracy - inaccuracies in model parameters Let (rx, ry, rz) be the reconstruction residuals defined as follows: - rx = x — x Equation (12) - ry=y — y Equation (13) _ A - rz= z — z Equation (14) In this method, the 200 point cloud encoder can proceed as follows: • Encode the model parameters t(i) ez(i) and the quantization parameters qrqç, qee qφ • Apply a predictive geometry scheme to the representation (r, φ, i) o A new predictor that enhances the LiDAR characteristics can be introduced. For example, the rotation speed of the LIDAR scanning device around the z-axis is generally constant. Therefore, the 200 point cloud encoder can predict the current φ(φ) as follows: $(D = Φ(— 1) + n(j) x δφ(Κ) Equation (15) Where (δφ(^')\_1 K is a set of potential speeds that the encoder can choose. The index k could be explicitly written to the bitstream or could be inferred from the context based on a deterministic strategy. Petition 870250091416, dated 07 / 10 / 2025, pp. 350 / 441 26 / 81 applied by the 200 point cloud encoder and the 300 point cloud decoder, en(j) is the number of skipped points, which could be explicitly written to the bitstream or could be inferred from the context based on a deterministic strategy applied by both the encoder and the decoder. It is also later called the phi multiplier. Note that currently it is only used with the delta predictor. • Encode the reconstruction residues (rx,ry,rz') with each node.

[0086] The 300 point cloud decoder can proceed as follows: • Decode (e.g., reconstruct) the model parameters t(i) and z(i) and the quantization parameters qrqç, qee qφ • Decode the (r, φ, i) parameters associated with the nodes according to the geometry predictive scheme used by the 200 point cloud encoder. • Calculate the reconstructed coordinates (x,y,z) as described above. • Decode the residues (rx, ry, rz) o As described in more detail, lossy compression can be supported by quantizing the reconstruction residues (rx, ry, rz) • Calculate the original coordinates (x, y, z) as follows ox = rx + x Equation (16) + Equation (17) oz = rz+ z Equation (18).

[0087] Lossy compression can be achieved by applying quantization to reconstruction residuals (rx,ry,rz~) or by drop points. Quantized reconstruction residuals can be computed from Petition 870250091416, dated 07 / 10 / 2025, pp. 351 / 441 27 / 81 as follows: rx = sign(rx) x floor C^ox) Equation (19) ~ · ry= sign (Ty) x floor (^ + Oy) Equation (20) rz= sign(rz') x floor (y| + oz) Equation (21) Where (qx,ox), (qy,oy) and (qz,oz) are quantization parameters that control the precision of rx, rye and rz, respectively.

[0088] Trellis quantization can be used to further improve RD (rate distortion) performance results. Quantization parameters can change at the sequence / frame / slice / block level to achieve adaptive region quality and for rate control purposes.

[0089] Attribute encoding, octree geometry encoding, and predictive tree geometry encoding techniques can be implemented as intraprediction encoding techniques. That is, the 200 point cloud encoder and the 300 point cloud decoder can encode attribute and position data using only information from the point cloud data frame being encoded. In other examples, the 200 point cloud encoder and the 300 point cloud decoder can encode attributes, octree geometry, and / or predictive tree geometry using interprediction techniques. That is, the 200 point cloud encoder and the 300 point cloud decoder can encode attribute and position data using information from the point cloud data frame being encoded, as well as information from previously encoded point cloud data frames.

[0090] As described above, an example of predictive geometry coding uses a prediction tree structure to predict positions. Petition 870250091416, dated 07 / 10 / 2025, pp. 352 / 441 28 / 81 of the points. When angular encoding is enabled, the x, y, z coordinates are transformed into radius, azimuth (e.g., azimuthal angle value), and the laserID and residuals are signaled in these three coordinates, as well as in the x, y, z dimensions. The intraprediction used for radius, azimuth, and laserID can be one of four modes, and the predictors are the nodes that are classified as parent, grandparent, and great-grandparent in the prediction tree relative to the current node. In one example, predictive geometry encoding can be configured as an intracoding tool, since it only uses points in the same frame for prediction. However, using points from previously decoded frames (e.g., interprediction) can provide better prediction and therefore better compression performance in some circumstances.

[0091] For predictive geometry coding that uses interprediction, one technique involves predicting the radius of a point from a reference frame. For each point in the prediction tree, it is determined whether the point is interpredicted or intrapredicted (indicated by a flag). When intrapredicted, the intraprediction modes of predictive geometry coding are used. When interprediction is used, the azimuth and laserID are still predicted with intraprediction, while the radius is predicted from the point in the reference frame that has the same laserID as the current point and an azimuth that is closest to the current azimuth. Another example of this method enables azimuth and laserID prediction in addition to radius prediction. When intercoding is applied, the radius, azimuth, and laserID of the current point are predicted based on a point that is close to the azimuth position of a previously decoded point in the reference frame.Furthermore, separate sets of contexts are used for inter- and intraprediction.

[0092] One method is illustrated in Figure 11. Figure 11 is a conceptual diagram illustrating an example of interprediction of a current point (curPoint) 1100 in a current frame from a point (interPredPt) 1102 in the reference frame. The extension of interprediction to azimuth, radius, and laserID may include the following steps: Petition 870250091416, dated 07 / 10 / 2025, pp. 353 / 441 29 / 81 • For a given point, choose the previous decoded point (prevDecPO) 1104. • Choose a position point (refFrameP0) 1106 in the reference frame that has the same azimuth in scale and laserID as prevDecP0 1104. • In the reference frame, find the first point (interPredPt) 1102 that has an azimuth greater than that of refFrameP0 1106. The point interPredPt 1102 can also be called the next interpredictor.

[0093] Figure 4 is a block diagram illustrating an example of geometry coding unit 250 from Figure 2 in more detail. Geometry coding unit 250 may include a coordinate transformation unit 202, a voxelization unit 206, a predictive tree construction unit 207, an octree analysis unit 210, a surface approximation analysis unit 212, an arithmetic coding unit 214, and a geometry reconstruction unit 216.

[0094] As shown in the example in Figure 4, geometry encoding unit 250 can obtain a set of point positions in the point cloud. In one example, geometry encoding unit 250 can obtain the set of point positions in the point cloud and the set of attributes from the data source 104 (Figure 1). The positions can include coordinates of points in a point cloud. Geometry encoding unit 250 can generate a geometry bitstream 203 that includes an encoded representation of the point positions in the point cloud.

[0095] The coordinate transformation unit 202 can apply a transformation to the coordinates of points to transform the coordinates from an initial domain to a transformation domain. This disclosure can refer to the transformed coordinates as transformation coordinates. The voxelization unit 206 can voxelize the transformation coordinates. Voxelization of the transformation coordinates can include Petition 870250091416, dated 07 / 10 / 2025, pp. 354 / 441 30 / 81 quantization and removal of some points from the point cloud. In other words, multiple points of the point cloud can be contained in a single voxel, which can then be treated in some respects as a point.

[0096] Prediction tree construction unit 207 can be configured to generate a prediction tree based on voxelized transformation coordinates. Prediction tree construction unit 207 can be configured to perform any of the prediction tree coding techniques described above, either in an intraprediction mode or in an interprediction mode. In order to perform prediction tree coding using interprediction, prediction tree construction unit 207 can access previously encoded frame points from geometry reconstruction unit 216. Arithmetic coding unit 214 can entropically encode syntax elements that represent the encoded prediction tree.

[0097] Instead of performing prediction tree-based coding, geometry coding unit 250 can perform octree-based coding. Octree analysis unit 210 can generate an octree based on voxelized transformation coordinates. Surface approximation analysis unit 212 can analyze points to potentially determine a surface representation of the point sets. Arithmetic coding unit 214 can entropically encode the syntax elements representing the octree information and / or surfaces determined by surface approximation analysis unit 212. Geometry coding unit 250 can generate these syntax elements in geometry bitstream 203. Geometry bitstream 203 can also include other syntax elements, including syntax elements that are not arithmetically encoded.

[0098] Octree-based coding can be performed using intraprediction or interprediction techniques. To perform octree coding using interprediction, the unit of analysis Petition 870250091416, dated 07 / 10 / 2025, pp. 355 / 441 31 / 81 octree 210 and the surface approximation analysis unit 212 can access previously encoded frame points from the geometry reconstruction unit. 216.

[0099] The geometry reconstruction unit 216 can reconstruct transformation coordinates of points in the point cloud based on the octree, the predictive tree, data indicating the surfaces determined by the surface approximation analysis unit 212, and / or other information. The number of transformation 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. This disclosure may refer to the resulting points as reconstructed points.

[0100] Figure 5 is a block diagram illustrating an example of attribute encoding unit 260 from Figure 2 in more detail. Attribute encoding unit 250 may include a color transformation unit 204, an attribute transfer unit 208, a RAHT unit 218, a LoD generation unit 220, an elevation unit 222, a coefficient quantization unit 224, an arithmetic encoding unit 226, and an attribute reconstruction unit 228. Attribute encoding unit 260 may encode the attributes of points in a point cloud to generate an attribute bitstream 205 that includes an encoded representation of the attribute set. The attributes may include information about the points in the point cloud, such as colors associated with the points in the point cloud.

[0101] The color transformation unit 204 can apply a transformation to transform the color information of attributes in a different domain. For example, the color transformation unit 204 can transform color information from an RGB color space to a YcbCr color space. The attribute transfer unit 208 can transfer attributes from the original points of the point cloud to the reconstructed points of the point cloud. The attribute transfer unit 208 can use the Petition 870250091416, dated 07 / 10 / 2025, pp. 356 / 441 32 / 81 original point positions, as well as the positions generated from attribute encoding unit 250 (e.g., geometry reconstruction unit 216) to perform the transfer.

[0102] The RAHT 218 unit can apply RAHT encoding to the attributes of the reconstructed points. In some examples, under RAHT, the attributes of a 2x2x2 block of point positions are taken and transformed along one direction to obtain four low (L) and four high (H) frequency nodes. Subsequently, the four low frequency (L) nodes are transformed in a second direction to obtain two low (LL) and two high (LH) frequency nodes. The two low frequency (LL) nodes are transformed along a third direction to obtain one low frequency (LLL) and one high frequency (LLH) node. The low frequency LLL node corresponds to the DC coefficients and the high frequency H, LH, and LLH nodes correspond to the AC coefficients. The transformation in each direction can be a 1-D transformation with two coefficient weights.Low-frequency coefficients can be considered as 2x2x2 block coefficients for the next higher level of the RAHT transformation, and the AC coefficients are encoded without changes; such transformations continue up to the upper root node. The tree traversal for encoding is top-down and is used to calculate the weights to be used for the coefficients; the transformation order is bottom-up. The coefficients can then be quantized and encoded.

[0103] Alternatively or additionally, the LoD generation unit 220 and the elevation unit 222 can apply LOD and elevation processing, respectively, to the attributes of the reconstructed points. LoD generation is used to divide the attributes into different levels of refinement. Each level of refinement provides a refinement to the attributes of the point cloud. The first level of refinement provides a rough approximation and contains few points; the subsequent level of refinement typically contains more points, and so on. The levels of refinement can be constructed using a distance-based metric or can also use... Petition 870250091416, dated 07 / 10 / 2025, pp. 357 / 441 33 / 81 one or more of other classification criteria (e.g., subsampling from a particular order). In this way, all reconstructed points can be included in a refinement level. Each level of detail is produced by considering a union of all points up to a particular refinement level: for example, LoD1 is obtained based on refinement level RL1, LoD2 is obtained based on RL1 and RL2, ... and LoDN is obtained by the union of RL1, RL2, ... RLN. In some cases, LoD generation can be followed by a prediction scheme (e.g., prediction transformation) where the attributes associated with each point in the LoD are predicted from a weighted average of the previous points, and the residual part is quantized and entropically encoded. The elevation scheme is based on the prediction transformation mechanism, where an update operator is used to update the coefficients and an adaptive quantization of the coefficients is performed.

[0104] The RAHT unit 218 and the elevation unit 222 can generate coefficients based on attributes. The coefficient quantization unit 224 can quantize the coefficients generated by the RAHT unit 218 or the elevation unit 222. The arithmetic encoding unit 226 can apply arithmetic encoding to the syntax elements representing the quantized coefficients. The point cloud encoder 200 can output these syntax elements in the attribute bitstream 205. The attribute bitstream 205 can also include other syntax elements, including non-arithmetically encoded syntax elements.

[0105] Like geometry encoding unit 250, attribute encoding unit 260 can encode attributes using intraprediction or interprediction techniques. The above description of attribute encoding unit 260 generally describes intraprediction techniques. In other examples, RAHT unit 215, LoD generation unit 220, and / or elevation unit 222 can also use previously encoded frame attributes to further encode the attributes of the current frame. In this respect, attribute reconstruction unit 228 can be configured to Petition 870250091416, dated 07 / 10 / 2025, pp. 358 / 441 34 / 81 Reconstruct the encoded attributes and store them for possible future use in interprediction coding.

[0106] Figure 6 is a block diagram illustrating an example geometry decoding unit 350 from Figure 3 in more detail. The geometry decoding unit 350 can be configured to perform the reciprocal process to that performed by the geometry encoding unit 250 of Figure 4. The geometry decoding unit 350 receives a geometry bitstream 203 and produces positions of the points of a point cloud frame. The geometry decoding unit 350 may include an arithmetic geometry decoding unit 302, an octree synthesis unit 306, a prediction tree synthesis unit 307, a surface approximation synthesis unit 310, a geometry reconstruction unit 312, and an inverse coordinate transformation unit 320.

[0107] The geometry decoding unit 350 can receive geometry bitstream 203. The geometry arithmetic decoding unit 302 can apply arithmetic decoding (e.g., context-adaptive binary arithmetic coding (CABAC) or other type of arithmetic decoding) to syntax elements in geometry bitstream 203.

[0108] The octree synthesis unit 306 can synthesize an octree based on the syntax elements parsed from the geometry bitstream 203. Starting with the root node of the octree, the occupancy of each of the eight child nodes at each octree level is signaled in the bitstream. When the signaling indicates that a child node at a particular octree level is occupied, the occupancy of that child node's children is signaled. The signaling of nodes at each octree level is signaled before proceeding to the subsequent octree level.

[0109] At the final level of the octree, each node corresponds to a voxel position; when the leaf node is occupied, one or more points can be specified to be occupied in the voxel position. In some cases, some branches of the octree may terminate earlier than the final level. Petition 870250091416, dated 07 / 10 / 2025, pp. 359 / 441 35 / 81 due to quantization. In these cases, a leaf node is considered an occupied node that has no child nodes. In cases where surface approximation is used in geometry bitstream 203, surface approximation synthesis unit 310 can determine a surface model based on syntax elements parsed from geometry bitstream 203 and based on the octree.

[0110] Octree-based coding can be performed as intraprediction techniques or interprediction techniques. In order to perform octree coding using interprediction, the octree synthesis unit 306 and the surface approximation synthesis unit 310 can access previously decoded frame points from the geometry reconstruction unit 312.

[0111] The prediction tree synthesis unit can synthesize a prediction tree based on syntax elements parsed from the geometry bitstream 203. The prediction tree synthesis unit 307 can be configured to synthesize the prediction tree using any of the techniques described above, including the use of both intraprediction and interprediction techniques. To perform prediction tree encoding using interprediction, the prediction tree synthesis unit 307 can access previously decoded frame points from the geometric reconstruction unit 312.

[0112] The geometry reconstruction unit 312 can perform a reconstruction to determine the coordinates of points in a point cloud. For each position in a leaf node of the octree, the geometry reconstruction unit 312 can reconstruct the node position using a binary representation of the leaf node in the octree. In each respective leaf node, the number of points in the respective leaf node is signaled; this indicates the number of duplicate points in the same voxel position. When geometry quantization is used, the point positions are scaled to determine the reconstructed point position values.

[0113] The inverse coordinate transformation unit 320 can Petition 870250091416, dated 07 / 10 / 2025, pp. 360 / 441 36 / 81 Apply an inverse transformation to the reconstructed coordinates to convert the reconstructed coordinates (positions) of the points in the point cloud from a transformation domain back to an initial domain. The positions of points in a point cloud may be in the floating-point domain, but the point positions in the G-PCC codec are encoded in the integer domain. The inverse transformation can be used to convert the positions back to the original domain.

[0114] Figure 7 is a block diagram illustrating an example 360 ​​attribute decoding unit from Figure 3 in more detail. The 360 ​​attribute decoding unit can be configured to perform the reciprocal process to that performed by the 260 attribute encoding unit of Figure 5. The 360 ​​attribute decoding unit receives the attribute bitstream 205 and produces attributes from the points of a point cloud frame. The 356 attribute decoding unit may include an arithmetic attribute decoding unit 304, an inverse quantization unit 308, a RAHT unit 314, a LoD generation unit 316, an inverse elevation unit 318, an inverse transformation color unit 322, and an attribute reconstruction unit 328.

[0115] The attribute arithmetic decoding unit 304 can apply arithmetic decoding to syntax elements in the attribute bitstream 205. The inverse quantization unit 308 can inversely quantize attribute values. Attribute values ​​can be based on syntax elements obtained from the attribute bitstream 205 (for example, including syntax elements decoded by the attribute arithmetic decoding unit 304).

[0116] Depending on how the attribute values ​​are encoded, the RAHT 314 unit can perform RAHT encoding to determine, based on the inversely quantized attribute values, the color values ​​for the points in the point cloud. RAHT decoding is done from top to bottom of the tree. At each level, the low- and high-frequency coefficients, which are derived from the inverse quantization process, are used to Petition 870250091416, dated 07 / 10 / 2025, pp. 361 / 44137 / 81 Derive the constituent values. In the leaf node, the derived values ​​correspond to the attribute values ​​of the coefficients. The weight derivation process for the points is similar to the process used in the 200 point cloud encoder. Alternatively, the 316 LoD generation unit and the 318 inverse elevation unit can determine color values ​​for point cloud points using a detail-based technique. The 316 LoD generation unit decodes each LoD resulting in progressively finer representations of the point attribute. With a prediction transformation, the 316 LoD generation unit derives the point prediction from a weighted sum of points that are in previous LoDs or previously reconstructed in the same LoD. The 316 LoD generation unit can add the prediction to the residual (which is obtained after inverse quantization) to obtain the reconstructed attribute value.When the elevation scheme is used, the LoD 316 generation unit can also include an update operator to update the coefficients used to derive the attribute values. In this case, the LoD 316 generation unit can also apply inverse adaptive quantization.

[0117] Furthermore, in the example in Figure 7, the inverse color transformation unit 322 can apply an inverse color transformation to the color values. The inverse color transformation can be an inverse of a color transformation applied by the color transformation unit 204 of the encoder 200. For example, the color transformation unit 204 can transform color information from an RGB color space to a YcbCr color space. Consequently, the inverse color transformation unit 322 can transform color information from the YcbCr color space to the RGB color space.

[0118] The attribute reconstruction unit 328 can be configured to store attributes from previously decoded frames. Attribute encoding can be performed using intraprediction or interprediction techniques. In order to perform attribute decoding using interprediction, the RAHT unit 314 and / or the LoD generation unit 316 Petition 870250091416, dated 07 / 10 / 2025, pp. 362 / 441 38 / 81 can access previously decoded frame attributes from attribute reconstruction unit 328.

[0119] The various units in Figures 4 to 7 are illustrated to aid in understanding the operations performed by the 200 point cloud encoder and the 300 point cloud decoder. The units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Fixed-function circuits refer to circuits that provide particular functionality and are predefined in the operations that can be performed. Programmable circuits refer to circuits that can be programmed to perform various tasks and to provide flexible functionality in the operations that can be performed. For example, programmable circuits can execute software or firmware that causes the programmable circuits to operate in the manner defined by the software or firmware instructions.Fixed-function circuits can execute software instructions (for example, to receive parameters or to emit parameters), but the types of operations that fixed-function circuits perform are generally immutable. In some examples, one or more of the units may be distinct circuit blocks (fixed-function or programmable), and in some examples, one or more of the units may be integrated circuits.

[0120] Figure 12 is a flowchart illustrating an example decoding flow associated with the inter flag that is signaled for each point. The inter flag signaled for a point indicates whether interprediction is applied for that point. The flowcharts in this disclosure are provided as examples. Other examples may include more steps, fewer steps, or different steps, or steps that may be performed in a different order.

[0121] In the example in Figure 12, point cloud decoder 300 can determine whether an inter flag of a next point to be decoded (i.e., a current point of a current frame of point cloud data) indicates that the current point is interpredicted (1200). If the inter flag of the current point does not indicate that the current point is interpredicted (NO branch of 1200), point cloud decoder 300 can identify an intraprediction candidate (1202). Petition 870250091416, dated 07 / 10 / 2025, pp. 363 / 441 39 / 81 For example, point cloud decoder 300 can determine an intraprediction strategy (e.g., no prediction, delta prediction, linear prediction, parallelogram prediction, etc.) to determine a predictor for the current point. A syntax element (pred_mode) signaled in geometry bitstream 203 can indicate the intraprediction strategy to be used to determine the predictor for the current point.

[0122] On the other hand, if the inter flag for the current point indicates that the current point is interpredicted (SIM branch of 1200), the point cloud decoder 300 can identify a previous point in order of decoding (e.g., previous point) (1204). The previous point may have coordinates (r, phi (i.e., azimuthal angle value) and laserID). The point cloud decoder 300 can then derive a quantized phi coordinate (i.e., azimuth coordinate) from the previous point (1206). The quantized phi coordinate can be denoted as Q(phi) or qphi. The 300 point cloud decoder can then check a reference frame (e.g., reference frame) for points (i.e., interprediction points (e.g., interPredPt)) having quantized phi coordinates greater than the quantized phi coordinate of the previous point (1208). The 300 point cloud decoder can use the interprediction point as a predictor for the current point (1210).

[0123] Regardless of whether the 300 point cloud decoder determines the predictor for the current point using intraprediction (e.g., as described in relation to step 1202) or using interprediction (e.g., as described in relation to steps 1204 to 1210), the 300 point cloud decoder can add a delta phi multiplier (1212).

[0124] In the interprediction method for predictive geometry described above, the radius, azimuth, and laserID of the current point are predicted based on a point that is near the azimuth position placed in the reference frame when intercoding is applied using the following steps: for a given point, choose the previous decoding point, choose a position in the reference frame that has the scaled azimuth and the Petition 870250091416, dated 07 / 10 / 2025, pp. 364 / 441 40 / 81 laserID equal to the given point and choose a position in the reference frame from the first point that has an azimuth greater than the position in the reference frame, to be used as the interpretation point.

[0125] Figure 13 is a conceptual diagram illustrating an additional example interpredictor point 1300 obtained from the first point that has an azimuth greater than the interpredictor point 1314. In the interprediction method for predictive geometry described above in relation to Figures 11 and 12, the radius, azimuth, and laserID of a current point (current point 1100) are predicted based on a point (interprediction point 1104) that is close to the azimuth position placed (reference position 1110) in a reference frame (reference frame 1106) when intercoding is applied. In the example in Figure 13, point cloud encoder 200 and point cloud decoder 300 can determine the additional interpredictor point 1300 using the following steps: a. For a given point (current point 1304 of a current frame 1306), determine a previous point 1308 in the current frame 1306 (previous decoded point in Figure 13); b. determine a reference position 1312 in a reference frame 1310 that has the same azimuth and laserID scale as the previous point 1308 determined in step a) (reference point with the same azimuth and laserID scale in Figure 13), c. Determine a position in the reference frame 1310 as the first point that has an azimuth (e.g., scale azimuth) greater than the reference position 1312 determined in step b), to be used as the interprediction point (interprediction point 1314 in Figure 13).

[0126] An additional interpredictor point can be obtained by finding the first point that has an azimuth (e.g., scale azimuth) greater than the interpredictor point 1314 determined in step c) as shown in Figure 13 (additional interpredictor point 1300 in Figure 13). Additional signaling can be used to indicate which of the predictors is selected if intercoding has been applied. The additional interpredictor point can be Petition 870250091416, dated 07 / 10 / 2025, pp. 365 / 441 41 / 81, also called the NextNext interpreter.

[0127] A context selection algorithm can be applied to encode the interprediction flag. For example, the interprediction flag values ​​of the five points previously encoded can be used to select the context of the interprediction flag in predictive geometric coding.

[0128] Adaptive quantization of the azimuthal angle is discussed now. When using spherical coordinates in the predictive geometric coding of LIDAR-acquired point clouds in G-PCC Ed. 1, azimuthal angles are quantized independently of the distance between the points and the LIDAR acquisition head. The result of sampling this quantization is approximately as illustrated in Figure 14. Figure 14 is a conceptual diagram illustrating the sampling of azimuthal angles and radii using uniform quantization, as in G-PCC Ed. 1. Figure 14 shows that the sampling density is high near the origin, where a rotating sensor head is located, and becomes low in regions far from the rotating sensor head. Depending on the value of Δφ, excessive precision is obtained for points (π, Φι) close to the rotating sensor head, or insufficient precision for points (r2, φ2) far from the sensor head.In the first case, for nearby points, there is too much encoded information for the residual error in predicting the azimuthal angle. On the other hand, in the second case, there is not enough encoded information for the residual error in predicting the azimuthal angle of distant points to have accurate precision in the inversely transformed (x, y) values, thus leading to a larger magnitude residual error in the Cartesian coordinates (xres, yres) to be encoded. In both cases, the compression of the azimuthal angle φ is not ideal. In summary, the uniform quantization of φ does not lead to the ideal representation of point positions when considering the general point compression scheme in Cartesian space.

[0129] Some techniques can adaptively quantize the azimuthal angle according to the radius, resulting in improved performance of Petition 870250091416, dated 07 / 10 / 2025, pp. 366 / 441 42 / 81 compression. To compress more efficiently, it is proposed to use an adaptive quantization step of the azimuthal angle φ. Using the reconstructed radius value r2D, the proposed non-uniform adaptive angle quantization step is modified to: Δφ(^) = Δφarc / r2D. Equation (22).

[0130] Using this non-uniform quantization step, the arc length resulting from the quantization step Δφ (.) is uniform for any radius r1, r2, since this length is equal to η.Δφ(η) = Δφarc = ^.Δφ(^).

[0131] This non-uniform quantization step in the φ domain can therefore provide uniform quantization of circular arcs, with quantization step Δφarc, for any radius as illustrated in Figure 15 and Figure 16. Figure 16 also shows the more uniform angular sectors implied by the uniform quantization of circular arcs, leading to a more uniform maximum error introduced by the quantization of φ. Figure 15 is a conceptual diagram illustrating the non-uniform quantization of azimuthal angles, leading to uniform quantization arcs. Figure 16 is a conceptual diagram illustrating the uniform quantization of circular arcs using the quantization step Δφarc.

[0132] Implementation details are described in J. Taquet, S. Lasserre, S. Gao, M.-L. Champel, [G-PCC][New] Improved Quantization of Azimuthal Angle in Predictive Geometry Coding, ISO / IEC JTC1 / SC29 / WG7 m55979, January 2021, with some additional modifications in J. Taquet, S. Lasserre, S. Gao, M.-L. Champel, [G-PCC][EE13.51] Report on Predictive Geometry Improvement, ISO / IEC JTC1 / SC29 / WG7 m56482, April 2021. Integer division in the inverse quantization of the azimuthal residual is approximated using the Newton-Raphson division approximation algorithm. Furthermore, the internal precision for representing azimuthal angles is increased (e.g., 24 bits for lossless), which led to a modification of the implementation of integer sine and cosine functions to maintain 32-bit arithmetic, but the modification does not affect the normative definition of these functions. This also led to the adaptation of spherical coordinate scaling to Petition 870250091416, dated 07 / 10 / 2025, pp. 367 / 441 43 / 81 attribute encoding due to increased precision.

[0133] The improved quantization of the azimuthal angle has been made backward compatible with G-PCC Ed. 1 by adding a flag in the geometry parameter set extension to enable / disable the attribute.

[0134] Residual azimuth angle coding is now discussed. The following process for improving residual azimuthal angle coding can be implemented in addition to the adaptive azimuthal angle quantization described above. When using spherical coordinates in the predictive geometric coding of LIDAR-acquired point clouds in G-PCC Ed.1, the azimuthal angle prediction of a point can be refined by adding a number k (bitstream-encoded) of 'tystep' azimuthal angle steps to the φ-n azimuthal angle prediction provided by the nth predictor: Φρ^ = k * φ^ + φ-n. Equation (23).

[0135] The azimuthal step 'tystep' can basically correspond to the rotation performed by the LIDAR sensor head between two successive attempts to acquire points with a laser at a given elevation angle. It corresponds to the azimuthal angle provided by: ψείβρ = geom_angular_azimuth_speed_minus1 + 1 Equation (24) where geom_angular_azimuth_speed_minus1 is obtained from the geometry parameter set (GPS).

[0136] In G-PCC Ed.1, there is no restriction on the value of k. Thus, the residual 'tyres of the prediction of the azimuthal angle φ by the predictor 'typred: φ^ε = φ - Φρ^ Equation (25) is unbounded.

[0137] In order to limit the residual 'tyres' so that it fits within the range [- φstep / 2; + φstep / 2], the value of k can be determined as follows: k = round(ty - φ-n) / φstep) Equation (26).

[0138] More precisely, in the context of the adaptive azimuthal angle quantization described above, the residual quantized azimuthal angle Όφ^ Petition 870250091416, dated 07 / 10 / 2025, pp. 368 / 441 44 / 81 will satisfy the following equation: -Ωφ(φ8ΐ6ρ / 2, r) = Ωφ(-φ^ρ / 2, r) ^ Qφres = Ωφ(φ^, r) ^ Qφ(φstep / 2, r) Equation (27) where Ωφ(χ, r) is the adaptive quantization of x based on the encoded radius r.

[0139] So, with the use of the limited value of B = Ωφ(φstep / 2, r), the entropic encoding of the quantized residual Όφ^ can be improved.

[0140] First, the bounded B = Ωφ^βρ / 2, r) is calculated for each point as follows: const int rec_radius_scaling = rPred + residual[0] << 3; / / ~r*2*pi auto speed_r = int64_t(_geomAngularAzimuthSpeed)*rec_radius_scaling; int phiBound = divExp2RoundHalfInf(speed_r, _geom_angular_azimuth_s cale_log2+1).

[0141] So, encoder 200 can perform entropy coding as illustrated in Figure 17. Figure 17 is a conceptual diagram illustrating an example of entropy coding of the quantized residual azimuthal angle using the bounded B. If the bounded B is equal to zero, the quantized residual ΌφΓβε is zero, therefore no coding is needed. Otherwise, a flag is coded to indicate whether Όφγθ8 is equal to zero. If Όφ res is different from zero, a signal bin is coded. So, if the bounded B is equal to one, Όφ res is negative one or one, therefore no further coding is needed. Otherwise, a flag is coded to indicate whether the absolute value of Όφ^ is equal to one. If the absolute value of Όφ^ is not equal to one, but the bounded B is equal to two, Όφ^ is negative two or two, and the coding stops. Otherwise, the remainder (i.e., |Όφ^|-2) is encoded using an expGolomb code. The number of entropic encoding contexts can be equal to 24.

[0142] A process for scaling the azimuthal angle step is discussed now. In G-PCC Ed.1, a Cartesian coordinate prediction (xpred, ypred) can be obtained using the following equation: (xpred, ypred) = (round(r2D-rec*cos^rec)), round(r2D-rec*sin^rec)) Equation (28) Petition 870250091416, dated 07 / 10 / 2025, pp. 369 / 441 45 / 81 In the equation above, φι-ec is the reconstructed azimuthal angle and r2D-rec is a reconstructed radius.

[0143] If implemented as an addition to the processes presented above, 'tyrec = φpred + ΙΩφ(Ωφ^8, r), r), with Ωφ the adaptive quantization of the azimuthal angle described in the section entitled Adaptive quantization of azimuthal angle., ΙΩφ the inverse quantization and φ^ the residual azimuthal angle of the prediction.

[0144] In G-PCC Ed.1 and above processes, r2D-rec = r << geom_angular_radius_inv_scale_log2; compared to the Cartesian precision of encoded point clouds, the radius r that is used internally and encoded by the codec has a precision reduced by a number of bits equal to geom_angular_radius_inv_scale_log2 obtained from the geometry parameter set (this is equivalent to a quantization of the radius).

[0145] A process for enabling azimuth angle step scaling is now discussed. If both the enhanced azimuthal angle quantization, as presented above, and the enhanced azimuthal angle residual encoding, as presented above, are implemented, the bounded B = Qφ(φstep / 2, r) (see above), which is calculated for each point for entropy (de)coding, is used to enable azimuthal angle step scaling. If the integer bounded B is equal to 0 or equivalently B < 1, then: φpred = k * S^step,r)+ φ-n, Equation (29) where S^step,r) is a scaled azimuthal angle step.

[0146] A process for calculating a scaled azimuth angle step is now discussed. To encode an ideal number k of scaled azimuth angle steps S^step,r), an ideal S^step,r) would become: S^step,r) = 2geom_angular_azimuth_scale_log2 / (r<<3) Equation (30).

[0147] One problem with equation (9) is that equation (9) requires integer division in decoder 300. Therefore, an approximation of the division is implemented in S^step,r). To compute the approximation, the highest power of the factor 2nde 'tystep is used so that 2n* φstep < Petition 870250091416, dated 07 / 10 / 2025, pp. 370 / 441 46 / 81 2geom_angular_azimuth_scale_log2 / (r<<3)

[0148] The azimuthal angle step on a 2n* φstep scale can be obtained by iteratively scaling 'tystepp' and 'tystep * (r<<3) by 2n, starting from n=0 and using successive bitwise shifting of 1-bit operations in both 2n* φstep * (r<<3) and 2n* φstep while 2n* φstep * (r<<3) is less than the angle 2π (i.e., 2geom_angular_azimuth_scale_log2) as follows: auto rec_radius_scaling = pred[0] + residual[0] << 3; / / ~r*2*pi auto azimuthSpeed ​​= _geomAngularAzimuthSpeed; if (rec_radius_scaling && rec_radius_scaling < Th0) { const int32_t pi = 1 << _geom_angular_azimuth_scale_log2 - 1; int32_t speed_r = azimuthSpeed*rec_radius_scaling; while (speed_r < pi) { speed_r <<= 1; azimuthSpeed ​​<<= 1; }}

[0149] So, in encoder 200, the number of azimuthal steps qphi and in both encoder 200 and decoder 300, the azimuthal angle predictor updated by the number of azimuthal angle steps pred[1], are calculated using azimuthSpeed ​​instead of _geomAngularAzimuthSpeed ​​= gps.geom_angular_azimuth_speed_minus1 + 1 as follows: - qphi = residual[1] >= 0 ? (residual[1] + (_geomAngularAzimuthSpeed ​​>> 1)) - / _geomAngularAzimuthSpeed - : -(-residual[1] + (_geomAngularAzimuthSpeed ​​>> 1)) - / _geomAngularAzimuthSpeed; -pred[1] += qphi * _geomAngularAzimuthSpeed; +qphi = residual[1] >= 0 ? (residual[1] + (azimuthSpeed ​​>> 1)) + / azimuthSpeed Petition 870250091416, dated 07 / 10 / 2025, pp. 371 / 441 47 / 81 + : -(-residual[1] + (azimuthSpeed ​​>> 1)) + / azimuthSpeed; +pred[1] += qphi * azimuthSpeed; residual[1] = point[1] - pred[1].

[0150] Residual radius signal coding is now discussed. In the predictive geometry encoder, the signal of a residual radius is encoded with a single entropic coding context. Since the residual radius signal should be more or less piecewise constant when the radius is predicted from the radius of the previous point (i.e., parent node in the predictive tree), the probability of the signal would be highly correlated with the signal value of the radius of the previously encoded point, when the parent node is used as a predictor. Furthermore, this probability should increase when successively encoded points have similar azimuthal angles (i.e., the number of azimuthal steps encoded in the bitstream and added to the predictor is zero).

[0151] Therefore, the method presented uses a 2x2x2x2 context table (that is, 16) as follows: ctXsign = ctxTab[Iprevious][Ipenulm][Ilast][sres,prec] Equation (31) where ctxTab is the context table, Iprevious is a boolean value indicating whether the selected predictor is the parent node, Ipenulm is a boolean value indicating whether the encoded number of azimuthal steps to the previous point is equal to zero, hast is a boolean value indicating whether the encoded number of azimuthal steps to the current point is equal to zero and 'sres,prec is a boolean value indicating the sign of the last encoded residual ray.

[0152] A list of predictors is now discussed. A dynamic list of predictors is derived to achieve better prediction after a laser beam has moved from a first object, at a first distance, to another object, at a different distance, passed over it, and is passing back to the first object. This can occur, for example, when an object is in front of another (such as a car in front of a wall, for example), or when an object has openings (walls with open doors or windows, or an entrance wall, for example), as illustrated by Figure Petition 870250091416, dated 07 / 10 / 2025, pp. 372 / 441 48 / 81 18. Figure 18 is a conceptual diagram illustrating an example of laser probing of two different objects.

[0153] Instead of using the G-PCC predictor list, a list of N predictors is created from a prediction buffer (e.g., prediction buffer) of N pairs of a radius and an azimuthal angle (rn, φη). Predictor derivation is detailed above, and buffer management is also detailed above. Predictor index encoding can be performed using unary encoding with one context per predictor index.

[0154] The derivation of a predictor is performed as follows: • If the point being predicted is the first point in the tree (i.e., there is no parent node), the predictor PRo is defined as (rmin, 0, 0), the other predictors PRn>o are defined as (0, 0, 0). • If the point has a parent point, a. The PR0 predictor is defined as equal to (r0, φ0, Θ0), where Θ0 is the θ value of the laser index of the parent point p0 encoded in the parent node and where (r0, Φ0) is the first pair in the buffer (as will be understood from buffer management, it is also equal, respectively, to the radius re and the azimuthal angle φ of the parent point p0 encoded in the parent node); b. the predictors PRn>0 are defined equal to (rn, φn + k* φstep, Θ0), where Θ0 is the laser index value Θ of the parent point p0 encoded in the parent node, and where (rn, φn) is the nth pair in the buffer and k is equal to 0 if | φ0 - φn | < φstep, otherwise k is equal to the integer division (φ0 - φn) / φstep.

[0155] Since it is better to avoid integer division in the 300 decoder, (φ0 - φn)^step can be approximated using the divApprox function of G-PCC: k =divApprox(φ0 - φ^φstep, 0).

[0156] The buffer used for predictor derivation can be managed as follows. Each buffer pair is first initialized to (0, 0). After (de)coding a point, encoder 200 or decoder 300 can update the buffer as follows: a. If the absolute value of residual (de)coded radius rres is higher than a threshold Th, the 200 encoder or the 300 decoder can determine that the Petition 870250091416, dated 07 / 10 / 2025, pp. 373 / 441 49 / 81 laser probed a new object. Encoder 200 or decoder 300 can then insert a new element (r0, Φ0) in front of the buffer, with r0 and φ0 denoting the reconstructed radius and the reconstructed azimuthal angle of the (de)coded point, respectively. Encoder 200 or decoder 300 can discard the last element from the buffer. Encoder 200 or decoder 300 can discard the last element from the buffer leaving the buffer element (rn, φn) equal to (rn-1, φ^i) for n=3 to 1. Encoder 200 or decoder 300 can then set the first buffer element values ​​from the decoded point. b. If the absolute value of (de)coded rres is not higher than the threshold Th, the encoder 200 or decoder 300 can determine that the laser probed an object present in the buffer. The encoder 200 or decoder 300 can then move the buffer element with the index predIdx (which corresponds to the index of the predictor that was used for the prediction) to the front of the buffer. The encoder 200 and decoder 300 can update the buffer to include (r0, φ0), that is, the reconstructed radius and the reconstructed azimuthal angle of the (de)coded point. The encoder 200 and decoder 300 can accomplish this by setting the buffer elements (rn, φn) to equal (rn-1, φ^ι) for n=predIdx to 1, then setting the first buffer element values ​​from the decoded point. c. The threshold Th can be equal to gps.predgeom_radius_threshold_for_pred_list and was set in the encoder as 2048 >> ps.geom_angular_radius_inv_scale_log2. gps.predgeom_radius_threshold_for_pred_list is the syntax element that indicates the Threshold value. s.geom_angular_radius_inv_scale_log2 is a precision value (i.e., number of bits) that is used in some intermediate derivations (particularly related to spherical-to-cartesian conversion, or vice versa) for the radius component.

[0157] Encoding and decoding processes for residual radius magnitude are discussed now. These processes can improve residual radius magnitude encoding in predictive tree geometric coding of Petition 870250091416, dated 07 / 10 / 2025, pp. 374 / 441 50 / 81 G-PCC for compression of point clouds acquired by LIDAR.

[0158] Figure 19 is a flowchart illustrating an example method for encoding residual radius magnitude. In the example in Figure 19, encoder 200 uses a context-adaptive entropic encoder to encode residual radius magnitude bits and can determine a context according to the context determination process described elsewhere in this disclosure.

[0159] As shown in Figure 19, encoder 200 can obtain a point with coordinates (r2D, φ, θ) (1900). Encoder 200 can then determine a predictor Ppred (1902). Encoder 200 can use the coordinates of the point and the coordinates of the predictor Ppred to determine a residual (1904). The residual can be specified by values ​​(r2D_res, tyres, dres). For example, encoder 200 can subtract corresponding coordinate values ​​of the point and the predictor to determine the residual. Furthermore, encoder 200 can obtain a predictor index i, i.e., an integer qphi (1906). For example, encoder 200 can select the predictor index i based on a review of one or more possible values ​​of i to determine which provides the best performance. The integer qphi is a quantized value of the residual azimuth. Encoder 200 can then determine a context index ctxIdx (1908).Encoder 200 can select a context ctx based on the context index ctxIdx (1910). An example process for determining the context index ctxIdx and the context ctx is provided below.

[0160] After obtaining the residual radius, encoder 200 can determine a value of a flag f0, a binary entropic encoder can encode the value of the flag f0 based on the context ctx and encoder 200 can signal the encoded value of the flag f0 in the geometry bitstream 203) (1912). The value of the flag f0 is representative of whether the residual radius r2D_res is equal to 0.

[0161] Encoder 200 can then determine if the residual radius r2D_res is equal to 0 (1914). If the residual radius r2D_res is equal to 0 (branch YES of 1914), the encoding of the residual radius r2D_res is terminated because r2D_res = 0 is encoded. Otherwise, if the residual radius r2D_res is not equal to 0 (branch Petition 870250091416, dated 07 / 10 / 2025, pp. 375 / 441 51 / 81 (NOT from 1914), encoder 200 can determine a value of a flag fi, encoder 200 can perform entropic encoding on the value of flag f based on the context ctx, and encoder 200 can include the entropically encoded value of flag f in the geometry bitstream 203 (1916). Flag f is representative of whether the absolute value |r2D_res| is equal to 1.

[0162] Encoder 200 can then determine whether the absolute value |r2D_res| is equal to 1 (1918). If the absolute value |r2D_res| is equal to 1 (YES branch of 1918), encoder 200 has finished encoding the residual radius magnitude r2D_res. Otherwise, if the absolute value |r2D_res| is not equal to 1 (NO branch of 1918), encoder 200 determines the value of a flag f2, the arithmetic encoding unit 214 of encoder 200 performs binary entropic encoding on the value of flag f2 based on the ctx context, and encoder 200 signals that the entropically encoded value of flag f2 is geometry bitstream 203 (1920). Flag f2 is representative of whether the absolute value |r2D_res| is equal to 2 or not.

[0163] Encoder 200 can then determine if the absolute value |r2D_res| is equal to 2 (1922). If the absolute value |r2D_res| is equal to 2 (YES branch of 1922), encoder 200 has finished encoding the residual radius magnitude r2D_res. Otherwise, if the absolute value |r2D_res| is not equal to 2 (NO branch of 1922), encoder 200 can use expGolomb encoding to encode the absolute value (|r2D_res|-3) based on the selected context ctx (1924).

[0164] An overview of the proposed residual radius magnitude decoding method is shown in Figure 20. Figure 20 is a flowchart illustrating an example residual radius magnitude decoding method. In the example in Figure 20, decoder 300 can receive a bitstream (e.g., geometry bitstream 203). Decoder 300 can obtain from the bitstream a predictor index, i.e., an integer qphi for a point (2000). Decoder 300 can then determine a context index ctxIdx (2002). Decoder 300 can select a context ctx based on the context index ctxIdx (2004). An example process for determining the Petition 870250091416, dated 07 / 10 / 2025, pp. 376 / 441 52 / 81 context index ctxIdx and the context ctx are provided below.

[0165] Decoder 300 can decode a value of a flag fü from bitstream (2006). Decoder 300 can use the ctx context to decode the value of flag f0. Flag f0 is representative of whether a residual r2D_res is equal to 0. Decoder 300 can then determine if flag f0 is equal to 1 (2008). If the value of flag f0 is equal to 1 (YES branch of 2008), decoder 300 has finished decoding residual r2D_res. Otherwise, if the value of flag f0 is not equal to 1 (NO branch of 2008), decoder 300 can decode a value of a flagf0 from bitstream (2010). Decoder 300 can use the ctx context to decode the value of flag f1. The flag f represents whether the residual r2D_res is equal to 1. Decoder 300 can then determine if the flag f is equal to 1 (2012). If the value of flag f is equal to 1 (SIM branch of 2012), decoder 300 has finished decoding residual r2D_res.

[0166] Otherwise, if the value of flag f is not equal to 1 (NO branch of 2012), decoder 300 can decode a value of flag f2 from bitstream (2014). Decoder 300 can use the ctx context to decode the value of flag f2. Flag f2 is representative of whether a residual r2D_res is equal to 2. If the value of flag f2 is equal to 1 (YES branch of 2016), decoder 300 has finished decoding residual r2D_res. Otherwise, if the value of flag f2 is not equal to 1 (NO branch of 2016), an exp-Golomb decoder from decoder 300 can decode a series of bits from bitstream (2018). The series of bits indicates an absolute value of |res2D_res| 3).

[0167] As mentioned above, the 200 encoder and 300 decoder determine a context index ctxIdx and a context ctx. A process for determining the context ctx is discussed now. To encode each bit of residual radius magnitude (e.g., r2D_res), the 200 encoder and 300 decoder determine a context index ctxIdx using an integer predictor index qphi of the elementary azimuthal step according to the equation below, Petition 870250091416, dated 07 / 10 / 2025, pp. 377 / 441 53 / 81 0O,se i ctxldx = < 1,se i 2, if ik 3, if i ^0 and qphi = 0 7H) and qphi Ψ 0 = 0 and qphi = 0 = 0 and qphi Ψ 0 Equation (32) and then select a ctx context in the ctxTable_T context table to entropically encode the residual radius magnitude bits according to ctxldx. ctx = ctxTable_T[ctxldx] Equation (33).

[0168] The following describes the dependence of qPhi on azimuth velocity. For some techniques, it is proposed to add new contexts to the adaptive models for k-coding based on: a. - The intrapredictor index b. - An estimate of the number of times the azimuth speed is increased. This requires calculating this estimate in both the encoder and the decoder. This is done by adding the following source code: r = pred[0]; auto azimuthSpeed_ = _geomAngularAzimuthSpeed; int recordAzimuthSpeed ​​= 0; r = r << 3; auto speedTimesR = int64_t(azimuthSpeed_) * r; int phiBound = divExp2RoundHalfInf(speedTimesR, _azimuthTwoPiLog2 + 1); if (r && !phiBound) { recordAzimuthSpeed++; const int32_t pi = 1 << (_azimuthTwoPiLog2 - 1); int32_t speedTimesR32 = speedTimesR; while (speedTimesR32 < pi && recordAzimuthSpeed ​​< 4) { speedTimesR32 <<= 1; azimuthSpeed_<<= 1; recordAzimuthSpeed++; Petition 870250091416, dated 07 / 10 / 2025, pp. 378 / 441 54 / 81 } Table (1)

[0169] The newly calculated parameter (recordAzimuthSpeed, also called azimuthSpeedIndex) and the intraprediction index are used as additional parameters in the functions responsible for encoding, decoding, or estimating the qPhi cost.

[0170] The new context is defined by: int interCtxIdx = interFlag ? 2 : 0; int interCtxIdx_ = interFlag ? 6 : 0; if (interFlag){ interCtxIdx_ += azimuthSpeedIndex; }else{ if (azimuthSpeedIndex > 0) interCtxIdx_ += azimuthSpeedIndex + 1; else{ if (predIdx != 0){ interCtxIdx = 1; interCtxIdx_ = 1; }} }

[0171] The value of interCtxIdx is then used in the analysis of syntax elements associated with qphi, such as ptn_phi_mul_abs_prefix (greater than 0 and greater than 1), ptn_phi_mul_abs_minus2, ptn_phi_mul_abs_minus9 and ptn_phi_mul_sign.

[0172] The following describes the dependence of the reconstructed radius. It is found that the distribution of ΔΔφ is correlated with the radius of that node. Figures 21A and 2B classify points in LiDAR point clouds for points with / without sudden radius change I and show the r-ΔΔφ relationship. Points with sudden change are defined as points with large residual prediction. Petition 870250091416, dated 07 / 10 / 2025, pp. 379 / 441 55 / 81 Δγ: Δr / r>threshold T, where T is a predefined threshold.

[0173] As shown in Figures 21A and 21B, points without sudden change in radius tend to have small and stable ΔΔφ values ​​around zero, while points with sudden change in radius have more variable ΔΔφ values. As such, whether the radius changes drastically can be used as an indicator of the amplitude of ΔΔφ.

[0174] An example of implementing the above observation is to incorporate the above indication as contexts when coding resPhi. The modified context modeling is as follows: To encode whether resPhi = 0 or abs(resPhi) = 1, the following contexts are used: a. The node's prediction mode (inter or intra); and b. If the predictor index of the node is equal to zero. c. if the radius changes drastically.

[0175] To encode the value of abs(resPhi)-2 with expGolomb encoding, the following contexts are used: a. The node's prediction mode (inter or intra); b. if boundPhi-3>6; c. if the radius changes drastically d. count of bins encoded in the prefix or suffix of exp-Golomb codeNum.

[0176] There may be certain problems with some techniques. As described above for the encoding of the residual azimuthal angle (for example, the description of the encoding of the residual azimuthal angle is now discussed), the limited B value of the azimuth was used to encode the residual azimuth - both for signaling syntax elements and for choosing contexts. The context for encoding the remainder (i.e., '|Qφres|-2') also uses the limited B value.

[0177] Next, the encoding is performed as illustrated in Figure 17. If the bounded B is equal to zero, the quantized residue Qφres is zero, therefore, Petition 870250091416, dated 07 / 10 / 2025, pp. 380 / 441 56 / 81 no encoding is needed. Otherwise, a flag is encoded to indicate whether 'ΌφΓββ is equal to zero. If it is different from zero, a sign bin is encoded. Then, if the bounded B is equal to one, Qφres is negative one or one, therefore no further encoding is needed. Otherwise, a flag is encoded to indicate whether the absolute value of 'Όφγθβ is equal to one. If it is not, but the bounded B is equal to two, Qφres is negative two or two, and the encoding stops. Otherwise, the remainder (i.e., ||Qφres|-2) is encoded using an expGolomb code. The number of entropic encoding contexts is equal to 24.

[0178] The implementation is as follows: if (boundPhi == 0) return 0; int interCtxIdx = interFlag ? 1 : 0; int ctxL = interFlag ? (refNodeIdx > 1 ? 1 : 0) : (predIdx ? 1 : 0); / / int ctxL = predIdx ? 1 : 0; if (! _aed->decode(_ctxResPhiGTZero[interCtxIdx][ctxL])) return 0; int absVal = 1; if (boundPhi > 1) absVal += _aed->decode(_ctxResPhiGTOne[interCtxIdx][ctxL]); int interEGkCtxIdx = interFlag ? (refNodeIdx > 1 ? 2 : 1) : 0; if (absVal == 2 && boundPhi > 2) absVal += _aed->decodeExpGolomb(1, _ctxResPhiExpGolombPre[interEGkCtxIdx][boundP-i - 3 > 6], _ctxResPhiExpGolombSuf[interEGkCtxIdx][boundP-i - 3 > 6]).

[0179] The bounded B value is calculated as follows: First, the bounded B = Qφ(φstep / 2, r) is calculated for each point as follows: const int rec_radius_scaling = rPred + residual[0] << 3; / / ~r*2*pi auto speed_r = int64_t(_geomAngularAzimuthSpeed)*rec_radius_scaling; int phiBound = divExp2RoundHalfInf(speed_r, Petition 870250091416, dated 07 / 10 / 2025, pp. 381 / 441 57 / 81 _geom_angular_azimuth_scale_log2+1).

[0180] The rPred value is the predicted residual and may require the reconstructed radius of the previous point(s) in order of decoding. This may mean that in order to analyze the residual azimuth (e.g., residual value of the azimuthal angle), the reconstructed value of the radii of the previous point(s) is / are required. This results in a dependency of the analysis of syntax elements on the reconstruction of points. Typically, many systems analyze NAIS units / syntax structures independently of decoding / reconstruction. This allows the analysis module to be simple and independent. If there is a dependency on reconstruction, the analysis system must include a decoding / reconstruction module or must be tightly coupled to the decoding / reconstruction module. In many systems, this is undesirable, expensive, and impractical.

[0181] Similarly, in the above description for qPhi's dependency on azimuth speed (for example, the above description for the following describes qPhi's dependency on azimuth speed), the context of the qphi syntax elements is dependent on azimuthSpeedIndex and speedTimesR which, in turn, are dependent on the reconstructed radius - thus creating the parsing dependency on decoding / reconstruction.

[0182] Similarly, in the above description of the reconstructed radius dependency (for example, the above description for the following describes the reconstructed radius dependency), the encoding context of the resPhi syntax elements depends on the reconstructed radius (checking if the radius changes drastically), thus creating the parsing dependency on the decoding / reconstruction.

[0183] According to one or more examples, the 200 point cloud encoder can signal and the 300 point cloud decoder can analyze information for a residual azimuthal angle value for a current point in a point cloud independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in decoding order. In this way, the Petition 870250091416, dated 07 / 10 / 2025, pp. 382 / 441 58 / 81 problems associated with the reliance on analysis in decoding / reconstruction can be minimized.

[0184] For example, as illustrated in Figure 17, if B equals zero, then the 300 point cloud decoder does not analyze the residual value of the azimuthal angle. Therefore, whether the 300 point cloud decoder analyzes the residual value of the azimuthal angle or not is dependent (i.e., conditional) on the value of B. In this disclosure, the variable B is equal to boundPhi or phiBound. That is, the disclosure uses the variables B, boundPhi, and phiBound interchangeably.

[0185] As described above, the value of boundPhi (i.e., B or phiBound) is based on the value of speed_r. For example, int phiBound is equal to divExp2RoundHalfInf(speed_r, _geom_angular_azimuth_scale_log2+1). Furthermore, speed_r is based on rec_radius_scaling. For example, auto speed_r is equal to int64_t(_geomAngularAzimuthSpeed)*rec_radius_scaling. The value of rec_radius_scaling is based on rPred. For example, const int rec_radius_scaling = rPred + residual[0] << 3. As described above, the value of rPred is the predicted residual and requires reconstructed radius from the previous point(s).

[0186] Therefore, phiBound (i.e., B or boundPhi) is based on the reconstructed radius of the previous point(s). This means that if the 300 point cloud decoder that analyzes the residual value of the azimuthal angle is dependent on phiBound (i.e., B or boundPhi), then if the 300 point cloud decoder analyzes the residual value of the azimuthal angle it is dependent on a radius value of a previous point in the point cloud.

[0187] According to one or more examples described in this disclosure, the 200 point cloud encoder can signal and the 300 point cloud decoder can parse information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in order of decoding. That is, the decoder of Petition 870250091416, dated 07 / 10 / 2025, pp. 383 / 441 59 / 81 point cloud 300 can analyze and point cloud encoder 200 can signal information for the residual value of the azimuthal angle regardless of whether a condition based on the radius value of the current point or the radius value of the previous point is met.

[0188] For example, point cloud decoder 300 can analyze and point cloud encoder 200 can signal information for the residual value of the azimuthal angle regardless of whether the value of boundPhi (i.e., B or phiBound) is equal to zero or not. That is, the analysis or signaling of information for the residual value of the azimuthal angle is not conditional on the value of boundPhi. Again, the value of boundPhi is based on the radius value of the current point or the radius value of the previous point. Therefore, when parsing or signaling information for the residual value of the azimuthal angle regardless of whether the value of boundPhi (i.e., B or phiBound) is equal to zero or not, the 300 point cloud decoder can parse and the 200 point cloud encoder can signal information for the residual value of the azimuthal angle regardless of whether a condition that is based on the radius value of the current point or the radius value of the previous point is satisfied.

[0189] In addition, the 200 point cloud encoder and the 300 point cloud decoder can determine one or more context values ​​to encode or decode the residual azimuthal angle value for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud. The 200 point cloud encoder and the 300 point cloud decoder can encode or decode the residual azimuthal angle value for the current point based on one or more context values.

[0190] For example, as indicated in the pseudocode above, in some techniques, if the 300 point cloud decoder analyzes ctxResPhiGTOne [interCtxIdx][ctxL] (for example, a context value) it is based on the value of boundPhi (for example, based on the value of boundPhi being greater than 1). If boundPhi is greater than 2, then the decoder of Petition 870250091416, dated 07 / 10 / 2025, pp. 384 / 441 The 60 / 81 point cloud 300 can analyze context values ​​(e.g., ctxResPhiExpGolombPre[interEGkCtxIdx] and ctxResPhiExpGolombSuf[interEGkCtxIdx]) with the additional condition of boundPhi - 3 > 6. In one or more instances, the point cloud 300 decoder can analyze the context values ​​independently of the boundPhi value. That is, the point cloud 300 decoder may not need to first determine if boundPhi is greater than 1, greater than 2, or if boundPhi 3 > 6 to determine the context values.

[0191] As described above, in some techniques, the quantization parameter can be based on the radius value of the current point or the radius value of a previous point. In one or more examples, the 200 point cloud encoder and the 300 point cloud decoder can determine a quantization parameter for the residual azimuthal angle value for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud. The 200 point cloud encoder can quantize and the 300 point cloud decoder can dequantize the residual azimuthal angle value based on the quantization parameter.

[0192] There may be several ways to remove the dependency on whether the residual azimuthal angle value is parsed or flagged from the current point radius value or the previous point radius value. The following describes examples that use a flag to indicate that the parsing of the residual azimuthal angle value is independent of the current point radius value or the previous point radius value. However, the use of a flag is provided only as an example and should be considered limiting. There may be other ways, including where a flag is not included, to remove the dependency on the current point radius value or the previous point radius value from the parsing or flagging of the residual azimuthal angle value.

[0193] For example, a syntax element is added to specify whether the analysis of the residual azimuth (i.e., residual value of the azimuthal angle) is independent of the values ​​of the reconstructed syntax elements. Petition 870250091416, dated 07 / 10 / 2025, pp. 385 / 441 61 / 81 (e.g., reconstructed radius of current / previous points). For example, an azimuth_indep_flag can specify whether the residual azimuth analysis is independent / dependent on the values ​​of the reconstructed syntax elements. When the flag takes a value (e.g., 0), the residual azimuth analysis is independent of the value of the reconstructed syntax elements; if the flag takes a value (e.g., 0), the residual azimuth analysis may be dependent on the value of the reconstructed syntax elements.

[0194] This can be implemented as follows: The encoding is performed as illustrated in Figure 17. If the bounded B is equal to zero and azimuth_indep_flag is equal to 0, the quantized residue Qφres is zero, therefore no encoding is necessary. Otherwise, a flag is encoded to indicate whether Qφres is equal to zero. If it is different from zero, a sign bin is encoded. Then, if the bounded B is equal to one and azimuth_indep_flag is equal to 0, Qφres is negative one or one, therefore no further encoding is necessary. Otherwise, a flag is encoded to indicate whether the absolute value of Qφres is equal to one. If it is not, but the bounded B is equal to two and azimuth_indep_flag is equal to 0, Qφres is negative two or two and the encoding stops. Otherwise, the remainder (i.e., ||Qφres|-2) is encoded using an expGolomb code. The number of entropic encoding contexts is equal to 24.

[0195] The context for encoding the remainder can also be updated as follows: if (boundPhi == 0 && !azimuth_indep_flag) return 0; int interCtxIdx = interFlag ? 1 : 0; int ctxL = interFlag ? (refNodeIdx > 1 ? 1 : 0) : (predIdx ? 1 : 0); / / int ctxL = predIdx ? 1 : 0; if (!_aed->decode(_ctxResPhiGTZero[interCtxIdx][ctxL])) return 0; int absVal = 1; if (azimuth_indep_flag ? 1: boundPhi > 1) Petição 870250091416, de 07 / 10 / 2025, pág. 386 / 441 62 / 81 absVal += _aed->decode(_ctxResPhiGTOne[interCtxIdx][ctxL]); int interEGkCtxIdx = interFlag ? (refNodeIdx > 1 ? 2 : 1) : 0; if (absVal == 2 && (azimuth_indep_flag ? 1: boundPhi > 2)) absVal += _aed->decodeExpGolomb(1, _ctxResPhiExpGolombPre[interEGkCtxIdx][ azimuth_indep_flag ? 0: boundPhi - 3 > 6 ], _ctxResPhiExpGolombSuf[interEGkCtxIdx][ azimuth_indep_flag ? 0: boundPhi - 3 > 6]).

[0196] The flag can be set in the parameter set (e.g., SPS, GPS, etc.) or a slice header. Flag setting can be conditional on whether angular mode is enabled.

[0197] In one example, a syntax element can be flagged to indicate that the analysis of syntax structures (e.g., slice or brick) is independent of the decoding / reconstruction of one or more components of one or more points in the point cloud. When this syntax element takes a value (e.g., 1), then the analysis can be performed independently of the decoding / reconstruction of points. When this syntax element takes another value (e.g., 0), then the analysis of syntax structures can be dependent on the reconstruction / decoding of one or more points in the point cloud.

[0198] In one example, the independence of decoding / reconstruction analysis can be restricted only to decoding / reconstructing points in the current frame.

[0199] In one example, the syntax element can be flagged (and therefore the restriction applied) only when predictive geometry is used to encode the point cloud.

[0200] When there is an indication that the analysis is independent of reconstruction / decoding (e.g., flag_independent_of_reconstruction_flag analysis), the dependence of qphi on azimuth speed (described above) can be disregarded. The derivation of the context used in qphi decoding can be updated as follows Petition 870250091416, dated 07 / 10 / 2025, pp. 387 / 441 63 / 81 form: The new context is defined by: int interCtxIdx = interFlag ? 2 : 0; int interCtxIdx_ = interFlag ? 6 : 0; if (interFlag){ if (!parsing_ independent_of_reconstruction_flag) interCtxIdx_ += azimuthSpeedIndex; }else{ if (!parsing_ independent_of_reconstruction_flag && azimuthSpeedIndex > 0) interCtxIdx_ += azimuthSpeedIndex + 1; else{ if (predIdx != 0){ interCtxIdx = 1; interCtxIdx_ = 1; }} }

[0201] The selection of contexts based on the reconstructed radius (described above) can also be updated as follows: To encode whether resPhi = 0 or abs(resPhi) = 1, the following contexts are used: a. The node's prediction mode (inter or intra); and b. If the predictor index of the node is equal to zero. c. if the radius changes drastically when parsing_independent_of_reconstruction_flag is 0.

[0202] To encode the value of abs(resPhi)-2 with expGolomb encoding, the following contexts are used: a. The node's prediction mode (inter or intra); b. if boundPhi-3>6 when parsing_independent_of_reconstruction_flag is 0; Petition 870250091416, dated 07 / 10 / 2025, pp. 388 / 441 64 / 81 c. if the radius changes drastically when parsing_independent_of_reconstruction_flag is 0 d. count of bins encoded in the prefix or suffix of exp-Golomb codeNum.

[0203] In some examples, the dependency on the analysis of the radius reconstruction or other components is removed. With this removal, the azimuth analysis (and other syntax elements) can be performed independently of the bitstream decoding / reconstruction as described above.

[0204] Figure 22 is a flowchart illustrating an example method according to one or more examples described in this disclosure. In one or more examples, pointcloud encoder 200 or pointcloud decoder 300 can determine that angular mode is enabled to encode or decode a current point cloud (2200). For example, pointcloud encoder 200 can signal and pointcloud decoder 300 can parse the syntax element(s) that indicate(s) that angular mode is enabled. There may be other ways to determine that angular mode is enabled.

[0205] The 300 point cloud decoder can analyze and the 200 point cloud encoder can signal information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in the decoding order (2202). The residual azimuthal angle value can be based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and the azimuthal angle value of the current point can be indicative of an azimuthal angle of the current point based on a laser (e.g., relative to a LiDAR system that uses the laser or relative to the laser) used to capture the points in the point cloud.

[0206] As an example, to analyze or signal the information for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point of the cloud of Petition 870250091416, dated 07 / 10 / 2025, pp. 389 / 441 65 / 81 points, the 300 point cloud decoder can analyze or the 200 point cloud encoder can signal information for the residual azimuthal angle value independently of whether a condition based on the current point radius value or the previous point radius value is met. That is, it may not be necessary to determine whether boundPhi (i.e., B or phiBound) is equal to 0 or equal to 1. However, in some other techniques, as illustrated in Figure 17, whether the residual azimuthal angle value is signaled or analyzed is conditional on the value of boundPhi.

[0207] In one or more examples, the analysis or signaling of information for the azimuthal angle residual value may include analysis, from a bitstream, of information for the azimuthal angle residual value. In such examples, the 300 point cloud decoder may determine the azimuthal angle residual value based on information for the azimuthal angle residual value and reconstruct the point cloud based on the azimuthal angle residual value. A device that includes the 300 point cloud decoder may include a display for presenting images based on the point cloud.

[0208] In one or more examples, a device that includes the 200 point cloud encoder can be configured to generate the point cloud using the laser to capture the points of the point cloud. In such examples, the analysis or signaling of information for the residual value of the azimuthal angle may include the 200 point cloud encoder signaling, in a bitstream, the information for the residual value of the azimuthal angle.

[0209] Figure 23 is a flowchart illustrating an example method according to one or more examples described in this disclosure. The 200 point cloud encoder and the 300 point cloud decoder can determine one or more context values ​​to encode or decode the residual azimuthal angle value for the current point independently of the radius value of the current point or the radius value of the previous point cloud (2300). For example, determining context values ​​such as ctxResPhiGTOne[interCtxIdx][ctxL]), Petition 870250091416, dated 07 / 10 / 2025, pp. 390 / 441 66 / 81 ctxResPhiExpGolombPre[interEGkCtxIdx], or ctxResPhiExpGolombSuf[interEGkCtxIdx], may not be based on boundPhi. The 200 point cloud encoder and the 300 point cloud decoder may encode or decode the residual value of the azimuthal angle for the current point based on context based on one or more context values ​​(2302).

[0210] Figure 24 is a flowchart illustrating an example method according to one or more examples described in this disclosure. The 200 point cloud encoder and the 300 point cloud decoder can determine a quantization parameter for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point cloud (2400). The 200 point cloud encoder and the 300 point cloud decoder can quantize or dequantize the residual value of the azimuthal angle based on the quantization parameter (2402). In this way, the dependence of the quantization parameter on the radius value of the current point or the radius value of a previous point is removed.

[0211] Figure 25 is a conceptual diagram illustrating an example range measurement system 2500 that can be used with one or more techniques of this disclosure. In the example of Figure 25, the range measurement system 2500 includes an illuminator 2502 and a sensor 2504. The illuminator 2502 can emit light 2506. In some examples, the illuminator 2502 can emit light 2506 as one or more laser beams. The light 2506 can be at one or more wavelengths, such as an infrared wavelength or a visible light wavelength. In other examples, the light 2506 is not a coherent laser light. When the light 2506 encounters an object, such as object 2508, the light 2506 creates a return light 2510. The return light 2510 can include backscattered and / or reflected light. The return light 2510 can pass through a lens 2511 which directs the return light 2510 to create an image 2512 of the object 2508 on the sensor 2504. The sensor 2504 generates signals 2514 based on the image 2512.Image 2512 may comprise a set. Petition 870250091416, dated 07 / 10 / 2025, pp. 391 / 441 67 / 81 of points (for example, as represented by points in image 2512 of Figure 25).

[0212] In some examples, illuminator 2502 and sensor 2504 can be mounted on a wiring structure so that illuminator 2502 and sensor 2504 capture a 360-degree view of an environment (e.g., a rotating LIDAR sensor). In other examples, the range measurement system 2500 may include one or more optical components (e.g., mirrors, collimators, diffraction reticles, etc.) that enable illuminator 2502 and sensor 2504 to detect object ranges within a specific range (e.g., up to 360 degrees). Although the example in Figure 25 shows only a single illuminator 2502 and sensor 2504, the range measurement system 2500 may include multiple sets of illuminators and sensors.

[0213] In some examples, the illuminator 2502 generates a structured light pattern. In such examples, the range measurement system 2500 may include multiple sensors 2504 on which the respective images of the structured light pattern are formed. The range measurement system 2500 may use disparities between the images of the structured light pattern to determine a distance to an object 2508 from which the structured light pattern backscatters. Structured light-based range measurement systems may have a high level of accuracy (e.g., submillimeter range accuracy) when the object 2508 is relatively close to the sensor 2504 (e.g., from 0.2 meters to 2 meters). This high level of accuracy may be useful in facial recognition applications, such as unlocking mobile devices (e.g., mobile phones, tablet computers, etc.) and for security applications.

[0214] In some examples, the range measurement system 2500 is a time-of-flight (ToF) based system. In some examples where the range measurement system 2500 is a ToF-based system, the illuminator 2502 generates light pulses. In other words, the illuminator 2502 can modulate the amplitude of the emitted light 2506. In these examples, the sensor 2504 detects the return light 2510 originating from the light pulses 2506 generated by the Petition 870250091416, dated 07 / 10 / 2025, pp. 392 / 441 68 / 81 illuminator 2502. The range measurement system 2500 can then determine a distance to the object 2508 from which the light 2506 backscatters based on a delay between when the light 2506 was emitted and detected and the known speed of light in air. In some examples, instead of (or in addition to) modulating the amplitude of the emitted light 2506, the illuminator 2502 can modulate the phase of the emitted light 2506. In these examples, the sensor 2504 can detect the phase of the returning light 2510 from the object 2508 and determine the distances to points on the object 2508 using the speed of light and based on the time differences between when the illuminator 2502 generated the light 2506 at a specific phase and when the sensor 2504 detected the returning light 2510 at the specific phase.

[0215] In other examples, a point cloud can be generated without using the illuminator 2502. For example, in some examples, the sensors 2504 of the range measurement system 2500 may include two or more optical cameras. In these examples, the range measurement system 2500 may use the optical cameras to capture stereoscopic images of the environment, including the object 2508. The range measurement system 2500 may include a point cloud generator 2516 that can calculate the disparities between locations in the stereoscopic image. The range measurement system 2500 can then use the disparities to determine the distances to the locations shown in the stereoscopic images. From these distances, the point cloud generator 2516 can generate a point cloud.

[0216] The sensors 2504 can also detect other attributes of the object 2508, such as color and reflectance information. In the example in Figure 25, a point cloud generator 2516 can generate a point cloud based on signals 2514 generated by the sensor 2504. The range measurement system 2500 and / or the point cloud generator 2516 can be part of the data source 104 (Figure 1). Thus, a point cloud generated by the range measurement system 2500 can be encoded and / or decoded according to any of the techniques in this disclosure.

[0217] Figure 26 is a conceptual diagram that illustrates a scenario with Petition 870250091416, dated 07 / 10 / 2025, pp. 393 / 441 69 / 81 based on an example vehicle in which one or more techniques of this disclosure may be used. In the example of Figure 26, a vehicle 2600 includes a range measurement system 2602. The range measurement system 2602 can be implemented in the manner discussed in relation to Figure 26. Although not shown in the example of Figure 26, the vehicle 2600 may also include a data source, such as data source 104 (Figure 1), and a GPCC encoder, such as point cloud encoder 200 (Figure 1). In the example of Figure 26, the range measurement system 2602 emits laser beams 2604 that reflect off pedestrians 2606 or other objects on a highway. The vehicle data source 2600 can generate a point cloud based on the signals generated by the range measurement system 2602. The vehicle's G-PCC encoder 2600 can encode the point cloud to generate bitstreams 2608, such as geometry bitstream 203 (Figure 2) and attribute bitstream 205 (Figure 2).Interprediction and residual prediction, as described in this disclosure, can reduce the size of the geometry bitstream. 2608 bitstreams can include a much smaller number of bits than the unencoded point cloud obtained by the G-PCC encoder.

[0218] A vehicle 2600 output interface (e.g., output interface 108 (Figure 1)) can transmit 2608 bitstreams to one or more other devices. 2608 bitstreams can include a much smaller number of bits than the unencoded point cloud obtained by the GPCC encoder. Thus, the vehicle 2600 may be able to transmit 2608 bitstreams to other devices faster than unencoded point cloud data. In addition, 2608 bitstreams may require less data storage capacity on a device.

[0219] In the example in Figure 26, vehicle 2600 can transmit 2608 bitstreams to another vehicle 2610. Vehicle 2610 may include a G-PCC decoder, such as the G-PCC decoder 300 (Figure 1). The G-PCC decoder in vehicle 2610 can decode the 2608 bitstreams to reconstruct the point cloud. Vehicle 2610 can use the reconstructed point cloud for various purposes. For example, vehicle 2610 can Petition 870250091416, dated 07 / 10 / 2025, pp. 394 / 441 70 / 81 determine, based on the reconstructed point cloud, that there are pedestrians 2606 on the highway ahead of vehicle 2600 and therefore begin to reduce speed, for example, even before a driver of vehicle 2610 notices that there are pedestrians 2606 on the highway. Thus, in some examples, vehicle 2610 can perform an autonomous navigation operation based on the reconstructed point cloud.

[0220] Alternatively, vehicle 2600 can transmit 2608 bitstreams to a server system 2612. Server system 2612 can use 2608 bitstreams for various purposes. For example, server system 2612 can store 2608 bitstreams for subsequent reconstruction of point clouds. In this example, server system 2612 can use the point clouds along with other data (e.g., vehicle telemetry data generated by vehicle 2600) to train an autonomous driving system. In another example, server system 2612 can store 2608 bitstreams for subsequent reconstruction for forensic collision investigations.

[0221] Figure 27 is a conceptual diagram illustrating an example extended reality system in which one or more techniques of this disclosure may be used. Extended reality (XR) is a term used to encompass a range of technologies that includes augmented reality (AR), mixed reality (MR), and virtual reality (VR). In the example in Figure 27, a user 2700 is located at a first location 2702. User 2700 uses an XR headset 2704. As an alternative to the XR headset 2704, user 2700 may use a mobile device (e.g., a mobile phone, a tablet computer, etc.). The XR headset 2704 includes a depth-sensing sensor, as a range measurement system, which detects the positions of points on objects 2706 at location 2702.A data source for the XR 2704 headset can use the signals generated by the depth-sensing sensor to generate a point cloud representation of objects 2706 at location 2702. The XR 2704 headset can include a G-PCC encoder (e.g., the...). Petition 870250091416, dated 07 / 10 / 2025, pp. 395 / 441 The 71 / 81 G-PCC 200 encoder in Figure 1) is configured to encode the point cloud in order to generate 2708 bitstreams. Interprediction and residual prediction, as described in this disclosure, can reduce the size of the 2708 bitstream.

[0222] The XR headset 2704 can transmit bitstreams 2708 (e.g., via a network such as the Internet) to an XR headset 2710 worn by a user 2712 at a second location 2714. The XR headset 2710 can decode the bitstreams 2708 to reconstruct the point cloud. The XR headset 2710 can use the point cloud to generate an XR visualization (e.g., an AR, MR, or VR visualization) representing the objects 2706 at location 2702. In this way, in some examples, such as when the XR headset 2710 generates a VR visualization, the user 2712 can have an immersive 3D experience of location 2702. In some examples, the XR headset 2710 can determine the position of a virtual object based on the reconstructed point cloud.For example, the XR 2710 headset can determine, based on the reconstructed point cloud, that an environment (e.g., location 2702) includes a flat surface and then determine that a virtual object (e.g., a cartoon character) should be positioned on the flat surface. The XR 2710 headset can generate an XR visualization in which the virtual object is in the determined position. For example, the XR 2710 headset can show the cartoon character on the flat surface.

[0223] Figure 28 is a conceptual diagram illustrating an example mobile device system in which one or more techniques of this disclosure may be used. In the example in Figure 28, a mobile device 2800 (e.g., a mobile communication device), such as a cell phone or tablet computer, includes a range-measuring sensor, such as a LIDAR system, that detects the positions of points on objects 2802 in a mobile device 2800 environment. A data source of the mobile device 2800 may use the signals generated by the depth-sensing sensor to generate a point cloud representation of the objects 2802. The Petition 870250091416, dated 07 / 10 / 2025, pp. 396 / 441 72 / 81 mobile device 2800 may include a G-PCC encoder (e.g., point cloud encoder 200 of Figure 1) that is configured to encode the point cloud in order to generate bitstreams 2804. In the example of Figure 2, the mobile device 2800 may transmit bitstreams to a remote device 2806, such as a server system or another mobile device. Interprediction and residual prediction, as described in this disclosure, may reduce the size of the bitstreams 2804. The remote device 2806 may decode the bitstreams 2804 to reconstruct the point cloud. The remote device 2806 may use the point cloud for various purposes. For example, the remote device 2806 may use the point cloud to generate a map of an environment from the mobile device 2800. For example, the remote device 2806 may generate a map of a building interior based on the reconstructed point cloud.In another example, the remote device 2806 can generate images (e.g., computer graphics) based on the point cloud. For example, the remote device 2806 can use points from the point cloud as vertices of polygons and use color attributes of the points as the basis for shading the polygons. In some examples, the remote device 2806 can use the reconstructed point cloud for facial recognition or other security applications.

[0224] The examples in the various aspects of this disclosure may be used individually or in any combination.

[0225] Clause 1. A method for processing a point cloud, wherein the method comprises: parsing or signaling a syntax element that specifies whether the determination of the residual azimuth is independent of the values ​​of the syntax elements reconstructed for the point cloud.

[0226] Clause 2. The method in clause 1, which further comprises determining the residual azimuth independently of the values ​​of the reconstructed syntax elements on the condition that the syntax element specifies that the determination of the residual azimuth is independent of the values ​​of the reconstructed syntax elements.

[0227] Clause 3. The method of either of clauses 1 and 2, wherein the Petition 870250091416, dated 07 / 10 / 2025, pp. 397 / 441 73 / 81 values ​​of the reconstructed syntax elements comprise at least one of the reconstructed rays from the current or previous points of the point cloud.

[0228] Clause 4. A method for processing a point cloud, wherein the method comprises: parsing or signaling a syntax element that specifies whether the determination of syntax structures is independent of the determination of one or more components of one or more points in the point cloud.

[0229] Clause 5. The method of clause 4, which further comprises determining the syntax structures independent of the decoding or reconstruction of one or more points on the condition that the syntax element specifies that the determination of the syntax structures is independent of the determination of one or more components of one or more points in the point cloud.

[0230] Clause 6. The method of either clause 4 and 5, wherein the syntax structure comprises at least one of a slice or brick.

[0231] Clause 7. The method of any of clauses 1 to 6, which additionally includes generating the point cloud.

[0232] Clause 8. A device for processing a point cloud, wherein the device comprises: memory configured to store the point cloud; and one or more processors implemented in a circuit assembly and configured to perform the method of any of clauses 1 to 7.

[0233] Clause 9. The device of clause 8, wherein the device comprises a decoder.

[0234] Clause 10. The device of clause 8, wherein the device comprises an encoder.

[0235] Clause 11. The device of any of clauses 8 to 10, in which one or more processors are configured to generate the point cloud.

[0236] Clause 12. The device of any of clauses 8 to 11, which additionally comprises a display for presenting images based on Petition 870250091416, dated 07 / 10 / 2025, pp. 398 / 441 74 / 81 point cloud.

[0237] Clause 13. A computer-readable storage medium that has instructions stored on it which, when executed, cause one or more processors to perform the method of any of clauses 1 to 7.

[0238] Clause 14. A device for processing a point cloud, wherein the device comprises means for carrying out the method of any of clauses 1 to 7.

[0239] Clause 1A. A method for processing a point cloud, wherein the method comprises: determining that angular mode is enabled to encode or decode a current point of points in the point cloud; and parsing or signaling information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in order of decoding, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on an f used to capture the points of the point cloud.

[0240] Clause 2A. The method of clause 1A, whereby parsing or signaling information for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud comprises parsing or signaling information for the residual value of the azimuthal angle independently of whether a condition that is based on the radius value of the current point or the radius value of the previous point is satisfied.

[0241] Clause 3A. The method of either clause 1A or 2A, which further comprises: determining one or more context values ​​to encode or decode the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and encoding or decoding based on the context. Petition 870250091416, dated 07 / 10 / 2025, pp. 399 / 441 75 / 81 is the residual value of the azimuthal angle for the current point based on one or more context values.

[0242] Clause 4A. The method of any of clauses 1A to 3A, which further comprises: determining a quantization parameter for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and quantizing or dequantizing the residual value of the azimuthal angle based on the quantization parameter.

[0243] Clause 5A. The method of any of clauses 1A to 4A, wherein parsing or signaling information for the residual value of the azimuthal angle comprises parsing, from a bitstream, information for the residual value of the azimuthal angle, wherein the method further comprises: determining the residual value of the azimuthal angle based on the information for the residual value of the azimuthal angle; and reconstructing the point cloud based on the residual value of the azimuthal angle.

[0244] Clause 6A. The method of any of clauses 1A to 5A, which further comprises: generating the point cloud using the laser to capture the points of the point cloud, wherein analyzing or signaling the information for the residual value of the azimuthal angle comprises signaling, in a bitstream, the information for the residual value of the azimuthal angle.

[0245] Clause 7A. A device for processing a point cloud, wherein the device comprises: one or more memories configured to store the point cloud; and one or more processors implemented in a circuit assembly and configured to: determine that the angular mode is enabled to encode or decode a current point cloud; and parse or signal information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point cloud that precedes the current point in order of decoding, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the Petition 870250091416, dated 07 / 10 / 2025, pages 400 / 441 76 / 81 current point, and where the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a laser used to capture the points of the point cloud.

[0246] Clause 8A. The device of clause 7A, wherein to parse or signal information for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point of the point cloud, one or more processors are configured to parse or signal information for the residual value of the azimuthal angle independently of whether a condition that is based on the radius value of the current point or the radius value of the previous point is satisfied.

[0247] Clause 9A. The device of any of clauses 7A and 8A, in which one or more processors are configured to: determine one or more context values ​​to encode or decode the residual azimuthal angle value for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and based on the context, encode or decode the residual azimuthal angle value for the current point based on one or more context values.

[0248] Clause 10A. The device of any of clauses 7A to 9A, in which one or more processors are configured to: determine a quantization parameter for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and quantize or dequantize the residual value of the azimuthal angle based on the quantization parameter.

[0249] Clause 11A. The device of any of clauses 7A to 10A, wherein to analyze or signal the information for the residual value of the azimuthal angle, one or more processors are configured to analyze, from a bitstream, the information for the residual value of the azimuthal angle, and wherein one or more processors are configured to: determine the residual value of the azimuthal angle based on the information for the residual value of the azimuthal angle; and reconstruct the point cloud based on the residual value of the azimuthal angle. Petition 870250091416, dated 07 / 10 / 2025, pages 401 / 441 77 / 81

[0250] Clause 12A. The device of any of clauses 7A to 11A, wherein one or more processors are configured to: generate the point cloud using the laser to capture the points of the point cloud, wherein to analyze or signal the information for the residual value of the azimuthal angle, the one or more processors are configured to signal, in a bitstream, the information for the residual value of the azimuthal angle.

[0251] Clause 13A. The device of any of clauses 7A to 12A, which additionally comprises a display for presenting images based on the point cloud.

[0252] Clause 14A. The device of any of clauses 7A to 12A, which additionally includes the laser.

[0253] Clause 15A. A computer-readable storage medium that stores instructions thereon which, when executed, cause one or more processors to: determine that angular mode is enabled to encode or decode a current point of points in a point cloud; and parse or signal information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in order of decoding, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a laser used to capture the points of the point cloud.

[0254] Clause 16A. The computer-readable storage medium of clause 15A, in which the instructions that cause one or more processors to parse or signal the information for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud comprise instructions that cause one or more processors to parse or signal the information for the residual value of the azimuthal angle independently of Petition 870250091416, dated 07 / 10 / 2025, pp. 402 / 441 78 / 81 if a condition based on the radius value of the current point or the radius value of the previous point is met.

[0255] Clause 17A. The computer-readable storage medium of any of clauses 15A and 16A, which further comprises instructions that cause one or more processors to: determine one or more context values ​​to encode or decode the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and based on the context, encode or decode the residual value of the azimuthal angle for the current point based on one or more context values.

[0256] Clause 18A. The computer-readable storage medium of any of clauses 15A to 17A, which further comprises instructions that cause one or more processors to: determine a quantization parameter for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and quantize or dequantize the residual value of the azimuthal angle based on the quantization parameter.

[0257] Clause 19A. The computer-readable storage medium of any of clauses 15A to 18A, wherein the instructions that cause one or more processors to parse or signal the information for the residual value of the azimuthal angle comprise instructions that cause one or more processors to parse, from a bitstream, the information for the residual value of the azimuthal angle, wherein the instructions further comprise instructions that cause one or more processors to: determine the residual value of the azimuthal angle based on the information for the residual value of the azimuthal angle; and reconstruct the point cloud based on the residual value of the azimuthal angle.

[0258] Clause 20A. The computer-readable storage medium of any of clauses 15A to 19A, which further comprises instructions that cause one or more processors to: generate the point cloud using the laser to capture the points of the point cloud, wherein the Petition 870250091416, dated 07 / 10 / 2025, pages 403 / 441 79 / 81 instructions that cause one or more processors to analyze or signal the information for the residual value of the azimuthal angle.

[0259] It should be recognized that, depending on the example, certain actions or events of any of the techniques described in the present invention may be performed in a different sequence, may be added, combined or completely omitted (for example, not all actions or events described are necessary for the practice of the techniques). Furthermore, in certain examples, the actions or events may be performed simultaneously, for example, through multi-threaded processing, interrupt processing or multiple processors, instead of sequentially.

[0260] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code in a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which correspond to a tangible medium, such as data storage media, or communication media, including any medium that facilitates the transfer of a computer program from one place to another, for example, according to a communication protocol. In this way, computer-readable media may generally correspond to (1) tangible computer-readable storage media that are non-transient or (2) a communication medium, such as a signal or a carrier wave.Data storage media can be any available means that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this disclosure. A product of... Petition 870250091416, dated 07 / 10 / 2025, pp. 404 / 441 80 / 81 computer program may include a computer-readable medium.

[0261] By way of example, and not limitation, such computer-readable storage media may comprise random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory or any other media that can be used to store the desired program code in the form of instructions or data structures and that can be accessed by a computer. In addition, any connection is properly termed a computer-readable medium.For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave will be included in the definition of medium. It should be understood, however, that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but instead refer to tangible, non-transient storage media.As used in the present invention, disks (disk and disc) include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks typically reproduce data magnetically, while discs reproduce data optically by means of lasers. Combinations of the above items should also be included within the scope of computer-readable media.

[0262] Instructions can be executed by one or more processors, such as one or more digital signal processors (DSPs), Petition 870250091416, dated 07 / 10 / 2025, pages 405 / 441 81 / 81 general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent distinct or integrated logic circuit assemblies. Consequently, the terms processor and processing circuit assembly, as used in the present invention, may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described in the present invention. Furthermore, in some respects, the functionality described in the present invention may be provided in dedicated hardware and / or software modules configured for encoding and decoding, or may be incorporated into a combined codec. Additionally, the techniques may be fully implemented in one or more logic circuits or elements.

[0263] The techniques in this disclosure can be implemented in a wide variety of devices or appliances, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Several components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Instead, as described above, several units can be combined into a codec hardware unit or provided by a collection of interoperable hardware units, including one or more processors, as described above, in conjunction with suitable software and / or firmware.

[0264] Several examples have been described. These and other examples are within the scope of the following claims. Petition 870250091416, dated 07 / 10 / 2025, pages 406 / 441

Claims

1 / 6 CLAIMS 1. A method for processing a point cloud characterized by comprising: determining that the angular mode is enabled to encode or decode a current point of points in the point cloud; and parsing or signaling information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in order of decoding, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a laser used to capture the points of the point cloud.

2. Method, according to claim 1, characterized by analyzing or signaling information for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point of the point cloud, including analyzing or signaling information for the residual value of the azimuthal angle independently of whether a condition that is based on the radius value of the current point or the radius value of the previous point is satisfied.

3. A method according to claim 1, characterized by further comprising: determining one or more context values ​​to encode or decode the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and based on context, encoding or decoding the residual value of the azimuthal angle for the current point based on one or more context values.

4. Method, according to claim 1, characterized by Petition 870250091416, dated 07 / 10 / 2025, page 407 / 441 2 / 6, further comprising: determining a quantization parameter for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and quantizing or dequantizing the residual value of the azimuthal angle based on the quantization parameter.

5. Method, according to claim 1, characterized by the analysis or signaling of information for the residual value of the azimuthal angle comprising analyzing, from a bitstream, the information for the residual value of the azimuthal angle, wherein the method further comprises: determining the residual value of the azimuthal angle based on the information for the residual value of the azimuthal angle; and reconstructing the point cloud based on the residual value of the azimuthal angle.

6. Method according to claim 1, characterized by further comprising: generating the point cloud using the laser to capture the points of the point cloud, wherein analyzing or signaling the information for the residual value of the azimuthal angle comprises signaling, in a bitstream, the information for the residual value of the azimuthal angle.

7. Device for processing a point cloud characterized by comprising: one or more memories configured to store the point cloud; and one or more processors implemented in the circuit assembly and configured to: determine that the angular mode is enabled to encode or decode a current point of points in the point cloud; and parse or signal information for a residual value of the azimuthal angle for the current point independently of a radius value of the current point or Petition 870250091416, dated 07 / 10 / 2025, page 1.408 / 441 3 / 6 a radius value of a previous point in the point cloud that precedes the current point in decoding order, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a laser used to capture the points in the point cloud.

8. Device, according to claim 7, characterized in that, to analyze or signal the information for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point of the point cloud, one or more processors being configured to analyze or signal the information for the residual value of the azimuthal angle independently of whether a condition that is based on the radius value of the current point or the radius value of the previous point is satisfied.

9. Device according to claim 7, characterized in that one or more processors are configured to: determine one or more context values ​​to encode or decode the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and, based on the context, encode or decode the residual value of the azimuthal angle for the current point based on the one or more context values.

10. Device according to claim 7, characterized in that one or more processors are configured to: determine a quantization parameter for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and quantize or dequantize the residual value of the azimuthal angle based on the quantization parameter. Petition 870250091416, dated 10 / 07 / 2025, pp. 409 / 441 4 / 6 11. Device according to claim 7, characterized in that, to analyze or signal the information for the residual value of the azimuthal angle, one or more processors are configured to analyze, from a bitstream, the information for the residual value of the azimuthal angle, and wherein one or more processors are configured to: determine the residual value of the azimuthal angle based on the information for the residual value of the azimuthal angle; and reconstruct the point cloud based on the residual value of the azimuthal angle.

12. Device, according to claim 7, characterized in that one or more processors are configured to: generate the point cloud using the laser to capture the points of the point cloud, wherein to analyze or signal the information for the residual value of the azimuthal angle, the one or more processors are configured to signal, in a bitstream, the information for the residual value of the azimuthal angle.

13. Device according to claim 7, characterized by further comprising a display for presenting images based on the point cloud.

14. Device according to claim 7, characterized by further comprising a laser.

15. A computer-readable storage medium characterized by storing instructions on it that, when executed, cause one or more processors to: determine that angular mode is enabled to encode or decode a current point of points in a point cloud; and parse or signal information for a residual azimuthal angle value for the current point independently of a radius value of the current point or a radius value of a previous point in the point cloud that precedes the current point in decoding order, wherein the residual azimuthal angle value is based on a difference between an azimuthal angle value of the current point and a predictor azimuthal angle value of the current point, and wherein the azimuthal angle value of the current point is indicative of an azimuthal angle of the current point based on a laser used to capture the points of the point cloud.

16. Computer-readable storage medium according to claim 15, characterized in that the instructions that cause one or more processors to parse or signal the information for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud comprise instructions that cause one or more processors to parse or signal the information for the residual value of the azimuthal angle independently of whether a condition based on the radius value of the current point or the radius value of the previous point is satisfied.

17. A computer-readable storage medium according to claim 15, characterized by further comprising instructions that cause one or more processors to: determine one or more context values ​​to encode or decode the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and, based on the context, encode or decode the residual value of the azimuthal angle for the current point based on the one or more context values.

18. Computer-readable storage medium according to claim 15, characterized by further comprising instructions that cause one or more processors to: determine a quantization parameter for the residual value of the azimuthal angle for the current point independently of the radius value of the current point or the radius value of the previous point in the point cloud; and quantize or dequantize the residual value of the azimuthal angle based on the quantization parameter. Petition 870250091416, dated 07 / 10 / 2025, pp. 411 / 441 6 / 6 19. A computer-readable storage medium according to claim 15, characterized in that the instructions that cause one or more processors to parse or signal the information for the residual value of the azimuthal angle comprise instructions that cause one or more processors to parse, from a bitstream, the information for the residual value of the azimuthal angle, wherein the instructions further comprise instructions that cause one or more processors to: determine the residual value of the azimuthal angle based on the information for the residual value of the azimuthal angle; and reconstruct the point cloud based on the residual value of the azimuthal angle.

20. Computer-readable storage medium according to claim 15, characterized by further comprising instructions that cause one or more processors to: generate the point cloud using the laser to capture the points of the point cloud, wherein the instructions that cause one or more processors to parse or signal the information for the residual value of the azimuthal angle comprise instructions that cause one or more processors to signal, in a bitstream, the information for the residual value of the azimuthal angle. Petition 870250091416, dated 10 / 07 / 2025, pp. 412 / 441