Angular patterns and intra-tree quantization in geometric point cloud compression
By scaling the coordinate values of point cloud frames without pruning, the problem of gain reduction in point cloud frame decoding caused by corner mode and intra-tree quantization is solved, achieving more efficient point cloud data encoding and decoding.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- QUALCOMM INC
- Filing Date
- 2021-10-07
- Publication Date
- 2026-05-29
AI Technical Summary
In the conventional decoding of point cloud frames, when intra-tree quantization is enabled, the gain of the corner mode is significantly reduced, and even loss occurs. Furthermore, the quantized bits are located in different scale spaces and are not in the same domain as the original points, which reduces the usefulness of the corner mode and intra-tree quantization.
By scaling the quantized value representing the coordinate value without pruning, the G-PCC decoder places the scaled value into the same scaling space as the original point value. Combined with in-tree quantization to achieve decoding gain for the corner mode, the scaled value representing the coordinate position relative to the origin is determined.
It realizes the restoration of the decoding gain of the corner mode when in-tree quantization is enabled, which improves the coding efficiency and accuracy of point cloud data.
Smart Images

Figure CN116325733B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to the following applications:
[0003] U.S. patent application number 17 / 495,621, filed on October 6, 2021;
[0004] U.S. provisional patent application No. 63 / 088,938, filed on October 7, 2020;
[0005] U.S. Provisional Patent Application No. 63 / 090,629, filed on October 12, 2020; and
[0006] The entire contents of U.S. Provisional Patent Application No. 63 / 091,821, filed on October 14, 2020, are incorporated herein by reference.
[0007] U.S. patent application No. 17 / 495,621, filed on October 6, 2021, claims the benefits of the following application:
[0008] U.S. provisional patent application No. 63 / 088,938, filed on October 7, 2020;
[0009] U.S. Provisional Patent Application No. 63 / 090,629, filed on October 12, 2020; and
[0010] U.S. provisional patent application number 63 / 091,821, filed on October 14, 2020. Technical Field
[0011] This disclosure relates to point cloud encoding and decoding. Background Technology
[0012] A point cloud is a collection of points in three-dimensional space. These points can correspond to points on objects within that space. Therefore, point clouds can be used to represent the physical content of three-dimensional space. Point clouds are useful in many situations. For example, point clouds can be used in the context of autonomous vehicles to represent the location of objects on a road. In another example, point clouds can be used in the context of representing the physical content of an environment to locate virtual objects in augmented reality (AR) or mixed reality (MR) applications. Point cloud compression is the process of encoding and decoding point clouds. Encoding point clouds reduces the amount of data required to store and transmit them. Summary of the Invention
[0013] In conventional decoding of point cloud frames, corner mode provides a significant gain in decoding efficiency. However, when intra-tree quantization is enabled, the gain gained by corner mode is significantly reduced, and in some cases, even incurs losses. For corner mode, quantized bits are used for context derivation, and these quantized bits reside in a different scale space and are not in the same domain as the original points. This reduces the usefulness of both corner mode and intra-tree quantization; therefore, enabling both simultaneously may be disadvantageous.
[0014] This disclosure describes a technique for deriving a scaled value xS from a point / location coordinate value x to derive the position of a node / point relative to the lidar origin when angular mode and intra-tree quantization are used together. More specifically, by scaling the quantized value representing the coordinate value without pruning, the G-PCC decoder can place the scaled value in the same scaling space as the original point value with sufficient accuracy to determine the scaled value representing the coordinate position relative to the origin in a manner that combines the decoding gain from the angular mode with intra-tree quantization.
[0015] According to one example, an apparatus for decoding a bitstream including point cloud data includes: a memory for storing the point cloud data; and one or more processors coupled to the memory and implemented in a circuit, the one or more processors being configured to: determine that intra-tree quantization is enabled for a node based on a grammar signaled in the bitstream; for a node, determine that a corner mode is activated for the node based on the grammar signaled in the bitstream; in response to enabling intra-tree quantization for the node, determine a quantized value for the node representing a coordinate position relative to the origin; scale the quantized value without pruning to determine a scaled value representing the coordinate position relative to the origin; and determine a context for context decoding of planar position grammar elements for the corner mode based on the scaled value representing the coordinate position relative to the origin.
[0016] According to another example, a method for decoding a bitstream including point cloud data includes: determining that intra-tree quantization is enabled for a node based on a grammar signaled in the bitstream; for the node, determining that a corner mode is activated for the node based on the grammar signaled in the bitstream; in response to enabling intra-tree quantization for the node, determining a quantized value for the node representing a coordinate position relative to the origin; scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to the origin; and determining a context for context decoding a planar position grammar element for the corner mode based on the scaled value representing the coordinate position relative to the origin.
[0017] According to another example, an apparatus for encoding a bitstream including point cloud data includes: a memory for storing the point cloud data; and one or more processors coupled to the memory and implemented in circuitry, the one or more processors being configured to: determine that intra-tree quantization is enabled for a node; determine that corner mode is activated for a node; in response to enabling intra-tree quantization for a node, determine a quantized value for the node representing a coordinate position relative to an origin position; scale the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determine a context for context encoding planar position syntax elements for corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0018] According to another example, a method for encoding a bitstream including point cloud data includes: determining that intra-tree quantization is enabled for a node; determining that corner mode is activated for a node; in response to enabling intra-tree quantization for a node, determining a quantized value for the node representing a coordinate position relative to an origin position; scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determining a context for context encoding planar position syntax elements for corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0019] According to another example, a computer-readable storage medium stores instructions that, when executed by one or more processors, cause one or more processors to: determine that intra-tree quantization is enabled for a node based on a grammar signaled in a bitstream; for the node, determine that a corner mode is activated for the node based on the grammar signaled in the bitstream; in response to enabling intra-tree quantization for the node, determine a quantized value for the node representing a coordinate position relative to the origin; scale the quantized value without pruning to determine a scaled value representing a coordinate position relative to the origin; and determine a context for context decoding of planar position syntax elements for the corner mode based on the scaled value representing the coordinate position relative to the origin.
[0020] According to another example, an apparatus for decoding a bitstream including point cloud data includes: means for determining that intra-tree quantization is enabled for a node based on a grammar signaled in the bitstream; means for determining that a corner mode is activated for a node based on the grammar signaled in the bitstream; means for determining a quantized value representing a coordinate position relative to the origin for the node in response to enabling intra-tree quantization for the node; means for scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to the origin; and means for determining a context for context decoding a planar position grammar element for the corner mode based on the scaled value representing the coordinate position relative to the origin.
[0021] Details of one or more examples are set forth in the accompanying drawings and the following description. Other features, objects, and advantages will become apparent from the specification, drawings, and claims. Attached Figure Description
[0022] Figure 1 This is a block diagram illustrating an example encoding and decoding system that can perform the techniques of this disclosure.
[0023] Figure 2 This is a block diagram illustrating an example geometric point cloud compression (G-PCC) encoder.
[0024] Figure 3 This is a block diagram showing an example G-PCC decoder.
[0025] Figure 4 This is a conceptual diagram illustrating the occupancy of an example plane in the vertical direction.
[0026] Figure 5 This is a conceptual diagram illustrating one or more techniques according to this disclosure, wherein the context index is determined based on whether the laser beam position is above or below the marker point of the node.
[0027] Figure 6 This is a conceptual diagram illustrating the determination of an exemplary three-context index.
[0028] Figure 7 This is a conceptual diagram illustrating an example of context index determination for decoding the vertical plane position of a planar pattern based on the laser beam position using intervals separated by fine dashed lines.
[0029] Figure 8A This is a flowchart illustrating an example operation for encoding the position of a vertical plane.
[0030] Figure 8B This is a flowchart illustrating an example operation for decoding a vertical plane position.
[0031] Figure 9A This is a flowchart illustrating an example operation for decoding a vertical plane position according to one or more techniques of this disclosure.
[0032] Figure 9B This is a flowchart illustrating an example operation for decoding a vertical plane position according to one or more techniques of this disclosure.
[0033] Figure 10 This is a conceptual diagram illustrating an example ranging system that can be used with one or more techniques disclosed herein.
[0034] Figure 11This is a conceptual diagram illustrating an example vehicle-based scenario in which one or more of the technologies disclosed herein may be used.
[0035] Figure 12 This is a conceptual diagram illustrating an example extended reality system in which one or more techniques of this disclosure can be used.
[0036] Figure 13 This is a conceptual diagram illustrating an example mobile device system in which one or more technologies of this disclosure may be used. Detailed Implementation
[0037] ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) and more recently ISO / IEC MPEG 3DG (JTC 1 / SC 29 / WG 7) have explored the standardization of point cloud decoding technology, which may offer compression capabilities exceeding existing methods. The group previously known as MPEG, now disbanded and split into separate working groups, is collaborating on this exploratory activity known as the 3D Graphics Group (3DG) to evaluate compression technology designs proposed by experts in the field.
[0038] Point cloud compression activities are generally divided into two different approaches. The first approach is "Video Point Cloud Compression" (V-PCC), which involves segmenting a 3D object and projecting the segments onto multiple 2D planes (represented as "patches" in a 2D frame), which are then decoded by a traditional 2D video codec (such as HEVC). The second approach is "Geometric Point Cloud Compression" (G-PCC), which involves directly compressing the 3D geometry (i.e., the location of a set of points in 3D space) and the associated attribute values (for each point associated with the 3D geometry). G-PCC addresses the compression problems of Class 1 (static point clouds) and Class 3 (dynamically acquired point clouds).
[0039] A point cloud is a collection of points in three-dimensional space and may have properties associated with those points. These properties can be, for example, color information such as R / G / B, Y / Cb / Cr, reflectivity information, or other attributes. Point clouds can be captured by various cameras or sensors (such as LiDAR scanners or 3D scanners) and can also be computer-generated. Point cloud data can be used in a variety of applications, including but not limited to architecture (modeling), graphics (e.g., 3D models for visualization and animation), and the automotive industry (e.g., LiDAR sensors for navigation aids).
[0040] The 3D space occupied by point cloud data can be enclosed by virtual bounding boxes. The positions of points within the bounding box can be represented with a certain precision. Therefore, the positions of one or more points can be quantized based on precision. At the smallest level, the bounding box is divided into voxels, which are the smallest spatial units represented by a unit cube. A voxel within the bounding box can be associated with zero, one, or more points. The bounding box can be subdivided into multiple cubic / cuboid regions, which can be called tiles, and each tile can be decoded into one or more slices. The subdivision of the bounding box into slices and tiles can be based on the number of points in each part, or on other considerations (such as decoding a specific region into a tile). Slice regions can be further subdivided using a splitting decision similar to that used in video codecs.
[0041] G-PCC encoders and decoders can support planar decoding mode and corner decoding mode, which can also be referred to as planar mode and corner mode, respectively. Planar mode is a technique that can improve the decoding of which nodes are occupied. Planar mode can be used when all occupied child nodes of a node are adjacent to a plane and on one side of that plane associated with an increasing coordinate value of the dimension orthogonal to that plane. For example, planar mode can be used for a node when all occupied child nodes of a node are above or below a horizontal plane passing through the center point of the node, or when all occupied child nodes of a node are near or far from a vertical plane passing through the center point of the node. For a node, the G-PCC encoder can encode the syntax elements of each of the x, y, and z dimensions to specify whether that dimension is decoded in planar mode, and for each dimension decoded in planar mode, a planar position syntax element (i.e., a syntax element indicating the planar position) can be signaled for the corresponding dimension. The planar position syntax element of a dimension indicates whether the plane orthogonal to that dimension is in a first position or a second position. If the plane is in the first position, then the plane corresponds to the boundary of the node. If the plane is in the second position, then the plane passes through the 3D center of the node. More generally, if the plane is in the first position, then the points in the node are on the side of the node with the first position, not on the side with the second position, and if the plane is in the second position, then the points in the node are on the side of the node with the second position, not on the side with the first position. Therefore, for the z-dimensional dimension, the G-PCC decoder can decode the vertical plane positions of planar patterns in the nodes of an octree that represents the 3D positions of points in a point cloud.
[0042] Point clouds can typically be captured using LiDAR sensors or other laser-based sensors. Angle decoding mode can be used optionally in conjunction with planar mode and improves the decoding of vertical (e.g., z) plane position syntax elements by incorporating knowledge of the position and elevation angle of the sensed laser beam in a typical LiDAR sensor. Furthermore, angle decoding mode can optionally be used to improve the decoding of vertical z-position bits in inference direct decoding mode (IDCM).
[0043] G-PCC decoders can also support intra-tree quantization. Intra-tree geometry scaling provides a means of quantizing (encoder) and scaling (decoder) geometric positions, even when constructing the encoding tree. Each point in a point cloud is located at a specific geometric position. In octree decoding, information about the position is not directly signaled but rather indicated using octree occupancy across the hierarchy (from root node to leaf node). At the encoder, the point, or more precisely, the occupancy position of the point, is placed in the leaf node of the octree. The size of the octree depends on the bit depth of the position in each dimension. Starting from the root node, the occupancy of each of the eight octets is decoded (in different ways). The occupancy at the root node effectively decodes the most significant bit (MSB) of the point position in the three dimensions. This process continues up to the leaf node indicating the position of the point. The decoder follows a similar process to determine the occupancy of the octree nodes at each level, up to the leaf node, to determine the position of the point.
[0044] Geometric quantization is applied to a specific node depth in an octree, which is signaled in the bitstream. Node depth typically refers to a specific level in octree parsing. In a simplified case considering only octrees (excluding QTBTs), assume the octree has 12 levels. At the root node, each child node has a size of 2. 11 ×2 11 ×2 11 Each of these nodes can be considered to be at a node depth of 1. The children of each child node of the root node have a size of 2. 10 ×2 10 ×2 10These are considered nodes with a depth of 2, and so on. In a simple example, if the node coordinates are 12 bits and the depth to which quantization is applied is 3, the first 3 MSBs of the node coordinates (called the MSB portion of the position) are not quantized; only the last 9 LSBs of the node coordinates (called the LSB portion of the position) are quantized. Due to quantization, 9 LSBs can be reduced to fewer bits, such as N bits, where N is less than or equal to 9. This may result in some reduction in bit rate at the cost of reconstruction accuracy. As a result, the node coordinate size becomes N+3 (i.e., <= 12). Similarly, at the decoder, the N LSBs are scaled and clipped to the maximum value of 1 << (9-1), which ensures that the scaled value does not exceed 9 LSB bits of the original point. The final scaled position is calculated by concatenating the 3 MSBs and the 9 bits of the scaled LSBs.
[0045] In conventional decoding of point cloud frames, corner modes offer a significant gain in decoding efficiency. However, when intra-tree quantization is enabled, the gain of corner modes decreases significantly and, in some cases, incurs losses. For corner modes (IDCM corners and planar corners), quantized bits are used for context derivation, and these quantized bits reside in different scale spaces and are not in the same domain as the original points. This reduces the usefulness of both corner modes and intra-tree quantization; therefore, enabling both simultaneously may be disadvantageous.
[0046] This disclosure describes a technique for deriving a scaled value xS from a point / location coordinate value x to derive the position of a node / point relative to the lidar origin when angular mode and intra-tree quantization are used together. More specifically, by scaling the quantized value representing the coordinate value without pruning, the G-PCC decoder can determine the scaled value representing the coordinate position relative to the origin in a manner that allows the scaled value to be placed in the same scaling space as the original point value with sufficient accuracy to achieve decoding gain from the angular mode.
[0047] This disclosure uses the term G-PCC decoder to generally refer to G-PCC encoders and / or G-PCC decoders. Furthermore, some of the techniques described in this disclosure regarding decoding can also be applied to encoding, and vice versa. For example, G-PCC encoders and G-PCC decoders are often configured to perform the same process or processes of each other. Moreover, G-PCC encoders typically perform decoding as part of the process of determining how to encode.
[0048] Figure 1 This is a block diagram illustrating an example encoding and decoding system 100 capable of implementing the techniques of this disclosure. The techniques of this disclosure generally relate to decoding (encoding and / or decoding) point cloud data, i.e., supporting point cloud compression. Generally, point cloud data includes any data used for processing point clouds. This decoding is effective in compressing and / or decompressing point cloud data.
[0049] like Figure 1 As shown, system 100 includes a source device 102 and a destination device 116. The source device 102 provides encoded point cloud data to be decoded by the destination device 116. Specifically, in Figure 1 In this example, source device 102 provides point cloud data to destination device 116 via computer-readable medium 110. Source device 102 and destination device 116 can include any of a variety of devices, including desktop computers, laptops, tablets, set-top boxes, mobile phones (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, etc. In some cases, source device 102 and destination device 116 may be equipped for wireless communication.
[0050] exist Figure 1 In the example, source device 102 includes a data source 104, a memory 106, a G-PCC encoder 200, and an output interface 108. Destination device 116 includes an input interface 122, a G-PCC decoder 300, a memory 120, and a data consumer 118. According to this disclosure, the G-PCC encoder 200 of source device 102 and the G-PCC decoder 300 of destination device 116 can be configured to apply the techniques of this disclosure related to corner patterns and intra-tree quantization in G-PCC.
[0051] Therefore, 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 in the same device.
[0052] like Figure 1The system 100 shown is merely an example. Generally, other digital encoding and / or decoding devices can perform the techniques of this disclosure related to corner modes and intra-tree quantization in G-PCC. Source device 102 and destination device 116 are merely examples of such devices, wherein source device 102 generates decoded data for transmission to destination device 116. This disclosure refers to a “decoding” device as a device that performs the decoding (encoding and / or decoding) of data. Thus, G-PCC encoder 200 and G-PCC decoder 300 represent examples of decoding devices, specifically an encoder and a decoder, respectively. In some examples, source device 102 and destination device 116 can operate in a substantially symmetrical manner, such that each of source device 102 and destination device 116 includes both encoding and decoding components. Therefore, system 100 can support unidirectional or bidirectional transmission between source device 102 and destination device 116, for example, for streaming, playback, broadcasting, telephone, navigation, and other applications.
[0053] Generally, data source 104 represents the source of data (i.e., raw, unencoded point cloud data) and can provide a sequential series of "frames" of data to G-PCC encoder 200, which encodes the data of the frames. Data source 104 of source device 102 may include point cloud capture devices, such as any of a variety of cameras or sensors, such as a 3D scanner or light detection and ranging (LIDAR) device, one or more video cameras, an archive containing previously captured data, and / or a data feed interface for receiving data from a data content provider. Alternatively or additionally, point cloud data may be generated by a computer from scanners, cameras, sensors, or other data. For example, data source 104 may generate computer graphics-based data as source data, or produce a combination of real-time data, archived data, and computer-generated data. In each case, G-PCC encoder 200 encodes the captured, pre-captured, or computer-generated data. G-PCC encoder 200 may rearrange frames from the receiving order (sometimes referred to as the "display order") to a decoding order for decoding. The G-PCC encoder 200 can generate one or more bit streams including encoded data. The source device 102 can then output the encoded data to a computer-readable medium 110 via the output interface 108 for reception and / or acquisition by, for example, the input interface 122 of the destination device 116.
[0054] The memory 106 of source device 102 and the memory 120 of destination device 116 can represent general-purpose memory. In some examples, memory 106 and memory 120 can store raw data, such as raw data from data source 104 and raw decoded data from G-PCC decoder 300. Additionally or alternatively, memory 106 and memory 120 can store software instructions executable by, for example, G-PCC encoder 200 and G-PCC decoder 300, respectively. Although memory 106 and memory 120 are shown separately from G-PCC encoder 200 and G-PCC decoder 300 in this example, it should be understood that G-PCC encoder 200 and G-PCC decoder 300 may also include internal memory for functionally similar or equivalent purposes. Furthermore, memory 106 and memory 120 can store, for example, encoded data output from G-PCC encoder 200 and input to G-PCC decoder 300. In some examples, portions of memory 106 and memory 120 may be allocated as one or more buffers, for example, to store raw, decoded, and / or encoded data. For instance, memory 106 and memory 120 may store data representing point clouds.
[0055] Computer-readable medium 110 can represent any type of medium or device capable of transmitting encoded data from source device 102 to destination device 116. In one example, computer-readable medium 110 represents a communication medium enabling source device 102 to transmit encoded data directly to destination device 116 in real time, for example, via a radio frequency network or a computer-based network. According to a communication standard such as a wireless communication protocol, output interface 108 can modulate the transmitted signal including the encoded data, and input interface 122 can demodulate the received transmitted signal. The communication medium can include any wireless or wired communication medium, such as radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium can form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. The communication medium can include a router, switch, base station, or any other equipment that facilitates communication from source device 102 to destination device 116.
[0056] In some examples, source device 102 can output encoded data from output interface 108 to storage device 112. Similarly, target device 116 can access encoded data from storage device 112 via input interface 122. Storage device 112 may include any of a variety of distributed or locally accessed data storage media, such as hard disks, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded data.
[0057] 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 the stored data from file server 114 via streaming or downloading. File server 114 may be any type of server device capable of storing and sending encoded data to destination device 116. File server 114 may represent, for example, 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. Destination device 116 may access the encoded data from file server 114 via any standard data connection including an Internet connection. This may include a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., a digital subscriber line (DSL), a cable modem, etc.), or a combination of both suitable for accessing the encoded data stored on file server 114. File server 114 and input interface 122 may be configured to operate according to a streaming protocol, a download transfer protocol, or a combination thereof.
[0058] Output interface 108 and input interface 122 may represent a wireless transmitter / receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to any of the various IEEE 802.11 standards, or other physical components. In examples where output interface 108 and input interface 122 include wireless components, output interface 108 and input interface 122 may be configured to transmit data such as encoded data according to cellular communication standards such as 4G, 4G-LTE (Long Term Evolution), LTE Advanced, 5G, or similar standards. In some examples where output interface 108 includes a wireless transmitter, output interface 108 and input interface 122 may be configured according to other wireless standards, such as the IEEE 802.11 specification, the IEEE 802.15 specification (e.g., ZigBee). TM ),Bluetooth TM Standards are used to transmit data such as encoded data. In some examples, source device 102 and / or destination device 116 may include their respective system-on-chip (SoC) devices. For example, source device 102 may include an SoC device to perform functions belonging to G-PCC encoder 200 and / or output interface 108, and destination device 116 may include an SoC device to perform functions belonging to G-PCC decoder 300 and / or input interface 122.
[0059] The technology disclosed herein can be applied to encoding and decoding of any application supporting a variety of applications, such as communication between autonomous vehicles, communication between scanners, cameras, sensors and processing devices such as local or remote servers, geographic mapping, or other applications.
[0060] The input interface 122 of the destination device 116 receives an encoded bitstream from a computer-readable medium 110 (e.g., a communication medium, storage device 112, file server 114, etc.). The encoded bitstream may include signaling information defined by the G-PCC encoder 200 and also used by the G-PCC decoder 300, such as syntax elements having values describing the characteristics and / or processing of decoding units (e.g., slices, pictures, picture groups, sequences, etc.). The data consumer 118 uses the decoded data. For example, the data consumer 118 may use the decoded data to determine the location of physical objects. In some examples, the data consumer 118 may include a display that presents images based on point clouds.
[0061] The G-PCC encoder 200 and G-PCC decoder 300 can each be implemented as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the technology is implemented in part in software, the device may store instructions for the software in a suitable non-transitory computer-readable medium and use one or more processors to execute those instructions in hardware to perform the technology of this disclosure. Each of the G-PCC encoder 200 and G-PCC decoder 300 may be included in one or more encoders or decoders, either of which may be integrated as part of a combined encoder / decoder (CODEC) in the respective device. Devices including the G-PCC encoder 200 and / or G-PCC decoder 300 may include one or more integrated circuits, microprocessors, and / or other types of devices.
[0062] The G-PCC encoder 200 and G-PCC decoder 300 can operate according to a decoding standard (Geometric Point Cloud Compression (G-PCC) standard). Although encoder 200 and decoder 300 are described as G-PCC encoder 200 and G-PCC decoder 300, encoder 200 and decoder 300 should not be considered as limited to operating according to the G-PCC standard. In some examples, encoder 200 and decoder 300 can operate according to the Video Point Cloud Compression (V-PCC) standard. This disclosure generally relates to the decoding (e.g., encoding and decoding) of images, including the process of encoding or decoding data. The encoded bitstream generally includes a series of values for syntax elements representing decoding decisions (e.g., decoding modes).
[0063] Generally, this disclosure may relate to "signaling notification" of certain information, such as syntax elements. The term "signaling notification" can generally refer to communication regarding the value of a syntax element and / or other data used for decoding encoded data. That is, the G-PCC encoder 200 may signal the value of a syntax element in the bitstream. Generally, signaling notification refers to generating a value in the bitstream. As described above, the source device 102 may transmit the bitstream to the target device 116 substantially in real time (or non-real time, such as when storing syntax elements to storage device 112 for later retrieval by the target device 116).
[0064] As mentioned above, ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) is investigating the potential need for standardization of point cloud decoding technologies with compression capabilities far exceeding current methods and will work towards creating standards. This exploratory activity is being carried out collaboratively by the group, known as the 3D Graphics Group (3DG), to evaluate compression technology designs proposed by experts in the field.
[0065] Point cloud compression activities fall into two distinct categories. The first is “Video Point Cloud Compression” (V-PCC), which segments a 3D object and projects these segments onto multiple 2D planes (represented as “patches” in a 2D frame). These planes are then decoded by a traditional 2D video codec, such as the High Efficiency Video Coding (HEVC) (ITU-T H.265) codec. The second method is “Geometry-Based Point Cloud Compression” (G-PCC), which directly compresses the 3D geometry (i.e., the location of a set of points in 3D space) and the associated attribute values (for each point associated with the 3D geometry). G-PCC addresses the compression problems of Class 1 (static point clouds) and Class 3 (dynamically acquired point clouds). The latest draft of the G-PCC standard is available in January 2020, Brussels, Belgium, G-PCC DIS, ISO / IEC JTC1 / SC29 / WG11 w19088, and the codec description is available in January 2020, Brussels, Belgium, G-PCCCodec Description v6, ISO / IEC JTC1 / SC29 / WG11 w19091.
[0066] A point cloud is a collection of points in three-dimensional space and may have properties associated with those points. These properties can be color information such as R, G, B or Y, Cb, Cr, or reflectivity information or other attributes. Point clouds can be captured by various cameras or sensors (such as LiDAR sensors and 3D scanners) and can also be computer-generated. Point cloud data is used in a variety of applications, including but not limited to architecture (modeling), graphics (3D models for visualization and animation), and the automotive industry (LiDAR sensors for navigation aids).
[0067] The 3D space occupied by point cloud data can be enclosed by virtual bounding boxes. The positions of points within the bounding box can be represented with a certain precision; therefore, the positions of one or more points can be quantized based on this precision. At the smallest level, the bounding box is divided into voxels, which are the smallest spatial units represented by a unit cube. A voxel within the bounding box can be associated with zero, one, or more points. The bounding box can be subdivided into multiple cubic / cuboid regions, which can be called tiles. Each tile can be decoded into one or more slices. The subdivision of the bounding box into slices and tiles can be based on the number of points in each part, or on other considerations (e.g., a specific region can be decoded into a tile). Slice regions can be further subdivided using a splitting decision similar to that in video codecs.
[0068] Figure 2 Provides an overview of the G-PCC encoder 200. Figure 3 This provides an overview of the G-PCC decoder 300. The modules shown are logical and do not necessarily correspond one-to-one with the implementation code in the reference implementation of the G-PCC codec, namely the TMC13 test model software studied by ISO / IEC MPEG (JTC 1 / SC 29 / WG11).
[0069] In both the G-PCC encoder 200 and the G-PCC decoder 300, the point cloud positions are decoded first. Attribute decoding depends on the decoded geometry. Figure 2 and Figure 3 In this configuration, surface approximation analysis unit 212, surface approximation synthesis unit 310, and RAHT units 218 and 314 represent options typically used for Category 1 data, while LOD generation units 220 and 316, lifting unit 222, and inverse lifting unit 318 represent options typically used for Category 3 data. All other units are interchangeable between Category 1 and Category 3.
[0070] For Category 3 data, the compressed geometry is typically represented as an octree, descending from the root down to the leaf level of each voxel. For Category 1 data, the compressed geometry is typically represented by a pruned octree (i.e., an octree descending from the root down to the leaf level of blocks larger than voxels) plus a model of the surface within each leaf of the approximated pruned octree. Thus, both Category 1 and Category 3 data share the octree decoding mechanism, while Category 1 data can also be approximated by a surface model to approximate the voxels within each leaf. The surface model used is triangulation, where each block contains 1-10 triangles, resulting in a triangle soup. Therefore, the Category 1 geometry codec is called a triangle soup geometry codec, while the Category 3 geometry codec is called an octree geometry codec.
[0071] At each node in the octree, the occupancy of one or more of its child nodes (up to eight nodes) is signaled (if not inferred). Multiple neighborhoods are specified, including (a) nodes sharing a face with the current octree node, (b) nodes sharing a face, edge, or vertex with the current octree node, etc. Within each neighborhood, the occupancy of a node and / or its child nodes can be used to predict the occupancy of the current node or its child nodes. For points sparsely populated in some nodes of the octree, the codec also supports a direct decoding mode, where the 3D position of the point is directly encoded. A flag can be signaled to indicate that the direct mode is signaled. At the lowest level, the number of points associated with an octree node / leaf node can also be decoded.
[0072] Once the geometry is decoded, the attributes corresponding to the geometric points are also decoded. When multiple attribute points correspond to a reconstructed / decoded geometric point, the attribute values representing that reconstructed point can be derived.
[0073] G-PCC employs three attribute decoding methods: Region Adaptive Hierarchical Transform (RAHT) decoding, interpolation-based hierarchical nearest neighbor prediction (prediction transform), and interpolation-based hierarchical nearest neighbor prediction (lifting transform) with update / lifting steps. RAHT and lifting transform are typically used for Class 1 data, while prediction transform is typically used for Class 3 data. However, any method can be used for any data, and, like the geometry codec in G-PCC, the attribute decoding method used to decode point clouds is specified in the bitstream.
[0074] Attribute decoding can be performed at the level of detail (LOD), where a finer representation of the point cloud attributes can be obtained for each LOD. Each LOD can be specified based on a distance metric to neighboring nodes or based on the sampling distance.
[0075] At the G-PCC encoder 200, the residuals obtained as the output of the decoding method for the attributes are quantized. Context-adaptive arithmetic decoding can be used to decode the quantized residuals.
[0076] exist Figure 2 In the example, the G-PCC encoder 200 may include a coordinate transformation unit 202, a color transformation unit 204, a voxelization unit 206, an attribute transfer unit 208, an octree analysis unit 210, a surface approximation analysis unit 212, an arithmetic coding unit 214, a geometric reconstruction unit 216, a RAHT unit 218, a LOD generation unit 220, a lifting unit 222, a coefficient quantization unit 224, and an arithmetic coding unit 226.
[0077] like Figure 2 As shown in the example, the G-PCC encoder 200 can receive a set of point locations and a set of attributes. Locations can include the coordinates of points in the point cloud. Attributes can include information about the points in the point cloud, such as the color associated with a point in the point cloud.
[0078] The coordinate transformation unit 202 can apply transformations to the coordinates of a point to transform the coordinates from the initial domain to the transformation domain. The transformed coordinates can be referred to as transformed coordinates. The color transformation unit 204 can apply transformations to transform the color information of an attribute to a different domain. For example, the color transformation unit 204 can transform color information from the RGB color space to the YCbCr color space.
[0079] In addition, Figure 2 In the example, voxelization unit 206 can voxelize the transformed coordinates. Voxelization of the transformed coordinates can include quantization and removal of some points in the point cloud. In other words, multiple points in the point cloud can be subsumed into a single "voxel," which can then be considered as a single point in some respects. Furthermore, octree analysis unit 210 can generate an octree based on the voxelized transformed coordinates. Additionally, in Figure 2 In the example, the surface approximation analysis unit 212 can analyze points to potentially determine a surface representation of the set of points. The arithmetic coding unit 214 can entropy-encode syntax elements that represent information about the octree and / or the surface determined by the surface approximation analysis unit 212. The G-PCC encoder 200 can output these syntax elements in a geometric bitstream.
[0080] The geometric reconstruction unit 216 can reconstruct the transformed coordinates of points in the point cloud based on an octree, data representing the surface determined by the surface approximation analysis unit 212, and / or other information. Due to voxelization and surface approximation, the number of transformed coordinates reconstructed by the geometric reconstruction unit 216 may differ from the original number of points in the point cloud. The resulting points may be referred to as reconstructed points. The attribute transfer unit 208 can transfer attributes of the original points in the point cloud to the reconstructed points.
[0081] Furthermore, RAHT unit 218 can apply RAHT decoding to the attributes of the reconstructed points. Alternatively or additionally, LOD generation unit 220 and lifting unit 222 can apply LOD processing and lifting to the attributes of the reconstructed points, respectively. RAHT unit 218 and lifting unit 222 can generate coefficients based on the attributes. Coefficient quantization unit 224 can quantize the coefficients generated by RAHT unit 218 or lifting unit 222. Arithmetic encoding unit 226 can apply arithmetic decoding to the syntax elements representing the quantized coefficients. G-PCC encoder 200 can output these syntax elements in the attribute bitstream.
[0082] exist Figure 3 In the example, the G-PCC decoder 300 may include a geometric arithmetic decoding unit 302, an attribute arithmetic decoding unit 304, an octree synthesis unit 306, an inverse quantization unit 308, a surface approximation synthesis unit 310, a geometric reconstruction unit 312, a RAHT unit 314, a LoD generation unit 316, an inverse lifting unit 318, an inverse coordinate transformation unit 320, and an inverse color transformation unit 322.
[0083] The G-PCC decoder 300 can obtain a geometric bitstream and an attribute bitstream. The geometric arithmetic decoding unit 302 of the G-PCC decoder 300 can apply arithmetic decoding (e.g., context-adaptive binary arithmetic decoding (CABAC) or other types of arithmetic decoding) to the syntax elements in the geometric bitstream. Similarly, the attribute arithmetic decoding unit 304 can apply arithmetic decoding to the syntax elements in the attribute bitstream.
[0084] Octree synthesis unit 306 can synthesize octrees based on syntax elements parsed from the geometric bitstream. In the case of using surface approximation in the geometric bitstream, surface approximation synthesis unit 310 can determine the surface model based on syntax elements parsed from the geometric bitstream and based on the octree.
[0085] Furthermore, the geometric reconstruction unit 312 can perform reconstruction to determine the coordinates of points in the point cloud. The inverse coordinate transformation unit 320 can apply an inverse transformation to the reconstructed coordinates to transform the reconstructed coordinates (positions) of points in the point cloud from the transformation domain back to the initial domain.
[0086] Additionally, in Figure 3In the example, the inverse quantization unit 308 can inverse quantize the attribute value. The attribute value can be based on syntax elements obtained from the attribute bitstream (e.g., including syntax elements decoded by the attribute arithmetic decoding unit 304).
[0087] Depending on how the attribute values are encoded, RAHT unit 314 can perform RAHT decoding to determine the color values of the points in the point cloud based on the inverse quantized attribute values. Alternatively, LOD generation unit 316 and inverse lifting unit 318 can use level-of-detail techniques to determine the color values of the points in the point cloud.
[0088] In addition, Figure 3 In the example, the inverse color transformation unit 322 can apply an inverse color transformation to the color value. The inverse color transformation can be the inverse of the color transformation applied by the color transformation unit 204 of the G-PCC encoder 200. For example, the color transformation unit 204 can transform color information from the RGB color space to the YCbCr color space. Correspondingly, the inverse color transformation unit 322 can transform color information from the YCbCr color space to the RGB color space.
[0089] Show Figure 2 and Figure 3 Various units are provided to aid in understanding the operations performed by the G-PCC encoder 200 and the G-PCC decoder 300. These units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. A fixed-function circuit is a circuit that provides a specific function and is pre-programmed for the operations it can perform. A programmable circuit is a circuit that can be programmed to perform various tasks and provides flexible functionality within the operations it can perform. For example, a programmable circuit can execute software or firmware that causes the programmable circuit to operate in a manner defined by the instructions of the software or firmware. A fixed-function circuit can execute software instructions (e.g., to receive or output parameters), but the type of operation performed by a fixed-function circuit is typically immutable. In some examples, one or more units may be different circuit blocks (fixed-function or programmable), and in some examples, one or more units may be integrated circuits.
[0090] The G-PCC encoder 200 and G-PCC decoder 300 can be configured to decode point cloud data using planar, angular, and azimuth decoding modes. Planar decoding mode was adopted at the 128th MPEG conference in Geneva, Switzerland. Planar decoding mode can be applied to each of the three dimensions x, y, and z at each node location. When a planar decoding mode is specified for a specific dimension (e.g., z) at a node, the planar decoding mode indicates that all child nodes of the node occupy only one of the z-half-planes, as shown below. Figure 4 As described. Similar illustrations (e.g., techniques) are applied to planar patterns in the x and y dimensions.
[0091] Corner-decoding mode was adopted at the 129th MPEG meeting in Brussels, Belgium. The following description is based on the original MPEG contribution documents: ISO / IEC JTC1 / SC29 / WG11 MPEG / M50642, Sébastien Lasserre and Jonathan Taquet, "[GPCC][CE 13.22 related] An improvement of the planar coding mode", October 2019, Geneva, Switzerland; and w19088. The angular decoding mode can be used in conjunction with the planar mode (e.g., as in "[GPCC] Planar mode in octree-based geometry coding", ISO / IEC JTC1 / SC29 / WG11 MPEG / M48906, Sébastien Lasserre and David Flynn, July 2019, Gothenburg, Sweden), and improves the decoding of vertical (z) plane position syntax elements by using knowledge of the position and angle of the sensed laser beam in a typical LiDAR sensor (see, for example, "[GPCC] CE 13.22 report on angular mode", ISO / IEC JTC1 / SC29 / WG11 MPEG / M51594, Sébastien Lasserre and Jonathan Taquet, January 2020, Brussels, Belgium).
[0092] The azimuth decoding mode was adopted at the 130th MPEG teleconference. The azimuth decoding mode is similar to the angle mode, but extends the angle mode to the encoding and decoding of (x) and (y) plane position syntax elements of the plane mode, and improves the decoding of x or y position bits in IDCM. The azimuth mode uses sampling information of the azimuth angle of each laser (e.g., the number of points that the laser can acquire in one rotation). In this disclosure, the term "angle mode" may also refer to the azimuth mode as described below.
[0093] Figure 4 This is a conceptual diagram illustrating the occupancy of an example plane in the vertical direction. Figure 4 In the example, node 400 is divided into eight child nodes. Child nodes 402A-402H can be occupied or unoccupied. Figure 4In the example, occupied child nodes are shaded. When one or more child nodes 402A-402D are occupied and no child nodes 402E-402H are occupied, the G-PCC encoder 200 can signal the planar position syntax element with a value of 0 to indicate the positive side of the minimum z-coordinate plane of node 400 (i.e., the side with the increased z-coordinate) of all occupied child nodes. When one or more child nodes 402E-402H are occupied and no child nodes 402A-402D are occupied, the G-PCC encoder 200 can signal the planar position syntax element with a value of 1 to indicate the positive side of the midpoint z-coordinate plane of node 400 of all occupied child nodes. In this way, the planar position syntax element can indicate the vertical plane position of the planar pattern in node 400.
[0094] Angular decoding mode can also be optionally used to improve the decoding of the vertical z-position bit in inference in IDCM (January 2020, Brussels, Belgium, ISO / IEC JTC1 / SC29 / WG11 MPEG / M51594, Sébastien Lasserre and Jonathan Taquet, “[GPCC]CE 13.22 report on angular mode”). IDCM is a mode in which the position of a point within a node is explicitly (e.g., directly) signaled relative to other points within the node. In angular decoding mode, the position of a point can be signaled relative to the origin of the node, and the relationship of the captured point, for example, using laser characteristics, can be used to effectively compress the position.
[0095] When generating point clouds based on data from ranging systems such as LIDAR, an angle-decoding mode can also be used. A LIDAR system can include an array of lasers arranged at different angles relative to the origin in a vertical plane. The LIDAR system can rotate around a vertical axis. The LIDAR system can use the returning laser beams to determine the distance and position of points in the point cloud. The laser beams emitted by the LIDAR system's lasers can be characterized using a set of parameters.
[0096] In the following description, laser, laser beam, laser sensor, or sensor or other similar terms may refer to any sensor capable of returning distance measurements and spatial orientation (including potential time indications), such as a typical LIDAR sensor.
[0097] The G-PCC encoder 200 or G-PCC decoder 300 can decode (e.g., encode or decode, respectively) the vertical plane position of a planar pattern in a node by selecting a laser index from a set of laser candidates signaled in a parameter set such as a geometric parameter set. The selected laser index indicates the laser beam that intersects with or is closest to the node center. The intersection or proximity of the laser beam with the node determines the context index (e.g., contextAngle, contextAnglePhiX, or contextAnglePhiY below) used for arithmetic decoding of the vertical plane position of the planar pattern.
[0098] Therefore, in some examples, a G-PCC decoder (e.g., a G-PCC encoder 200 or a G-PCC decoder 300) can decode the vertical plane position of a planar pattern in a node of an octree representing the three-dimensional position of points in a point cloud. For ease of explanation, this disclosure may refer to the node being decoded by the G-PCC decoder as the current node. As part of decoding the vertical plane position of the planar pattern, the G-PCC decoder can determine the laser index of a laser candidate in a laser candidate set. The determined laser index indicates the laser beam closest to or intersecting with the current node. The laser candidate set may include each laser in the LIDAR array. In some examples, the laser candidate set may be indicated in a parameter set such as a set of geometric parameters. Additionally, as part of decoding the vertical plane position, the G-PCC decoder determines a context index based on the intersection or proximity of the laser beam to the current node. For example, a G-PCC decoder can determine a context index based on whether the laser beam is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below the third distance threshold. Furthermore, as part of decoding vertical plane positioning, the G-PCC decoder uses the context indicated by the determined context index to perform arithmetic decoding of the vertical plane position of the planar pattern.
[0099] A suitability condition can exist to determine whether the vertical plane position of the planar pattern in the current node is suitable for decoding using the angular pattern. If the vertical plane position is not suitable for decoding using the angular pattern, the vertical plane position of the planar pattern can be decoded without using sensor information. In some examples, the suitability condition can determine whether only one laser beam intersects the current node. In other words, if only one laser beam (i.e., not two or more laser beams) intersects the current node, then the vertical plane position of the current node is suitable for decoding using the angular pattern. In some examples, the suitability condition can determine the minimum angular difference between lasers in the candidate laser set. In other words, if the angle enveloping the current node is less than the minimum angle between laser beams, then the current node is suitable for decoding using the angular pattern. The angle enveloping the current node is the angle between the line passing through the far base angle of the node and the line passing through the near apex angle of the node, measured from the laser origin. When the angle enveloping the current node is less than the minimum angular difference between laser beams, at most one laser beam intersects the node. In some examples, the eligibility condition is that the vertical node dimension is less than (or equal to) the minimum angular difference. In other words, if the vertical dimension of a node is less than or equal to the vertical distance between laser beams separated by the minimum angular difference at the vertical edge of the current node closest to the laser origin, then the current node is eligible for decoding using angular patterns.
[0100] As described above, the G-PCC decoder can select the laser index of the laser beam that intersects with or is closest to the current node. In some examples, the G-PCC decoder can determine the index of the laser beam that intersects with or is closest to the current node by selecting the laser beam that is closest to the marker point in the current node. In some examples, the marker point in the current node can be the center point of the current node, whose coordinates are located at half of all three dimensions of the current node (e.g., the dimensions of a cube or cuboid). In other examples, the marker point in the current node can be any other point that is part of the current node, such as any point inside the node, on the side of the node, or on the edge of the node or on the corner of the node.
[0101] A G-PCC decoder can determine whether a laser is near a marker point by comparing the angular differences between candidate lasers. For example, a G-PCC decoder can compare the difference between the angle of the laser beam and the angle of the marker point. The angle of the laser beam can be defined between the horizontal plane (z=0) and the direction of the laser beam. The angle of the marker point can be defined between the horizontal plane and the direction of the virtual beam to the marker point. In this case, the origin can be located at the same position as the center of the sensor or laser. Alternatively, in some examples, mathematical functions or trigonometric functions such as tangent can be applied to these angles before the comparison.
[0102] In some examples, the G-PCC decoder can determine whether the laser is near the marker point based on a comparison of vertical coordinate differences. For instance, the G-PCC decoder can compare the vertical coordinates of the marker point relative to the sensor origin (e.g., the Z-coordinate of the marker point) with the vertical coordinates of the laser intersecting or approaching the node. The G-PCC decoder can obtain the vertical coordinates of the laser intersecting the node by multiplying the tangent of the angle between the horizontal plane and the laser direction by a distance calculated using Euclidean distance (trigonometry) based on the (x, y) coordinates of the marker point.
[0103] In some examples, the G-PCC decoder can determine the context index used to decode vertical plane position syntax elements based on the relative position of the laser beam and the marker point. For example, if the laser beam is above the marker point, the G-PCC decoder can determine that the context index is the first context index, and if the laser beam is below the marker point, the G-PCC decoder can determine that the context index is the second context index. The G-PCC decoder can determine whether the laser beam is above or below the marker point in a similar manner to determining the index of the laser beam intersecting or near a node, for example, by comparing angular differences, comparing the tangent difference of angular values, or comparing vertical coordinate differences.
[0104] In some examples, the G-PCC decoder can determine distance thresholds as part of determining context indices. The G-PCC decoder can use these distance thresholds to compare the distances between the laser beam and the marker point. The distance thresholds divide the range of distances within the current node into intervals. These intervals can be of equal or unequal length. If the laser beam is within the distance range defined by the distance intervals, each of these intervals can correspond to a context index. In some examples, there are two distance thresholds determined by equal distance offsets above and below the marker point, which define three distance intervals corresponding to three context indices. The G-PCC decoder can determine whether a laser beam belongs to an interval in a similar manner to determining the laser beam index of the laser beam that intersects or is closest to the node (e.g., by comparing angular differences, comparing the tangent difference of angular values, or comparing vertical coordinate differences).
[0105] The principles described above for using sensor information are not limited to decoding the vertical (Z) plane position syntax elements of planar patterns within a node, but similar principles can also be applied to decoding the X or Y plane position syntax elements of planar patterns within a node. If the X or Y plane position pattern of the planar pattern is more suitable for decoding the point distribution within the node, these patterns can be selected by the encoder. For example, if the occupied child nodes are all on one side of the plane facing the X direction, the X plane position syntax elements can be used to decode the point distribution within the node. If the occupied child nodes are all on one side of the plane facing the Y direction, the Y plane position syntax elements can be used to decode the point distribution within the node. Furthermore, a combination of two or more planes oriented in the X, Y, or Z directions can be used to indicate the occupancy of child nodes.
[0106] As an example, a G-PCC decoder can determine the context from two contexts based on whether the laser beam is above or below the marker point (i.e., positioned above or below the marker point). In this example, the marker point is the center of the node. This is in Figure 5 As shown in the image. More specifically, Figure 5 This is a conceptual diagram illustrating an example of determining the context index based on whether laser beam positions 500A and 500B are above or below marker point 502 of node 504. Therefore, in Figure 5 In the example, if the laser intersecting node 504 is above marker point 502, as shown with respect to laser beam position 500A, the G-PCC decoder selects the first context index (e.g., Ctx = 0). Figure 5 In the example, marker 502 is located at the center of node 504. If the laser intersecting node 504 is below marker 502, as shown with respect to laser beam position 500B, the G-PCC decoder selects the second context index (e.g., Ctx = 1).
[0107] In some examples, the G-PCC decoder determines three contexts based on whether the laser beam is above or below two distance thresholds, or between the distance thresholds. In this example, the marker point is the center of the node. This is in Figure 6 As shown in the image. More specifically, Figure 6 This is a conceptual graph illustrating three example context indices for node 600. Figure 6 In the diagram, the distance interval threshold is indicated by thin dashed lines 602A and 602B. The laser beams are indicated by solid lines 604A and 604B. Each of these laser beams can be a laser candidate. The center point 606 (marked point) is indicated by a white circle. Therefore, in... Figure 6In the example, if the laser (such as the laser corresponding to line 604A) is above line 602A, the G-PCC decoder selects context index ctx1. If the laser is between lines 602A and 602B, the G-PCC decoder selects context index ctx0. If the laser (such as the laser corresponding to line 604B) is below line 602B, the G-PCC decoder selects context index ctx2.
[0108] In some examples, when using the angular mode, the G-PCC decoder uses four contexts to decode the vertical plane position in the planar mode. In such examples, the G-PCC decoder can determine the context index based on the position of the laser beam within four intervals. This example is in... Figure 7 As shown in the image. Figure 7 This is a conceptual diagram illustrating the determination of an example context index for decoding the vertical plane position (angular mode) of the planar mode, based on intervals separated by thin dashed lines and the laser beam position (solid arrows). Figure 7 In the example, lines 700A, 700B, and 700C correspond to the distance interval threshold. Furthermore, in... Figure 7 In the example, marker 702 is located at the center of node 704. Line 706 corresponds to the laser beam intersecting node 704. Because line 706 is above line 700A, the G-PCC decoder can select context index ctx2 for decoding the vertical plane position.
[0109] Figure 8A This is a flowchart illustrating an example operation for encoding vertical plane positions. The G-PCC encoder 200 can perform... Figure 8A The operation is part of the encoding of the point cloud.
[0110] exist Figure 8A In the example, G-PCC encoder 200 (e.g., G-PCC encoder 200 ( Figure 2 The arithmetic coding unit 214 of the G-PCC encoder 200 can encode (800) the vertical plane positions of planar patterns in nodes of a tree (e.g., an octree) representing the three-dimensional positions of points in a point cloud represented by point cloud data. In other words, the G-PCC encoder 200 can encode vertical plane positions.
[0111] As part of encoding the vertical plane position of the planar pattern, the G-PCC encoder 200 (e.g., arithmetic coding unit 214) can determine the laser index of a laser candidate in the laser candidate set, wherein the determined laser index indicates the laser beam (802) intersecting the node. The G-PCC encoder 200 can determine the laser index based on any examples provided elsewhere in this disclosure.
[0112] Additionally, the G-PCC encoder 200 (e.g., arithmetic coding unit 214) can determine the context index (804) based on whether the laser beam is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold. For example, in Figure 7 In the examples, the G-PCC encoder 200 can determine the context index based on whether the laser beam is above a first distance threshold (corresponding to line 700A), between the first and second distance thresholds (corresponding to line 700B), between the second and third distance thresholds (corresponding to line 700C), or below the third distance threshold. In some examples, to determine the position of the laser beam relative to the first, second, and third distance thresholds, the G-PCC encoder 200 can determine the laser difference angle (e.g., thetaLaserDelta) by subtracting the tangent of the angle of the line passing through the node center from the tangent of the laser beam angle; determine the apex angle difference (e.g., DeltaTop below) by subtracting the shift value from the laser difference angle; and determine the bottom angle difference (e.g., DeltaBot below) by adding the shift value to the laser difference angle.
[0113] The G-PCC encoder 200 can perform a first comparison to determine whether the laser difference angle is greater than or equal to 0 (e.g., thetaLaserDelta>=0). The G-PCC encoder 200 can set the context index to 0 or 1 based on whether the laser difference angle is greater than or equal to 0 (e.g., contextAngular[Child]=thetaLaserDelta>=0?0:1). Additionally, the G-PCC encoder 200 can perform a second comparison to determine whether the apex angle difference is greater than or equal to 0 (e.g., DeltaTop>=0). When the apex angle difference is greater than or equal to 0, the laser beam is above a first distance threshold. The G-PCC encoder 200 can also perform a third comparison to determine whether the bottom angle difference is less than 0 (e.g., DeltaBottom<0). When the bottom angle difference is less than 0, the laser beam is below a third distance threshold. The G-PCC encoder 200 can increment the context index by 2 in the following cases: based on the top corner difference being greater than or equal to 0 (e.g., if(DeltaTop>=0)contextAngular[Child]+=2), or based on the bottom corner difference being less than 0 (e.g., else if(DeltaBottom<0)contextAngular[Child]+=2).
[0114] The G-PCC encoder 200 (e.g., the arithmetic coding unit 214 of the G-PCC encoder 200) can use the context indicated by the determined context index to perform arithmetic coding (806) on the vertical plane position of the planar pattern. For example, the G-PCC encoder 200 can perform CABAC coding on the syntax element indicating the vertical plane position.
[0115] Figure 8B This is a flowchart illustrating an example operation for decoding a vertical plane position. The G-PCC decoder 300 can perform... Figure 8B The operation is part of reconstructing the point cloud represented by the point cloud data. Figure 8B In the example, the G-PCC decoder 300 (e.g., Figure 3 The geometric arithmetic decoding unit 302 can decode (850) the vertical plane positions of planar patterns in the nodes of a tree (e.g., an octree) that represents the three-dimensional positions of points in a point cloud. In other words, the G-PCC decoder 300 can decode vertical plane positions.
[0116] As part of decoding the vertical plane position of the planar pattern, the G-PCC decoder 300 (e.g., geometric arithmetic decoding unit 302) can determine the laser index of a laser candidate in the laser candidate set, wherein the determined laser index indicates the laser beam that intersects with or is closest to the node (852). The G-PCC decoder 300 can determine the laser index based on any examples provided elsewhere in this disclosure.
[0117] Additionally, the G-PCC decoder 300 can determine the context index (854) based on whether the laser beam is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below the third distance threshold. As described above, the G-PCC decoder 300 can determine the context index in the same manner as the G-PCC encoder 200.
[0118] The G-PCC decoder 300 (e.g., the geometric arithmetic decoding unit 302 of the G-PCC decoder 300) can use the context indicated by the determined context index to perform arithmetic decoding (856) on the vertical plane position of the planar pattern. For example, the G-PCC decoder 300 can perform CABAC decoding on the syntax element indicating the vertical plane position. In some examples, the G-PCC decoder 300 can determine the position of one or more points in the point cloud based on the vertical plane position. For example, the G-PCC decoder 300 can determine the position of the occupied child nodes of a node based on the vertical plane position. The G-PCC decoder 300 can then process the occupied child nodes to determine the position of points within the occupied child nodes, and may not need to perform further processing on the unoccupied child nodes.
[0119] A G-PCC decoder (e.g., a G-PCC encoder 200 or a G-PCC decoder 300) can decode (i.e., encode or decode) the vertical point position offset of the IDCM within a node, in part, by selecting a laser index from a set of laser candidates. The laser candidate set can be signaled to a set of parameters, such as a set of geometric parameters, where the selected laser index indicates the laser beam intersecting the node. The set of laser candidates may correspond to lasers in a LiDAR array. The G-PCC decoder can determine a context index based on the intersection of the laser beam with the node to perform arithmetic decoding of the binary number (bits) of the vertical point position offset from the IDCM.
[0120] As described above, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to perform context derivation in angular mode. The following describes the context derivation in planar mode for three coordinates: x, y, and z. When the LiDAR laser rotates in the xy plane, the processing of the x and y coordinates can be similar to each other and different from the processing of the z coordinate. In other examples, two different planes can be similar to a third different plane.
[0121] To determine the position and midpoint of a node, the G-PCC encoder 200 and the G-PCC decoder 300 can derive the variables absPos and midNode as described below, where child.pos and childSizeLog2 refer to the position and size of the current node, respectively.
[0122]
[0123] When the node size is too large (i.e., when more than one laser may pass through the node), the G-PCC encoder 200 and therefore the G-PCC decoder 300 disable corner mode. The G-PCC encoder 200 calculates an estimate (deltaAngle) of the minimum distance between two adjacent lasers at the midpoint of the node and compares this estimate with the node size. When the current node is larger than a threshold, the G-PCC encoder 200 disables corner mode. The variable headPos refers to the position of the LiDAR head and can be used to find the coordinates xLidar / yLidar / zLidar relative to the LiDAR origin as follows:
[0124]
[0125] In the next step, the G-PCC encoder 200 calculates the elevation angle theta32 of the center of the node in the z-direction (zLidar), and estimates the laser index laserIndex closest to the node center as follows:
[0126]
[0127]
[0128] Once the nearest laser is estimated, the G-PCC encoder 200 estimates the context of the planar mode for the x and y coordinates. In some examples, the G-PCC encoder 200 determines the context for only one of the x and y coordinates, and when one coordinate is decoded in angular planar mode, the other coordinate is not. For each laser, the last decoded / predicted azimuth is stored in phiBuffer. Based on the laser velocity (input parameter), the G-PCC encoder 200 updates the azimuth prediction and determines the context by comparing the updated azimuth prediction, the azimuth of the node origin, and then checking which part of the current node the nearest laser passes through. This context can be used to estimate one of six contexts in the x / y dimension, as follows:
[0129]
[0130]
[0131] For the z-dimensional context, three thresholds were selected: theta32, theta32-zShift, and theta32+zShift. By comparing the elevation angle of the nearest laser (thetaLaser[laserIndex]) with the three thresholds, the G-PCC encoder 200 derives one of four contexts for the planar pattern of the z-coordinate, as follows:
[0132]
[0133]
[0134] As described above, the G-PCC encoder 200 and G-PCC decoder 300 can also be configured to determine the IDCM mode context. IDCM refers to a mode in G-PCC where the location of a point within a node is decoded without using the octree structure within that node. For example, IDCM may be beneficial for point clouds with sparse nodes or outliers, where decoding the coordinates of a point might be more advantageous than decoding the point using the full octree structure. In G-PCC, only one or two distinct locations within a node can be decoded as IDCM nodes.
[0135] When using corner mode, the G-PCC encoder 200 can perform context decoding on bits corresponding to positions based on laser parameters. An example method for deriving the context of bits decoded in corner IDCM mode is described below. The following description outlines techniques that can be performed by the G-PCC encoder 200 and / or the G-PCC decoder 300.
[0136] The G-PCC encoder 200 and G-PCC decoder 300 can be configured to determine the node position and laser index. As mentioned above, in IDCM, up to two distinct positions within a node can be encoded. The first step could be to determine the number of points occupying at most two positions, which can be accomplished as follows:
[0137]
[0138]
[0139] For the next step, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to check whether the plane mode is applied to the current node. If the plane mode is applied, the MSB corresponding to the coordinates can be signaled individually (plane), and effectively only the remaining bits are decoded. Decoding of the MSB using the plane mode can be performed before IDCM decoding. The node size is updated from effectiveNodeSizeLog2 to nodeSizeLog2Rem as follows:
[0140]
[0141] For the next step, the G-PCC encoder 200 and G-PCC decoder 300 compute the node's position posNodeLidar relative to the LiDAR origin head post, as shown below. The x and y positions are used to determine whether the x or y coordinates of the position within that node should be context-decoded, while the other position is bypassed for decoding.
[0142]
[0143]
[0144] When more than one point is being decoded, the G-PCC encoder 200 and G-PCC decoder 300 sort the points, which further reduces the number of bits required to decode the point positions. This is achieved by decoding one or more MSBs at the x, y, or z position; as a result, the number of remaining bits to be decoded (nodeSizeLog2Rem) can be further reduced.
[0145]
[0146] Since some bits have already been decoded (due to planar and joint decoding of the points), the G-PCC encoder 200 and G-PCC decoder 300 can calculate the midpoint of the updated node position and use this midpoint to determine the nearest laser passing through the node midpoint, as follows:
[0147]
[0148]
[0149] If corner mode is enabled, the G-PCC encoder 200 and G-PCC decoder 300 can perform context decoding on bits at positions that have not yet been decoded. For example, as described below, a bit in one of x and y can be context-decoded, while other bits can be bypass-decoded, and the bit in z is context-decoded. Otherwise, all remaining bits can be bypass-decoded.
[0150]
[0151] The G-PCC encoder 200 and G-PCC decoder 300 can be configured to determine the context for the corner IDCM. The determination of the context for the IDCM node location based on laser parameters will now be described.
[0152] The G-PCC encoder 200 and G-PCC decoder 300 can calculate the node position posXyz relative to the LIDAR head position column, which can again be used to determine which coordinate (x or y) will be context-decoded. If posXyz[1] ≥ posXyz[0] (i.e., the absolute y coordinate value is larger), then the G-PCC encoder 200 and G-PCC decoder 300 can bypass decode the y coordinate bit and context-decode the x coordinate bit. Otherwise (i.e., the absolute y coordinate value is less than the absolute x coordinate), the G-PCC encoder 200 and G-PCC decoder 300 can bypass decode the x coordinate bit and context-decode the y coordinate bit. As each bit is decoded, the updated node posXyz is calculated.
[0153]
[0154]
[0155] In the next step, the G-PCC encoder 200 and the G-PCC decoder 300 use the laser index derived relative to the planar mode context in the manner described above and the laser index rate residual included in the bitstream to calculate the laser index at that point.
[0156] / / Find the predictor
[0157] int phiNode=iatan2(posXyz[1],posXyz[0]);
[0158] int laserNode=int(child.laserIndex);
[0159] / / Laser residual
[0160] int laserIndex=laserNode+decodeThetaRes();
[0161] The G-PCC encoder 200 and G-PCC decoder 300 use this updated laserIndex to determine the predicted azimuth (phi) stored in buffer_phiBuffer. When the laser samples points approximately uniformly within the azimuth range, the G-PCC encoder 200 and G-PCC decoder 300 can use phiZi.delta to indicate the minimum difference among the azimuth values. Therefore, the number of points that may have been skipped from the predicted phi value is calculated as nShift, and the predicted phi value is updated.
[0162]
[0163] For the x and y coordinates that are context-encoded, the G-PCC decoder 300 decodes the remaining nodeSizeLog2AfterPlanar[0] (the context-encoded portion). For each bit, the G-PCC decoder 300 determines the updated context value by updating the node position by updating posXY as each bit is decoded. The G-PCC decoder 300 also recalculates the predicted phi value as the node position is updated. One of the six (or eight) contexts is selected to compare the azimuth of the node position, the position offset by half a node size in the context-encoded direction (i.e., x or y), and the predicted azimuth. Once the position is encoded, the azimuth of the node phiNode is stored in a buffer.
[0164]
[0165]
[0166]
[0167] _phiBuffer[laserIndex]=phiNode;
[0168] Once the x and y positions are decoded, the z coordinate is decoded. Similarly, the derivation of the context for the planar mode bits in the z direction (explained above relative to the planar mode context) has a multi-bit generalization as described above. As each z coordinate bit is decoded, the G-PCC decoder 300 recalculates the context for the next bit with the updated node position and z value, which is offset in the z direction from the node position by half the node size (posXyz[2]+maskz). Again, the G-PCC decoder 300 selects one of the four contexts to decode the z coordinate bit.
[0169]
[0170]
[0171]
[0172] The G-PCC encoder 200 and G-PCC decoder 300 can be configured to use intra-tree quantization. Intra-tree geometry scaling provides a means of quantizing (e.g., at the G-PCC encoder 200) and scaling (e.g., at the G-PCC decoder 300) the geometric position, even when constructing the encoding tree. In the current draft text, the scaling of the quantization step and position is applied as follows:
[0173] The shift value (sh) is calculated as follows:
[0174] qpScaled = qp< <qpDivFactorLog2
[0175] sh = qpScaled >> 3
[0176] The scaling process is specified as follows:
[0177] scaled_x=(x*(8+qpScaled%8)<<sh+4)> >3
[0178] The G-PCC encoder 200 and G-PCC decoder 300 apply geometric quantization at specific node depths (signaled in the bitstream) within the octree. In a simple example, if the node coordinates are 12 bits and the depth to which quantization is applied is 3, the first 3 MSBs of the node coordinates (referred to as the MSB portion of the position) are not quantized. Only the last 9 LSBs of the node coordinates (referred to as the LSB portion of the position) are quantized. Due to quantization, 9 LSBs can be reduced to fewer bits, referred to herein as N, where N is less than 9. This quantization results in some reduction in bit rate at the cost of reconstruction accuracy. As a result, the node coordinate size becomes N+3 (i.e., <= 12).
[0179] Similarly, at the G-PCC decoder 300, N LSBs are scaled and clipped to the maximum value of 1 << (9-1), ensuring that the scaled value does not exceed 9 LSB bits of the original point. The final scaling position is calculated by concatenating the 3 MSBs and the 9 bits of the scaled LSBs.
[0180] Additionally, a signal is sent to the qp scaling factor, which determines the minimum number of QPs that can be defined for each doubling of the step size. In G-PCC, this factor can take values of 0, 1, 2, and 3.
[0181] For various values of qpDivFactorLog2, the number of QP points for each doubling of the step size is specified in the table below:
[0182]
[0183]
[0184] For all qpDivFactorLog2 values, the step size derivation remains the same as the scaling process, with the step size doubled by 8 QP points. This is accomplished by adjusting the QP values before calculating the shift bits and the scaling process.
[0185] Existing techniques have some potential problems. For example, in the conventional decoding of point cloud frames, corner modes provide a considerable gain in decoding efficiency. However, when intra-tree quantization is enabled, the gain of corner modes decreases significantly, and in some cases, it actually incurs losses. For corner modes (IDCM corners and planar corners), quantization bits are used for context inference. The quantization bits are not in the same domain as the original point and are in a different scaling space. This reduces the usefulness of both corner modes and intra-tree quantization, as enabling both simultaneously can be detrimental.
[0186] This disclosure describes techniques that can solve some of the problems described above. The various techniques described herein can be implemented individually or in combination.
[0187] According to the technology disclosed herein, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to derive scaled values xS of node / point location coordinates for point / location coordinate values x, thereby deriving the position of the node / point relative to the lidar origin. In some examples, the scaling operation may include scaling one or more bits of the position, and may additionally include a maximum number of scaled bit values, wherein the maximum number is based on a signaling value, such as a value derived from the maximum depth to which quantization will be applied. In some examples, similar scaled positions may also be derived for y or z coordinates, or in some cases two or more coordinates.
[0188] According to the technology disclosed herein, the G-PCC encoder 200 and G-PCC decoder 300 use scaled values to determine the relative position of a node with respect to the LiDAR head position, or more generally, the relative position with respect to the origin position. The G-PCC encoder 200 and G-PCC decoder 300 may determine the scaled value to use, for example, based on whether any quantization has already been applied to the node position / coordinates. In some examples, the G-PCC encoder 200 and G-PCC decoder 300 may use scaled values when the node position / coordinate values are in a different domain than the head position. For example, if the node coordinates x_0 and the head position h_0 are described in the same domain (scale), and the value of x_0 is modified to x by applying quantization, then the scaled value is used to determine the relative position with respect to the LiDAR head.
[0189] According to the technology disclosed herein, the G-PCC encoder 200 and G-PCC decoder 300 use one or more scaled coordinate values to calculate laser characteristics. Laser characteristics may include, for example, elevation angle (the angle formed by the laser relative to the xy plane) or laser head offset. Laser characteristics may include azimuth angle or azimuth prediction.
[0190] According to the technology disclosed herein, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to perform scaling operations without clipping. For example, the MSB bit of a position can be added to a scaled value of the LSB portion of a bit. In some cases, the G-PCC encoder 200 and G-PCC decoder 300 can apply clipping, in which case the MSB bit of a position is added to a clipped version of the scaled value of the LSB portion of the bit. In some examples, some scaling operations may include clipping, while others may not apply clipping. This can be determined by the decoded coordinates, the depth of the applied QP, and the QP value.
[0191] According to the technology disclosed herein, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to restrict corner modes (fully or partially) based on the value of qpDivFactorLog2. For example, when the value of qpDivFactorLog2 is 0, 1, or 2, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to disable corner modes (fully or partially)—that is, only when powers of the two step sizes are allowed for geometric quantization / scaling.
[0192] In some examples, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to enable corner mode only when the QP values of all nodes in the reference parameter set correspond to a step size that is a power of 2 (e.g., indicated in the parameter set, such as GPS). In another example, when intra-tree geometry scaling is enabled (e.g., by setting geom_scaling_enabled_flag to equal 1), the G-PCC encoder 200 and G-PCC decoder 300 can be configured to completely or partially disable corner mode. In the examples above, partial disabling of corner mode can include one or more of the context deductions for disabling plane mode-related parameters (or bits) using corner mode and the context deductions for disabling IDCM mode-related parameters (or bits) using corner mode.
[0193] According to the technology disclosed herein, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to modify the context inference of a corner mode based on the QP value of a specific node. In one example, one or more thresholds used in the context inference can be specified based on the QP value (such as a function of QP). For example, the threshold may be invariant for a QP value of 0, but can be modified when QP is greater than 0. In other examples, the threshold may remain unchanged for QP values that result in a power of 2, but may be modified in other ways.
[0194] The modified QP value can be specified using a table of QP values and scaling factors and / or offsets to modify the threshold. For example, when modifying relative to QP, a fixed factor can be used to scale the threshold (doubling the threshold for non-zero QP). In another example, the threshold “z” can be modified as z_mod = func(z, QP), where func() is a predefined function or a function indicated in the bitstream. For example, func(z, QP) = a(QP) * z + b(QP), where a(QP) and b(QP) are sets of parameters based on the QP value (the function a() or b() can be a linear or non-linear function).
[0195] The threshold modification can be applied to one or more of the three components x, y, or z. The modification can be applied to one or more contexts associated with theta / laser angle or with azimuth angle. The threshold modification can be applied to one or more of the plane angle mode and the angular IDCM mode.
[0196] According to the technology disclosed herein, the G-PCC encoder 200 and the G-PCC decoder 300 can be configured to use one or more thresholds to determine whether corner mode is enabled, and one or more techniques for context inference can be used to modify one or more thresholds based on QP. (For example, if corner mode is disabled when the node size is greater than a threshold, the threshold can be modified based on QP, such as doubling the threshold for certain QP values).
[0197] One example implementation uses scaled point values to determine the relative position with respect to a LiDAR node. Throughout this disclosure, in the identifier... <add> and< / add> The addition is shown between the identifiers. <del> and< / del> The text indicates deletion.
[0198] The G-PCC encoder 200 and G-PCC decoder 300 can be configured to determine the plane mode context.
[0199] A function, `invQuantPositionAngular`, is defined that applies a scaling operation to the three coordinates of a point based on the step size derived from `qp` and the bits indicated by `quantMasks`. This function can be defined as follows: In this example, the scaling operation is similar to the inverse scaling operation defined for in-tree quantization, but any general scaling operation can be applied. `quantMasks` is a set of 1s and 0s indicating which bits of the node position should be scaled. For example, if `quantMasks = 00000111`, only the last three bits are scaled. In this example, after the scaling operation, the unscaled portion of the position and the scaled portion are added to form the "scaled" position. The unscaled portion can be shifted before being added to the scaled portion.
[0200]
[0201]
[0202] In some examples, the procedure is applied only if qp is not zero. In other examples, the PCCClip() operation may not be performed, and the recon[] variable is obtained by adding highPart and lowPartSCaled, as shown below.
[0203] <add>int lowPartScaled=quantizer.scale(lowPart)
[0204] recon[k]=highPart+lowPartScaled;< / add>
[0205] In determining the context of the planar variables, the G-PCC encoder 200 and G-PCC decoder 300 apply scaling operations to the positions of child nodes absPos, midNode (representing half the node size), and childSize (representing the node size)—scaling versions of these values are used during context inference.
[0206]
[0207]
[0208]
[0209]
[0210]
[0211] In some examples, the G-PCC encoder 200 and G-PCC decoder 300 can be configured to implement zShift using multiplication only if the scaling step (derived from QP) is not a power of 2. Otherwise, zShift (where the step is a power of 2) is implemented as a shift operation (as shown above).
[0212] This disclosure describes the changes in the IDCM angular context.
[0213] The inverse scaling function is defined as follows, where the scaling operation is similar to the previously defined function, and the function parameter (noClip) determines whether clipping is applied.
[0214]
[0215]
[0216] In some examples, the recon variable can be derived as follows:
[0217] recon=(highPart< <shiftBits)|lowPartScaled;
[0218] The G-PCC encoder 200 and G-PCC decoder 300 can be configured to determine the nodePosition and laser index, for example, in a manner similar to that described above.
[0219] The G-PCC decoder 300 can initialize the scaling operation (also known as inverse quantization) using the node's QP and a quantization mask applicable to the point location, as shown below:
[0220] <add> InvQuantizer invQuantizerIDCM(child.qp,posQuantBitMasks);< / add>
[0221] In the code below, whenever the node's position relative to the LiDAR origin is estimated, a scaled value of the position is used. This ensures that the relative position with respect to the LiDAR origin is correctly estimated, and that the laser index, elevation, and azimuth are calculated correctly. When the node position is updated, a mask value or node size is added; the added value is also dequantized before being added (or in some cases, the value is added to the unquantized position and then scaled).
[0222]
[0223]
[0224]
[0225]
[0226] The G-PCC encoder 200 and G-PCC decoder 300 can be configured to determine the context used for the corner IDCM.
[0227] Similar to the above, when the position of a node is compared relative to the position of the LiDAR head, a scaled version of the node size and node position is used.
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
[0235]
[0236] The rest of the derivation is similar to that described above.
[0237] The following example illustrates an implementation where the context threshold of the z-coordinate in planar angle mode is updated (the updated portion is identified between ** and **), as shown below:
[0238]
[0239] In this example, the other changes shown in the examples above can also be retained.
[0240] Examples in various aspects of this disclosure may be used individually or in any combination.
[0241] Figure 9A This is a flowchart illustrating example operation of a G-PCC encoder 200 according to one or more techniques of this disclosure. The G-PCC encoder 200 determines that intra-tree quantization is enabled for a node (900). The G-PCC encoder 200 determines that a planar mode is activated for the node (902). In response to enabling intra-tree quantization for the node, the G-PCC encoder 200 determines a quantized value for the node representing a coordinate position relative to the origin (904). The G-PCC encoder 200 scales the quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin (906).
[0242] To scale quantized values without pruning to determine a scaled value representing the coordinate position relative to the origin, the G-PCC encoder 200 can be configured to: determine a most significant bit (MSB) group and a least significant bit (LSB) group; scale the LSBs without pruning to determine a scaled LSB; and add the scaled LSB to the MSB to determine the scaled value representing the coordinate position relative to the origin. To further scale quantized values without pruning to determine the scaled value representing the coordinate position relative to the origin, the G-PCC encoder 200 can be configured to: determine a shift amount of the MSB based on the node's quantization parameters; shift the MSB based on the shift amount; and add the scaled LSB to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin. The G-PCC encoder 200 can receive an indication of the number of bits in the LSB group, for example, in a signaling syntax within the bitstream. This indication can be explicit or implicit. As an example, the G-PCC encoder 200 can be configured to export the number of MSBs and LSBs based on the received node depth.
[0243] The G-PCC encoder 200 determines the context (908) for context encoding of the planar position syntax element for diagonal mode based on a scaled value representing the coordinate position relative to the origin. The planar position syntax element may, for example, indicate a vertical plane position. To determine the context for context encoding of the planar position syntax element for diagonal mode based on the scaled value representing the coordinate position relative to the origin, the G-PCC encoder 200 can be configured to: determine one or more laser characteristics based on the scaled value and the origin position; and encode the planar position syntax element for diagonal mode based on the laser characteristics. To determine the context for context encoding of the planar position syntax element for diagonal mode based on the laser characteristics, the G-PCC encoder 200 can be configured to determine the context index based on whether the laser beam having the determined one or more laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0244] For example, steps 904, 906, and 908 above can be performed as part of a decoding operation executed by the G-PCC encoder 200. The G-PCC encoder 200 can perform decoding as part of encoding. For instance, to determine whether a particular encoding scheme provides the desired rate-distortion tradeoff, the G-PCC encoder 200 can encode point cloud data and then decode the encoded point cloud data, allowing the decoded point cloud data to be compared with the original point cloud data to determine the amount of distortion. The G-PCC encoder 200 can also encode point cloud data and then decode the encoded point cloud data, enabling the G-PCC encoder 200 to perform predictions based on the same point cloud data available to the G-PCC decoder when using various predictive decoding tools.
[0245] Figure 9B This is a flowchart illustrating example operation of a G-PCC decoder 300 according to one or more techniques of this disclosure. The G-PCC decoder 300 can determine, based on a syntax for signaling notification in the bitstream, that intra-tree quantization is enabled for a node (920). For a node, the G-PCC decoder 300 determines, based on the syntax for signaling notification in the bitstream, that a plane mode is activated for that node (922). In response to enabling intra-tree quantization for a node, the G-PCC decoder 300 determines a quantized value for the node representing a coordinate position relative to the origin (924).
[0246] The G-PCC decoder 300 scales the quantized values without clipping to determine the scaled values (906) representing the coordinate positions relative to the origin.
[0247] To scale quantized values without pruning to determine a scaled value representing the coordinate position relative to the origin, the G-PCC decoder 300 can be configured to: determine a most significant bit (MSB) group and a least significant bit (LSB) group; scale the LSBs without pruning to determine a scaled LSB; and add the scaled LSB to the MSB to determine the scaled value representing the coordinate position relative to the origin. To further scale quantized values without pruning to determine the scaled value representing the coordinate position relative to the origin, the G-PCC decoder 300 can be configured to: determine a shift amount for the MSB based on the node's quantization parameters; shift the MSB based on the shift amount; and add the scaled LSB to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin. The G-PCC decoder 300 can receive an indication of the number of bits in the LSB group, for example, in a signaling syntax within the bitstream. This indication can be explicit or implicit. As an example, the G-PCC decoder 300 can be configured to export the number of MSBs and LSBs based on the received node depth.
[0248] The G-PCC decoder 300 determines the context (928) for context decoding (e.g., arithmetic decoding) of the planar position syntax element for diagonal mode based on a scaled value representing the coordinate position relative to the origin. The planar position syntax element may, for example, indicate a vertical plane position. To determine the context for context decoding of the planar position syntax element for diagonal mode based on the scaled value representing the coordinate position relative to the origin, the G-PCC decoder 300 can be configured to: determine one or more laser characteristics based on the scaled value and the origin position; and decode the planar position syntax element for diagonal mode based on the laser characteristics. To determine the context for context decoding of the planar position syntax element for diagonal mode based on the laser characteristics, the G-PCC decoder 300 can be configured to determine the context index based on whether the laser beam having the determined one or more laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0249] The G-PCC decoder 300 can be configured to reconstruct a point cloud by determining the position of one or more points in the point cloud, for example, based on planar position.
[0250] Figure 10 This is a conceptual diagram illustrating an example ranging system 1000 that can be used with one or more technologies disclosed herein. Figure 10In one example, the ranging system 1000 includes an illuminator 1002 and a sensor 1004. The illuminator 1002 can emit light 1006. In some examples, the illuminator 1002 can emit light 1006 as one or more laser beams. Light 1006 can be one or more wavelengths, such as infrared wavelengths or visible light wavelengths. In other examples, light 1006 is not a coherent laser. When light 1006 encounters an object such as object 1008, light 1006 produces a return light 1010. The return light 1010 can include backscattered and / or reflected light. The return light 1010 can be guided by lens 1011, lens 1411 to create an image 1012 of object 1008 on sensor 1004. Sensor 1004 generates a signal 1018 based on image 1012. Image 1012 can include a set of points (e.g., as shown by...). Figure 10 (Point representation in image 1012).
[0251] In some examples, illuminator 1002 and sensor 1004 can be mounted on a rotating structure, allowing illuminator 1002 and sensor 1004 to capture a 360-degree view of the environment. In other examples, ranging system 1000 may include one or more optical components (e.g., mirrors, collimators, diffraction gratings, etc.) that enable illuminator 1002 and sensor 1004 to detect objects within a specific range (e.g., up to 360 degrees). Although Figure 10 The example shows only a single illuminator 1002 and sensor 1004, but the ranging system 1000 may include multiple sets of illuminators and sensors.
[0252] In some examples, illuminator 1002 generates a structured light pattern. In these examples, ranging system 1000 may include multiple sensors 1004 on which corresponding images of the structured light pattern are formed. Ranging system 1000 can use the differences between the images of the structured light pattern to determine the distance to object 1008, on which the structured light pattern is backscattered. When object 1008 is relatively close to sensor 1004 (e.g., 0.2 meters to 2 meters), structured light-based ranging systems can have a high level of accuracy (e.g., sub-millimeter accuracy). This high level of accuracy can be used for facial recognition applications, such as unlocking mobile devices (e.g., mobile phones, tablets, etc.), and for security applications.
[0253] In some examples, the ranging system 1000 is a time-of-flight (ToF) based system. In some examples of the TOF-based ranging system 1000, an illuminator 1002 generates a light pulse. In other words, the illuminator 1002 can modulate the amplitude of the emitted light 1006. In these examples, a sensor 1004 detects the return light 1010 from the light pulse 1006 generated by the illuminator 1002. The ranging system 1000 can then determine the distance to the object 1008 from which the light 1006 is backscattered based on the delay between when the light 1006 is emitted and detected, and the known speed of light in air. In some examples, the illuminator 1002 can modulate the phase of the emitted light 1006 instead of (or add to) modulating the amplitude of the emitted light 1006. In these examples, sensor 1004 can detect the phase of the return light 1010 from object 1008 and use the speed of light and the time difference between when illuminator 1002 generates light 1006 at a specific phase and when sensor 1004 detects the return light 1010 at a specific phase to determine the distance to a point on object 1008.
[0254] In other examples, point clouds can be generated without using illuminator 1002. For example, in some examples, sensor 1004 of ranging system 1000 may include two or more optical cameras. In such examples, ranging system 1000 can use the optical cameras to capture a stereo image of the environment (including object 1008). Ranging system 1000 (e.g., point cloud generator 1020) can then calculate the differences between positions in the stereo image. Ranging system 1000 can then use this difference to determine the distance to the position shown in the stereo image. Based on these distances, point cloud generator 1020 can generate a point cloud.
[0255] Sensor 1004 can also detect other properties of object 1008, such as color and reflectivity information. Figure 10 In the example, point cloud generator 1020 can generate a point cloud based on signal 1018 generated by sensor 1004. Ranging system 1000 and / or point cloud generator 1020 can form data source 104 ( Figure 1 Part of ).
[0256] Figure 11 This is a conceptual diagram illustrating an example vehicle-based scenario in which one or more technologies of this disclosure can be used. Figure 11 In the example, vehicle 1100 includes laser encapsulation 1102, such as a LIDAR system. Although not in Figure 11 The example is shown, but vehicle 1100 may also include a data source and a G-PCC encoder (such as G-PCC encoder 200). Figure 1 )).exist Figure 11In the example, laser package 1102 emits a laser beam 1104, which is reflected from a pedestrian 1106 or other object in the road. The data source for vehicle 1100 can generate a point cloud based on the signal generated by laser package 1102. A G-PCC encoder for vehicle 1100 can encode the point cloud to generate a bitstream 1108. Bitstream 1108 can include significantly fewer bits than the unencoded point cloud obtained by the G-PCC encoder. The output interface of vehicle 1100 (e.g., output interface 108) Figure 1 The bitstream 1108 can be sent to one or more other devices. Therefore, the vehicle 1100 is able to send the bitstream 1108 to other devices faster than uncoded point cloud data. Additionally, the bitstream 1108 may require less data storage capacity.
[0257] exist Figure 11 In the example, vehicle 1100 can send bitstream 1108 to another vehicle 1110. Vehicle 1110 may include a G-PCC decoder (such as G-PCC decoder 300). Figure 1 The G-PCC decoder of vehicle 1110 can decode bitstream 1108 to reconstruct a point cloud. Vehicle 1110 can use the reconstructed point cloud for various purposes. For example, vehicle 1110 can determine, based on the reconstructed point cloud, that pedestrian 1106 is in the road ahead of vehicle 1100, and thus begin to decelerate, for example, before the driver of vehicle 1110 becomes aware that pedestrian 1106 is in the road. Therefore, in some examples, vehicle 1110 can perform autonomous navigation operations, generate notifications or warnings, or perform other actions based on the reconstructed point cloud.
[0258] Additionally or alternatively, vehicle 1100 may send bit stream 1108 to server system 1112. Server system 1112 may use bit stream 1108 for various purposes. For example, server system 1112 may store bit stream 1108 for subsequent reconstruction of the point cloud. In this example, server system 1112 may use the point cloud and other data (e.g., vehicle telemetry data generated by vehicle 1100) to train the autonomous driving system. In other examples, server system 1112 may store bit stream 1108 for reconstruction in subsequent forensic collision investigations (e.g., if vehicle 1100 collides with pedestrian 1106), or may send notifications or instructions for navigation to vehicle 1100 or vehicle 1110.
[0259] Figure 12 This is a conceptual diagram illustrating an example extended reality system in which one or more of the technologies disclosed herein may be used. Extended reality (XR) is a term used to encompass a range of technologies, including augmented reality (AR), mixed reality (MR), and virtual reality (VR). Figure 12In the example, a first user 1200 is located at a first position 1202. User 1200 wears an XR headset 1204. Alternatively, user 1200 may use a mobile device (e.g., a mobile phone, tablet, etc.). The XR headset 1204 includes a depth sensor (such as a LiDAR system) that detects the position of a point on an object 1206 at the first position 1202. The data source of the XR headset 1204 can use signals generated by the depth sensor to generate a point cloud representation of the object 1206 at position 1202. The XR headset 1204 may include a G-PCC encoder (e.g., Figure 1 The G-PCC encoder 200 is configured to encode point clouds to generate a bitstream 1208.
[0260] XR headset 1204 can send bitstream 1208 (e.g., via a network such as the Internet) to XR headset 1210 worn by user 1212 at second location 1214. XR headset 1210 can decode bitstream 1208 to reconstruct a point cloud. XR headset 1210 can use the point cloud to generate an XR visualization (e.g., AR, MR, VR visualization) representing object 1206 at location 1202. Thus, in some examples, such as when XR headset 1210 generates a VR visualization, user 1212 at location 1214 can have a 3D immersive experience at location 1202. In some examples, XR headset 1210 can determine the location of a virtual object based on the reconstructed point cloud. For example, XR headset 1210 can determine, based on the reconstructed point cloud, that the environment (e.g., location 1202) includes a flat surface, and then determine that a virtual object (e.g., a cartoon character) will be positioned on that flat surface. The XR headset 1210 can generate XR visualizations in which virtual objects are located in defined positions. For example, the XR headset 1210 can display a cartoon character sitting on a flat surface.
[0261] Figure 13 This is a conceptual diagram illustrating an example mobile device system in which one or more technologies of this disclosure may be used. Figure 13 In one example, a mobile device 1300, such as a mobile phone or tablet computer, includes a depth detection sensor, such as a LiDAR system, which detects the location of points on an object 1302 in the environment of the mobile device 1300. The data source of the mobile device 1300 can use signals generated by the depth detection sensor to generate a point cloud representation of the object 1302. The mobile device 1300 may include a G-PCC encoder (e.g., Figure 1The G-PCC encoder 200 is configured to encode point clouds to generate a bitstream 1304. Figure 13 In the example, mobile device 1300 can send a bitstream to remote device 1306 (such as a server system or other mobile device). Remote device 1306 can decode the bitstream 1304 to reconstruct a point cloud. Remote device 1306 can use the point cloud for various purposes. For example, remote device 1306 can use the point cloud to generate a map of the environment of mobile device 1300. For example, remote device 1306 can generate a map of the interior of a building based on the reconstructed point cloud. In another example, remote device 1306 can generate an image (e.g., computer graphics) based on the point cloud. For example, remote device 1306 can use the points of the point cloud as vertices of a polygon and use the color attributes of the points as the basis for coloring the polygon. In some examples, remote device 1306 can use the point cloud to perform facial recognition.
[0262] The following numbered clauses illustrate one or more aspects of the devices and technologies described in this disclosure.
[0263] Clause 1A. A method for processing point cloud data, the method comprising: receiving data representing a point cloud; and processing the data representing the point cloud according to any one or more techniques of this disclosure to generate a point cloud.
[0264] Clause 2A. An apparatus for processing point clouds, the apparatus comprising one or more components for receiving data representing point clouds and processing the data representing point clouds in accordance with any one or more techniques disclosed herein to generate point clouds.
[0265] Clause 3A. The method of Clause 1A or the device of Clause 2A, wherein processing data representing the point cloud according to any one or more techniques of this disclosure to generate the point cloud includes fully or partially disabling corner patterns.
[0266] Clause 4A. A device pursuant to Clause 3A, wherein one or more components include one or more processors implemented in a circuit.
[0267] Clause 5A. The device pursuant to any one of Clauses 2A-4A further includes a memory for storing data representing the point cloud.
[0268] Clause 6A. Devices pursuant to any one of Clauses 2A-5A, wherein the device includes a decoder.
[0269] Clause 7A. Equipment pursuant to any one of Clauses 2A-5A, wherein the equipment includes an encoder.
[0270] Clause 8A. The device pursuant to any one of Clauses 2A-7A also includes the device for generating point clouds.
[0271] Clause 9A. The device pursuant to any one of Clauses 2A-8A also includes a display for rendering images based on point clouds.
[0272] Clause 10A. A computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors to receive data representing a point cloud and process the data representing the point cloud in accordance with any one or more techniques of this disclosure to generate a point cloud.
[0273] Clause 1B. An apparatus for decoding a bitstream comprising point cloud data, the apparatus comprising: a memory for storing the point cloud data; and one or more processors coupled to the memory and implemented in a circuit, the one or more processors being configured to: determine, based on a grammar signaled in the bitstream, enable intra-tree quantization for a node; for a node, determine, based on a grammar signaled in the bitstream, activate a corner mode for the node; in response to enabling intra-tree quantization for the node, determine a quantized value for the node representing a coordinate position relative to an origin position; scale the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determine a context for context decoding planar position grammar elements of the corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0274] Clause 2B. The apparatus according to Clause 1B, wherein, in order to determine the context for decoding a planar position syntax element for a diagonal mode based on a scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: determine one or more laser characteristics based on the scaled value and the origin position; and decode a planar position syntax element for a diagonal mode based on the laser characteristics.
[0275] Clause 3B. The device according to Clause 2B, wherein, in order to determine the context for context decoding of the planar position syntax element for diagonal mode based on a scaled value representing the coordinate position relative to the origin, one or more processors are further configured to determine the context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0276] Clause 4B. Equipment pursuant to Clause 2B, wherein the planar position syntax element indicates the vertical plane position.
[0277] Clause 5B. Equipment pursuant to Clause 2B, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0278] Clause 6B. A device pursuant to Clause 1B, wherein one or more processors are further configured to perform arithmetic decoding using planar positions of a context diagonal pattern indicated by the determined context.
[0279] Clause 7B. A device pursuant to Clause 1B, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a most significant bit (MSB) group and a least significant bit (LSB) group; scale the LSBs without clipping to determine a scaled LSB; and add the scaled LSBs to the MSB to determine a scaled value representing a coordinate position relative to the origin.
[0280] Clause 8B. A device pursuant to Clause 7B, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a shift amount of the MSB based on the quantization parameters of the node; shift the MSB based on the shift amount; and add a scaled LSB to the shifted MSB to determine a scaled value representing a coordinate position relative to the origin.
[0281] Clause 9B. A device pursuant to Clause 6B, wherein one or more processors are further configured to receive an indication of the number of bits in an LSB group in a signaling syntax in the bit stream.
[0282] Clause 10B. A device pursuant to Clause 1B, wherein one or more processors are further configured to reconstruct a point cloud.
[0283] Clause 11B. A device pursuant to Clause 10B, wherein one or more processors are configured to, as part of reconstructing a point cloud, determine the location of one or more points of the point cloud based on planar location.
[0284] Clause 12B. A device pursuant to Clause 11B, wherein one or more processors are further configured to generate a map of the interior of a building based on a reconstructed point cloud.
[0285] Clause 13B. A device pursuant to Clause 11B, wherein one or more processors are further configured to perform autonomous navigation operations based on a reconstructed point cloud.
[0286] Clause 14B. A device pursuant to Clause 11B, wherein one or more processors are further configured to generate computer graphics based on a reconstructed point cloud.
[0287] Clause 15B. A device pursuant to Clause 11B, wherein one or more processors are configured to: determine the position of a virtual object based on a reconstructed point cloud; and generate an extended reality (XR) visualization in which the virtual object is located at the determined position.
[0288] Clause 16B. The device pursuant to Clause 11B also includes a display for rendering images based on the reconstructed point cloud.
[0289] Clause 17B. Devices pursuant to Clause 1B, wherein the device is one of a mobile phone or a tablet computer.
[0290] Clause 18B. Equipment pursuant to Clause 1B, wherein the equipment is a vehicle.
[0291] Clause 19B. Device pursuant to Clause 1B, wherein the device is an extended reality device.
[0292] Clause 20B. A method for decoding a bitstream comprising point cloud data, the method comprising: determining, based on a grammar signaled in the bitstream, that intra-tree quantization is enabled for a node; for the node, determining, based on the grammar signaled in the bitstream, that a corner mode is activated for the node; in response to enabling intra-tree quantization for the node, determining a quantized value for the node representing a coordinate position relative to an origin position; scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determining a context for context decoding a planar position grammar element for the corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0293] Clause 21B. The method according to Clause 20B, wherein the context for determining the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position includes: determining one or more laser characteristics based on the scaled value and the origin position; and decoding the planar position syntax element for the diagonal pattern based on the laser characteristics.
[0294] Clause 22B. The method according to Clause 21B, wherein determining the context for context decoding of the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position further includes determining the context index based on whether the laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0295] Clause 23B. The method according to Clause 21B, wherein the planar position syntax element indicates the vertical plane position.
[0296] Clause 24B. The method according to Clause 21B, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0297] Clause 25B. The method according to Clause 20B further includes: performing arithmetic decoding using the planar position of the context diagonal pattern indicated by the determined context.
[0298] Clause 26B. The method according to Clause 20B, wherein scaling the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin comprises: determining a most significant bit (MSB) group and a least significant bit (LSB) group; scaling the LSB without clipping to determine the scaled LSB; and adding the scaled LSB to the MSB to determine the scaled value representing the coordinate position relative to the origin.
[0299] Clause 27B. The method according to Clause 26B, wherein scaling the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin position comprises: determining the shift amount of the MSB based on the quantization parameters of the node; shifting the MSB based on the shift amount; and adding the scaled LSB to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin position.
[0300] Clause 28B. The method pursuant to Clause 25B further includes: receiving an indication of the number of bits in an LSB group in a syntax for signaling notification in the bit stream.
[0301] Clause 29B. The equipment pursuant to Clause 20B also includes: reconstructing point clouds.
[0302] Clause 30B. The method according to Clause 29B, wherein reconstructing a point cloud includes determining the position of one or more points of the point cloud based on planar position.
[0303] Clause 31B. The method pursuant to Clause 29B also includes: generating a map of the building’s interior based on the reconstructed point cloud.
[0304] Clause 32B. The method pursuant to Clause 29B further includes: performing autonomous navigation operations based on the reconstructed point cloud.
[0305] Clause 33B. The method pursuant to Clause 29B also includes generating computer graphics based on reconstructed point clouds.
[0306] Clause 34B. The method pursuant to Clause 29B further includes: determining the position of a virtual object based on a reconstructed point cloud; and generating an extended reality (XR) visualization in which the virtual object is located at the determined position.
[0307] Clause 35B. An apparatus for encoding a bitstream comprising point cloud data, the apparatus comprising: a memory for storing the point cloud data; and one or more processors coupled to the memory and implemented in circuitry, the one or more processors being configured to: determine that intra-tree quantization is enabled for a node; determine that a corner mode is activated for a node; in response to enabling intra-tree quantization for a node, determine a quantized value for the node representing a coordinate position relative to an origin position; scale the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determine a context for context encoding planar position syntax elements for the corner mode based on the scaled value representing the coordinate position relative to the origin position.
[0308] Clause 36B. The apparatus according to Clause 35B, wherein, in order to determine the context for context encoding of planar position syntax elements for diagonal patterns based on a scaled value representing the coordinate position relative to the origin position, the one or more processors are configured to: determine one or more laser characteristics based on the scaled value and the origin position; and decode planar position syntax elements of diagonal patterns based on the laser characteristics.
[0309] Clause 37B. The apparatus according to Clause 36B, wherein, in order to determine the context for context encoding of planar position syntax elements for diagonal patterns based on a scaled value representing the coordinate position relative to the origin, one or more processors are further configured to determine the context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0310] Clause 38B. Equipment pursuant to Clause 36B, wherein the planar position syntax element indicates the vertical plane position.
[0311] Clause 39B. Equipment pursuant to Clause 36B, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0312] Clause 40B. A device pursuant to Clause 35B, wherein one or more processors are further configured to perform arithmetic encoding using planar positions of a context diagonal pattern indicated by the determined context.
[0313] Clause 41B. A device pursuant to Clause 35B, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a most significant bit (MSB) group and a least significant bit (LSB) group; scale the LSBs without clipping to determine a scaled LSB; and add the scaled LSBs to the MSB to determine a scaled value representing a coordinate position relative to the origin.
[0314] Clause 42B. The apparatus of Clause 41B, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a shift amount of the MSB based on the quantization parameters of the node; shift the MSB based on the shift amount; and add a scaled LSB to the shifted MSB to determine a scaled value representing a coordinate position relative to the origin.
[0315] Clause 43B. A device pursuant to Clause 35B, wherein one or more processors are further configured to reconstruct a point cloud.
[0316] Clause 44B. A device pursuant to Clause 35B, wherein, in order to reconstruct the point cloud, one or more processors are further configured to determine the location of one or more points of the point cloud based on planar location.
[0317] Clause 45B. Devices pursuant to Clause 35B, wherein the device is one of a mobile phone or a tablet computer.
[0318] Clause 46B. Equipment pursuant to Clause 35B, wherein the equipment is a vehicle.
[0319] Clause 47B. Device pursuant to Clause 35B, wherein the device is an extended reality device.
[0320] Clause 48B. A method for encoding a bitstream comprising point cloud data, the method comprising: determining that intra-tree quantization is enabled for a node; determining that a corner mode is activated for a node; in response to enabling intra-tree quantization for a node, determining a quantized value for the node representing a coordinate position relative to an origin position; scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determining a context for context encoding planar position syntax elements for the corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0321] Clause 49B. The method according to Clause 48B, wherein the context for determining the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position includes: determining one or more laser characteristics based on the scaled value and the origin position; and decoding the planar position syntax element for the diagonal pattern based on the laser characteristics.
[0322] Clause 50B. The method according to Clause 49B, wherein determining the context for context encoding the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position further includes determining the context index based on whether the laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0323] Clause 51B. The method according to Clause 49B, wherein the planar position syntax element indicates the vertical plane position.
[0324] Clause 52B. The method according to Clause 49B, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0325] Clause 53B. The method pursuant to Clause 48B further includes: arithmetic encoding using the planar position of the context diagonal pattern indicated by the determined context.
[0326] Clause 54B. The method according to Clause 48B, wherein scaling a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin comprises: determining a most significant bit (MSB) group and a least significant bit (LSB) group; scaling the LSBs without clipping to determine a scaled LSB; and adding the scaled LSBs to the MSB to determine a scaled value representing a coordinate position relative to the origin.
[0327] Clause 55B. Scaling a quantized value to determine a scaled value representing a coordinate position relative to the origin, without clipping, according to the method of Clause 54B, comprises: determining a shift amount of the MSB based on the quantization parameters of the node; shifting the MSB based on the shift amount; and adding the scaled LSB to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin.
[0328] Clause 56B. The method pursuant to Clause 48B also includes: reconstructing point clouds.
[0329] Clause 57B. The method according to Clause 56B, wherein reconstructing the point cloud includes determining the position of one or more points of the point cloud based on planar position.
[0330] Clause 58B. A computer-readable storage medium storing instructions that, when executed by one or more processors, cause one or more processors to: determine, based on a grammar signaled in a bitstream, enable intra-tree quantization for a node; for a node, determine, based on the grammar signaled in a bitstream, activate a corner mode for the node; in response to enabling intra-tree quantization for the node, determine a quantized value for the node representing a coordinate position relative to the origin; scale the quantized value without pruning to determine a scaled value representing a coordinate position relative to the origin; and determine a context for context decoding of planar position grammar elements for the corner mode based on the scaled value representing the coordinate position relative to the origin.
[0331] Clause 59B. An apparatus for decoding a bitstream comprising point cloud data, the apparatus comprising: means for determining, based on a grammar signaled in the bitstream, to enable intra-tree quantization for a node; means for determining, for a node, to activate a corner mode for the node based on the grammar signaled in the bitstream; means for determining, in response to enabling intra-tree quantization for the node, a quantized value representing a coordinate position relative to an origin position for the node; means for scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and means for determining a context for context decoding a planar position grammar element of the corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0332] Clause 1C. An apparatus for decoding a bitstream comprising point cloud data, the apparatus comprising: a memory for storing the point cloud data; and one or more processors coupled to the memory and implemented in a circuit, the one or more processors being configured to: determine, based on a grammar signaled in the bitstream, enable intra-tree quantization for a node; for a node, determine, based on a grammar signaled in the bitstream, activate a corner mode for the node; in response to enabling intra-tree quantization for the node, determine a quantized value for the node representing a coordinate position relative to an origin position; scale the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determine a context for context decoding planar position grammar elements of the corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0333] Clause 2C. The apparatus according to Clause 1C, wherein, in order to determine the context for decoding a planar position syntax element for a diagonal mode based on a scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: determine one or more laser characteristics based on the scaled value and the origin position; and decode a planar position syntax element for a diagonal mode based on the laser characteristics.
[0334] Clause 3C. The device according to Clause 2C, wherein, in order to determine the context for context decoding of a planar position syntax element for a diagonal mode based on a scaled value representing the coordinate position relative to the origin, one or more processors are further configured to determine the context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0335] Clause 4C. Equipment pursuant to any one of Clauses 1C-3C, wherein the planar position syntax element indicates the vertical plane position.
[0336] Clause 5C. An apparatus pursuant to any one of Clauses 2C-4C, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0337] Clause 6C. A device pursuant to any one of Clauses 1C-5C, wherein one or more processors are further configured to perform arithmetic decoding using a planar position of a context diagonal pattern indicated by the determined context.
[0338] Clause 7C. An apparatus pursuant to any one of Clauses 1C-6C, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a most significant bit (MSB) group and a least significant bit (LSB) group; scale the LSBs without clipping to determine a scaled LSB; and add the scaled LSBs to the MSB to determine a scaled value representing a coordinate position relative to the origin.
[0339] Clause 8C. A device pursuant to Clause 7C, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a shift amount of the MSB based on the quantization parameters of the node; shift the MSB based on the shift amount; and add a scaled LSB to the shifted MSB to determine a scaled value representing a coordinate position relative to the origin.
[0340] Clause 9C. An apparatus pursuant to any one of Clauses 6C-8C, wherein one or more processors are further configured to receive an indication of the number of bits in an LSB group in a signaling syntax in the bit stream.
[0341] Clause 10C. An apparatus pursuant to any of Clauses 1C-9C, wherein one or more processors are further configured to reconstruct a point cloud.
[0342] Clause 11C. A device pursuant to Clause 10C, wherein one or more processors are configured to, as part of reconstructing a point cloud, determine the location of one or more points of the point cloud based on planar location.
[0343] Clause 12C. A device pursuant to Clause 11C, wherein one or more processors are further configured to generate a map of the interior of a building based on a reconstructed point cloud.
[0344] Clause 13C. A device pursuant to Clause 11C, wherein one or more processors are further configured to perform autonomous navigation operations based on a reconstructed point cloud.
[0345] Clause 14C. A device pursuant to Clause 11C, wherein one or more processors are further configured to generate computer graphics based on a reconstructed point cloud.
[0346] Clause 15C. A device pursuant to Clause 11C, wherein one or more processors are configured to: determine the position of a virtual object based on a reconstructed point cloud; and generate an extended reality (XR) visualization in which the virtual object is located at the determined position.
[0347] Clause 16C. The apparatus pursuant to any one of Clauses 11C-15C also includes a display for rendering an image based on the reconstructed point cloud.
[0348] Clause 17C. A device pursuant to any one of Clauses 1C-16C, wherein the device is one of a mobile phone or a tablet computer.
[0349] Clause 18C. Equipment pursuant to any one of Clauses 1C-16C, wherein the equipment is a vehicle.
[0350] Clause 19C. Device pursuant to any one of Clauses 1C-16C, wherein the device is an extended reality device.
[0351] Clause 20C. A method for decoding a bitstream comprising point cloud data, the method comprising: determining, based on a grammar signaled in the bitstream, that intra-tree quantization is enabled for a node; for the node, determining, based on the grammar signaled in the bitstream, that a corner mode is activated for the node; in response to enabling intra-tree quantization for the node, determining a quantized value for the node representing a coordinate position relative to an origin position; scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determining a context for context decoding a planar position grammar element for the corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0352] Clause 21C. The method according to Clause 20C, wherein the context for determining the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position includes: determining one or more laser characteristics based on the scaled value and the origin position; and decoding the planar position syntax element for the diagonal pattern based on the laser characteristics.
[0353] Clause 22C. The method according to Clause 21C, wherein determining the context for context decoding of the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position further includes determining the context index based on whether the laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0354] Clause 23C. The method pursuant to any of Clauses 20C-22C, wherein the planar position syntax element indicates a vertical plane position.
[0355] Clause 24C. The method pursuant to any of Clauses 21C-23C, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0356] Clause 25C. The method pursuant to any one of Clauses 20C-24C further includes: performing arithmetic decoding using the planar position of the context diagonal pattern indicated by the determined context.
[0357] Clause 26C. The method of any one of Clauses 20C-25C, wherein scaling a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin comprises: determining a most significant bit (MSB) group and a least significant bit (LSB) group; scaling the LSBs without clipping to determine a scaled LSB; and adding the scaled LSBs to the MSBs to determine a scaled value representing a coordinate position relative to the origin.
[0358] Clause 27C. The method according to Clause 26C, wherein scaling the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin position comprises: determining the shift amount of the MSB based on the quantization parameters of the node; shifting the MSB based on the shift amount; and adding the scaled LSB to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin position.
[0359] Clause 28C. The method pursuant to any one of Clauses 25C-27C further includes: receiving an indication of the number of bits in the LSB group in a syntax for signaling notification in the bit stream.
[0360] Clause 29C. The method pursuant to any one of Clauses 20C-28C further includes: reconstructing the point cloud.
[0361] Clause 30C. The method according to Clause 29C, wherein reconstructing a point cloud includes determining the position of one or more points of the point cloud based on planar position.
[0362] Clause 31C. The method pursuant to Clause 29C also includes: generating a map of the interior of a building based on the reconstructed point cloud.
[0363] Clause 32C. The method pursuant to Clause 29C also includes: performing autonomous navigation operations based on the reconstructed point cloud.
[0364] Clause 33C. The method pursuant to Clause 29C also includes generating computer graphics based on reconstructed point clouds.
[0365] Clause 34C. The method pursuant to Clause 29C further includes: determining the position of a virtual object based on a reconstructed point cloud; and generating an extended reality (XR) visualization in which the virtual object is located at the determined position.
[0366] Clause 35C. An apparatus for encoding a bitstream comprising point cloud data, the apparatus comprising: a memory for storing the point cloud data; and one or more processors coupled to the memory and implemented in circuitry, the one or more processors being configured to: determine that intra-tree quantization is enabled for a node; determine that a corner mode is activated for a node; in response to enabling intra-tree quantization for a node, determine a quantized value for the node representing a coordinate position relative to an origin position; scale the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determine a context for context encoding planar position syntax elements for the corner mode based on the scaled value representing the coordinate position relative to the origin position.
[0367] Clause 36C. The apparatus according to Clause 35C, wherein, in order to determine the context for context encoding of a planar position syntax element for a diagonal pattern based on a scaled value representing the coordinate position relative to the origin position, the one or more processors are configured to: determine one or more laser characteristics based on the scaled value and the origin position; and decode the planar position syntax element of the diagonal pattern based on the laser characteristics.
[0368] Clause 37C. The apparatus according to Clause 36C, wherein, in order to determine the context for context encoding of planar position syntax elements for diagonal patterns based on a scaled value representing the coordinate position relative to the origin, one or more processors are further configured to determine the context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0369] Clause 38C. Equipment pursuant to any one of Clauses 35C-37C, wherein the planar position syntax element indicates the vertical plane position.
[0370] Clause 39C. An apparatus pursuant to any of Clauses 36C-38C, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0371] Clause 40C. An apparatus pursuant to any one of Clauses 35C-39C, wherein one or more processors are further configured to perform arithmetic encoding using planar positions of a context diagonal pattern indicated by the determined context.
[0372] Clause 41C. An apparatus pursuant to any one of Clauses 35C-40C, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a most significant bit (MSB) group and a least significant bit (LSB) group; scale the LSBs without clipping to determine a scaled LSB; and add the scaled LSB to the MSB to determine a scaled value representing a coordinate position relative to the origin.
[0373] Clause 42C. A device according to Clause 41C, wherein, in order to scale a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, one or more processors are configured to: determine a shift amount of the MSB based on the quantization parameters of the node; shift the MSB based on the shift amount; and add a scaled LSB to the shifted MSB to determine a scaled value representing a coordinate position relative to the origin.
[0374] Clause 43C. An apparatus pursuant to any of Clauses 35C-42C, wherein one or more processors are further configured to reconstruct a point cloud.
[0375] Clause 44C. An apparatus pursuant to any one of Clauses 35C-43C, wherein, in order to reconstruct the point cloud, one or more processors are further configured to determine the location of one or more points of the point cloud based on planar location.
[0376] Clause 45C. A device pursuant to any one of Clauses 35C-44C, wherein the device is one of a mobile phone or a tablet computer.
[0377] Clause 46C. Equipment pursuant to any one of Clauses 35C-44C, wherein the equipment is a vehicle.
[0378] Clause 47C. Device pursuant to any one of Clauses 35C-44C, wherein the device is an extended reality device.
[0379] Item 48C. A method for encoding a bitstream comprising point cloud data, the method comprising: determining that intra-tree quantization is enabled for a node; determining that a corner mode is activated for a node; in response to enabling intra-tree quantization for a node, determining a quantized value for the node representing a coordinate position relative to an origin position; scaling the quantized value without pruning to determine a scaled value representing a coordinate position relative to an origin position; and determining a context for context encoding planar position syntax elements for the corner mode based on the scaled value representing the coordinate position relative to an origin position.
[0380] Clause 49C. The method according to Clause 48C, wherein the context for determining the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position includes: determining one or more laser characteristics based on the scaled value and the origin position; and decoding the planar position syntax element for the diagonal pattern based on the laser characteristics.
[0381] Clause 50C. The method according to Clause 49C, wherein determining the context for context encoding the planar position syntax element for the diagonal pattern based on a scaled value representing the coordinate position relative to the origin position further includes determining the context index based on whether the laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below a third distance threshold.
[0382] Clause 51C. The method pursuant to any one of Clauses 48C-50C, wherein the planar position syntax element indicates a vertical plane position.
[0383] Clause 52C. The method pursuant to any of Clauses 49C-51C, wherein one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
[0384] Clause 53C. The method pursuant to any one of Clauses 48C-52C further includes: arithmetic encoding using the planar position of the context diagonal pattern indicated by the determined context.
[0385] Clause 54C. The method according to any one of Clauses 48C-53C, wherein scaling a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin comprises: determining a most significant bit (MSB) group and a least significant bit (LSB) group; scaling the LSBs without clipping to determine a scaled LSB; and adding the scaled LSBs to the MSB to determine a scaled value representing a coordinate position relative to the origin.
[0386] Clause 55C. The method of Clause 54C, which scales a quantized value without clipping to determine a scaled value representing a coordinate position relative to the origin, comprises: determining a shift amount of the MSB based on the quantization parameters of the node; shifting the MSB based on the shift amount; and adding the scaled LSB to the shifted MSB to determine the scaled value representing a coordinate position relative to the origin.
[0387] Clause 56C. The method pursuant to any one of Clauses 48C-55C further includes: reconstructing the point cloud.
[0388] Clause 57C. The method according to Clause 56C, wherein reconstructing a point cloud includes determining the position of one or more points of the point cloud based on planar position.
[0389] It should be recognized that, based on the examples, certain actions or events of any technique described herein may be performed in a different sequence, and may be added together, combined, or omitted (e.g., not all described actions or events are necessary for technical practice). Furthermore, in some examples, actions or events may be performed concurrently rather than sequentially, for example, through multithreading, interrupt handling, or multiple processors.
[0390] In one or more examples, the described functionality may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality may be stored or transmitted as one or more instructions or code on or through a computer-readable medium and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium such as a data storage medium, or a communication medium, including, for example, any medium that facilitates the transfer of a computer program from one place to another according to a communication protocol. In this way, a computer-readable medium may generally correspond to (1) a non-transitory tangible computer-readable storage medium, or (2) a communication medium such as a signal or carrier wave. A data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures to implement the techniques described in this disclosure. A computer program product may include a computer-readable medium.
[0391] By way of example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disc storage, disk storage or other magnetic storage devices, flash memory, or any other medium that can be used to store required program code in the form of instructions or data structures and that can be accessed by a computer. Moreover, any connection is appropriately referred to as a computer-readable medium. For example, the definition of medium includes coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies (such as infrared, radio, and microwave) if instructions are sent from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies (such as infrared, radio, and microwave). However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but rather refer to non-transient tangible storage media. As used herein, disks and optical discs include compact optical discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, wherein disks typically reproduce data magnetically, while optical discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.
[0392] Instructions can be executed by one or more processors, such as one or more DSPs, general-purpose microprocessors, ASICs, FPGAs, or other equivalent integrated or discrete logic circuits. Therefore, the terms "processor" and "processing circuit" as used herein can refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein can be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into a combined codec. Similarly, the technique can be fully implemented in one or more circuit or logic elements.
[0393] The techniques disclosed herein can be implemented in a variety of devices or apparatuses, including wireless mobile phones, integrated circuits (ICs), or a set of ICs (e.g., chipsets). Various components, modules, or units are described in this disclosure to emphasize functional aspects of a device configured to perform the disclosed techniques, but they do not necessarily need to be implemented by different hardware units. Rather, as described above, various units can be combined in a codec hardware unit or provided by a collection of interoperable hardware units, including one or more processors as described above, combined with suitable software and / or firmware.
[0394] Various examples have been described. These and other examples are within the scope of the appended claims.
Claims
1. An apparatus for decoding a bitstream comprising point cloud data, the apparatus comprising: The memory stores the point cloud data; as well as One or more processors, coupled to the memory and implemented in the circuit, are configured to: Based on the syntax of signaling notifications in the bitstream, it is determined that intra-tree quantization is enabled for the node; For the node, the node's active corner mode is determined based on the syntax of signaling notification in the bit stream; In response to enabling intra-tree quantization for the node and activating the corner mode for the node, a quantization value representing the coordinate position of the node is determined; The quantization value is scaled without clipping to determine a scaled value representing the coordinate position relative to the origin. as well as Based on the scaled value representing the coordinate position relative to the origin, a context is determined for context decoding of the planar position syntax element of the angular pattern.
2. The device according to claim 1, wherein, In order to determine the context for context decoding the planar position syntax element of the angular pattern based on the scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: One or more laser characteristics are determined based on the scaling value and the origin position; and The planar position syntax element of the angular pattern is decoded based on the laser characteristics.
3. The device according to claim 2, wherein, In order to determine the context for context decoding of the planar position syntax element of the angular pattern based on the scaled value representing the coordinate position relative to the origin, the one or more processors are further configured to determine the context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below the third distance threshold.
4. The device according to claim 2, wherein, The one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
5. The device according to claim 1, wherein, The planar position syntax element indicates the vertical plane position.
6. The device according to claim 1, wherein, The one or more processors are also configured to perform arithmetic decoding of the planar position of the angular pattern using a context indicated by the determined context.
7. The device according to claim 1, wherein, In order to scale the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: Determine the most significant bit (MSB) group and the least significant bit (LSB) group; The LSB is scaled without clipping to determine the scaled LSB; as well as The scaled LSB is added to the MSB to determine the scaled value representing the coordinate position relative to the origin.
8. The device according to claim 1, wherein, In order to scale the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: The shift amount of the MSB is determined based on the quantization parameters of the node; The MSB is shifted based on the shift amount; as well as The scaled LSB is added to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin.
9. The device according to claim 6, wherein, The one or more processors are also configured to receive an indication of the number of bits in the LSB group in the syntax signaled in the bit stream.
10. The device according to claim 1, wherein, The one or more processors are also configured to reconstruct the point cloud from the point cloud data.
11. The device according to claim 10, wherein, The one or more processors are configured to determine the location of one or more points in the point cloud based on the planar location as part of reconstructing the point cloud.
12. The device according to claim 11, wherein, The one or more processors are also configured to generate a map of the building's interior based on the point cloud.
13. The device according to claim 11, wherein, The one or more processors are also configured to perform autonomous navigation operations based on the point cloud.
14. The device according to claim 11, wherein, The one or more processors are also configured to generate computer graphics based on the point cloud.
15. The device according to claim 11, wherein, The one or more processors are configured to: The position of the virtual object is determined based on the point cloud; and Generate an extended reality (XR) visualization of the virtual object in the determined location.
16. The device of claim 11, further comprising a display for presenting an image based on the point cloud.
17. The device according to claim 1, wherein, The device is a mobile phone or a tablet computer.
18. The device according to claim 1, wherein, The device is a vehicle.
19. The device according to claim 1, wherein, The device in question is an augmented reality device.
20. A method for decoding a bitstream comprising point cloud data, the method comprising: Based on the syntax of signaling notifications in the bitstream, it is determined that intra-tree quantization is enabled for the node; For the node, the node's active corner mode is determined based on the syntax of signaling notification in the bit stream; In response to enabling in-tree quantization for the node, a quantization value representing the coordinate position of the node relative to the origin is determined; The quantized value is scaled without clipping to determine a scaled value representing the coordinate position relative to the origin. as well as Based on the scaled value representing the coordinate position relative to the origin, a context is determined for context decoding of the planar position syntax element of the angular pattern.
21. The method according to claim 20, wherein, The context used to determine the context decoding of the planar position syntax element of the angular pattern, based on the scaled value representing the coordinate position relative to the origin, includes: One or more laser characteristics are determined based on the scaling value and the origin position; and The planar position syntax element of the angular pattern is decoded based on the laser characteristics.
22. The method according to claim 21, wherein, The context for determining the context decoding of the planar position syntax element of the angular pattern based on the scaled value representing the coordinate position relative to the origin position further includes: determining a context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below the third distance threshold.
23. The method according to claim 21, wherein, The one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
24. The method of claim 20, wherein, The planar position syntax element indicates the vertical plane position.
25. The method of claim 20, further comprising performing arithmetic decoding of the planar position of the angular pattern using a context indicated by the determined context.
26. The method of claim 20, wherein, Scaling the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin includes: Determine the most significant bit (MSB) group and the least significant bit (LSB) group; Scale the LSB without clipping to determine the scaled LSB; and The scaled LSB is added to the MSB to determine the scaled value representing the coordinate position relative to the origin.
27. The method according to claim 26, wherein, Scaling the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin includes: The shift amount of the MSB is determined based on the quantization parameters of the node; The MSB is shifted based on the shift amount; and The scaled LSB is added to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin.
28. The method of claim 25, further comprising an indication of the number of bits received in the LSB group in the syntax signaled in the bit stream.
29. The method of claim 20, further comprising reconstructing the point cloud from the point cloud data.
30. The method according to claim 29, wherein, Reconstructing the point cloud includes determining the position of one or more points in the point cloud based on the planar position.
31. The method of claim 29 further includes generating a map of the building interior based on the point cloud.
32. The method according to claim 29 further includes performing autonomous navigation operations based on the point cloud.
33. The method of claim 29 further includes generating computer graphics based on the point cloud.
34. The method of claim 29, further comprising: The position of the virtual object is determined based on the point cloud; as well as Generate an extended reality (XR) visualization of the virtual object in the determined location.
35. An apparatus for encoding a bitstream comprising point cloud data, the apparatus comprising: The memory stores the point cloud data; as well as One or more processors, coupled to the memory and implemented in the circuit, are configured to: Enable in-tree quantization for the node; The node is determined to be in the active corner mode; In response to enabling in-tree quantization for the node, a quantization value representing the coordinate position of the node relative to the origin is determined; The quantization value is scaled without clipping to determine a scaled value representing the coordinate position relative to the origin. Based on the scaled value representing the coordinate position relative to the origin, a context is determined for context encoding the planar position syntax elements of the angular pattern.
36. The device according to claim 35, wherein, In order to determine the context for context encoding the planar position syntax element of the angular pattern based on the scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: One or more laser characteristics are determined based on the scaling value and the origin position; and The planar position syntax element of the angular pattern is decoded based on the laser characteristics.
37. The device according to claim 36, wherein, In order to determine the context for context encoding the planar position syntax elements of the angular pattern based on the scaled value representing the coordinate position relative to the origin, the one or more processors are further configured to determine the context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below the third distance threshold.
38. The device according to claim 36, wherein, The one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
39. The device according to claim 35, wherein, The planar position syntax element indicates the vertical plane position.
40. The device according to claim 35, wherein, The one or more processors are further configured to perform arithmetic encoding of the planar position of the angular pattern using a context indicated by the determined context.
41. The device according to claim 35, wherein, In order to scale the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: Determine the most significant bit (MSB) group and the least significant bit (LSB) group; The LSB is scaled without clipping to determine the scaled LSB; as well as The scaled LSB is added to the MSB to determine the scaled value representing the coordinate position relative to the origin.
42. The device according to claim 41, wherein, In order to scale the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin, the one or more processors are configured to: The shift amount of the MSB is determined based on the quantization parameters of the node; The MSB is shifted based on the shift amount; as well as The scaled LSB is added to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin.
43. The device according to claim 35, wherein, The one or more processors are also configured to reconstruct the point cloud from the point cloud data.
44. The device according to claim 35, wherein, In order to reconstruct the point cloud, the one or more processors are further configured to determine the position of one or more points in the point cloud based on the planar position.
45. The device according to claim 35, wherein, The device is a mobile phone or a tablet computer.
46. The device according to claim 35, wherein, The device is a vehicle.
47. The device according to claim 35, wherein, The device in question is an augmented reality device.
48. A method for encoding a bitstream comprising point cloud data, the method comprising: Enable in-tree quantization for the node; The node is determined to be in the active corner mode; In response to enabling in-tree quantization for the node, a quantization value representing the coordinate position of the node relative to the origin is determined; The quantized value is scaled without clipping to determine a scaled value representing the coordinate position relative to the origin. as well as Based on the scaled value representing the coordinate position relative to the origin, a context is determined for context encoding the planar position syntax elements of the angular pattern.
49. The method according to claim 48, wherein, The context used to determine the context encoding of the planar position syntax element for the angular pattern, based on the scaled value representing the coordinate position relative to the origin, includes: One or more laser characteristics are determined based on the scaling value and the origin position; and The planar position syntax element of the angular pattern is decoded based on the laser characteristics.
50. The method according to claim 49, wherein, The context for context encoding the planar position syntax element of the angular pattern, determined based on the scaled value representing the coordinate position relative to the origin, further includes: determining a context index based on whether a laser beam having one or more determined laser characteristics is above a first distance threshold, between the first and second distance thresholds, between the second and third distance thresholds, or below the third distance threshold.
51. The method according to claim 49, wherein, The one or more laser characteristics include elevation angle, laser head offset, or laser azimuth angle.
52. The method according to claim 48, wherein, The planar position syntax element indicates the vertical plane position.
53. The method of claim 48, further comprising arithmetic encoding of the planar position of the angular pattern using a context indicated by the determined context.
54. The method according to claim 48, wherein, Scaling the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin includes: Determine the most significant bit (MSB) group and the least significant bit (LSB) group; Scale the LSB without clipping to determine the scaled LSB; and The scaled LSB is added to the MSB to determine the scaled value representing the coordinate position relative to the origin.
55. The method of claim 54, wherein scaling the quantized value without clipping to determine the scaled value representing the coordinate position relative to the origin position comprises: The shift amount of the MSB is determined based on the quantization parameters of the node; The MSB is shifted based on the shift amount; as well as The scaled LSB is added to the shifted MSB to determine the scaled value representing the coordinate position relative to the origin.
56. The method of claim 48 further comprises reconstructing the point cloud from the point cloud data.
57. The method according to claim 56, wherein, Reconstructing the point cloud includes determining the position of one or more points in the point cloud based on the planar position.
58. A computer-readable storage medium storing instructions, said instructions causing said one or more processors, when executed, to: Based on the syntax of signaling notifications in the bitstream, it is determined that intra-tree quantization is enabled for the node; For the node, the node's active corner mode is determined based on the syntax of signaling notification in the bit stream; In response to enabling in-tree quantization for the node, a quantization value representing the coordinate position of the node relative to the origin is determined; The quantization value is scaled without clipping to determine a scaled value representing the coordinate position relative to the origin. as well as Based on the scaled value representing the coordinate position relative to the origin, a context is determined for context decoding of the planar position syntax element of the angular pattern.
59. An apparatus for decoding a bitstream comprising point cloud data, the apparatus comprising: A component for determining whether to enable intra-tree quantization for a node based on the syntax of signaling notifications in the bitstream; A component for determining, for the node, the active corner mode of the node based on the syntax of signaling notification in the bit stream; A component for determining a quantized value representing the coordinate position of the node relative to the origin in response to enabling intra-tree quantization of the node; A component for scaling the quantized value without clipping to determine a scaled value representing the coordinate position relative to the origin; as well as A component for determining the context for context decoding of the planar position syntax element of the angular pattern based on the scaled value representing the coordinate position relative to the origin.