High-level syntax for geometry-based point cloud compression

By adopting a combination of exponential Golomb codes and fixed-length codes in point cloud coding, the problem of excessive number of bits in the existing technology is solved and the coding and decoding efficiency is improved.

CN115885514BActive Publication Date: 2025-09-26QUALCOMM INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180043217.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-06-22
Filing Date
2021-06-23
Publication Date
2025-09-26
Estimated Expiration
2041-06-23

AI Technical Summary

Technical Problem

Existing point cloud coding technologies require a large number of bits when encoding and decoding syntax elements such as the bounding box, the origin of the bounding box, the size of the bounding box, or the number of unique segments, resulting in low encoding and decoding efficiency.

Method used

The first syntax element is encoded and decoded using an exponential Golomb code, and the second syntax element is encoded and decoded using a fixed-length code according to the number of bits indicated by the first syntax element, thereby reducing the number of bits required for encoding and decoding.

Benefits of technology

By using fixed-length codes, the number of bits required for encoding and decoding the second syntax element is significantly reduced, thereby improving encoding and decoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115885514B_ABST
    Figure CN115885514B_ABST
Patent Text Reader

Abstract

A device configured for point cloud compression may be configured to encode or decode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments. The device may encode or decode the first syntax element using an exponential Golomb code. The device may also encode or decode the one or more second syntax elements using a fixed-length code based on the number of bits indicated by the first syntax element, and encode or decode the point cloud based on the decoded one or more second syntax elements.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority to U.S. Application No. 17 / 354,674, filed on June 22, 2021, U.S. Provisional Patent Application No. 63 / 043,032, filed on June 23, 2020, and U.S. Provisional Patent Application No. 63 / 090,027, filed on October 9, 2020, each of which is incorporated herein by reference in its entirety. U.S. Application No. 17 / 354,674, filed on June 22, 2021, claims the benefit of U.S. Provisional Patent Application No. 63 / 043,032, filed on June 23, 2020, and U.S. Provisional Patent Application No. 63 / 090,027, filed on October 9, 2020. Technical Field

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

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

[0004] In general, this disclosure describes techniques for encoding and decoding attribute residuals of a point cloud. The techniques of this disclosure can be used with any point cloud compression technology, including the currently developing Geometric Point Cloud Compression (G-PCC) standard.

[0005] In a more specific example of the present disclosure, a geometric point cloud encoder and decoder can be configured to encode and decode a first syntax element that indicates the number of bits used to encode and decode a second syntax element related to attribute encoding and decoding. The video codec can use an exponential Golomb code to encode and decode the first syntax element. The video codec can then use a fixed-length code to encode and decode the second syntax element based on the number of bits indicated by the first syntax element. Examples of syntax elements that can be encoded and decoded using a fixed-length code based on the number of bits indicated by the first syntax element can include one or more of the offset of the bounding box, the origin point of the bounding box, the size of the bounding box, or the number of unique segments. By using the techniques of the present disclosure, the number of bits required to encode and decode the second syntax element can be significantly lower than the number of bits required to encode and decode the second syntax element using only the exponential Golomb code. Therefore, encoding and decoding efficiency can be improved.

[0006] In one example, the present disclosure describes a method for decoding a point cloud, the method comprising decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments, decoding the one or more second syntax elements using a fixed-length code based on the number of bits indicated by the first syntax element, and decoding the point cloud based on the decoded one or more second syntax elements.

[0007] In another example, the present disclosure describes an apparatus configured to decode a point cloud, the apparatus including a memory, and one or more processors implemented in circuitry and in communication with the memory, the one or more processors configured to decode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments, decode the one or more second syntax elements using a fixed-length code based on the number of bits indicated by the first syntax element, and decode the point cloud based on the decoded one or more second syntax elements.

[0008] In another example, the present disclosure describes a method of encoding a point cloud, the method comprising encoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments, and encoding the one or more second syntax elements using a fixed-length code and the number of bits.

[0009] In another example, the present disclosure describes an apparatus configured to encode a point cloud, the apparatus comprising a memory, and one or more processors implemented in circuitry and in communication with the memory, the one or more processors configured to encode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments, and to encode the one or more second syntax elements using a fixed-length code using the number of bits.

[0010] In another example, the present disclosure describes an apparatus configured to decode point cloud data, the apparatus including means for decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments, means for decoding the one or more second syntax elements using a fixed-length code based on the number of bits indicated by the first syntax element, and means for decoding a point cloud based on the decoded one or more second syntax elements.

[0011] In another example, the present disclosure describes a non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to be configured to decode point cloud data to decode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments, decode the one or more second syntax elements using a fixed-length code based on the number of bits indicated by the first syntax element, and decode the point cloud based on the decoded one or more second syntax elements.

[0012] In another example, the present disclosure describes an apparatus configured to encode point cloud data, the apparatus comprising means for encoding a first syntax element indicating a number of bits for encoding one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments, and means for encoding the one or more second syntax elements using a fixed-length code and a fixed-length code.

[0013] In another example, the present disclosure describes a non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to be configured to encode point cloud data to encode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments, and to encode the one or more second syntax elements using a fixed-length code using the number of bits.

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

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

[0016] Figure 2 is a block diagram illustrating an example Geometric Point Cloud Compression (G-PCC) encoder configured to perform the techniques of this disclosure.

[0017] Figure 3 is a block diagram illustrating an example G-PCC decoder configured to perform the techniques of this disclosure.

[0018] Figure 4 is a flowchart illustrating an example encoding method according to techniques of this disclosure.

[0019] Figure 5 is a flowchart illustrating an example decoding method according to techniques of this disclosure. DETAILED DESCRIPTION

[0020] In example geometric point cloud compression techniques, various syntax elements defining various bounding boxes, slices, tiles, and other regions associated with the location and / or attributes of encoded and decoded point cloud data can be encoded and decoded. In some examples, such syntax elements are encoded and decoded using exponential Golomb codes. In some cases, the values ​​of such syntax elements can become very large when encoded and decoded using exponential Golomb codes. To reduce the total number of bits required to encode and decode such syntax elements, this disclosure describes syntax element encoding and decoding techniques that can reduce signaling overhead.

[0021] In one example of the present disclosure, a geometric point cloud encoder and decoder may be configured to encode and decode a first syntax element that indicates the number of bits used to encode and decode a second syntax element associated with attribute encoding and decoding. The video codec may encode and decode the first syntax element using an exponential Golomb code. The video codec may then encode and decode the second syntax element using a fixed-length code based on the number of bits indicated by the first syntax element. Examples of syntax elements that may be encoded and decoded using a fixed-length code based on the number of bits indicated by the first syntax element may include one or more of the offset of a bounding box, the origin of a bounding box, the size of a bounding box, or the number of unique segments. By using the techniques of the present disclosure, the number of bits required to encode and decode the second syntax element may be significantly lower than the number of bits required to encode and decode the second syntax element using only an exponential Golomb code. Consequently, encoding and decoding efficiency may be improved.

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

[0023] like Figure 1 As shown, the system 100 includes a source device 102 and a destination device 116. The source device 102 provides encoded point cloud data to be decoded by the destination device 116. Figure 1 In the example of , source device 102 provides point cloud data to destination device 116 via computer-readable medium 110. Source device 102 and destination device 116 may include any of a variety of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as smartphones, televisions, cameras, display devices, digital media players, video 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.

[0024] exist Figure 1In the example of , source device 102 includes a data source 104, a memory 106, a G-PCC encoder 200, and an output interface 108. Destination device 116 includes an input interface 122, a G-PCC decoder 300, a memory 120, and a data consumer 118. According to the present 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 the present disclosure related to encoding and decoding high-level grammars. 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 instead of including the data consumer in the same device.

[0025] like Figure 1 The system 100 shown is just an example. In general, other digital encoding and / or decoding devices can perform the techniques of the present disclosure related to encoding and decoding high-level grammars. The source device 102 and the destination device 116 are merely examples of devices in which the source device 102 generates encoded data for transmission to the destination device 116. The present disclosure refers to a "codec" device as a device that performs encoding and decoding (encoding and / or decoding) of data. Therefore, the G-PCC encoder 200 and the G-PCC decoder 300 represent examples of codec devices, specifically, examples of encoders and decoders, respectively. In some examples, the source device 102 and the destination device 116 can operate in a substantially symmetrical manner, so that each of the source device 102 and the destination device 116 includes encoding and decoding components. Therefore, the system 100 can support one-way or two-way transmission between the source device 102 and the destination device 116, for example, for streaming, playback, broadcasting, telephony, navigation and other applications.

[0026] Generally, data source 104 represents a data source (i.e., raw, unencoded point cloud data) and can provide a series of "frames" of data to G-PCC encoder 200 for encoding the frame data. Data source 104 of source device 102 can include a point cloud capture device, such as any of a variety of cameras or sensors, such as a 3D scanner or light detection and ranging (LIDAR) device, one or more 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, the point cloud data can be computer-generated from a scanner, camera, sensor, or other data. For example, data source 104 can generate computer graphics-based data as source data, or produce a combination of real-time data, archived data, and computer-generated data. In each case, G-PCC encoder 200 encodes captured, pre-captured, or computer-generated data. G-PCC encoder 200 can rearrange frames from the order in which they are received (sometimes referred to as "display order") to the codec order used for encoding and decoding. G-PCC encoder 200 can generate one or more bitstreams comprising the encoded data. Source device 102 may then output the encoded data onto computer-readable medium 110 via output interface 108 for receipt and / or retrieval by, for example, input interface 122 of destination device 116 .

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

