Method, device and medium for point cloud coding and decoding
By introducing sorting parameters into point cloud encoding and decoding technology to sort points, and using indicators of tree structure information to optimize the transmission of tree structure information, the problems of insufficient encoding and decoding efficiency and delay in the existing technology are solved, and flexible Low-latency tool design and efficient encoding and decoding process.
Patent Information
- Application Number
- CN202380034173.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-04-14
- Filing Date
- 2023-04-13
- Publication Date
- 2025-01-24
AI Technical Summary
The existing point cloud encoding and decoding technology has shortcomings in encoding and decoding efficiency and delay, especially in the design of low-latency tools and low-latency tools within slices, and it is difficult to configure according to different delay requirements.
By introducing sorting parameters, the points in the point cloud encoding and decoding unit are sorted, and conversion is performed based on the sorted points to reduce the sorting delay and improve the encoding and decoding efficiency. In addition, an indicator of the tree structure information is used to determine whether the tree structure information of the predictive geometry codec is included in the bit stream to reduce the conversion delay.
The design of low-latency tools has been realized, the encoding and decoding efficiency and flexibility of point cloud encoding and decoding have been improved, and it can be configured according to different delay requirements.
Smart Images

Figure CN119366191A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure generally relate to point cloud encoding and decoding techniques, and more particularly, to sorting points using sorting parameters. Background Art
[0002] A point cloud is a collection of individual data points in a three-dimensional (3D) plane, with each point having set coordinates on the X, Y, and Z axes. Point clouds are therefore used to represent the physical content of a three-dimensional space. Point clouds have proven to be a promising way to represent 3D visual data for a wide range of immersive applications, from augmented reality to self-driving cars.
[0003] Point cloud codec standards have evolved mainly through the development of the famous MPEG organization. MPEG is short for Moving Picture Experts Group, which is one of the main standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Codec Group (3DG) released a call for proposals (CFP) document to start the development of point cloud codec standards. The final standard will include two categories of solutions. Video-based point cloud compression (V-PCC or VPCC) is suitable for point sets with relatively uniform point distribution. Geometry-based point cloud compression (G-PCC or GPCC) is suitable for more sparse distributions. However, the codec efficiency of conventional point cloud codec techniques is generally expected to be further improved. Summary of the invention
[0004] The embodiments of the present disclosure provide a solution for point cloud encoding and decoding.
[0005] In a first aspect, a method for point cloud encoding and decoding is proposed. The method comprises: for conversion between a current encoding and decoding unit of a point cloud sequence and a bit stream of the point cloud sequence, determining a plurality of points of the current encoding and decoding unit; sorting the plurality of points based on at least a sorting parameter; and performing conversion based on the sorted plurality of points. The method according to the first aspect of the present disclosure sorts the plurality of points of the encoding and decoding unit based on the sorting parameter. In this way, the delay of the sorting process can be reduced, and thus a low-latency tool can be implemented.
[0006] In the second aspect, another method for point cloud encoding and decoding is proposed. The method includes: for the conversion between the current encoding and decoding unit of the point cloud sequence and the bit stream of the point cloud sequence, determining whether the tree structure information of the predicted geometry encoding and decoding of the current encoding and decoding unit is included in the bit stream based on the indicator of the tree structure information; and performing the conversion based on the determination. The method according to the second aspect of the present disclosure determines whether the tree structure information is included in the bit stream or is transmitted by a signal in the bit stream. In this way, the delay of the conversion can be reduced, and thus a low-latency tool can be implemented.
[0007] In a third aspect, a device for processing point cloud data is provided. The device for processing point cloud data includes a processor and a non-volatile memory having instructions thereon. When the instructions are executed by the processor, the processor executes the method according to the first aspect or the second aspect of the present disclosure.
[0008] In a fourth aspect, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores instructions for causing a processor to execute the method according to the first or second aspect of the present disclosure.
[0009] In a fifth aspect, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a point cloud sequence generated by a method performed by a point cloud processing device. The method includes: determining a plurality of points of a current codec unit of the point cloud sequence; sorting the plurality of points based on at least a sorting parameter; and generating a bitstream based on the sorted plurality of points.
[0010] In a sixth aspect, a method for storing a bitstream of a point cloud sequence is provided. The method comprises: determining a plurality of points of a current codec unit of the point cloud sequence; sorting the plurality of points based on at least a sorting parameter; generating a bitstream based on the sorted plurality of points; and storing the bitstream in a non-transitory computer-readable recording medium.
[0011] In a seventh aspect, another non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a point cloud sequence generated by a method performed by a point cloud processing device. The method includes: determining whether tree structure information of a predicted geometry codec of a current codec unit of the point cloud sequence is included in the bitstream based on an indicator of the tree structure information; and generating the bitstream based on the determination.
[0012] In an eighth aspect, a method for storing a bitstream of a point cloud sequence is proposed. The method includes: determining whether tree structure information of a predicted geometry codec of a current codec unit of the point cloud sequence is included in the bitstream based on an indicator of the tree structure information; generating a bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium.
[0013] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The above and other objects, features and advantages of the exemplary embodiments of the present disclosure will become more apparent through the following detailed description with reference to the accompanying drawings. In the exemplary embodiments of the present disclosure, the same reference numerals generally refer to the same components.
[0015] Figure 1 A block diagram illustrating an example point cloud encoding and decoding system according to some embodiments of the present disclosure is shown;
[0016] Figure 2 shows a block diagram illustrating an example of a GPCC encoder according to some embodiments of the present disclosure;
[0017] Figure 3 shows a block diagram illustrating an example of a GPCC decoder according to some embodiments of the present disclosure;
[0018] Figure 4 An example encoding and decoding process of an improved point cloud delay tool according to some embodiments of the present disclosure is shown;
[0019] Figure 5 Another example encoding and decoding process of the improved point cloud time-lapse tool according to some embodiments of the present disclosure is shown;
[0020] Figure 6 A flowchart of a method for point cloud encoding and decoding according to some embodiments of the present disclosure is shown;
[0021] Figure 7 A flowchart showing another method for point cloud encoding and decoding according to some embodiments of the present disclosure is shown; and
[0022] Figure 8 A block diagram of a computing device is shown in which various embodiments of the present disclosure may be implemented.
[0023] Throughout the drawings, same or similar reference numbers generally refer to same or similar elements. DETAILED DESCRIPTION
[0024] The principle of the present disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described only for the purpose of illustrating and helping those skilled in the art to understand and implement the present disclosure, without implying any limitation on the scope of the present disclosure. In addition to the methods described below, the disclosure described herein can also be implemented in various ways.
[0025] In the following description and claims, unless defined otherwise, all scientific and technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present disclosure belongs.
[0026] References in this disclosure to "one embodiment," "an embodiment," "an example embodiment," etc. indicate that the described embodiment may include a particular feature, structure, or characteristic, but not every embodiment must include the particular feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an example embodiment, whether or not explicitly described, it is considered to be within the knowledge of those skilled in the art to affect such feature, structure, or characteristic in relation to other embodiments.
[0027] It should be understood that although the terms "first" and "second" etc. can be used to describe various elements, these elements should not be limited to these terms. These terms are only used to distinguish one element from another element. For example, a first element can be referred to as a second element, and similarly, a second element can be referred to as a first element without departing from the scope of the exemplary embodiments. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.
[0028] The terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the exemplary embodiments. As used herein, the singular forms "a", "an", and "the" are also intended to include the plural forms, unless the context clearly indicates otherwise. It should also be understood that the terms "include", "including", "have", "have", "include" and / or "include" when used herein indicate the presence of the features, elements and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components and / or combinations thereof. Example Environment
[0029] Figure 1 is a block diagram illustrating an example point cloud codec system 100 that may utilize the techniques of the present disclosure. As shown, the point cloud codec system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a point cloud encoding device, and the destination device 120 may also be referred to as a point cloud decoding device. In operation, the source device 110 may be configured to generate encoded point cloud data, and the destination device 120 may be configured to decode the encoded point cloud data generated by the source device 110. The techniques of the present disclosure are generally directed to encoding and decoding (encoding and / or decoding) point cloud data, i.e., supporting point cloud compression. Codecs may be effective in compressing and / or decompressing point cloud data.
[0030] The source device 100 and the destination device 120 may include any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets (e.g., smart phones and mobile phones), televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, vehicles (e.g., land or sea vehicles, spacecraft, aircraft, etc.), robots, lidar devices, satellites, extended reality devices, etc. In some cases, the source device 100 and the destination device 120 may be equipped with wireless communication capabilities.
[0031] The source device 100 may include a data source 112, a memory 114, a GPCC encoder 116, and an input / output (I / O) interface 118. The destination device 120 may include an input / output (I / O) interface 128, a GPCC decoder 126, a memory 124, and a data consumer 122. According to the present disclosure, the GPCC encoder 116 of the source device 100 and the GPCC decoder 126 of the destination device 120 may be configured to apply the techniques related to point cloud encoding and decoding of the present disclosure. Therefore, the source device 100 represents an example of an encoding device, and the destination device 120 represents an example of a decoding device. In other examples, the source device 100 and the destination device 120 may include other components or arrangements. For example, the source device 100 may receive data (e.g., point cloud data) from an internal or external source. Similarly, the destination device 120 may interface with an external data consumer instead of including the data consumer in the same device.
[0032] In general, the data source 112 represents a source of point cloud data (i.e., raw, unencoded point cloud data) and can provide a continuous series of "frames" of point cloud data to the GPCC encoder 116, which encodes the point cloud data for the frames. In some examples, the data source 112 generates point cloud data. The data source 112 of the source device 100 can include a point cloud capture device, such as any of a variety of cameras or sensors, for example, one or more cameras, an archive covering previously captured point cloud data, a 3D scanner or a light radar (LIDAR) device, and / or a data feed interface for receiving point cloud data from a data content provider. Therefore, in some examples, the data source 112 can generate point cloud data based on a signal from a LIDAR device. Alternatively or additionally, the point cloud data can be generated by a scanner, camera, sensor, or other data through a computer. For example, the data source 112 can generate point cloud data, or a combination of real-time point cloud data, archived point cloud data, and computer-generated point cloud data. In each case, the GPCC encoder 116 encodes captured, pre-captured, or computer-generated point cloud data. For encoding and decoding, the GPCC encoder 116 can rearrange the frames of the point cloud data from the received order (sometimes referred to as "display order") to the encoding and decoding order. The GPCC encoder 116 can generate one or more bit streams containing encoded point cloud data. The source device 100 can then output the encoded point cloud data via the I / O interface 118 for reception and / or retrieval by, for example, the I / O interface 128 of the destination device 120. The encoded point cloud data can be transmitted directly to the destination device 120 via the network 130A via the I / O interface 118. The encoded point cloud data can also be stored on the storage medium / server 130B for access by the destination device 120.
[0033] The memory 114 of the source device 100 and the memory 124 of the destination device 120 may represent general purpose memory. In some examples, the memory 114 and the memory 124 may be stored with raw point cloud data, for example, raw point cloud data from the data source 112 and raw, decoded point cloud data from the GPCC decoder 126. Additionally or alternatively, the memory 114 and the memory 124 may be stored with software instructions executable by, for example, the GPCC encoder 116 and the GPCC decoder 126, respectively. Although in this example, the memory 114 and the memory 124 are shown separately from the GPCC encoder 116 and the GPCC decoder 126, it should be understood that the GPCC encoder 116 and the GPCC decoder 126 may also include internal memory for functionally similar or equivalent purposes. In addition, the memory 114 and the memory 124 may be stored with encoded point cloud data, for example, output from the GPCC encoder 116 and input to the GPCC decoder 126. In some examples, portions of memory 114 and memory 124 may be allocated as one or more buffers, for example, to store raw, decoded, and / or encoded point cloud data.For example, memory 114 and memory 124 may store point cloud data.
[0034] I / O interface 118 and I / O interface 128 may represent a wireless transmitter / receiver, a modem, a wired network component (e.g., an Ethernet card), a wireless communication component that operates according to any of a variety of IEEE 802.11 standards, or other physical components. In examples where I / O interface 118 and I / O interface 128 include wireless components, I / O interface 118 and I / O interface 128 may be configured to transmit data, such as encoded point cloud data, according to a cellular communication standard (e.g., 4G, 4G-LTE (Long Term Evolution), LTE Advanced, 5G, etc.). In some examples where I / O interface 118 includes a wireless transmitter, I / O interface 118 and I / O interface 128 may be configured to transmit data, such as encoded point cloud data, according to other wireless standards (e.g., IEEE 802.11 specifications). In some examples, source device 100 and / or destination device 120 may include corresponding system-on-chip (SoC) devices. For example, source device 100 may include a SoC device to perform the functions attributed to GPCC encoder 116 and / or I / O interface 118 , and destination device 120 may include a SoC device to perform the functions attributed to GPCC decoder 126 and / or I / O interface 128 .
[0035] The techniques disclosed herein may be applied to encoding and decoding to support any of a variety of applications, such as communications between autonomous vehicles, communications between scanners, cameras, sensors and processing devices (e.g., local or remote servers), geographic mapping, or other applications.
[0036] The I / O interface 128 of the destination device 120 receives the encoded bitstream from the source device 110, and the encoded bitstream may contain signaling information defined by the GPCC encoder 116, which is also used by the GPCC decoder 126, such as a syntax element having a value representing a point cloud. The data consumer 122 uses the decoded data. For example, the data consumer 122 can use the decoded point cloud data to determine the location of the object point. In some examples, the data consumer 122 may include a display to present an image based on the point cloud data.
[0037] Each of the GPCC encoder 116 and the GPCC decoder 126 may be implemented as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the technology is partially implemented in software, the device may store instructions for the software in a suitable, non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the technology of the present disclosure. Each of the GPCC encoder 116 and the GPCC decoder 126 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder / decoder (CODEC) in a corresponding device. A device including the GPCC encoder 116 and / or the GPCC decoder 126 may include one or more integrated circuits, microprocessors, and / or other types of devices.
[0038] The GPCC encoder 116 and the GPCC decoder 126 may operate according to a codec standard, such as the Video Point Cloud Compression (VPCC) standard or the Geometry Point Cloud Compression (GPCC) standard. The present disclosure may generally refer to the coding and decoding of frames (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).
[0039] A point cloud can cover a set of points in 3D space and can have attributes associated with the point. The attribute can be color information such as R, G, B or Y, Cb, Cr or reflectivity information, or other attributes. Point clouds can be captured by various cameras or sensors such as LiDAR sensors and 3D scanners, or they can be generated by computers. Point cloud data is used in a variety of applications, including but not limited to architecture (modeling), mapping (3D models for visualization and animation), and the automotive industry (LiDAR sensors to help navigation).
[0040] Figure 2is a block diagram showing an example of a GPCC encoder 200 according to some embodiments of the present disclosure, which may be Figure 1 An example of a GPCC encoder 116 in the system 100 is shown. Figure 3 is a block diagram showing an example of a GPCC decoder 300 according to some embodiments of the present disclosure, which may be Figure 1 An example of a GPCC decoder 126 in the system 100 is shown.
[0041] In the GPCC encoder 200 and the GPCC decoder 300, the point cloud position is first encoded and decoded. The attribute encoding and decoding depends on the decoded geometry. Figure 2 and Figure 3 , the region adaptive hierarchical transform (RAHT) unit 218, the surface approximation analysis unit 212, the RAHT unit 314, and the surface approximation synthesis unit 310 are options that are commonly used for category 1 data. The level of detail (LOD) generation unit 220, the lifting unit 222, the LOD generation unit 316, and the inverse lifting unit 318 are options that are commonly used for category 3 data. All other units are common between category 1 and category 3.
[0042] For category 3 data, the compressed geometry is typically represented as an octree from the root down to the leaf level for each voxel. For category 1 data, the compressed geometry is typically represented by a pruned octree (i.e., an octree from the root down to the leaf level for blocks larger than a voxel) plus a model that approximates the surface within each leaf of the pruned octree. In this way, category 1 and category 3 data share the octree codec mechanism, while category 1 data can additionally approximate the voxels within each leaf with a surface model. The surface model used is a triangulation of 1 to 10 triangles per block, resulting in a triangle soup. Therefore, category 1 geometry codecs are called triangle soup geometry codecs, while category 3 geometry codecs are called octree geometry codecs.
[0043] exist Figure 2 In the example, the GPCC 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.
[0044] like Figure 2As shown in the example of , the GPCC encoder 200 can receive a set of positions and a set of attributes. The positions can include the coordinates of the points in the point cloud. The attributes can include information about the points in the point cloud, such as the color associated with the points in the point cloud.
[0045] The coordinate transformation unit 202 may apply a transformation to the coordinates of the point to transform the coordinates from the initial domain to the transformed domain. The present 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.
[0046] 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 subsumed into a single "voxel", which may thereafter be considered as a point in some aspects. In addition, the octree analysis unit 210 may generate an octree based on the voxelized transformed coordinates. Additionally, in Figure 2 In the example of , the surface approximation analysis unit 212 can analyze the points to potentially determine a surface representation of the set of points. The arithmetic coding unit 214 can perform arithmetic coding on syntax elements representing information of the octree and / or the surface determined by the surface approximation analysis unit 212. The GPCC encoder 200 can output these syntax elements in a geometry bitstream.
[0047] The geometric reconstruction unit 216 may reconstruct the transformed coordinates of the points in the point cloud based on the octree, the 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 be different from the number of original points of the point cloud. The present disclosure may refer to the resulting points as reconstructed points. The attribute transfer unit 208 may transfer the attributes of the original points of the point cloud to the reconstructed points of the point cloud data.
[0048] In addition, the RAHT unit 218 may apply RAHT coding to the attributes of the reconstruction points. Alternatively or additionally, the LOD generation unit 220 and the lifting unit 222 may apply LOD processing and lifting, respectively, to the attributes of the reconstruction points. The RAHT unit 218 and the lifting unit 222 may generate coefficients based on the attributes. The coefficient quantization unit 224 may quantize the coefficients generated by the RAHT unit 218 or the lifting unit 222. The arithmetic coding unit 226 may apply arithmetic coding to the syntax elements representing the quantized coefficients. The GPCC encoder 200 may output these syntax elements in the attribute bitstream.
[0049] exist Figure 3In the example, the GPCC 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, an LOD generation unit 316, an inverse lifting unit 318, an inverse coordinate transformation unit 320, and a color inverse transformation unit 322.
[0050] The GPCC decoder 300 may obtain a geometry bitstream and an attribute bitstream. The geometry arithmetic decoding unit 302 of the decoder 300 may apply arithmetic decoding (e.g., CABAC or other types of arithmetic decoding) to syntax elements in the geometry bitstream. Similarly, the attribute arithmetic decoding unit 304 may apply arithmetic decoding to syntax elements in the attribute bitstream.
[0051] The octree synthesis unit 306 may synthesize the octree based on the syntax elements parsed from the geometry bitstream. In the case where surface approximation is used in the geometry bitstream, the surface approximation synthesis unit 310 may determine the surface model based on the syntax elements parsed from the geometry bitstream and based on the octree.
[0052] Furthermore, the geometry reconstruction unit 312 may perform reconstruction to determine the coordinates of the points in the point cloud. The coordinate inverse transformation unit 320 may apply an inverse transformation 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.
[0053] 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 a syntax element obtained from the property bitstream (eg, including a syntax element decoded by the property arithmetic decoding unit 304).
[0054] Depending on how the attribute values are encoded, the RAHT unit 314 may perform RAHT encoding and decoding to determine the color values of the points in the point cloud based on the inverse quantized attribute values. Alternatively, the LOD generation unit 316 and the inverse lifting unit 318 may use a level of detail based technique to determine the color values of the points in the point cloud.
[0055] In addition, Figure 3 In the example of , the color inverse transform unit 322 can apply an inverse color transform to the color value. The inverse color transform can be the inverse of the color transform applied by the color transform unit 204 of the encoder 200. For example, the color transform unit 204 can transform the color information from the RGB color space to the YCbCr color space. Therefore, the color inverse transform unit 322 can transform the color information from the YCbCr color space to the RGB color space.
[0056] Figure 2 and Figure 3Various units are shown to help understand the operations performed by the encoder 200 and the decoder 300. These units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Fixed-function circuits refer to circuits that provide specific functions and are preset on the operations that can be performed. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functions in the operations that can be performed. For example, a programmable circuit can execute software or firmware that causes the programmable circuit to operate in a manner defined by the instructions of the software or firmware. Fixed-function circuits can execute software instructions (for example, to receive parameters or output parameters), but the types of operations performed by fixed-function circuits are generally immutable. In some examples, one or more of these units may be different circuit blocks (fixed-function or programmable), and in some examples, one or more of these units may be integrated circuits.
[0057] Some exemplary embodiments of the present disclosure are described in detail below. It should be understood that the section titles used in this document are for ease of understanding and do not limit the embodiments disclosed in the section to only that section. In addition, although some embodiments are described with reference to GPCC or other specific point cloud codecs, the disclosed techniques are also applicable to other point cloud codec technologies. In addition, although some embodiments describe the point cloud codec steps in detail, it should be understood that the corresponding decoding steps of undoing the codec will be implemented by the decoder. 1. Brief Overview The present disclosure relates to point cloud codec technology. In particular, it relates to point cloud low-latency codec. These ideas can be applied to any point cloud codec standard or non-standard point cloud codec, such as the geometry-based point cloud compression (G-PCC) under development, either alone or in various combinations. 2. Abbreviations G-PCC Geometry-based Point Cloud Compression MPEG Moving Picture Experts Group 3DG 3D Graphics Codec Group CFP Call for Proposals V-PCC video-based point cloud compression RAHT Region Adaptive Hierarchical Transform LOD Level of Detail SPS sequence parameter set APS attribute parameter set GPS geometry parameter set 3. Introduction MPEG is the abbreviation of Video Coding Experts Group (Moving Picture Experts Group), which is one of the main standardization groups dealing with multimedia. In 2017, the MPEG 3D Graphics Coding Group (3DG) released a call for proposals (CFP) document to start the development of point cloud coding and decoding standards. The final standard will include two types of schemes. Video-based point cloud compression (V-VPCC) is suitable for point sets with relatively uniform point distribution. Geometry-based point cloud compression (G-GPCC) is suitable for more sparse distributions. Both V-PCC and G-PCC support encoding and decoding of single point clouds and point cloud sequences. In a point cloud, there may be geometric information and attribute information. Geometric information is used to describe the geometric position of data points. Attribute information is used to record some details of data points, such as texture, normal vector, reflection, etc. Point cloud codecs can handle various information in different ways. Usually there are many optional tools in the codec to support the encoding and decoding of geometric information and attribute information respectively. There is a strong demand for low latency for fast transmission / analysis in some point cloud data applications (such as 3D mapping and automotive applications). One of the definitions of low latency is as follows. On the encoder side, low latency is defined as the end-to-end size of the buffer of constrained points, which includes receiving the point at the encoder input at one end to outputting the encoded and decoded data sufficient to represent the 3D position and / or attributes of the point in the bitstream at the other end. On the decoder side, low latency is defined as the end-to-end size of the buffer of constrained points, which includes receiving data sufficient to represent a decoded point in the bitstream at one end to outputting the decoded 3D position and / or attributes of the decoded point at the other end. It can be simply explained that given a list of input points, the end-to-end latency is the maximum distance a point can be shifted in the list. In G-PCC, there are two levels of codec tools that support low-latency applications. One level is the slice-level low-latency tool. The other level is the intra-slice low-latency tool. 3.1 Slice-level low-latency tools In G-PCC, a point cloud frame can be divided into several slices that can be encoded and decoded independently. A slice is a list of points. The slice-based codec structure has many advantages, such as supporting parallel encoding and decoding, avoiding error propagation, and supporting low latency. G-PCC has adopted several slicing methods. Only one slicing method is as follows: given a list of input points, a new slice is generated for every n points. The encoding and decoding delay of a frame can be controlled by the value of n. The smaller the value of n, the lower the delay. 3.2 Geometry Low Latency Tools within a Slice There are three optional geometry codec tools in G-PCC. They are octree geometry coding, triangle set geometry coding and predicted geometry coding. Only predicted geometry coding supports low-latency applications. Octree geometry encoding utilizes the spatial correlation of point cloud geometry. If the geometry encoding and decoding tool is enabled, the bounding box of the cube axis-aligned associated with the octree root node is determined based on the point cloud geometry information. The bounding box will then be subdivided into 8 sub-cubes, which are associated with the 8 child nodes of the root node (cubes are equivalent to nodes below). Then an 8-bit code is generated in a specific order to indicate whether the 8 child nodes contain points respectively, with one bit associated with a child node. The bit associated with a child node is named the occupancy bit, and the generated 8-bit code is named the occupancy code. The generated occupancy code will be signaled according to the occupancy information of the neighboring nodes. Then, the node containing only points will be further subdivided into 8 child nodes. This process will be recursively performed until the node size is 1. Therefore, the point cloud geometry information is converted into an occupancy code sequence. Triangle collection geometry encoding is a geometry codec option that represents the object surface as a series of triangle meshes. It is suitable for dense surface point clouds. The decoder generates a point cloud from the mesh surface at a specified voxel granularity so that it ensures the density of the reconstructed point cloud. As an alternative to octree geometry coding and triangle set geometry coding, predictive geometry coding is introduced. It supports low-latency applications and has low-complexity decoding. Its main target is sparse point cloud content. It starts with defining a prediction structure on the point cloud. This structure can be described by a prediction tree, where each point in the point cloud is associated with a vertex of the tree. Each vertex can only predict its ancestor in the tree. Various prediction strategies are possible, such as no prediction, incremental prediction, linear prediction, and parallelogram prediction. The tree structure is encoded as traversing the tree in depth order and encoding the number of its child nodes for each vertex. The position of the vertex is encoded by storing the selected prediction mode and the obtained prediction residual. Arithmetic coding is used to further compress the generated values. Constructing the optimal prediction tree is an NP-hard problem. The encoder can use different heuristics to construct suboptimal prediction trees that provide various trade-offs. For supporting low latency applications, the predictive geometry codec supports window-based prediction. In this case, the encoder processes the points in the same order as they are received. A finite size buffer is used to limit system latency. When looking for the best predictor for each vertex, the encoder will only consider the points in the buffer. In other words, the prediction tree structure is generated every n points. Similar to the low latency slicing method, the codec latency can be controlled by the value of n. The smaller the value of n, the lower the latency. 3.3 Low-latency tools for attributes within slices There are three optional attribute codec tools in G-PCC. They are prediction transform, lifting transform and RAHT. By imposing certain restrictions, prediction transform and lifting transform can support low-latency applications. Prediction transform is a hierarchical nearest neighbor prediction method based on interpolation, which is usually used for sparse point cloud content. Prediction transform depends on the LOD structure, which distributes the input points in a set of refinement levels. And it includes 1) LOD generation, 2) nearest neighbor search, and 3) attribute prediction. In the LOD generation process, geometric information is then used to build a hierarchical structure of the point cloud, which defines a set of LODs. The hierarchical structure is used to effectively predict attributes. Advanced functions such as progressive transmission and scalable rendering can also be provided. In the nearest neighbor search process, G-PCC will find up to three nearest neighbors for each point from the points that have been encoded / decoded. In the attribute prediction process, a linear interpolation process based on the distance of the most three nearest neighbors will be used to predict the current point attribute. In the prediction transform, the Morton order of the points in ascending order according to the Morton code associated with the point is used to help search for the nearest point. This is because the smaller the difference between the Morton codes of the two points, the closer they may be. When the number of LODs is equal to 1, the prediction structure of the prediction transform will be simplified. First, the points are sorted in ascending order according to their associated Morton codes. Let I be the array of point indices sorted according to this process. Then, the encoder / decoder compresses / decompresses the points respectively according to the order defined by I. In each iteration i, point P i Selected. i The distances to s (eg, s=128) previous points are analyzed and at most three P i The nearest neighbors of are selected to be used for prediction in the same way as above. The lifting transform is usually used for dense point cloud content and is built on top of the prediction transform. In the lifting transform, each point is associated with an influence weight. Points in lower LODs are used more frequently and therefore affect the encoding process more significantly. The influence weight will be used to guide the quantization process. The main difference is that the lifting transform introduces an update operator and uses an adaptive quantization strategy. Prediction transform and lifting transform can support low latency applications. In low latency applications, the number of LODs is set to 1 and the Morton sorting process is skipped. If the number of LODs is greater than 1 or the points are reordered, the point processing order for attribute decoding relative to the processing order for geometry encoding and decoding will definitely be changed. The mismatch in processing order will introduce delays between geometry and attributes, which may affect end-to-end latency. 3.4 Classification of Codec Parameters There are some codec parameters in the encoder to control the encoding of the point cloud. Some of them are signaled to the decoder to support the decoding process. The parameters can be categorized and stored in several clusters according to the affected part of each parameter, such as the Geometry Parameter Set (GPS), Attribute Parameter Set (APS) and Sequence Parameter Set (SPS). Parameters that control the geometry codec tools are stored in the GPS. Parameters that control the attribute codec tools are stored in the APS. For example, parameters that describe the attribute categories of the point cloud sequence and the data precision of the encoding and decoding process are stored in the SPS. 4. Question The current design of the point cloud low-latency tool in G-PCC has the following problems: 1. For the intra-slice attribute low-latency tool, the Morton sorting process is skipped for all points in the slice. However, this design is not flexible enough compared to the intra-slice geometric low-latency tool, whose latency can be controlled by variables. On the other hand, the intra-slice latency cannot be configured according to different latency requirements. 2. For the geometric low-latency tool within a slice, a prediction tree structure is generated for every n points. However, in the absence of latency, that is, the value of n is equal to 1, not every point will be predicted, and the encoding and decoding performance is limited. 3. In predictive geometry coding, the number of children of each node is always signaled to build the tree structure. However, for some tree structures, such as when the number of child nodes of each node is always equal to 1 (except for leaf nodes), there is no need to signal the number of child nodes information. 5. Detailed solution In order to solve the above problems and some unmentioned problems, the method outlined below is disclosed. The embodiments should be considered as examples to explain the general concept and should not be interpreted in a narrow manner. In addition, these embodiments can be applied individually or in combination in any way. A coding unit such as a block, box, cube, slice, partition, frame, or any other unit may refer to a unit related to a set of points in a PCC. 1) The sorting variables can be used to control the sorting process inside the codec unit. a. In one example, the encoding and decoding unit may be a slice, a block, a frame, etc. b. In one example, points can be ordered according to their associated transform codecs. i. In one example, the conversion codec can be Morton code, Hilbert code, Gray code, etc. ii. In one example, the sorting process may be performed in ascending or descending order. c. In one example, points within a codec unit can be processed by segmentation during the sorting process. i. The sorting segments in the codec unit can be generated based on the sorting variables. ii. In one example, the segment may be generated every N points in the codec unit. 1. In one example, N is controlled by a sorting variable. 2. In one example, the function between the sorting variable and N can be a linear function, a power function, an exponential function, a piecewise function, etc. iii. Alternatively, the number of points in different segments may be different. 1. In one example, the number of points in different segments can be generated by sorting variables. 2. In one example, the function between the sorting variable and the number of points in a segment can be a linear function, a power function, an exponential function, a piecewise function, etc. iv. In one example, if the sort variable is equal to a certain value, the sorting process can be disabled. d. In one example, the ordering variable may be signaled to the decoder in bitstream units. i. In one example, the bitstream unit may be a slice header, an attribute slice header, a geometry slice header, an APS, a GPS, an SPS, etc. ii. In one example, the sorting variable may be encoded using a fixed length codec, a unary codec, a truncated unary codec, etc. iii. In one example, the ordinal variables may be encoded in a predictive manner. e. In one example, the ranking variable can be derived from the decoded information. i. In one example, the decoded information may come from a slice header, an attribute slice header, a geometry slice header, APS, GPS, SPS, etc. 2) An indicator can be used to indicate whether the sorting variable is enabled. a. In one example, the indicator may be a binary value. i. In one example, if the value of the indicator is equal to X (eg, X=1), the sorting variable is disabled, ie, all sorting is enabled. Otherwise (if equal to (1-X)), the sorting variable is enabled. b. The indicator may be signaled to the decoder in bitstream units. i. In one example, the bitstream unit may be a slice header, an attribute slice header, a geometry slice header, an APS, a GPS, an SPS, etc. ii. In one example, the indicator may be encoded using fixed length codec, unary codec, truncated unary codec, exponential Golomb codec, etc. iii. In one example, the indicator may be encoded in a predictive manner. iv. The indicator may be encoded using at least one context. v. Indicators can be bypassed. c. Alternatively, the indicator may be derived at the decoder. 3) The above sorting process can be used for attribute encoding and decoding, geometry encoding and decoding and some other encoding and decoding processes. 4) An indicator may be used to indicate whether the tree structure of the prediction geometry codec is fully signaled. a. In one example, the tree structure information may consist of parent information, child information, etc. b. In one example, the tree structure information can be fully signaled to the decoder. c. Alternatively, the tree structure information may be partially signaled to the decoder. d. Alternatively, the tree structure information may not be signaled to the decoder. e. In one example, the indicator may be a binary value. i. In one example, if the value of the indicator is equal to X (eg, X=1), the tree structure of the predictive geometry codec is fully signaled. Otherwise (if it is equal to (1-X)), the tree structure of the predictive geometry codec is not signaled. f. In one example, the indicator may be a predefined value. i. In one example, if the value of the indicator is equal to X, the tree structure of the prediction geometry codec is fully signaled; if it is equal to Y, the tree structure of the prediction geometry codec is partially signaled; If equal to Z, the tree structure information may not be signaled. g. The indicator may be signaled to the decoder in bitstream units. i. In one example, the bitstream unit may be a slice header, an attribute slice header, a geometry slice header, an APS, a GPS, an SPS, etc. ii. In one example, the indicator may be encoded using a fixed length codec, a unary codec, a truncated unary codec, etc. iii. In one example, the indicator may be encoded in a predictive manner. iv. The indicator may be encoded or decoded using at least one context. v. Indicator can be bypassed codec. h. Alternatively, the indicator may be derived at the decoder. 6. Examples Example encoding and decoding process 400 for the improved point cloud low latency tool Figure 4 . First, at box 410, the value of the sorting variable will be derived. On the decoder side, it can be derived by input encoding parameters. On the decoder side, it can be derived by decoded information. Secondly, at box 420, the number of points in a segment will be inferred based on the value of the sorting variable. The function between the sorting variable and the number of points in a segment will be predefined. Thirdly, at box 430, the points will be sorted by segment based on the number of points in a segment. Finally, at box 440, the point cloud attributes will be encoded and decoded based on the sorted point order. Another example encoding and decoding process 500 for the improved point cloud low latency tool is Figure 5 . In this example, geometry improvement is applied. First, at box 510, a tree structure of a predictive geometry codec signaling indicator will be derived. On the encoder side, the indicator can be derived by input coding parameters. On the decoder side, the indicator can be derived by decoded information. At box 520, it is determined whether the tree structure is signaled. If the tree structure is signaled according to the indicator, then at box 530, the tree structure will be signaled when encoding and decoding geometry information in the predictive geometry codec. Otherwise, the tree structure will not be signaled when encoding and decoding geometry information in the predictive geometry codec. Secondly, at box 540, the value of the sorting variable will be derived. On the decoder side, it can be derived by input coding parameters. On the decoder side, it can be derived by decoded information. Third, at box 550, the number of points in a segment is inferred based on the value of the sorting variable. The function between the sorting variable and the number of points in a segment will be predefined. Then, at box 560, the points will be sorted by segment according to the number of points in a segment. Finally, at block 570 , the point cloud attributes are encoded and decoded according to the sorted point order.
[0058] Embodiments of the present disclosure relate to point ordering and tree structure information for point cloud encoding and decoding. As used herein, the term "point cloud sequence" may refer to a sequence of one or more point clouds. The term "frame" may refer to a point cloud in a point cloud sequence. The term "point cloud" may refer to a frame in a point cloud sequence. The term "codec unit" may refer to a block, box, cube, slice, tile, frame, or any other unit involving a set of points in a PCC.
[0059] Figure 6 A flow chart of a method 600 for point cloud encoding and decoding according to an embodiment of the present disclosure is shown. The method 600 may be implemented for conversion between a current video block of a point cloud sequence and a bitstream of a point cloud sequence. For example, the current encoding and decoding unit may include one of the following: a slice, a block, a frame, or other encoding and decoding units involving at least one point of the point cloud sequence.
[0060] like Figure 6As shown, method 600 begins at block 610, where a plurality of points of a current video unit are determined. At block 620, the plurality of points are sorted based at least on a sorting parameter. As used herein, the term "sorting parameter" may also be referred to as a "sorting variable." By sorting the plurality of points based on the sorting parameter, sorting delay may be reduced. Thus, encoding and decoding efficiency may be improved.
[0061] At block 630, converting is performed based on the plurality of ordered points. In some embodiments, converting may include encoding the current codec unit into a bitstream. Alternatively or additionally, converting may include decoding the current codec unit from the bitstream.
[0062] In some embodiments, at block 620, the plurality of points are sorted based on associated transformation codec types of the plurality of points. As an example, the associated transformation codec type includes at least one of: a Morton code, a Hilbert code, or a Gray code.
[0063] In some embodiments, at block 620 , the plurality of points may be sorted in ascending or descending order.
[0064] In some embodiments, sorting the plurality of points comprises: grouping the plurality of points into at least one segment of points; and sorting the at least one segment of points. In this way, the latency of the sorting process can be reduced, and thus a low latency tool can be implemented.
[0065] In some embodiments, a plurality of points are grouped into at least one segment of points based on a sorting parameter. That is, a sorted segment (also referred to as a segment) in a current coding unit may be generated according to the sorting parameter. The sorted segment may be sorted.
[0066] In some embodiments, a target number of points from a plurality of points may be added to a segment of at least one segment. For example, a segment may be generated at every N points in a codec unit. N is an integer. As used herein, "N" may be referred to as a target number.
[0067] In some embodiments, the target number is associated with a sorting parameter. That is, N is controlled by the sorting parameter. In some embodiments, the association between the target number and the sorting parameter includes one of the following: a linear association, a power association, an exponential association, or a piecewise association. For example, the function between the sorting parameter and N can be a linear function, a power function, an exponential function, a piecewise function, etc.
[0068] In some embodiments, a first number of points in a first segment of at least one segment is different from a second number of points in a second segment of at least one segment. That is, the number of points in different segments may be different.
[0069] In some embodiments, the method 600 further includes: determining at least one number for at least one segment based on a sorting parameter. For example, the number of points in different segments may be generated by the sorting parameter.
[0070] In some embodiments, at least one number is determined by using an association between at least one number and a ranking parameter, the association comprising one of: a linear association, a power association, an exponential association, or a piecewise association. For example, the function between the ranking parameter and the number of points in a segment may be a linear function, a power function, an exponential function, a piecewise function, etc.
[0071] In some embodiments, the sorting parameter is a predefined value and sorting of the plurality of points is disabled. For example, if the sorting parameter is equal to a certain value, the sorting process may be disabled.
[0072] In some embodiments, the ordering parameters are in bitstream units in the bitstream. For example, the ordering parameters may be signaled to a decoder in bitstream units.
[0073] In some embodiments, the bitstream unit includes at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0074] In some embodiments, the ordering parameter is encoded using at least one of: a fixed length codec, a unary codec, or a truncated unary codec.
[0075] In some embodiments, the ordering parameters are encoded using predictive encoding and decoding tools. That is, the ordering parameters can be encoded in a predictive manner.
[0076] In some embodiments, the method 600 further includes: determining a sorting parameter based on the decoded information. That is, the sorting parameter can be derived from the decoded information.
[0077] In some embodiments, the decoded information is in at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0078] In some embodiments, an indicator indicating that the ordering parameter is enabled is included in a bitstream unit in the bitstream. For example, the indicator can be used to indicate whether the ordering parameter is enabled. The indicator can be signaled to a decoder in a bitstream unit.
[0079] In some embodiments, the bitstream unit includes at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0080] In some embodiments, the indicator is encoded using at least one of: a fixed length codec, a unary codec, a truncated unary codec, or an exponential Golomb codec.
[0081] In some embodiments, the indicator is encoded using a predictive encoding and decoding tool. That is, the indicator can be encoded in a predictive manner.
[0082] In some embodiments, the indicator is encoded using at least one context.
[0083] In some embodiments, the indicator is bypassed by the codec.
[0084] In some embodiments, the method 600 further comprises: determining an indicator indicating that the ordering parameter is enabled at a decoding side associated with the conversion. For example, the indicator may be derived at a decoder.
[0085] In some embodiments, the indicator is a binary value.
[0086] In some embodiments, the indicator is a first binary value, the sorting parameter is disabled, and the sorting of the plurality of points is enabled. In some embodiments, the indicator is a second binary value, and the sorting parameter is enabled. For example, the first binary value is 1 and the second binary value is 0. For another example, the first binary value is 0 and the second binary value is 1.
[0087] In some embodiments, the sorting of the multiple points is used in at least one of: an attribute encoding and decoding process, a geometry encoding and decoding process, or other encoding and decoding processes. That is, the sorting process described herein can be used in the attribute encoding and decoding process, the geometry encoding and decoding process, and some other processes.
[0088] According to another embodiment of the present disclosure, a non-transitory computer-readable recording medium is provided. A bit stream of a point cloud sequence is stored in a non-transitory computer-readable recording medium. The bit stream of the point cloud sequence is generated by a method performed by a point cloud sequence processing device. According to the method, a plurality of points of a current codec unit of the point cloud sequence are determined. The plurality of points are sorted based on at least a sorting parameter. A bit stream is generated based on the sorted plurality of points.
[0089] According to some further embodiments of the present disclosure, a method for storing a bitstream of a point cloud sequence is proposed. In the method, a plurality of points of a current codec unit of the point cloud sequence is determined. The plurality of points are sorted based on at least a sorting parameter. A bitstream is generated based on the sorted plurality of points. The bitstream is stored in a non-transitory computer-readable recording medium.
[0090] Figure 7 A flow chart of a method 700 for point cloud encoding and decoding according to an embodiment of the present disclosure is shown. The method 700 may be implemented for conversion between a current encoding and decoding unit of a point cloud sequence and a bit stream of the point cloud sequence. For example, the current encoding and decoding unit may include one of the following: a slice, a block, a frame, or other encoding and decoding units involving at least one point of the point cloud sequence.
[0091] like Figure 7 As shown, method 700 starts at block 710, and whether tree structure information of prediction geometry codec of the current codec unit is included in the bitstream is determined based on an indicator of the tree structure information. As used herein, the term "indicator of tree structure information" may be referred to as "indicator".
[0092] At block 720, converting is performed based on the determination. In some embodiments, converting may include encoding the current codec unit into a bitstream. Alternatively or additionally, converting may include decoding the current codec unit from a bitstream.
[0093] Method 700 enables determining whether tree structure information is included in a bitstream based on an indicator of the tree structure information. In this way, the latency of the conversion can be reduced, and thus a low latency tool can be implemented. Therefore, the coding efficiency can be improved.
[0094] In some embodiments, the tree structure information includes at least one of the following: parent information associated with a parent node of the tree structure of the current coding unit, or child information associated with at least one child node of the tree structure.
[0095] In some embodiments, the tree structure information is included in the bitstream, or portions of the tree structure information are included in the bitstream. For example, the tree structure information may be fully signaled to a decoder. Alternatively, the tree structure information may be partially signaled to a decoder.
[0096] In some embodiments, the tree structure information is not included in the bitstream.
[0097] In some embodiments, the indicator is a binary value.
[0098] In some embodiments, the indicator is a first binary value, and the indicator indicates that the tree structure information is included in the bitstream. Alternatively or additionally, in some embodiments, the indicator is a second binary value, and the indicator indicates that the tree structure information is not included in the bitstream. For example, the first binary value is 1 and the second binary value is 0. For another example, the first binary value is 0 and the second binary value is 1.
[0099] In some embodiments, the indicator is a predefined value.
[0100] In some embodiments, the indicator is a first predefined value, and the indicator indicates that the tree structure information is included in the bitstream.For example, if the value of the indicator is equal to the first predefined value, the tree structure of the predictive geometry codec is fully signaled.
[0101] In some embodiments, the indicator is a second predefined value, and the indicator indicates that part of the tree structure information is included in the bitstream.For example, if the value of the indicator is equal to the second predefined value, the tree structure of the predictive geometry codec is partially signaled.
[0102] In some embodiments, the indicator is a third predefined value, and the indicator indicates that the tree structure information is not included in the bitstream. For example, if the value of the indicator is equal to the third predefined value, the tree structure of the prediction geometry codec is not signaled.
[0103] In some embodiments, the indicator is included in a bitstream unit in the bitstream. For example, the indicator may be signaled to a decoder in a bitstream unit.
[0104] In some embodiments, the bitstream unit includes at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0105] In some embodiments, the indicator is encoded using at least one of: a fixed length codec, a unary codec, or a truncated unary codec.
[0106] In some embodiments, the indicator is encoded using predictive encoding and decoding tools. For example, the indicator can be encoded in a predictive manner.
[0107] In some embodiments, the indicator is encoded using at least one context.
[0108] In some embodiments, the indicator is bypassed by the codec.
[0109] In some embodiments, the method 700 further comprises: determining an indicator at a decoding side associated with the conversion. That is, the indicator may be derived at the decoder.
[0110] According to another embodiment of the present disclosure, a non-transitory computer-readable recording medium is provided. A bitstream of a point cloud sequence is stored in a non-transitory computer-readable recording medium. The bitstream of the point cloud sequence is generated by a method performed by a point cloud sequence processing device. According to the method, whether tree structure information of a predicted geometry codec of a current codec unit of the point cloud sequence is included in the bitstream is determined based on an indicator of the tree structure information. The bitstream is generated based on the determination.
[0111] According to some further embodiments of the present disclosure, a method for storing a bitstream of a point cloud sequence is proposed. In the method, whether tree structure information of a predicted geometry codec of a current codec unit of the point cloud sequence is included in the bitstream is determined based on an indicator of the tree structure information. The bitstream is generated based on the determination. The bitstream is stored in a non-transitory computer-readable recording medium.
[0112] It should be understood that the above method 600 and / or method 700 can be used in combination or alone. For example, an example combination of method 600 and method 700 can be Figure 5 The encoding and decoding process 500 in FIG. It should be understood that any suitable combination of these methods can be applied. The scope of the present disclosure is not limited in this regard.
[0113] By using these methods 600 and / or 700 individually or in combination, the latency of the conversion, especially the latency of the sorting process, can be reduced, and thus a low latency tool can be implemented. Therefore, the encoding and decoding efficiency can be improved. Therefore, the encoding and decoding effectiveness and encoding and decoding efficiency of the point cloud encoding and decoding can be improved.
[0114] Embodiments of the present disclosure may be described according to the following clauses, features of which may be combined in any reasonable way.
[0115] Clause 1. A method for point cloud encoding and decoding, comprising: determining multiple points of a current encoding and decoding unit of a point cloud sequence and a bit stream of the point cloud sequence for conversion between the current encoding and decoding unit; sorting the multiple points based on at least a sorting parameter; and performing the conversion based on the sorted multiple points.
[0116] Clause 2. The method of clause 1, wherein the current coding unit comprises one of the following: a slice, a block, or a frame.
[0117] Clause 3. The method of clause 1 or clause 2, wherein the plurality of points are ordered based on associated transform codec types of the plurality of points.
[0118] Clause 4. The method of clause 3, wherein the associated transform codec type comprises at least one of: Morton code, Hilbert code, or Gray code.
[0119] Clause 5. The method of any one of clauses 1-4, wherein sorting the plurality of points comprises sorting the plurality of points in ascending order or descending order.
[0120] Clause 6. The method of any one of clauses 1-5, wherein ordering the plurality of points comprises: grouping the plurality of points into at least one segment of points; and ordering the at least one segment of points.
[0121] Clause 7. The method of clause 6, wherein the plurality of points are grouped into at least one segment of the points based on the ordering parameter.
[0122] Clause 8. The method of clause 6 or clause 7, wherein grouping the plurality of points into at least one segment of points comprises adding a target number of points from the plurality of points to one segment of the at least one segment.
[0123] Clause 9. The method of clause 8, wherein the target number is associated with the sorting parameter.
[0124] Clause 10. The method according to clause 9, wherein the association between the target number and the sorting parameter comprises one of the following: linear association, power association, exponential association, or piecewise association.
[0125] Clause 11. The method of clause 6 or clause 7, wherein a first number of points in a first segment of the at least one segment is different from a second number of points in a second segment of the at least one segment.
[0126] Clause 12. The method of any of clauses 6-11, further comprising: determining at least one number for the at least one segment based on the sorting parameter.
[0127] Clause 13. The method according to clause 12, wherein the at least one number is determined by using an association between the at least one number and the sorting parameter, the association comprising one of: a linear association, a power association, an exponential association, or a piecewise association.
[0128] Clause 14. The method of any of clauses 1-13, wherein the sorting parameter is a predefined value and the sorting of the plurality of points is disabled.
[0129] Clause 15. The method of any of clauses 1-14, wherein the ordering parameter is in bitstream units in the bitstream.
[0130] Clause 16. The method of clause 15, wherein the bitstream unit comprises at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0131] Clause 17. The method of any one of clauses 1-16, wherein the ordering parameter is encoded using at least one of: a fixed length codec, a unary codec, or a truncated unary codec.
[0132] Clause 18. The method of any of clauses 1-17, wherein the ordering parameter is encoded using a predictive encoding and decoding tool.
[0133] Clause 19. The method of any of clauses 1-18, further comprising: determining the ordering parameter based on the decoded information.
[0134] Clause 20. The method of clause 19, wherein the decoded information is in at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0135] Clause 21. The method of any of clauses 1-20, wherein an indicator indicating that the ordering parameter is enabled is included in a bitstream unit in the bitstream.
[0136] Clause 22. The method of clause 21, wherein the bitstream unit comprises at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0137] Clause 23. The method of clause 21 or clause 22, wherein the indicator is encoded using at least one of: a fixed length codec, a unary codec, a truncated unary codec, or an exponential Golomb codec.
[0138] Clause 24. The method of any of clauses 21-23, wherein the indicator is encoded using a predictive encoding and decoding tool.
[0139] Clause 25. The method of any of clauses 21-24, wherein the indicator is encoded using at least one context.
[0140] Clause 26. The method of any of clauses 21-25, wherein the indicator is bypassed coded.
[0141] Clause 27. The method of any of clauses 1-20, further comprising: determining an indicator indicating that the ordering parameter is enabled at a decoding side associated with the conversion.
[0142] Clause 28. The method of any of clauses 21-27, wherein the indicator is a binary value.
[0143] Clause 29. The method of Clause 28, wherein the indicator is a first binary value, the sorting parameter is disabled, and the sorting of the plurality of points is enabled.
[0144] Clause 30. The method of clause 28 or clause 29, wherein the indicator is a second binary value and the sorting parameter is enabled.
[0145] Clause 31. A method according to any one of clauses 1-30, wherein the ordering of the plurality of points is used for at least one of: an attribute encoding and decoding process, a geometry encoding and decoding process, or other encoding and decoding process.
[0146] Clause 32. A method for point cloud encoding and decoding, comprising: for conversion between a current encoding and decoding unit of a point cloud sequence and a bit stream of the point cloud sequence, determining whether tree structure information of predicted geometric encoding and decoding of the current encoding and decoding unit is included in the bit stream based on an indicator of the tree structure information; and performing the conversion based on the determination.
[0147] Clause 33. The method of clause 32, wherein the current codec unit comprises one of: a slice, a block, or a frame.
[0148] Clause 34. A method according to clause 32 or clause 33, wherein the tree structure information includes at least one of the following: parent information associated with a parent node of the tree structure of the current codec unit, or child information associated with at least one child node of the tree structure.
[0149] Clause 35. A method according to any of clauses 32-34, wherein the tree structure information is included in the bitstream, or part of the tree structure information is included in the bitstream.
[0150] Clause 36. A method according to any of clauses 32-34, wherein the tree structure information is not included in the bitstream.
[0151] Clause 37. The method of any one of clauses 32-36, wherein the indicator is a binary value.
[0152] Clause 38. The method of clause 37, wherein the indicator is a first binary value, and the indicator indicates that the tree structure information is included in the bitstream.
[0153] Clause 39. The method of clause 37 or clause 38, wherein the indicator is a second binary value and the indicator indicates that the tree structure information is not included in the bitstream.
[0154] Clause 40. The method of any one of clauses 32-36, wherein the indicator is a predefined value.
[0155] Clause 41. The method of clause 40, wherein the indicator is a first predefined value, and the indicator indicates that the tree structure information is included in the bitstream.
[0156] Clause 42. The method of clause 40 or clause 41, wherein the indicator is a second predefined value and the indicator indicates that a portion of the tree structure information is included in the bitstream.
[0157] Clause 43. The method of any of clauses 40-42, wherein the indicator is a third predefined value and the indicator indicates that the tree structure information is not included in the bitstream.
[0158] Clause 44. The method of any of clauses 32-43, wherein the indicator is included in a bitstream unit in the bitstream.
[0159] Clause 45. The method of clause 44, wherein the bitstream unit comprises at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
[0160] Clause 46. The method of clause 44 or clause 45, wherein the indicator is encoded using at least one of: a fixed length codec, a unary codec, or a truncated unary codec.
[0161] Clause 47. The method of any one of clauses 44 to 46, wherein the indicator is encoded using a predictive encoding and decoding tool.
[0162] Clause 48. The method of any one of clauses 44 to 47, wherein the indicator is encoded using at least one context.
[0163] Clause 49. The method of any one of clauses 44 to 48, wherein the indicator is bypassed coded.
[0164] Clause 50. The method of any of clauses 32-49, further comprising: determining the indicator at a decoding side associated with the conversion.
[0165] Clause 51. A method according to any of clauses 1-50, wherein the converting comprises encoding the current codec unit into the bitstream.
[0166] Clause 52. The method of any one of clauses 1-50, wherein the converting comprises decoding the current codec unit from the bitstream.
[0167] Clause 53. An apparatus for processing point cloud data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of clauses 1 to 52.
[0168] Clause 54. A non-transitory computer-readable storage medium storing instructions for causing a processor to perform the method of any one of clauses 1 to 52.
[0169] Item 55. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence generated by a method performed by a point cloud processing device, wherein the method comprises: determining a plurality of points of a current codec unit of the point cloud sequence; sorting the plurality of points based at least on a sorting parameter; and generating the bitstream based on the sorted plurality of points.
[0170] Clause 56. A method for storing a bitstream of a point cloud sequence, comprising: determining a plurality of points of a current codec unit of the point cloud sequence; sorting the plurality of points based at least on a sorting parameter; generating the bitstream based on the sorted plurality of points; and storing the bitstream in a non-transitory computer-readable recording medium.
[0171] Item 57. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence generated by a method performed by a point cloud processing device, wherein the method comprises: determining whether tree structure information of predicted geometric codecs of a current codec unit of the point cloud sequence is included in the bitstream based on an indicator of the tree structure information; and generating the bitstream based on the determination.
[0172] Clause 58. A method for storing a bitstream of a point cloud sequence, comprising: determining whether tree structure information of predicted geometric coding of a current coding unit of the point cloud sequence is included in the bitstream based on an indicator of the tree structure information; generating the bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium. Example Device
[0173] Figure 8 A block diagram of a computing device 800 is shown in which various embodiments of the present disclosure may be implemented. The computing device 800 may be implemented as or included in the source device 110 (or GPCC encoder 116 or 200) or the destination device 120 (or GPCC decoder 126 or 300).
[0174] It should be understood that Figure 8 The computing device 800 shown in FIG. 8 is for illustrative purposes only and is not intended to in any way imply any limitation on the functionality and scope of the disclosed embodiments.
[0175] like Figure 8 As shown, computing device 800 includes a general computing device 800. Computing device 800 may include at least one or more processors or processing units 810, memory 820, storage unit 830, one or more communication units 840, one or more input devices 850, and one or more output devices 860.
[0176] In some embodiments, the computing device 800 can be implemented as any user terminal or server terminal with computing power. The server terminal can be a server provided by a service provider, a large computing device, etc. The user terminal can be, for example, any type of mobile terminal, fixed terminal or portable terminal, including a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet computer, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an electronic book device, a gaming device, or any combination thereof, and includes the accessories and peripherals of these devices, or any combination thereof. It is conceivable that the computing device 800 can support any type of interface to the user (such as a "wearable" circuit device, etc.).
[0177] The processing unit 810 may be a physical processor or a virtual processor and may implement various processes based on a program stored in the memory 820. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to improve the parallel processing capability of the computing device 800. The processing unit 810 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.
[0178] The computing device 800 typically includes various computer storage media. Such media can be any media accessible by the computing device 800, including but not limited to volatile media and non-volatile media, or removable media and non-removable media. The memory 820 can be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (such as a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM) or flash memory) or any combination thereof. The storage unit 830 can be any removable or non-removable medium, and can include machine-readable media, such as a memory, a flash drive, a disk, or other media that can be used to store information and / or data and can be accessed in the computing device 800.
[0179] The computing device 800 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Figure 8 Although not shown in the figure, a magnetic disk drive for reading from and / or writing to a removable nonvolatile magnetic disk and an optical disk drive for reading from and / or writing to a removable nonvolatile optical disk may be provided. In this case, each drive may be connected to the bus (not shown) via one or more data medium interfaces.
[0180] The communication unit 840 communicates with another computing device via a communication medium. In addition, the functions of the components in the computing device 800 can be implemented by a single computing cluster or multiple computing machines that can communicate via a communication connection. Therefore, the computing device 800 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general network nodes.
[0181] The input device 850 may be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. The output device 860 may be one or more of various output devices, such as a display, a speaker, a printer, etc. With the aid of the communication unit 840, the computing device 800 may also communicate with one or more external devices (not shown), such as storage devices and display devices, and the computing device 800 may also communicate with one or more devices that enable a user to interact with the computing device 800, or any device that enables the computing device 800 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.), if necessary. Such communication may be performed via an input / output (I / O) interface (not shown).
[0182] In some embodiments, some or all components of the computing device 800 may also be arranged in a cloud computing architecture rather than being integrated in a single device. In a cloud computing architecture, components may be provided remotely and work together to implement the functions described in the present disclosure. In some embodiments, cloud computing provides computing, software, data access and storage services, which will not require the end user to know the physical location or configuration of the system or hardware that provides these services. In various embodiments, cloud computing provides services via a wide area network (e.g., the Internet) using a suitable protocol. For example, a cloud computing provider provides applications via a wide area network, which can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture and the corresponding data may be stored on a remote server. The computing resources in a cloud computing environment may be merged or distributed at the location of a remote data center. Cloud computing infrastructures may provide services through a shared data center, although they appear as a single access point for users. Therefore, cloud computing architectures may be used to provide components and functions described herein from a service provider at a remote location. Alternatively, they may be provided by a conventional server, or installed directly or otherwise on a client device.
[0183] The computing device 800 may be used to implement point cloud encoding / decoding in the embodiments of the present disclosure, and the memory 820 may include one or more point cloud encoding / decoding modules 825 having one or more program instructions. These modules can be accessed and executed by the processing unit 810 to perform the functions of the various embodiments described herein.
[0184] In an example embodiment of performing point cloud encoding, an input device 850 may receive point cloud data as input to be encoded 870. The point cloud data may be processed by, for example, a point cloud codec module 825 to generate an encoded bitstream. The encoded bitstream may be provided as output 880 via an output device 860.
[0185] In an example embodiment of performing point cloud decoding, the input device 850 may receive an encoded bitstream as input 870. The encoded bitstream may be processed by, for example, the point cloud codec module 825 to generate decoded point cloud data. The decoded point cloud data may be provided as output 880 via the output device 860.
[0186] Although the present disclosure has been specifically shown and described with reference to the preferred embodiments of the present disclosure, it will be understood by those skilled in the art that various changes can be made in form and detail without departing from the spirit and scope of the present application as defined by the appended claims. These changes are intended to be encompassed by the scope of the present application. Therefore, the foregoing description of the embodiments of the present application is not intended to be limiting.
Claims
1. A method for point cloud encoding and decoding, comprising: For conversion between a current codec unit of a point cloud sequence and a bit stream of the point cloud sequence, determining a plurality of points of the current codec unit; sorting the plurality of points based at least on a sorting parameter; as well as The converting is performed based on the sorted plurality of points.
2. The method according to claim 1, wherein the current coding unit comprises one of the following: a slice, a block or a frame.
3. The method of claim 1 or claim 2, wherein the plurality of points are ordered based on their associated conversion codec types.
4. The method of claim 3, wherein the associated conversion codec type comprises at least one of the following: Morton Code, Hilbert codes, or Gray code.
5. The method according to any one of claims 1 to 4, wherein sorting the plurality of points comprises: The plurality of points are sorted in ascending or descending order.
6. The method according to any one of claims 1 to 5, wherein sorting the plurality of points comprises: grouping the plurality of points into at least one segment of points; as well as At least one segment of the points is sorted. The method of claim 6 , wherein the plurality of points are grouped into at least one segment of the points based on the sorting parameter.
8. The method of claim 6 or claim 7, wherein grouping the plurality of points into at least one segment of points comprises: A target number of points from the plurality of points is added to a segment of the at least one segment. The method of claim 8 , wherein the target number is associated with the sorting parameter.
10. The method according to claim 9, wherein the association of the target number with the ranking parameter comprises one of the following: Linear association, Power correlation, Exponential correlation, or Segmental association.
11. The method of claim 6 or claim 7, wherein a first number of points in a first segment of the at least one segment is different from a second number of points in a second segment of the at least one segment.
12. The method according to any one of claims 6 to 11, further comprising: At least one number is determined for the at least one segment based on the sorting parameter.
13. The method according to claim 12, wherein the at least one number is determined by using an association between the at least one number and the ranking parameter, the association comprising one of: Linear association, Power correlation, Exponential correlation, or Segmental association.
14. The method according to any one of claims 1-13, wherein the sorting parameter is a predefined value and the sorting of the plurality of points is disabled.
15. The method according to any one of claims 1-14, wherein the ordering parameters are in bitstream units in the bitstream.
16. The method of claim 15, wherein the bitstream unit comprises at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
17. The method according to any one of claims 1 to 16, wherein the ordering parameter is encoded using at least one of: Fixed length codec tools, Unary codec tools, or Truncated unary codec tool.
18. The method according to any one of claims 1-17, wherein the ordering parameters are encoded using a predictive encoding and decoding tool.
19. The method according to any one of claims 1 to 18, further comprising: The sorting parameter is determined based on the decoded information.
20. The method of claim 19, wherein the decoded information is in at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
21. The method according to any one of claims 1-20, wherein an indicator indicating that the ordering parameter is enabled is included in a bitstream unit in the bitstream.
22. The method of claim 21, wherein the bitstream unit comprises at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
23. The method of claim 21 or claim 22, wherein the indicator is encoded using at least one of: Fixed length codec tools, Unary codec tool, Truncated unary codec, or Exponential Columbus codec tool.
24. The method according to any one of claims 21-23, wherein the indicator is encoded using a predictive encoding and decoding tool.
25. The method according to any one of claims 21-24, wherein the indicator is encoded and decoded using at least one context.
26. The method according to any one of claims 21-25, wherein the indicator is bypassed coded.
27. The method according to any one of claims 1 to 20, further comprising: An indicator is determined that indicates that the ordering parameter is enabled on a decoding side associated with the conversion.
28. The method of any one of claims 21-27, wherein the indicator is a binary value.
29. The method of claim 28, wherein the indicator is a first binary value, the sorting parameter is disabled, and the sorting of the plurality of points is enabled.
30. A method according to claim 28 or claim 29, wherein the indicator is a second binary value and the sorting parameter is enabled.
31. The method according to any one of claims 1-30, wherein the ordering of the plurality of points is used for at least one of: an attribute encoding and decoding process, a geometry encoding and decoding process, or other encoding and decoding processes.
32. A method for point cloud encoding and decoding, comprising: For conversion between a current codec unit of a point cloud sequence and a bitstream of the point cloud sequence, determining whether tree structure information of predicted geometry codec of the current codec unit is included in the bitstream based on an indicator of the tree structure information; as well as The converting is performed based on the determination.
33. The method of claim 32, wherein the current coding unit comprises one of the following: a slice, a block, or a frame.
34. The method according to claim 32 or claim 33, wherein the tree structure information comprises at least one of the following: parent information associated with a parent node of the tree structure of the current coding unit, or child information associated with at least one child node of the tree structure.
35. The method according to any one of claims 32-34, wherein the tree structure information is included in the bitstream, or part of the tree structure information is included in the bitstream.
36. The method of any one of claims 32-34, wherein the tree structure information is not included in the bitstream.
37. A method according to any one of claims 32-36, wherein the indicator is a binary value.
38. The method of claim 37, wherein the indicator is a first binary value, and the indicator indicates that the tree structure information is included in the bitstream.
39. A method according to claim 37 or claim 38, wherein the indicator is a second binary value and the indicator indicates that the tree structure information is not included in the bitstream.
40. The method of any one of claims 32-36, wherein the indicator is a predefined value.
41. The method of claim 40, wherein the indicator is a first predefined value, and the indicator indicates that the tree structure information is included in the bitstream.
42. The method of claim 40 or claim 41, wherein the indicator is a second predefined value and the indicator indicates that part of the tree structure information is included in the bitstream.
43. The method according to any one of claims 40-42, wherein the indicator is a third predefined value, and the indicator indicates that the tree structure information is not included in the bitstream.
44. The method according to any one of claims 32-43, wherein the indicator is included in a bitstream unit in the bitstream.
45. The method of claim 44, wherein the bitstream unit comprises at least one of: a slice header, an attribute slice header, a geometry slice header, an attribute parameter set (APS), a geometry parameter set (GPS), or a sequence parameter set (SPS).
46. The method of claim 44 or claim 45, wherein the indicator is encoded using at least one of: Fixed length codec tools, Unary codec tools, or Truncated unary codec tool.
47. The method of any one of claims 44 to 46, wherein the indicator is encoded using a predictive encoding and decoding tool.
48. A method according to any one of claims 44 to 47, wherein the indicator is encoded and decoded using at least one context.
49. A method according to any one of claims 44 to 48, wherein the indicator is bypassed coded.
50. The method according to any one of claims 32-49, further comprising: The indicator is determined at a decoding side associated with the conversion.
51. The method of any one of claims 1-50, wherein the converting comprises encoding the current codec unit into the bitstream.
52. The method of any one of claims 1-50, wherein the converting comprises decoding the current codec unit from the bitstream.
53. An apparatus for processing point cloud data, comprising a processor and a non-volatile memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 52.
54. A non-transitory computer-readable storage medium storing instructions for causing a processor to execute the method according to any one of claims 1 to 52.
55. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence generated by a method performed by a point cloud processing device, wherein the method comprises: Determine a plurality of points of a current encoding and decoding unit of the point cloud sequence; sorting the plurality of points based at least on a sorting parameter; as well as The bitstream is generated based on the ordered plurality of points.
56. A method for storing a bitstream of a point cloud sequence, comprising: Determine a plurality of points of a current encoding and decoding unit of the point cloud sequence; sorting the plurality of points based at least on a sorting parameter; generating the bitstream based on the ordered plurality of points; as well as The bit stream is stored in a non-transitory computer-readable recording medium.
57. A non-transitory computer-readable recording medium storing a bitstream of a point cloud sequence generated by a method performed by a point cloud processing device, wherein the method comprises: Determining whether the tree structure information of the prediction geometry codec of the current codec unit of the point cloud sequence is included in the bitstream based on the indicator of the tree structure information; as well as The bitstream is generated based on the determination.
58. A method for storing a bit stream of a point cloud sequence, comprising: Determining whether the tree structure information of the prediction geometry codec of the current codec unit of the point cloud sequence is included in the bitstream based on the indicator of the tree structure information; generating the bitstream based on the determination; as well as The bit stream is stored in a non-transitory computer-readable recording medium.