[0028] The computer-readable medium 110 can represent any type of medium or device capable of transmitting encoded data from the source device 102 to the destination device 116. In one example, the computer-readable medium 110 represents a communication medium that enables the source device 102 to transmit the encoded data directly to the 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, the output interface 108 can modulate a transmit signal including the encoded data, and the input interface 122 can demodulate a received transmit signal. The communication medium can include any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium can form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. The communication medium can include routers, switches, base stations, or any other equipment that can be used to facilitate communication from the source device 102 to the destination device 116.

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

[0030] In some examples, source device 102 may output the encoded data to a file server 114 or another intermediate storage device that may store the encoded data generated by source device 102. 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 transmitting the encoded data to destination device 116. File server 114 may represent a web server (e.g., for a website), a file transfer protocol (FTP) server, a content delivery network device, or a network attached storage (NAS) device. Destination device 116 may access the encoded data from file server 114 via any standard data connection, including an internet connection. The internet connection 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 the two 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 protocol, or a combination thereof.

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

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

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

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

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

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

[0037] ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) is investigating the potential need for standardization of point cloud codecs with compression capabilities significantly exceeding those of current methods and will work towards creating a standard. The group 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 categorized into two different approaches. The first approach is “Video Point Cloud Compression” (V-PCC), which segments 3D objects and projects these segments onto multiple 2D planes (these segments are represented as “patches” in 2D frames), which are further encoded and decoded by traditional 2D video codecs such as the High Efficiency Video Codec (HEVC) (ITU-T H.265) codec. The second approach is “Geometry-based Point Cloud Compression” (G-PCC), which directly compresses 3D geometry, i.e., the positions of a set of points in 3D space, and the associated attribute values ​​(for each point associated with the 3D geometry). G-PCC addresses the compression of point clouds in category 1 (static point clouds) and category 3 (dynamically acquired point clouds). The latest draft of the G-PCC standard is available in G-PCC DIS (ISO / IEC JTC1 / SC29 / WG11 w19328, Alpbach, Austria, June 2020), and a description of the codec is available in G-PCC Codec Description v6 (ISO / IEC JTC1 / SC29 / WG11 w19091, Brussels, Belgium, January 2020).

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

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

[0041] Figure 2 An overview of the G-PCC encoder 200 is provided. Figure 3An overview of the G-PCC decoder 300 is provided. 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 (JTC1 / SC 29 / WG 11).

[0042] In both the G-PCC encoder 200 and the G-PCC decoder 300, the point cloud positions are first encoded and decoded. The attribute encoding and decoding depends on the decoded geometry. Figure 2 and Figure 3 In the diagram, gray-shaded modules are options typically used for data in Category 1. Diagonally cross-hatched modules are options typically used for data in Category 3. All other modules are common between Categories 1 and 3.

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

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

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

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

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

[0048] At the G-PCC encoder 200, the residual obtained as the output of the attribute encoding and decoding method is quantized. The residual can be obtained by subtracting the attribute value from a prediction derived from the attribute value of points in the neighborhood of the current point and based on previously encoded points. The quantized residual can be encoded and decoded using context-adaptive arithmetic coding.

[0049] 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, an LOD generation unit 220, a lifting unit 222, a coefficient quantization unit 224 and an arithmetic coding unit 226.

[0050] like Figure 2 As shown in the example of , the G-PCC encoder 200 can obtain the position set and attribute set of the points in the point cloud. The G-PCC encoder 200 can obtain the position set and attribute set of the points in the point cloud from the data source 104 ( Figure 1 ) obtains a set of positions and a set of attributes for points in a point cloud. The positions may include the coordinates of the points in the point cloud. The attributes may include information about the points in the point cloud, such as the color associated with the points in the point cloud. The G-PCC encoder 200 may generate a geometry bitstream 203 comprising encoded representations of the positions of the points in the point cloud. The G-PCC encoder 200 may also generate an attribute bitstream 205 comprising encoded representations of the attribute sets.

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

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

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

[0054] Furthermore, the RAHT unit 218 may apply RAHT encoding and decoding to the attributes of the reconstructed points. In some examples, under RAHT, the attributes of a 2×2×2 block of point locations are acquired and transformed in one direction to obtain four low-frequency (L) and four high-frequency (H) nodes. Subsequently, the four low-frequency nodes (L) are transformed in a second direction to obtain two low-frequency (LL) and two high-frequency (LH) nodes. The two low-frequency nodes (LL) are transformed in a third direction to obtain one low-frequency (LLL) and one high-frequency (LLH) node. The low-frequency node LLL corresponds to the DC coefficient, and the high-frequency nodes H, LH, and LLH correspond to the AC coefficient. The transform in each direction may be a one-dimensional transform with two coefficient weights. The low-frequency coefficients may be used as coefficients for the next higher-level RAHT transform's 2×2×2 block, and the AC coefficients are encoded unchanged; this transform continues until the top root node. The tree traversal for encoding is from top to bottom to calculate the weights to be applied to the coefficients; the transform order is from bottom to top. The coefficients may then be quantized and encoded.

[0055] Alternatively or additionally, the LOD generation unit 220 and the lifting unit 222 can apply LOD processing and lifting, respectively, to the attributes of the reconstructed points. LOD generation is used to segment the attributes into different levels of refinement. Each level of refinement provides a refinement of the point cloud attributes. The first level of refinement provides a coarse approximation and contains few points; subsequent levels of refinement typically contain more points, and so on. The levels of refinement can be constructed using a distance-based metric, or one or more other classification criteria (e.g., subsampling from a specific order). Therefore, all reconstructed points can be included in a level of refinement. Each level of detail is generated by merging all points into a particular level of refinement: for example, LOD1 is obtained based on refinement level RL1, LOD2 is obtained based on RL1 and RL2, ..., LODN is obtained by the union of RL1, RL2, ..., RLN. In some cases, LOD generation can be followed by a prediction scheme (e.g., a predictive transform), in which the attribute associated with each point in the LOD is predicted based on a weighted average of previous points, and the residual is quantized and entropy encoded. The lifting scheme is built on top of the predictive transform mechanism, where an update operator is used to update the coefficients and perform adaptive quantization of the coefficients.

[0056] RAHT unit 218 and lifting unit 222 may generate coefficients based on the attributes. Coefficient quantization unit 224 may quantize the coefficients generated by RAHT unit 218 or lifting unit 222. Arithmetic coding unit 226 may apply arithmetic coding to syntax elements representing the quantized coefficients. G-PCC encoder 200 may output these syntax elements in attribute bitstream 205. Attribute bitstream 205 may also include other syntax elements, including non-arithmetic coded syntax elements.

[0057] As will be explained in more detail below, the G-PCC encoder 200 is an example of a device that may be configured to encode a first syntax element that indicates a number of bits used to encode one or more second syntax elements, where the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments, and to encode the one or more second syntax elements using a fixed-length code using the number of bits.

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

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

[0060] The octree synthesis unit 306 may synthesize an octree based on syntax elements parsed from the geometry bitstream 203. Starting from the root node of the octree, the occupancy of each of the eight child nodes at each octree level is signaled in the bitstream. When the signaling indicates that a child node at a particular octree level is occupied, the occupancy of the child nodes of that child node is signaled. The signaling of nodes at each octree level is signaled before proceeding to subsequent octree levels. At the final level of the octree, each node corresponds to a voxel location; when a leaf node is occupied, one or more points may be specified as occupied at the voxel location. In some cases, due to quantization, some branches of the octree may terminate earlier than the final level. In this case, the leaf node is considered an occupied node with no child nodes. In the case where surface approximation is used in the geometry bitstream 203, the surface approximation synthesis unit 310 may determine a surface model based on the syntax elements parsed from the geometry bitstream 203 and based on the octree.

[0061] Furthermore, the geometric reconstruction unit 312 can perform reconstruction to determine the coordinates of points in the point cloud. For each location at a leaf node of the octree, the geometric reconstruction unit 312 can reconstruct the node location using the binary representation of the leaf node in the octree. At each corresponding leaf node, the number of points at the corresponding leaf node is signaled; this indicates duplicate points at the same voxel location. When using geometric quantization, the point locations are scaled to determine the reconstructed point location values.

[0062] The inverse transform coordinate unit 320 can apply an inverse transform to the reconstructed coordinates to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the original domain. The positions of the points in the point cloud may be in the floating-point domain, but the point positions in the G-PCC codec are encoded in the integer domain. The inverse transform can be used to convert the positions back to the original domain.

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

[0064] Depending on how the attribute values ​​are encoded, the RAHT unit 314 may perform RAHT encoding and decoding to determine the color values ​​of points in the point cloud based on the inverse quantized attribute values. RAHT decoding is performed from the top of the tree to the bottom. At each level, the low-frequency and high-frequency coefficients derived from the inverse quantization process are used to derive component values. At leaf nodes, the derived values ​​correspond to the attribute values ​​of the coefficients. The point weight derivation process is similar to that used in the G-PCC encoder 200. Alternatively, the LOD generation unit 316 and the inverse lifting unit 318 may use level-of-detail (LOD) techniques to determine the color values ​​of points in the point cloud. The LOD generation unit 316 decodes each LOD, providing a progressively more refined representation of the attribute of the point. Using a prediction transform, the LOD generation unit 316 derives a prediction for the point from a weighted sum of points in the previous LOD or previously reconstructed points in the same LOD. The LOD generation unit 316 may add the prediction to the residual (obtained after inverse quantization) to obtain the reconstructed value of the attribute. When using a lifting scheme, the LOD generation unit 316 may also include an update operator to update the coefficients used to derive the attribute value. In this case, the LOD generation unit 316 may also apply inverse adaptive quantization.

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

[0066] Figure 2 and Figure 3 Various units are shown to aid in understanding the operations performed by the encoder 200 and decoder 300. These units may be implemented as fixed-function circuits, programmable circuits, or a combination thereof. A fixed-function circuit is a circuit that provides a specific functionality and has pre-set operations that can be performed. A programmable circuit is a circuit that can be programmed to perform various tasks and provide flexible functionality in the operations that can be performed. For example, a programmable circuit may 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 parameters or output parameters), but the type of operation performed by the fixed-function circuit is generally immutable. In some examples, one or more of the units may be different circuit blocks (fixed-function or programmable), and in some examples, one or more of the units may be integrated circuits.

[0067] As will be explained in more detail below, the G-PCC decoder 300 is an example of a device that can be configured to decode a first syntax element indicating a number of bits used to encode one or more second syntax elements, where the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments, decode the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element, and decode a point cloud based on the decoded one or more second syntax elements.

[0068] This disclosure describes advanced syntax improvements for G-PCC in multiple examples. In some examples, the techniques of this disclosure can reduce the number of times a particular syntax element is encoded and subsequently decoded. In other examples, the techniques of this disclosure can reduce the number of bits used to encode certain syntax elements relative to previous techniques, thereby reducing codec overhead and improving compression. The example techniques described below can be used independently or in combination in any manner. That is, the following techniques are not mutually exclusive, and any number of the following techniques can be used together.

[0069] Example 1: Encoding and decoding geom_planar_mode_th_idcm

[0070] In one example of G-PCC, the G-PCC encoder 200 may signal the geom_planar_mode_th_idcm syntax element in the geometry parameter set (GPS), regardless of whether inferred direct coding mode (IDCM) is enabled. The geom_planar_mode_th_idcm syntax element indicates the threshold used to determine whether to use IDCM to encode and decode the geometry of the point cloud. IDCM is a codec that directly encodes and decodes the geometric positions of the point cloud.

[0071] As shown below, whether IDCM is enabled is indicated by the inferred_direct_coding_mode_enabled_flag. As shown below, in one example of G-PCC, geom_planar_mode_th_idcm is signaled regardless of the value of inferred_direct_coding_mode_enabled_flag. This may result in geom_planar_mode_th_idcm being signaled even when IDCM is not enabled. As a result, the G-PCC decoder 300 will decode syntax elements that will not be used.

[0072]

[0073]

[0074] The present disclosure proposes that the G-PCC encoder 200 is configured to encode and signal an IDCM flag (e.g., inferred_direct_coding_mode_enabled_flag) before the geom_planar_mode_th_IDCM syntax element, and decide to encode the geom_planar_mode_th_IDCM syntax element based on the inferred_direct_coding_mode_enabled_flag being true. Similarly, the G-PCC decoder 300 can be configured to parse and decode the IDCM flag (e.g., inferred_direct_coding_mode_enabled_flag) before the geom_planar_mode_th_IDCM syntax element, and decide to parse and decode the geom_planar_mode_th_IDCM syntax element based on the inferred_direct_coding_mode_enabled_flag being true. The modified syntax is shown below, where the tag <add> and< / add>The additions to the G-PCC syntax are shown between the tags <del> and< / del> Deletions from the G-PCC syntax are shown between.

[0075]

[0076]

[0077] Therefore, in one example of the present disclosure, the G-PCC encoder 200 may be configured to encode a syntax element indicating whether the inferred direct coding mode (IDCM) is enabled, and to encode a syntax element indicating a threshold value for planar mode based on the syntax element indicating that the IDCM is enabled. Similarly, the G-PCC decoder 300 may be configured to decode a syntax element indicating whether the inferred direct coding mode (IDCM) is enabled, and to decode a syntax element indicating a threshold value for planar mode based on the syntax element indicating that the IDCM is enabled.

[0078] Example 2: Encoding and decoding geom_direct_coding_mode_qp_offset

[0079] In one example of G-PCC, when geometric scaling is enabled, regardless of whether IDCM is enabled, the quantization parameter (QP) offset (geom_direct_coding_mode_qp_offset) of the IDCM for the IDCM node is signaled in GPS as shown below.

[0080]

[0081] The present disclosure proposes that when IDCM is enabled, the G-PCC encoder 200 and the G-PCC decoder 300 only encode and decode geom_direct_coding_mode_qp_offset. The modified syntax is as follows.

[0082]

[0083] Therefore, in one example of the present disclosure, the G-PCC encoder 200 may be configured to encode a syntax element indicating whether the inferred direct coding mode (IDCM) is enabled, and encode a syntax element indicating a quantization parameter (QP) offset of the IDCM based on the syntax element indicating that the IDCM is enabled. Similarly, the G-PCC decoder 300 may be configured to decode a syntax element indicating whether the inferred direct coding mode (IDCM) is enabled, and decode a syntax element indicating a quantization parameter (QP) offset of the IDCM based on the syntax element indicating that the IDCM is enabled.

[0084] Example 3: Semantics of the LoD parameter in the Adaptive Parameter Set (APS)

[0085] In one example of G-PCC, in APS, the G-PCC encoder 200 signals the LoD value in an affine prediction manner by applying a scale and an offset on top of the previous LoD value. For example:

[0086] LiftingSamplingDistanceSquared[idx]=(lifting_sampling_distance_squared_scale_minus1[idx]+1)×LiftingSamplingDistanceSquared[idx-1]+lifting_sampling_distance_squared_offset[idx]

[0087] The corresponding semantics in the G-PCC DIS text are as follows.

[0088] lifting_sampling_distance_squared_scale_minus1[idx] plus 1 specifies the scaling factor for the square of the sampling distance used to derive the detail level idx. The value of lifting_sampling_distance_squared_scale_minus1[idx] shall be in the range 0 to xx. When lifting_sampling_distance_squared_scale_minus1[idx] is not present in the bitstream, it is inferred to be 0.

[0089] lifting_sampling_distance_squared_offset[idx] specifies the offset used to derive the square of the sampling distance for level of detail idx. The value of lifting_sampling_distance_squared_offset[idx] shall be in the range 0 to xx. When lifting_sampling_distance_squared_offset[idx] is not present in the bitstream, it is inferred to be 0.

[0090] For idx = 0..num_detail_level_minus1-1, the variable LiftingSamplingDistanceSquared[idx] specifies the sampling distance of the detail level idx, which is derived as follows:

[0091] LiftingSamplingDistanceSquared[0]=lifting_sampling_distance_squared_scale_minus1[0]+1

[0092] for(idx=1;idx <num_detail_level_minus1;idx++){LiftingSamplingDistanceSquared[idx]=(lifting_sampling_distance_squared_scale_minus1[idx]+1)×LiftingSamplingDistanceSquared[idx-1]+lifting_sampling_distance_squared_offset[idx]}

[0093] However, the LoD distance values ​​are strictly increasing (otherwise the refinement level should not be non-zero). Therefore, the scale and offset cannot be 1 and 0, respectively, as this would indicate that the LoD distance values ​​of two consecutive LoDs would be the same. Therefore, this situation should not occur. Therefore, the present disclosure proposes that the G-PCC encoder 200 and the G-PCC decoder 300 operate according to the modified semantics as shown below.

[0094] lifting_sampling_distance_squared_scale_minus1[idx] plus 1 specifies the scaling factor for the square of the sampling distance used to derive the detail level idx. The value of lifting_sampling_distance_squared_scale_minus1[idx] shall be in the range 0 to xx. When lifting_sampling_distance_squared_scale_minus1[idx] is not present in the bitstream, it is inferred to be 0.

[0095] lifting_sampling_distance_squared_offset[idx] specifies the offset used to derive the square of the sampling distance for level of detail idx. The value of lifting_sampling_distance_squared_offset[idx] shall be in the range 0 to xx. When lifting_sampling_distance_squared_offset[idx] is not present in the bitstream, it is inferred to be 0.

[0096] For idx = 0..num_detail_level_minus1-1, the variable LiftingSamplingDistanceSquared[idx] specifies the sampling distance of the detail level idx, which is derived as follows:

[0097] LiftingSamplingDistanceSquared[0]=lifting_sampling_distance_squared_scale_minus1[0]+1

[0098] for(idx=1;idx <num_detail_level_minus1;idx++){LiftingSamplingDistanceSquared[idx]=(lifting_sampling_distance_squared_scale_minus1[idx]+1)×LiftingSamplingDistanceSquared[idx-1]+lifting_sampling_distance_squared_offset[idx]}

[0099] <add> The bitstream implementation requirement is that for idx=1…num_detail_level_minus1, neither lifting_sampling_distance_squared_scale_minus1[idx] nor lifting_sampling_distance_squared_offset[idx] can be zero.< / add>

[0100] Alternatively:

[0101] <add> For idx=1...num_detail_level_minus1, LiftingSamplingDistanceSquared[idx] <LiftingSamplingDistanceSquared[idx–1]。 < / add>

[0102] Example 4: About the semantics of lifting_adaptive_prediction_threshold

[0103] In one example of G-PCC, the semantics of the syntax element lifting_adaptive_prediction_threshold does not specify an upper limit, as shown below.

[0104] lifting_adaptive_prediction_threshold specifies the threshold to enable adaptive prediction. The value of lifting_adaptive_prediction_threshold[] should be in the range of 0 to xx. When not present, the value of lifting_adaptive_prediction_threshold is inferred to be 0.

[0105] The variable AdaptivePredictionThreshold, which specifies the threshold for switching to the adaptive predictor selection mode, is set equal to lifting_adaptive_prediction_threshold.

[0106] This threshold is calculated using the maximum change of all color components. The present disclosure proposes that the G-PCC encoder 200 and the G-PCC decoder 300 can set the upper limit of this threshold according to the bit depth of the primary and secondary components as follows:

[0107] lifting_adaptive_prediction_threshold specifies the threshold to enable adaptive prediction. The value of lifting_adaptive_prediction_threshold[] should be between 0 and <add>In the range of pow(2,max(attribute_bitdepth_minus1+1,attribute_secondary_bitdepth_minus1+1)-1< / add> When not present, the value of lift_adaptive_prediction_threshold is inferred to be 0.

[0108] The variable AdaptivePredictionThreshold, which specifies the threshold for switching to the adaptive predictor selection mode, is set equal to lifting_adaptive_prediction_threshold.

[0109] Specifying bounds helps simplify conformance testing.

[0110] Example 5: Signaling of lift_neighbour_bias_xyz[k]

[0111] In the example of G-PCC, the syntax and semantics of the syntax element lifting_neighbour_bias_xyz[k] are defined in APS as follows.

[0112] for(k=0;k<3;k++) lifting_neighbour_bias_xyz[k] ue(v)

[0113] lifting_neighbour_bias_xyz[k] specifies the factor used to weight the kth component of the (x, y, z) point position in the computation of the Euclidean distance between two points as part of the nearest neighbor inference process.

[0114] These values ​​should be non-zero. Therefore, the present disclosure proposes that the G-PCC encoder 200 be configured to signal the syntax element as lifting_neighbour_bias_minus1_xyz[k] instead. That is, the value of the syntax element lifting_neighbour_bias_minus1_xyz[k] indicates the lifting neighbor bias minus 1. The corresponding syntax semantic changes are as follows.

[0115] for(k=0;k<3;k++) lifting_neighbour_bias_ <add> minus1< / add> _xyz[k] ue(v)

[0116] lifting_neighbour_bias_ <add> minus1< / add> _xyz[k] <add> plus1< / add> Specifies the factor used to weight the kth component of the (x, y, z) point position in the computation of the Euclidean distance between two points as part of the nearest neighbor derivation process.

[0117] Thus, in one example of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 may be configured to encode and decode (e.g., encode and decode, respectively) a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1, where the lifting_neighbour_bias_xyz syntax element specifies a factor for weighting the kth component of the (x, y, z) point position in the computation of the Euclidean distance between two points as part of a nearest neighbor derivation process.

[0118] The following example techniques of this disclosure include encoding and decoding of various syntax elements that define bounding boxes, slices, tiles, and other areas associated with encoding and decoding the location and / or attributes of point cloud data. In some examples of G-PCC, such syntax elements are encoded and decoded using exponential Golomb codes. In some cases, when encoded and decoded using exponential Golomb codes, the values ​​of such syntax elements can become very large. To reduce the total number of bits required to encode and decode such syntax elements, this disclosure describes syntax element encoding and decoding techniques that can reduce signaling overhead.

[0119] In one example of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 may be configured to encode and decode (e.g., encode and decode, respectively) a first syntax element indicating a second syntax element associated with a property codec. The G-PCC encoder 200 and the G-PCC decoder 300 may encode and decode the first syntax element using an exponential Golomb code. The G-PCC encoder 200 and the G-PCC decoder 300 may encode and decode the second syntax element using a fixed-length code according to the number of bits indicated by the first syntax element. Examples of syntax elements that may be encoded and decoded using a fixed-length code according to the number of bits indicated by the first syntax element may include one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or the number of unique segments. By using the techniques of the present disclosure, the number of bits required to encode and decode the second syntax element may be significantly lower than the number of bits required to encode and decode the second syntax element using only an exponential Golomb code. In some examples, the techniques of the present disclosure may save up to 50 bits per syntax element.

[0120] Example 6: Signaling of SPS Bounding Boxes

[0121] The current syntax and semantics of the Sequence Parameter Set (SPS) bounding box are as follows.

[0122]

[0123] The SPS bounding box offset and size define the point cloud area to which the SPS is applied. The bounding box size cannot be zero in any direction (i.e., x, y, z). Therefore, according to the technology of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to encode and decode sps_bounding_box_size_minus1_xyz[k] instead. That is, the value of the syntax element sps_bounding_box_size_minus1_xyz[k] indicates the SPS bounding box size minus 1.

[0124] Additionally, both the bounding box offset and the box size can be large values. Therefore, according to other example techniques of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to encode and decode with a fixed length codec (s(v) / u(v)), indicating the number of bits signaled (similar to the signaling of the tile bounding box). The signaled number of bits (sps_bounding_box_bits_minus1+1) can be encoded and decoded with an exponential Golomb code (e.g., ue(v)) or with a fixed length code (e.g., u(8)).

[0125]

[0126]

[0127] Thus, in one example of the present disclosure, the G-PCC encoder 200 may determine the number of bits used to encode the SPS bounding box offset syntax element (e.g., sps_bounding_box_offset_xzy[k]) and the SPS bounding box size syntax element (e.g., sps_bounding_box_size_minus1_xyz[k]). The G-PCC encoder 200 may encode the SPS bounding box bits syntax element (e.g., sps_bounding_box_bits_minus1) indicating the number of bits used to encode at least one of the SPS bounding box offset syntax element or the SPS bounding box size syntax element. The G-PCC encoder 200 may also encode the SPS bounding box offset syntax element and / or the SPS bounding box size syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) and the determined number of bits.

[0128] Likewise, the G-PCC decoder 300 may be configured to decode an SPS bounding box bits syntax element (e.g., sps_bounding_box_bits_minus1) that indicates the number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element. The G-PCC decoder 300 may then decode the SPS bounding box offset syntax element or the SPS bounding box size syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) based on the number of bits indicated by the SPS bounding box bits syntax element.

[0129] Example 7: Signaling of Region Delta QP Bounding Box

[0130] An example G-PCC syntax for a region delta QP bounding box is as follows:

[0131]

[0132]

[0133] The regional delta QP bounding box defines the point cloud region to which a specific QP is applied. The QP of a region can be signaled as the delta (e.g., difference) between the regional QP and the base QP.

[0134] In some examples, both the bounding box size and the bounding box origin can be large values. Therefore, according to example techniques of the present disclosure, the G-PCC decoder 300 is configured to decode the region delta QP bounding box origin (ash_attr_qp_region_origin_xyz[i][k]) and the region delta QP bounding box size (ash_attr_qp_region_size_minus1_xyz[i][k]) using a fixed-length codec using the signaled number of bits. The G-PCC decoder 300 may decode the region delta QP bounding box bits (ash_attr_qp_region_bits_minus1) syntax element that indicates the number of bits used for the fixed-length codec. The G-PCC decoder 300 may decode the signaled region delta QP bounding box bits (ash_attr_qp_region_bits_minus1) syntax element using Exponential-Golomb coding (e.g., ue(v)) or unsigned integer coding (e.g., u(n)), where n is a predetermined fixed number such as 4, 6, or 8. The modified syntax is as follows:

[0135]

[0136]

[0137] Therefore, in one example of the present disclosure, the G-PCC encoder 200 may determine the number of bits used to encode the region delta QP bounding box origin syntax element and the region delta QP bounding box origin size syntax element. The G-PCC encoder 200 may encode the region delta QP bounding box bits syntax element, which indicates the number of bits used to encode at least one of the region delta QP bounding box origin syntax element or the region delta QP bounding size origin syntax element. The G-PCC encoder 200 may also encode the region delta QP bounding box origin syntax element and / or the region delta QP bounding box size syntax element using a fixed length code (e.g., signed s(v) or unsigned u(v)) and the determined number of bits.

[0138] Likewise, the G-PCC decoder 300 may be configured to decode a region delta QP bounding box bits syntax element that indicates the number of bits used to encode at least one of a region delta QP bounding box origin syntax element or a region delta QP bounding box size syntax element. The G-PCC decoder 300 may then decode the region delta QP bounding box origin syntax element or the region delta QP bounding box size syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) based on the number of bits indicated by the region delta QP bounding box origin bits syntax element.

[0139] Example 8: Signaling Tile Bounding Box and Tile Origin

[0140] The syntax and semantics of tile bounding boxes and tile origins in the G-PCC example are as follows.

[0141]

[0142]

[0143] The tile bounding box size and the tile bounding box origin define the location of the tile within the point cloud data. In some examples, the tile bounding box size cannot have zero dimensions. Therefore, according to example techniques of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to encode and decode tile_bounding_box_size_minus1_xyz[k] instead. That is, the value of the syntax element tile_bounding_box_size_minus1_xyz[k] indicates the tile bounding box size minus 1.

[0144] In addition, the tile origin syntax element (tile_origin_xyz[k]) can be a large value. Therefore, according to the example technology of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to use a fixed-length codec to encode and decode the tile origin syntax element (tile_origin_xyz[k]) using the number of bits. The number of bits used for fixed-length codec (tile_bounding_box_bits_minus1) can be signaled before the tile origin syntax element (tile_origin_xyz[k]). Additionally, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to encode and decode tile_bounding_box_bits_minus1 instead of tile_bounding_box_bits because the latter should be greater than 0.

[0145]

[0146]

[0147] Therefore, in one example of the present disclosure, the G-PCC encoder 200 may determine the number of bits used to encode the tile bounding box origin syntax element. The G-PCC encoder 200 may encode the tile bounding box bits syntax element indicating the number of bits used to encode the tile bounding box origin syntax element. The G-PCC encoder 200 may also encode the tile bounding box origin syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) and the determined number of bits.

[0148] Likewise, the G-PCC decoder 300 may be configured to decode a tile bounding box bits syntax element that indicates the number of bits used to encode the tile bounding box origin syntax element. The G-PCC decoder 300 may then decode the tile bounding box origin syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) based on the number of bits indicated by the tile bounding box bits syntax element.

[0149] Example 9: Signaling the origin of the Geometry Slice Header (GSH) box

[0150] In one example of G-PCC, the syntax of the GSH box origin is as follows.

[0151]

[0152] The GSH box origin defines the origin of the region of the point cloud to which the geometry slice header applies. The value of gsh_box_origin can be large. Therefore, according to the example techniques of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to encode and decode gsh_box_origin using a fixed-length code (e.g., using ue(v) / u(n)) using the number of bits previously signaled. The modified syntax is shown below.

[0153]

[0154] Therefore, in one example of the present disclosure, the G-PCC encoder 200 may determine the number of bits used to encode the GSH block origin syntax element. The G-PCC encoder 200 may also encode the GSH block origin syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) and the determined number of bits.

[0155] Likewise, the G-PCC decoder 300 may be configured to decode a GSH box bit syntax element indicating the number of bits used to encode the GSH box origin syntax element. The G-PCC decoder 300 may then decode the GSH box origin syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) based on the number of bits indicated by the GSH box bit syntax element.

[0156] Example 10: Signaling num_unique_segments_minus1

[0157] In one example of G-PCC, the syntax of num_unique_segments_minus1 in the geometry data unit header is as follows:

[0158]

[0159] The value of the number of unique segments syntax element (num_unique_segments_minus1) can be quite large. Therefore, according to the example techniques of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to encode and decode num_unique_segments_minus1 using a fixed-length encoding (e.g., using ue(v) / u(n)) using the previously signaled number of bits (e.g., the value of num_unique_segments_bits_minus_1+1). The modified syntax is shown below.

[0160]

[0161] Therefore, in one example of the present disclosure, the G-PCC encoder 200 may determine the number of bits used to encode a number of unique segments syntax element (e.g., num_unique_segments_minus1). The G-PCC encoder 200 may encode the number of unique segments bits syntax element (e.g., num_unique_segments_bits_minus1) indicating the number of bits used to encode the number of unique segments syntax element. The G-PCC encoder 200 may also encode the number of unique segments syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) and the determined number of bits.

[0162] Likewise, the G-PCC decoder 300 may be configured to decode a number-of-unique-segments bit syntax element indicating the number of bits used to encode the number-of-unique-segments syntax element. The G-PCC decoder 300 may then decode the number-of-unique-segments syntax element using a fixed-length code (e.g., a signed s(v) or unsigned u(v) fixed-length code) based on the number of bits indicated by the number-of-unique-segments bit syntax element.

[0163] Example 11: Encoding and decoding of geom_angular_origin

[0164] The syntax element geom_angular_origin_xyz[k] specifies the kth component of the (x, y, z) coordinates of the origin used in the processing of the angular codec mode. When not present, geom_angular_origin_x, geom_angular_origin_y, and geom_angular_origin_z are inferred to be 0. In typical cases, the origin value may be large enough and the Exponential-Golomb (se(v)_) codec may not be optimal. Therefore, according to the example techniques of the present disclosure, the G-PCC encoder 200 and the G-PCC decoder 300 are configured to encode and decode geom_angular_origin_xyz[k] using a fixed length codec (s(v)) (e.g., using ue(v) / u(n) coding) using a previously signaled number of bits (e.g., the value of geom_angular_origin_bits_minus1+1). The modified syntax is shown below.

[0165]

[0166] The syntax element geom_angular_origin_bits_minus1 plus 1 specifies the number of bits used to represent the syntax element geom_angular_origin_xyz[k].

[0167] Therefore, in one example of the present disclosure, the G-PCC encoder 200 may determine the number of bits used to encode the angle codec mode origin syntax element (e.g., geom_angular_origin_xyz[k]). The G-PCC encoder 200 may encode the angle codec mode origin bits syntax element (e.g., geom_angular_origin_bits_minus1) indicating the number of bits used to encode the angle codec mode origin syntax element. The G-PCC encoder 200 may also encode the angle codec mode origin syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) and the determined number of bits.

[0168] Similarly, the G-PCC decoder 300 can be configured to decode the angle coding mode origin bits syntax element indicating the number of bits used to encode the angle coding mode origin syntax element. The G-PCC decoder 300 can then decode the angle coding mode origin syntax element using a fixed length code (e.g., a signed s(v) or unsigned u(v) fixed length code) based on the number of bits indicated by the angle coding mode origin bits syntax element.

[0169] Figure 4 is a flowchart illustrating an example encoding method according to techniques of this disclosure. Figure 4 The technique may be performed by one or more structural components of the G-PCC encoder 200.

[0170] In one example of the present disclosure, the G-PCC encoder 200 may be configured to determine a number of bits used to encode one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments (400). The G-PCC encoder 200 may also be configured to encode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments (410), and encode the one or more second syntax elements using a fixed-length code using the number of bits (420).

[0171] In one example of the present disclosure, the G-PCC encoder 200 may be configured to encode a sequence parameter set (SPS) bounding box bits syntax element that indicates a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and to encode the SPS bounding box offset syntax element or the SPS bounding box size syntax element using the number of bits indicated by the SPS bounding box bits syntax element.

[0172] In another example of the present disclosure, the G-PCC encoder 200 may be configured to encode a region delta quantization parameter (QP) bounding box bits syntax element, which indicates the number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and encode the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element using the number of bits indicated by the region delta QP bounding box bits syntax element.

[0173] In another example of the present disclosure, the G-PCC encoder 200 may be configured to encode a tile bounding box bits syntax element that indicates the number of bits used to encode a tile bounding box origin syntax element, and to encode the tile bounding box origin syntax element using the number of bits indicated by the tile bounding box bits syntax element.

[0174] In another example of the present disclosure, the G-PCC encoder 200 can be configured to encode a geometry slice header (GSH) box bit syntax element that indicates the number of bits used to encode a GSH box origin syntax element, and to encode the GSH box origin syntax element using the number of bits indicated by the GSH box bit syntax element.

[0175] In another example of the present disclosure, the G-PCC encoder 200 may be configured to encode a number-bit syntax element of a unique segment, the number-bit syntax element of the unique segment indicating the number of bits used to encode the number syntax element of the unique segment, and to encode the number syntax element of the unique segment using the number of bits indicated by the number-bit syntax element of the unique segment.

[0176] In another example of the present disclosure, the G-PCC encoder 200 may be configured to encode the first syntax element using an Exponential Golomb code.

[0177] In another example of the present disclosure, the G-PCC encoder 200 may be configured to encode a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled, and encode a fourth syntax element indicating a threshold for planar mode based on IDCM being enabled.

[0178] In another example of the present disclosure, the G-PCC encoder 200 may be configured to encode a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled, and encode a fourth syntax element indicating a quantization parameter (QP) for the IDCM based on whether the IDCM is enabled.

[0179] In another example of the present disclosure, the G-PCC encoder 200 may be configured to encode a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1, where the lifting_neighbour_bias_xyz syntax element specifies a factor for weighting the kth component of an (x, y, z) point position in the computation of the Euclidean distance between two points as part of a nearest neighbor derivation process.

[0180] Figure 5 is a flowchart illustrating an example decoding method according to techniques of this disclosure. Figure 5 The techniques of may be performed by one or more structural components of the G-PCC decoder 300 .

[0181] In one example of the present disclosure, the G-PCC decoder 300 may be configured to decode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the first or second syntax element indicates one or more of an offset of a bounding box, an origin of a bounding box, or a number of unique segments (500). The G-PCC decoder 300 may also be configured to decode the one or more second syntax elements using a fixed-length code based on the number of bits indicated by the first syntax element (510), and decode a point cloud based on the decoded one or more second syntax elements (520).

[0182] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode a sequence parameter set (SPS) bounding box bits syntax element that indicates a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and to decode the SPS bounding box offset syntax element or the SPS bounding box size syntax element based on the number of bits indicated by the SPS bounding box bits syntax element.

[0183] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode a region delta quantization parameter (QP) bounding box bits syntax element, which indicates the number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and decode the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element based on the number of bits indicated by the region delta QP bounding box bits syntax element.

[0184] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode a tile bounding box bits syntax element that indicates the number of bits used to encode a tile bounding box origin syntax element, and decode the tile bounding box origin syntax element based on the number of bits indicated by the tile bounding box bits syntax element.

[0185] In another example of the present disclosure, the G-PCC decoder 300 can be configured to decode a geometry slice header (GSH) box bit syntax element that indicates the number of bits used for a GSH box origin syntax element, and to decode the GSH box origin syntax element based on the number of bits indicated by the GSH box bit syntax element.

[0186] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode a number-bit syntax element of a unique segment, the number-bit syntax element of the unique segment indicating the number of bits used to encode the number syntax element of the unique segment, and decode the number syntax element of the unique segment based on the number of bits indicated by the number-bit syntax element of the unique segment.

[0187] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode the first syntax element using an Exponential Golomb code.

[0188] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled, and decode a fourth syntax element indicating a threshold for planar mode based on the third syntax element indicating that IDCM is enabled.

[0189] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled, and decode a fourth syntax element indicating a quantization parameter (QP) offset for the IDCM based on the third syntax element indicating that the IDCM is enabled.

[0190] In another example of the present disclosure, the G-PCC decoder 300 may be configured to decode a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1, where the lifting_neighbour_bias_xyz syntax element is used to weight the kth component of the (x, y, z) point position in the calculation of the Euclidean distance between two points as part of a nearest neighbor derivation process.

[0191] The following numbered clauses illustrate one or more aspects of the devices and techniques described in this disclosure.

[0192] Clause 1A - A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a syntax element indicating whether an inferred direct coding and decoding mode (IDCM) is enabled; and encoding and decoding a geom_planar_mode_th_idcm syntax element if the syntax element indicates that IDCM is enabled.

[0193] Clause 2A - A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; and if the syntax element indicates that IDCM is enabled, encoding and decoding a QP offset syntax element for an IDCM node.

[0194] Clause 3A - A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a level of detail (LoD) scale and a LoD offset according to a bitstream conformance requirement, wherein for a particular LoD, the LoD scale and the LoD offset cannot have a value of zero.

[0195] Clause 4A—A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a lifting_adaptive_prediction_threshold according to an upper limit.

[0196] Clause 5A - A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1.

[0197] Clause 6A—A method of encoding and decoding a point cloud, the method comprising: encoding and decoding an SPS bounding box syntax element as an SPS bounding box syntax element minus one.

[0198] Clause 7A—A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a region delta QP bounding box syntax element as a region delta QP bounding box syntax element minus one.

[0199] Clause 8A—A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a tile bounding box syntax element as a tile bounding box syntax element minus one.

[0200] Clause 9A - A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a GSH box origin syntax element as a GSH box origin syntax element minus one.

[0201] Clause 10A - A method of encoding and decoding a point cloud, the method comprising: encoding and decoding a number-of-bits syntax element of a unique segment as a number-of-bits syntax element of a unique segment minus one.

[0202] Clause 11A - A method of any combination of clauses 1A-10A.

[0203] Clause 12A - The method of any of clauses 1A-11A, further comprising generating a point cloud.

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

[0205] Clause 14A-The apparatus of clause 13A, wherein the one or more components include one or more processors implemented in circuitry.

[0206] Clause 15A - The apparatus of any of clauses 13A or 14A, further comprising a memory storing data representing the point cloud.

[0207] Clause 16A - The apparatus of any of clauses 13A-15A, wherein the apparatus comprises a decoder.

[0208] Clause 17A - The apparatus of any of clauses 13A-16A, wherein the apparatus comprises an encoder.

[0209] Clause 18A - The apparatus of any of clauses 13A-17A, further comprising means for generating a point cloud.

[0210] Clause 19A - The apparatus of any of clauses 13A-18A, further comprising a display that presents an image based on the point cloud.

[0211] Clause 20A—A computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to perform the method of any of clauses 1A-12A.

[0212] Clause 1B - A method of decoding a point cloud, the method comprising: decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments; decoding the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element; and decoding the point cloud based on the decoded one or more second syntax elements.

[0213] Clause 2B - the method of Clause 1B, wherein decoding the first syntax element comprises decoding a sequence parameter set (SPS) bounding box bits syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and wherein decoding the one or more second syntax elements comprises decoding the SPS bounding box offset syntax element or the SPS bounding box size syntax element based on the number of bits indicated by the SPS bounding box bits syntax element.

[0214] Clause 3B - The method of any of clauses 1B-2B, wherein decoding the first syntax element comprises decoding a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and wherein decoding the one or more second syntax elements comprises decoding the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element based on the number of bits indicated by the region delta QP bounding box bits syntax element.

[0215] The method of any of clauses 4B-1B-3B, wherein decoding the first syntax element comprises decoding a tile bounding box bits syntax element that indicates a number of bits used to encode a tile bounding box origin syntax element, and wherein decoding the one or more second syntax elements comprises decoding the tile bounding box origin syntax element based on the number of bits indicated by the tile bounding box bits syntax element.

[0216] The method of any of clauses 5B-1B-4B, wherein decoding the first syntax element comprises decoding a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to encode a GSH box origin syntax element, and wherein decoding one or more second syntax elements comprises decoding the GSH box origin syntax element based on the number of bits indicated by the GSH box bit syntax element.

[0217] The method of any of clauses 6B-1B-5B, wherein decoding the first syntax element comprises decoding a quantity-bit syntax element for the unique segment, the quantity-bit syntax element for the unique segment indicating a number of bits used to encode the quantity syntax element for the unique segment, and wherein decoding the one or more second syntax elements comprises decoding the quantity syntax element for the unique segment based on the number of bits indicated by the quantity-bit syntax element for the unique segment.

[0218] The method of any of clauses 7B-1B-6B, wherein decoding the first syntax element comprises decoding an angle codec mode origin bits syntax element, the angle codec mode origin bits syntax element indicating the number of bits used to encode the angle codec mode origin syntax element, and wherein decoding one or more second syntax elements comprises decoding the angle codec mode origin syntax element based on the number of bits indicated by the angle codec mode origin bits syntax element.

[0219] Clause 8B—the method of any of clauses 1B-7B, wherein decoding the first syntax element comprises decoding the first syntax element using an Exponential Golomb code.

[0220] The method of any of clauses 9B-1B-8B further includes: decoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; and decoding a fourth syntax element indicating a threshold for planar mode based on the third syntax element indicating that IDCM is enabled.

[0221] The method of any of clauses 10B-clauses 1B-9B further includes: decoding a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; and decoding a fourth syntax element of a quantization parameter (QP) offset for the IDCM based on the third syntax element indicating that the IDCM is enabled.

[0222] The method of any of clauses 11B-10B, further comprising: decoding a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1, wherein the lifting_neighbour_bias_xyz syntax element specifies a factor for weighting the kth component of a (x, y, z) point position in a calculation of a Euclidean distance between two points as part of a nearest neighbor derivation process.

[0223] Item 12B - A device configured to decode a point cloud, the device comprising: a memory; and one or more processors implemented in circuitry and in communication with the memory, the one or more processors configured to: decode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; decode the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element; and decode the point cloud based on the decoded one or more second syntax elements.

[0224] The apparatus of clause 13B-clause 12B, wherein, to decode the first syntax element, the one or more processors are further configured to decode a sequence parameter set (SPS) syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and wherein, to decode the one or more second syntax elements, the one or more processors are further configured to decode the SPS bounding box offset syntax element or the SPS bounding box size syntax element based on the number of bits indicated by the SPS bounding box bits syntax element.

[0225] The apparatus of any of clauses 14B-12B-13B, wherein, to decode the first syntax element, the one or more processors are further configured to decode a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and wherein, to decode the one or more second syntax elements, the one or more processors are further configured to decode the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element based on the number of bits indicated by the region delta QP bounding box bits syntax element.

[0226] An apparatus of any of clauses 15B-12B-14B, wherein, to decode the first syntax element, the one or more processors are further configured to decode a tile bounding box bits syntax element that indicates a number of bits used to encode a tile bounding box origin syntax element, and wherein, to decode the one or more second syntax elements, the one or more processors are further configured to decode the tile bounding box origin syntax element based on the number of bits indicated by the tile bounding box bits syntax element.

[0227] An apparatus of any of clauses 16B-12B-15B, wherein, to decode a first syntax element, the one or more processors are further configured to decode a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to encode a GSH box origin syntax element, and wherein, to decode one or more second syntax elements, the one or more processors are further configured to decode the GSH box origin syntax element based on the number of bits indicated by the GSH box bit syntax element.

[0228] An apparatus of any of clauses 17B-12B-16B, wherein, to decode the first syntax element, the one or more processors are further configured to decode a quantity-bit syntax element for the unique segment, which syntax element indicates a number of bits used to encode the quantity syntax element for the unique segment, and wherein, to decode the one or more second syntax elements, the one or more processors are further configured to decode the quantity syntax element for the unique segment based on the number of bits indicated by the quantity-bit syntax element for the unique segment.

[0229] An apparatus of any of clauses 18B-12B-17B, wherein, to decode a first syntax element, the one or more processors are further configured to decode an angle codec mode origin bit syntax element, the angle codec mode origin bit syntax element indicating the number of bits used to encode the angle codec mode origin syntax element, and wherein, to decode one or more second syntax elements, the one or more processors are further configured to decode the angle codec mode origin syntax element based on the number of bits indicated by the angle codec mode origin bit syntax element.

[0230] Clause 19B - the apparatus of any of clauses 12B-18B, wherein, to decode the first syntax element, the one or more processors are further configured to: decode the first syntax element using an Exponential Golomb code.

[0231] A device of any of clauses 20B-12B-19B, wherein the one or more processors are further configured to: decode a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; and decode a fourth syntax element indicating a threshold for planar mode based on the third syntax element indicating that IDCM is enabled.

[0232] The apparatus of any of clauses 21B-12B-20B, wherein the one or more processors are further configured to: decode a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; and decode a fourth syntax element indicating a quantization parameter (QP) offset for the IDCM based on the third syntax element indicating that the IDCM is enabled.

[0233] Clause 22B - An apparatus of any of clauses 12B-21B, wherein the one or more processors are further configured to: decode a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1, wherein the lifting_neighbour_bias_xyz syntax element specifies a factor for weighting the kth component of an (x, y, z) point position in a calculation of a Euclidean distance between two points as part of a nearest neighbor derivation process.

[0234] Clause 23B - A method of encoding a point cloud, the method comprising: encoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments; and encoding the one or more second syntax elements using a fixed length code and a fixed number of bits.

[0235] The method of clause 24B-clause 23B, wherein encoding the first syntax element comprises encoding a sequence parameter set (SPS) bounding box bits syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and wherein encoding the one or more second syntax elements comprises encoding the SPS bounding box offset syntax element or the SPS bounding box size syntax element using the number of bits indicated by the SPS bounding box bits syntax element.

[0236] The method of any of clauses 25B-23B-24B, wherein encoding the first syntax element comprises encoding a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and wherein encoding the one or more second syntax elements comprises encoding the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element using the number of bits indicated by the region delta QP bounding box bits syntax element.

[0237] The method of any of clauses 26B-23B-25B, wherein encoding the first syntax element comprises encoding a tile bounding box bits syntax element that indicates a number of bits used to encode a tile bounding box origin syntax element, and wherein encoding the one or more second syntax elements comprises encoding the tile bounding box origin syntax element using the number of bits indicated by the tile bounding box bits syntax element.

[0238] The method of any of clauses 27B-23B-26B, wherein encoding the first syntax element comprises encoding a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to encode the GSH box origin syntax element, and wherein encoding the one or more second syntax elements comprises encoding the GSH box origin syntax element using the number of bits indicated by the GSH box bit syntax element.

[0239] The method of any of clauses 28B-23B-27B, wherein encoding the first syntax element comprises encoding a quantity-bit syntax element for the unique segment, the quantity-bit syntax element for the unique segment indicating a number of bits used to encode the quantity syntax element for the unique segment, and wherein encoding the one or more second syntax elements comprises encoding the quantity syntax element for the unique segment using the number of bits indicated by the quantity-bit syntax element for the unique segment.

[0240] The method of any of clauses 29B-23B-28B, wherein encoding the first syntax element comprises encoding an angle codec mode origin bits syntax element, the angle codec mode origin bits syntax element indicating a number of bits used to encode the angle codec mode origin syntax element, and wherein encoding one or more second syntax elements comprises encoding the angle codec mode origin syntax element based on the number of bits indicated by the angle codec mode origin bits syntax element.

[0241] Clause 30B - the method of any of clauses 23B-29B, wherein encoding the first syntax element comprises encoding the first syntax element using an Exponential Golomb code.

[0242] The method of any one of clauses 31B-23B-30B further includes: encoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; and encoding a fourth syntax element indicating a threshold for planar mode based on IDCM being enabled.

[0243] The method of any of clauses 32B-23B-31B further includes: encoding a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; and encoding a fourth syntax element indicating a quantization parameter (QP) offset for the IDCM based on whether the IDCM is enabled.

[0244] The method of any of clauses 33B-23B-32B, further comprising: encoding a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1, wherein the lifting_neighbour_bias_xyz syntax element specifies a factor for weighting the kth component of a (x, y, z) point position in a calculation of the Euclidean distance between two points as part of a nearest neighbor derivation process.

[0245] Item 34B - A device configured to encode a point cloud, the device comprising: a memory; and one or more processors implemented in circuitry and in communication with the memory, the one or more processors configured to: encode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; and encode the one or more second syntax elements using a fixed length code using the number of bits.

[0246] The apparatus of clauses 35B-34B, wherein, to encode the first syntax element, the one or more processors are further configured to encode a sequence parameter set (SPS) bounding box bits syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and wherein, to encode the one or more second syntax elements, the one or more processors are further configured to encode the SPS bounding box offset syntax element or the SPS bounding box size syntax element using the number of bits indicated by the SPS bounding box bits syntax element.

[0247] The apparatus of any of clauses 36B-34B-35B, wherein, to encode the first syntax element, the one or more processors are further configured to encode a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and wherein, to encode the one or more second syntax elements, the one or more processors are further configured to encode the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element using the number of bits indicated by the region delta QP bounding box bits syntax element.

[0248] An apparatus of any of clauses 37B-34B-36B, wherein, to encode the first syntax element, the one or more processors are further configured to encode a tile bounding box bits syntax element that indicates a number of bits used to encode the tile bounding box origin syntax element, and wherein, to encode the one or more second syntax elements, the one or more processors are further configured to encode the tile bounding box origin syntax element using the number of bits indicated by the tile bounding box bits syntax element.

[0249] An apparatus of any of clauses 38B-34B-37B, wherein, to encode a first syntax element, the one or more processors are further configured to encode a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to encode a GSH box origin syntax element, and wherein to encode one or more second syntax elements, the one or more processors are further configured to encode the GSH box origin syntax element using the number of bits indicated by the GSH box bit syntax element.

[0250] An apparatus of any of clauses 39B-34B-38B, wherein, to encode a first syntax element, the one or more processors are further configured to encode a number-of-unique-segments bit syntax element indicating a number of bits used to encode the unique segment syntax element, and wherein, to encode one or more second syntax elements, the one or more processors are further configured to encode the number-of-unique-segments bit syntax element using the number of bits indicated by the number-of-unique-segments bit syntax element.

[0251] An apparatus of any of clauses 40B-34B-39B, wherein, to encode a first syntax element, the one or more processors are further configured to encode an angle codec mode origin bit syntax element, the angle codec mode origin bit syntax element indicating a number of bits used to encode the angle codec mode origin syntax element, and wherein, to encode one or more second syntax elements, the one or more processors are further configured to encode the angle codec mode origin syntax element based on the number of bits indicated by the angle codec mode origin bit syntax element.

[0252] Clause 41B—the apparatus of any of clauses 34B-40B, wherein, to encode the first syntax element, the one or more processors are further configured to: encode the first syntax element using an Exponential Golomb code.

[0253] A device of any of clauses 42B-34B-41B, wherein the one or more processors are further configured to: encode a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; and encode a fourth syntax element indicating a threshold for planar mode based on IDCM being enabled.

[0254] A device of any of clauses 43B-34B-42B, wherein the one or more processors are further configured to: encode a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; and encode a fourth syntax element indicating a quantization parameter (QP) offset for the IDCM based on whether the IDCM is enabled.

[0255] Clause 44B - An apparatus of any of clauses 34B-43B, wherein the one or more processors are further configured to: encode a lifting_neighbour_bias_xyz syntax element as lifting_neighbour_bias_xyz minus 1, wherein the lifting_neighbour_bias_xyz syntax element specifies a factor for weighting the kth component of an (x, y, z) point position in a computation of a Euclidean distance between two points as part of a nearest neighbor derivation process.

[0256] Item 45B - A device configured to decode point cloud data, the device comprising: means for decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; means for decoding the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element; and means for decoding a point cloud based on the decoded one or more second syntax elements.

[0257] Item 46B - A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to be configured to decode point cloud data to: decode a first syntax element indicating a number of bits used to encode one or more second syntax elements, the first syntax element, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; decode the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element; and decode the point cloud based on the decoded one or more second syntax elements.

[0258] Clause 47B - A device configured to encode point cloud data, the device comprising: means for encoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments; and means for encoding the one or more second syntax elements using a fixed length code and a fixed number of bits.

[0259] Item 48B - A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to be configured to encode point cloud data to: encode a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; and encode the one or more second syntax elements using a fixed-length code using the number of bits.

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

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

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

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

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

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

[0266] Various examples have been described. These and other examples are within the scope of the following claims.

Claims

1. A method for decoding a point cloud, the method comprising: decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments; decoding the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element; as well as The point cloud is decoded based on the decoded one or more second syntax elements.

2. The method according to claim 1, wherein Decoding the first syntax element comprises decoding a sequence parameter set (SPS) bounding box bits syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and The decoding of the one or more second syntax elements comprises decoding the SPS bounding box offset syntax element or the SPS bounding box size syntax element based on the number of bits indicated by the SPS bounding box bits syntax element.

3. The method according to claim 1, wherein Decoding the first syntax element includes decoding a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and Wherein decoding the one or more second syntax elements comprises decoding the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element based on the number of bits indicated by the region delta QP bounding box bits syntax element.

4. The method according to claim 1, wherein Decoding the first syntax element comprises decoding a tile bounding box bits syntax element, the tile bounding box bits syntax element indicating a number of bits used to encode a tile bounding box origin syntax element, and The decoding of the one or more second syntax elements comprises decoding the tile bounding box origin syntax element based on the number of bits indicated by the tile bounding box bits syntax element.

5. The method according to claim 1, wherein Decoding the first syntax element comprises decoding a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to decode a GSH box origin syntax element, and Wherein decoding the one or more second syntax elements comprises decoding the GSH frame origin syntax element based on the number of bits indicated by the GSH frame origin syntax element.

6. The method according to claim 1, wherein Decoding the first syntax element includes decoding a number-bit syntax element for a unique segment, the number-bit syntax element for a unique segment indicating a number of bits used to encode the number syntax element for the unique segment, and The decoding of the one or more second syntax elements comprises decoding a number syntax element of the unique segment based on the number of bits indicated by the number-bit syntax element of the unique segment.

7. The method according to claim 1, wherein Decoding the first syntax element includes decoding an angle codec mode origin bits syntax element, the angle codec mode origin bits syntax element indicating a number of bits used to encode the angle codec mode origin syntax element, and The decoding of the one or more second syntax elements comprises decoding the angle coding mode origin syntax element based on the number of bits indicated by the angle coding mode origin bit syntax element.

8. The method according to claim 1, wherein Decoding the first syntax element includes: The first syntax element is decoded using an Exponential Golomb code.

9. The method according to claim 1, further comprising: decoding a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; as well as A fourth syntax element indicating a threshold for planar mode is decoded based on the third syntax element indicating that IDCM is enabled.

10. The method according to claim 1, further comprising: decoding a third syntax element indicating whether an inferred direct coding mode (IDCM) is enabled; as well as A fourth syntax element indicating a quantization parameter (QP) offset for the IDCM is decoded based on the third syntax element indicating that the IDCM is enabled.

11. The method according to claim 1 , further comprising: The lifting_neighbour_bias_xyz syntax element is decoded as lifting_neighbour_bias_xyz minus 1, where the lifting_neighbour_bias_xyz syntax element specifies a factor used to weight the kth component of the (x, y, z) point position in the computation of the Euclidean distance between two points as part of the nearest neighbor derivation process.

12. An apparatus configured to decode a point cloud, the apparatus comprising: Memory; as well as one or more processors implemented in circuitry and in communication with the memory, the one or more processors configured to: decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments; decoding the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element; as well as The point cloud is decoded based on the decoded one or more second syntax elements.

13. The device according to claim 12, wherein To decode the first syntax element, the one or more processors are further configured to decode a sequence parameter set (SPS) bounding box bits syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and In order to decode the one or more second syntax elements, the one or more processors are further configured to decode the SPS bounding box offset syntax element or the SPS bounding box size syntax element based on the number of bits indicated by the SPS bounding box bits syntax element.

14. The device according to claim 12, wherein To decode the first syntax element, the one or more processors are further configured to decode a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and In order to decode the one or more second syntax elements, the one or more processors are further configured to decode the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element based on the number of bits indicated by the region delta QP bounding box bits syntax element.

15. The device according to claim 12, wherein To decode the first syntax element, the one or more processors are further configured to decode a tile bounding box bits syntax element indicating a number of bits used to encode a tile bounding box origin syntax element, and Wherein, in order to decode the one or more second syntax elements, the one or more processors are further configured to decode the tile bounding box origin syntax element based on the number of bits indicated by the tile bounding box bits syntax element.

16. The device according to claim 12, wherein To decode the first syntax element, the one or more processors are further configured to decode a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to encode a GSH box origin syntax element, and Wherein, in order to decode the one or more second syntax elements, the one or more processors are further configured to decode the GSH box origin syntax element based on the number of bits indicated by the GSH box bit syntax element.

17. The device according to claim 12, wherein To decode the first syntax element, the one or more processors are further configured to decode a number-of-unique-segments bit syntax element, the number-of-unique-segments bit syntax element indicating a number of bits used to encode the number-of-unique-segments syntax element, and Wherein, in order to decode the one or more second syntax elements, the one or more processors are further configured to decode the number syntax element of the unique segment based on the number of bits indicated by the number-bit syntax element of the unique segment.

18. The device according to claim 12, wherein To decode the first syntax element, the one or more processors are further configured to decode an angle codec mode origin bits syntax element, the angle codec mode origin bits syntax element indicating a number of bits used to encode the angle codec mode origin syntax element, and In order to decode the one or more second syntax elements, the one or more processors are further configured to decode the angle coding mode origin syntax element based on the number of bits indicated by the angle coding mode origin bit syntax element.

19. The device according to claim 12, wherein To decode the first syntax element, the one or more processors are further configured to: The first syntax element is decoded using an Exponential Golomb code.

20. The device according to claim 12, wherein The one or more processors are further configured to: decoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; and A fourth syntax element indicating a threshold for planar mode is decoded based on the third syntax element indicating that IDCM is enabled.

21. The apparatus of claim 12, wherein the one or more processors are further configured to: decoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; and A fourth syntax element indicating a quantization parameter (QP) offset for the IDCM is decoded based on the third syntax element indicating that the IDCM is enabled.

22. The device according to claim 12, wherein The one or more processors are further configured to: The lifting_neighbour_bias_xyz syntax element is decoded as lifting_neighbour_bias_xyz minus 1, where the lifting_neighbour_bias_xyz syntax element specifies a factor used to weight the kth component of the (x, y, z) point position in the computation of the Euclidean distance between two points as part of the nearest neighbor derivation process.

23. A method for encoding a point cloud, the method comprising: encoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; and The one or more second syntax elements are encoded using a fixed length code and the number of bits.

24. The method according to claim 23, wherein Encoding the first syntax element comprises encoding a sequence parameter set (SPS) bounding box bits syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and The encoding of the one or more second syntax elements comprises encoding the SPS bounding box offset syntax element or the SPS bounding box size syntax element using the number of bits indicated by the SPS bounding box bits syntax element.

25. The method according to claim 23, wherein Encoding the first syntax element includes encoding a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and Wherein encoding the one or more second syntax elements comprises encoding the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element using the number of bits indicated by the region delta QP bounding box bits syntax element.

26. The method according to claim 23, wherein Encoding the first syntax element comprises encoding a tile bounding box bits syntax element indicating a number of bits used to encode a tile bounding box origin syntax element, and The encoding of the one or more second syntax elements comprises encoding the tile bounding box origin syntax element using the number of bits indicated by the tile bounding box bits syntax element.

27. The method according to claim 23, wherein Encoding the first syntax element comprises encoding a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to encode a GSH box origin syntax element, and Wherein encoding the one or more second syntax elements comprises encoding the GSH box origin syntax element using the number of bits indicated by the GSH box bit syntax element.

28. The method according to claim 23, wherein encoding the first syntax element comprises encoding a number-of-unique-segments bit syntax element indicating a number of bits used to encode the number-of-unique-segments syntax element, and The encoding of the one or more second syntax elements comprises encoding a number syntax element of the unique segment using the number of bits indicated by the number-bit syntax element of the unique segment.

29. The method according to claim 23, wherein Encoding the first syntax element includes encoding an angle codec mode origin bits syntax element, the angle codec mode origin bits syntax element indicating a number of bits used to encode the angle codec mode origin syntax element, and The encoding of the one or more second syntax elements comprises encoding the angle codec mode origin syntax element based on the number of bits indicated by the angle codec mode origin bits syntax element.

30. The method of claim 23, wherein: Encoding the first syntax element includes: The first syntax element is encoded using an Exponential Golomb code.

31. The method of claim 23, further comprising: encoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; as well as A fourth syntax element indicating a threshold for planar mode is encoded based on IDCM being enabled.

32. The method of claim 23, further comprising: encoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; as well as A fourth syntax element indicating a quantization parameter (QP) offset for the IDCM is encoded based on the IDCM being enabled.

33. The method of claim 23, further comprising: The lifting_neighbour_bias_xyz syntax element is encoded as lifting_neighbour_bias_xyz minus 1, where the lifting_neighbour_bias_xyz syntax element specifies a factor used to weight the kth component of the (x, y, z) point position in the computation of the Euclidean distance between two points as part of the nearest neighbor derivation process.

34. An apparatus configured to encode a point cloud, the apparatus comprising: Memory; as well as one or more processors implemented in circuitry and in communication with the memory, the one or more processors configured to: encoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; and The one or more second syntax elements are encoded using the number of bits using a fixed length code.

35. The apparatus of claim 34, wherein: To encode the first syntax element, the one or more processors are further configured to encode a sequence parameter set (SPS) bounding box bits syntax element, the SPS bounding box bits syntax element indicating a number of bits used to encode at least one of an SPS bounding box offset syntax element or an SPS bounding box size syntax element, and Wherein, to encode the one or more second syntax elements, the one or more processors are further configured to encode the SPS bounding box offset syntax element or the SPS bounding box size syntax element using the number of bits indicated by the SPS bounding box bits syntax element.

36. The apparatus of claim 34, wherein: To encode the first syntax element, the one or more processors are further configured to encode a region delta quantization parameter (QP) bounding box bits syntax element, the region delta QP bounding box bits syntax element indicating a number of bits used to encode a region delta QP bounding box origin syntax element and a region delta QP bounding box size syntax element, and Wherein, to encode the one or more second syntax elements, the one or more processors are further configured to encode the region delta QP bounding box origin syntax element and the region delta QP bounding box size syntax element using the number of bits indicated by the region delta QP bounding box bits syntax element.

37. The apparatus of claim 34, wherein: To encode the first syntax element, the one or more processors are further configured to encode a tile bounding box bits syntax element indicating a number of bits used to encode a tile bounding box origin syntax element, and Wherein, to encode the one or more second syntax elements, the one or more processors are further configured to encode the tile bounding box origin syntax element using the number of bits indicated by the tile bounding box bits syntax element.

38. The apparatus of claim 34, wherein: To encode the first syntax element, the one or more processors are further configured to encode a geometry slice header (GSH) box bit syntax element, the GSH box bit syntax element indicating a number of bits used to encode a GSH box origin syntax element, and Wherein, to encode the one or more second syntax elements, the one or more processors are further configured to encode the GSH box origin syntax element using the number of bits indicated by the GSH box bit syntax element.

39. The apparatus of claim 34, wherein: To encode the first syntax element, the one or more processors are further configured to encode a number-bit syntax element of a unique segment, the number-bit syntax element of a unique segment indicating a number of bits used to encode the number syntax element of the unique segment, and Wherein, in order to encode the one or more second syntax elements, the one or more processors are further configured to encode the number syntax element of the unique segment using the number of bits indicated by the number-bit syntax element of the unique segment.

40. The apparatus of claim 34, wherein To encode the first syntax element, the one or more processors are further configured to encode an angle codec mode origin bits syntax element, the angle codec mode origin bits syntax element indicating a number of bits used to encode the angle codec mode origin syntax element, and In order to encode the one or more second syntax elements, the one or more processors are further configured to encode the angle coding mode origin syntax element based on the number of bits indicated by the angle coding mode origin bit syntax element.

41. The apparatus of claim 34, wherein: To encode the first syntax element, the one or more processors are further configured to: The first syntax element is encoded using an Exponential Golomb code.

42. The apparatus of claim 34, wherein: The one or more processors are further configured to: encoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; and A fourth syntax element indicating a threshold for planar mode is encoded based on IDCM being enabled.

43. The apparatus of claim 34, wherein: The one or more processors are further configured to: encoding a third syntax element indicating whether inferred direct coding mode (IDCM) is enabled; and A fourth syntax element indicating a quantization parameter (QP) offset for the IDCM is encoded based on the IDCM being enabled.

44. The apparatus of claim 34, wherein: The one or more processors are further configured to: The lifting_neighbour_bias_xyz syntax element is encoded as lifting_neighbour_bias_xyz minus 1, where the lifting_neighbour_bias_xyz syntax element specifies a factor used to weight the kth component of the (x, y, z) point position in the computation of the Euclidean distance between two points as part of the nearest neighbor derivation process.

45. An apparatus configured to decode point cloud data, the apparatus comprising: means for decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments; means for decoding said one or more second syntax elements using a fixed length code based on said number of bits indicated by said first syntax element; as well as Means for decoding the point cloud based on the decoded one or more second syntax elements.

46. ​​A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to be configured to decode point cloud data to: decoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of the bounding box, a size of the bounding box, or a number of unique segments; decoding the one or more second syntax elements using a fixed length code based on the number of bits indicated by the first syntax element; as well as The point cloud is decoded based on the decoded one or more second syntax elements.

47. An apparatus configured to encode point cloud data, the apparatus comprising: means for encoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; and Means for encoding one or more second syntax elements using a fixed length code and the number of bits.

48. A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to be configured to encode point cloud data to: encoding a first syntax element indicating a number of bits used to encode one or more second syntax elements, wherein the one or more second syntax elements indicate one or more of an offset of a bounding box, an origin of a bounding box, a size of a bounding box, or a number of unique segments; and The one or more second syntax elements are encoded using the number of bits using a fixed length code.

Citation Information

Patent Citations

  • Image encoding / decoding method and device

    CN108243339A

  • Data compression method and device with fixed-length code unit containing plurality of coding parameter variable-length codes

    CN111131826A