WO2024065270A1 - Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositifs, et support de stockage - Google Patents

Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositifs, et support de stockage Download PDF

Info

Publication number
WO2024065270A1
WO2024065270A1 PCT/CN2022/122114 CN2022122114W WO2024065270A1 WO 2024065270 A1 WO2024065270 A1 WO 2024065270A1 CN 2022122114 W CN2022122114 W CN 2022122114W WO 2024065270 A1 WO2024065270 A1 WO 2024065270A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
current node
points
coordinate
point cloud
Prior art date
Application number
PCT/CN2022/122114
Other languages
English (en)
Chinese (zh)
Inventor
孙泽星
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to PCT/CN2022/122114 priority Critical patent/WO2024065270A1/fr
Publication of WO2024065270A1 publication Critical patent/WO2024065270A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the present application relates to the field of point cloud technology, and in particular to a point cloud encoding and decoding method, device, equipment and storage medium.
  • the surface of the object is collected by the acquisition device to form point cloud data, which includes hundreds of thousands or even more points.
  • the point cloud data is transmitted between the point cloud encoding device and the point cloud decoding device in the form of point cloud media files.
  • the point cloud encoding device needs to compress the point cloud data before transmission.
  • Point cloud compression is also called point cloud encoding.
  • different encoding models are used to correspond the points in the point cloud to nodes and encode the nodes, some of which include duplicate points.
  • the current encoding and decoding method for example, in the prediction tree-based point cloud encoding and decoding method, when encoding and decoding each node in the prediction tree, it is necessary to encode and decode the duplicate point information of the node, thereby reducing the encoding and decoding efficiency of the point cloud.
  • the embodiments of the present application provide a point cloud encoding and decoding method, apparatus, device and storage medium to reduce the complexity of encoding and decoding, save encoding and decoding time, and thereby improve the encoding and decoding efficiency of the point cloud.
  • an embodiment of the present application provides a point cloud decoding method, comprising:
  • the current node is decoded.
  • the present application provides a point cloud encoding method, comprising:
  • the current node is encoded.
  • the present application provides a point cloud decoding device for executing the method in the first aspect or its respective implementations.
  • the device includes a functional unit for executing the method in the first aspect or its respective implementations.
  • the present application provides a point cloud encoding device for executing the method in the second aspect or its respective implementations.
  • the device includes a functional unit for executing the method in the second aspect or its respective implementations.
  • a point cloud decoder comprising a processor and a memory.
  • the memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to execute the method in the first aspect or its implementation manners.
  • a point cloud encoder comprising a processor and a memory.
  • the memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory to execute the method in the second aspect or its respective implementations.
  • a point cloud encoding and decoding system comprising a point cloud encoder and a point cloud decoder.
  • the point cloud decoder is used to execute the method in the first aspect or its respective implementations
  • the point cloud encoder is used to execute the method in the second aspect or its respective implementations.
  • a chip for implementing the method in any one of the first to second aspects or their respective implementations.
  • the chip includes: a processor for calling and running a computer program from a memory, so that a device equipped with the chip executes the method in any one of the first to second aspects or their respective implementations.
  • a computer-readable storage medium for storing a computer program, wherein the computer program enables a computer to execute the method of any one of the first to second aspects or any of their implementations.
  • a computer program product comprising computer program instructions, which enable a computer to execute the method in any one of the first to second aspects or their respective implementations.
  • a computer program which, when executed on a computer, enables the computer to execute the method in any one of the first to second aspects or in each of their implementations.
  • a code stream is provided, which is generated based on the method of the second aspect.
  • the code stream includes at least one of the first parameter and the second parameter.
  • the first parameter corresponding to the current node is first determined, and the first parameter is used to determine whether the current node includes duplicate points, and then the current node is decoded based on the first parameter. For example, when it is determined based on the first parameter that the current node does not include duplicate points, when encoding and decoding the current node, the encoding and decoding of the duplicate point information of the current node is skipped.
  • the duplicate point information of the current node is encoded and decoded, thereby reducing the encoding and decoding complexity of the point cloud, saving encoding and decoding time, and thus improving the encoding and decoding efficiency.
  • FIG1A is a schematic diagram of a point cloud
  • Figure 1B is a partial enlarged view of the point cloud
  • FIG2 is a schematic diagram of six viewing angles of a point cloud image
  • FIG3 is a schematic block diagram of a point cloud encoding and decoding system according to an embodiment of the present application.
  • FIG4A is a schematic block diagram of a point cloud encoder provided in an embodiment of the present application.
  • FIG4B is a schematic block diagram of a point cloud decoder provided in an embodiment of the present application.
  • 5A to 5C are schematic diagrams of geometric information encoding based on triangular facets
  • FIG6A is a schematic diagram of a coding framework of a prediction tree
  • FIG6B is a schematic diagram of a decoding framework of a prediction tree
  • FIG7 is a schematic diagram of coordinate transformation of a point cloud acquired by a rotating laser radar
  • FIG8A is a schematic diagram of a prediction tree
  • FIG8B is another schematic diagram of a prediction tree
  • FIG8C is a schematic diagram of a quantization principle
  • FIG9 is a schematic diagram of a point cloud decoding method flow chart provided by an embodiment of the present application.
  • FIG10 is a schematic diagram of a point cloud encoding method flow chart provided by an embodiment of the present application.
  • FIG11 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application.
  • FIG12 is a schematic block diagram of a point cloud encoding device provided in an embodiment of the present application.
  • FIG13 is a schematic block diagram of an electronic device provided in an embodiment of the present application.
  • FIG. 14 is a schematic block diagram of a point cloud encoding and decoding system provided in an embodiment of the present application.
  • the present application can be applied to the field of point cloud upsampling technology, for example, can be applied to the field of point cloud compression technology.
  • Point cloud refers to a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or three-dimensional scene.
  • Figure 1A is a schematic diagram of a three-dimensional point cloud image
  • Figure 1B is a partial enlarged view of Figure 1A. It can be seen from Figures 1A and 1B that the point cloud surface is composed of densely distributed points.
  • Two-dimensional images have information expressed at each pixel point, and the distribution is regular, so there is no need to record its position information; however, the distribution of points in the point cloud in three-dimensional space is random and irregular, so it is necessary to record the position of each point in space to fully express a point cloud. Similar to two-dimensional images, each position has corresponding attribute information during the acquisition process.
  • Point cloud data is a specific record form of point cloud.
  • Points in the point cloud may include the location information of the point and the attribute information of the point.
  • the location information of the point may be the three-dimensional coordinate information of the point.
  • the location information of the point may also be called the geometric information of the point.
  • the attribute information of the point may include color information, reflectance information, normal vector information, etc.
  • Color information reflects the color of an object, and reflectance information reflects the surface material of an object.
  • the color information may be information in any color space.
  • the color information may be (RGB).
  • the color information may be information about brightness and chromaticity (YcbCr, YUV).
  • Y represents brightness (Luma)
  • Cb (U) represents blue color difference
  • Cr (V) represents red
  • U and V represent chromaticity (Chroma) for describing color difference information.
  • the points in the point cloud may include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point.
  • the points in the point cloud may include the three-dimensional coordinate information of the point and the color information of the point.
  • a point cloud is obtained by combining the principles of laser measurement and photogrammetry.
  • the points in the point cloud may include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.
  • FIG2 shows a point cloud image, where FIG2 shows six viewing angles of the point cloud image.
  • Table 1 shows the point cloud data storage format composed of a file header information part and a data part:
  • the header information includes the data format, data representation type, the total number of point cloud points, and the content represented by the point cloud.
  • the point cloud in this example is in the ".ply" format, represented by ASCII code, with a total number of 207242 points, and each point has three-dimensional position information XYZ and three-dimensional color information RGB.
  • Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Point clouds are obtained by directly sampling real objects, so they can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.
  • Point cloud data can be obtained by at least one of the following ways: (1) computer equipment generation. Computer equipment can generate point cloud data based on virtual three-dimensional objects and virtual three-dimensional scenes. (2) 3D (3-Dimension) laser scanning acquisition. 3D laser scanning can be used to obtain point cloud data of static real-world three-dimensional objects or three-dimensional scenes, and millions of point cloud data can be obtained per second; (3) 3D photogrammetry acquisition. The visual scene of the real world is collected by 3D photography equipment (i.e., a group of cameras or camera equipment with multiple lenses and sensors) to obtain point cloud data of the visual scene of the real world. 3D photography can be used to obtain point cloud data of dynamic real-world three-dimensional objects or three-dimensional scenes. (4) Point cloud data of biological tissues and organs can be obtained by medical equipment. In the medical field, point cloud data of biological tissues and organs can be obtained by medical equipment such as magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information.
  • MRI magnetic resonance imaging
  • CT computed tomography
  • Point clouds can be divided into dense point clouds and sparse point clouds according to the way they are acquired.
  • Point clouds are divided into the following types according to the time series of the data:
  • the first type of static point cloud the object is stationary, and the device that obtains the point cloud is also stationary;
  • the second type of dynamic point cloud the object is moving, but the device that obtains the point cloud is stationary;
  • the third type of dynamic point cloud acquisition the device that acquires the point cloud is moving.
  • Point clouds can be divided into two categories according to their uses:
  • Category 1 Machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, emergency rescue robots, etc.
  • Category 2 Point cloud perceived by the human eye, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
  • the above point cloud acquisition technology reduces the cost and time of point cloud data acquisition and improves the accuracy of data.
  • the change in the point cloud data acquisition method makes it possible to acquire a large amount of point cloud data.
  • the processing of massive 3D point cloud data encounters bottlenecks of storage space and transmission bandwidth.
  • a point cloud video with a frame rate of 30fps frames per second
  • the number of points in each point cloud frame is 700,000
  • each point has coordinate information xyz (float) and color information RGB (uchar).
  • the YUV sampling format is 4:2:0
  • the frame rate is 24fps.
  • the 10s data volume of a 1280 720 two-dimensional video is approximately 1280 720 12bit 24frames 10s ⁇ 0.33GB
  • point cloud compression has become a key issue in promoting the development of the point cloud industry.
  • FIG3 is a schematic block diagram of a point cloud encoding and decoding system involved in an embodiment of the present application. It should be noted that FIG3 is only an example, and the point cloud encoding and decoding system of the embodiment of the present application includes but is not limited to that shown in FIG3.
  • the point cloud encoding and decoding system 100 includes an encoding device 110 and a decoding device 120.
  • the encoding device is used to encode (which can be understood as compression) the point cloud data to generate a code stream, and transmit the code stream to the decoding device.
  • the decoding device decodes the code stream generated by the encoding device to obtain decoded point cloud data.
  • the encoding device 110 of the embodiment of the present application can be understood as a device with a point cloud encoding function
  • the decoding device 120 can be understood as a device with a point cloud decoding function, that is, the embodiment of the present application includes a wider range of devices for the encoding device 110 and the decoding device 120, such as smartphones, desktop computers, mobile computing devices, notebook (e.g., laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, point cloud game consoles, vehicle-mounted computers, etc.
  • the encoding device 110 may transmit the encoded point cloud data (such as a code stream) to the decoding device 120 via the channel 130.
  • the channel 130 may include one or more media and/or devices capable of transmitting the encoded point cloud data from the encoding device 110 to the decoding device 120.
  • the channel 130 includes one or more communication media that enable the encoding device 110 to transmit the encoded point cloud data directly to the decoding device 120 in real time.
  • the encoding device 110 can modulate the encoded point cloud data according to the communication standard and transmit the modulated point cloud data to the decoding device 120.
  • the communication medium includes a wireless communication medium, such as a radio frequency spectrum, and optionally, the communication medium may also include a wired communication medium, such as one or more physical transmission lines.
  • the channel 130 includes a storage medium, which can store the point cloud data encoded by the encoding device 110.
  • the storage medium includes a variety of locally accessible data storage media, such as optical disks, DVDs, flash memories, etc.
  • the decoding device 120 can obtain the encoded point cloud data from the storage medium.
  • the channel 130 may include a storage server that can store the point cloud data encoded by the encoding device 110.
  • the decoding device 120 can download the stored encoded point cloud data from the storage server.
  • the storage server can store the encoded point cloud data and transmit the encoded point cloud data to the decoding device 120, such as a web server (e.g., for a website), a file transfer protocol (FTP) server, etc.
  • FTP file transfer protocol
  • the encoding device 110 includes a point cloud encoder 112 and an output interface 113.
  • the output interface 113 may include a modulator/demodulator (modem) and/or a transmitter.
  • the encoding device 110 may further include a point cloud source 111 in addition to the point cloud encoder 112 and the input interface 113 .
  • the point cloud source 111 may include at least one of a point cloud acquisition device (e.g., a scanner), a point cloud archive, a point cloud input interface, and a computer graphics system, wherein the point cloud input interface is used to receive point cloud data from a point cloud content provider, and the computer graphics system is used to generate point cloud data.
  • a point cloud acquisition device e.g., a scanner
  • a point cloud archive e.g., a point cloud archive
  • a point cloud input interface e.g., a point cloud input interface
  • the computer graphics system is used to generate point cloud data.
  • the point cloud encoder 112 encodes the point cloud data from the point cloud source 111 to generate a code stream.
  • the point cloud encoder 112 transmits the encoded point cloud data directly to the decoding device 120 via the output interface 113.
  • the encoded point cloud data can also be stored in a storage medium or a storage server for subsequent reading by the decoding device 120.
  • the decoding device 120 includes an input interface 121 and a point cloud decoder 122 .
  • the decoding device 120 may further include a display device 123 in addition to the input interface 121 and the point cloud decoder 122 .
  • the input interface 121 includes a receiver and/or a modem.
  • the input interface 121 can receive the encoded point cloud data through the channel 130 .
  • the point cloud decoder 122 is used to decode the encoded point cloud data to obtain decoded point cloud data, and transmit the decoded point cloud data to the display device 123.
  • the decoded point cloud data is displayed on the display device 123.
  • the display device 123 may be integrated with the decoding device 120 or may be external to the decoding device 120.
  • the display device 123 may include a variety of display devices, such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or other types of display devices.
  • Figure 3 is only an example, and the technical solution of the embodiment of the present application is not limited to Figure 3.
  • the technology of the present application can also be applied to unilateral point cloud encoding or unilateral point cloud decoding.
  • the current point cloud encoder can adopt two point cloud compression coding technology routes proposed by the International Standards Organization Moving Picture Experts Group (MPEG), namely Video-based Point Cloud Compression (VPCC) and Geometry-based Point Cloud Compression (GPCC).
  • MPEG International Standards Organization Moving Picture Experts Group
  • VPCC Video-based Point Cloud Compression
  • GPCC Geometry-based Point Cloud Compression
  • VPCC projects the three-dimensional point cloud into two dimensions and uses the existing two-dimensional coding tools to encode the projected two-dimensional image.
  • GPCC uses a hierarchical structure to divide the point cloud into multiple units step by step, and encodes the entire point cloud by encoding the division process.
  • the following uses the GPCC encoding and decoding framework as an example to explain the point cloud encoder and point cloud decoder applicable to the embodiments of the present application.
  • FIG. 4A is a schematic block diagram of a point cloud encoder provided in an embodiment of the present application.
  • the points in the point cloud can include the location information of the points and the attribute information of the points. Therefore, the encoding of the points in the point cloud mainly includes location encoding and attribute encoding.
  • the location information of the points in the point cloud is also called geometric information, and the corresponding location encoding of the points in the point cloud can also be called geometric encoding.
  • the geometric information of the point cloud and the corresponding attribute information are encoded separately.
  • the current geometric coding and decoding of G-PCC can be divided into octree-based geometric coding and decoding and prediction tree-based geometric coding and decoding.
  • the process of position coding includes: preprocessing the points in the point cloud, such as coordinate transformation, quantization, and removal of duplicate points; then, geometric coding the preprocessed point cloud, such as constructing an octree, or constructing a prediction tree, and geometric coding based on the constructed octree or prediction tree to form a geometric code stream.
  • geometric coding such as constructing an octree, or constructing a prediction tree
  • geometric coding based on the constructed octree or prediction tree to form a geometric code stream.
  • the position information of each point in the point cloud data is reconstructed to obtain the reconstructed value of the position information of each point.
  • the attribute encoding process includes: given the reconstruction information of the input point cloud position information and the original value of the attribute information, selecting one of the three prediction modes for point cloud prediction, quantizing the predicted result, and performing arithmetic coding to form an attribute code stream.
  • position encoding can be achieved by the following units:
  • Coordinate transformation transformation (Tanmsform coordinates) unit 201, voxel (Voxelize) unit 202, octree partition (Analyze octree) unit 203, geometry reconstruction (Reconstruct geometry) unit 204, first arithmetic encoding (Arithmetic enconde) unit 205, surface fitting unit (Analyze surface approximation) 206 and prediction tree construction unit 207.
  • the coordinate conversion unit 201 can be used to convert the world coordinates of the point in the point cloud into relative coordinates. For example, the geometric coordinates of the point are respectively subtracted from the minimum value of the xyz coordinate axis, which is equivalent to a DC removal operation, so as to realize the conversion of the coordinates of the point in the point cloud from the world coordinates to the relative coordinates.
  • the voxel unit 202 is also called a quantize and remove points unit, which can reduce the number of coordinates by quantization; after quantization, originally different points may be assigned the same coordinates, based on which, duplicate points can be deleted by deduplication operation; for example, multiple clouds with the same quantized position and different attribute information can be merged into one cloud by attribute conversion.
  • the voxel unit 202 is an optional unit module.
  • the octree division unit 203 may use an octree encoding method to encode the position information of the quantized points.
  • the point cloud is divided in the form of an octree, so that the position of the point can correspond to the position of the octree one by one, and the position of the point in the octree is counted and its flag is recorded as 1 to perform geometric encoding.
  • the point cloud in the process of geometric information encoding based on triangle soup (trisoup), the point cloud is also divided into octrees by the octree division unit 203.
  • the trisoup does not need to divide the point cloud into unit cubes with a side length of 1x1x1 step by step, but stops dividing when the block (sub-block) has a side length of W.
  • the intersections Based on the surface formed by the distribution of the point cloud in each block, at most twelve vertices (intersections) generated by the surface and the twelve edges of the block are obtained, and the intersections are surface fitted by the surface fitting unit 206, and the fitted intersections are geometrically encoded.
  • the prediction tree construction unit 207 can use the prediction tree encoding method to encode the position information of the quantized points.
  • the point cloud is divided in the form of a prediction tree, so that the position of the point can correspond to the position of the node in the prediction tree one by one.
  • the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the geometric prediction residual is quantized using the quantization parameter.
  • the prediction residual of the prediction tree node position information, the prediction tree structure and the quantization parameter are encoded to generate a binary code stream.
  • the geometric reconstruction unit 204 can perform position reconstruction based on the position information output by the octree division unit 203 or the intersection points fitted by the surface fitting unit 206 to obtain the reconstructed value of the position information of each point in the point cloud data.
  • the position reconstruction can be performed based on the position information output by the prediction tree construction unit 207 to obtain the reconstructed value of the position information of each point in the point cloud data.
  • the arithmetic coding unit 205 can use entropy coding to perform arithmetic coding on the position information output by the octree analysis unit 203 or the intersection points fitted by the surface fitting unit 206, or the geometric prediction residual values output by the prediction tree construction unit 207 to generate a geometric code stream; the geometric code stream can also be called a geometry bitstream.
  • Attribute encoding can be achieved through the following units:
  • Transform colors a color conversion (Transform colors) unit 210
  • a recoloring (Transfer attributes) unit 211 a Region Adaptive Hierarchical Transform (RAHT) unit 212, a Generate LOD (Generate LOD) unit 213, a lifting (lifting transform) unit 214, a Quantize coefficients (Quantize coefficients) unit 215 and an arithmetic coding unit 216.
  • RAHT Region Adaptive Hierarchical Transform
  • point cloud encoder 200 may include more, fewer or different functional components than those shown in FIG. 4A .
  • the color conversion unit 210 may be used to convert the RGB color space of the points in the point cloud into a YCbCr format or other formats.
  • the recoloring unit 211 recolors the color information using the reconstructed geometric information so that the uncoded attribute information corresponds to the reconstructed geometric information.
  • any transformation unit can be selected to transform the points in the point cloud.
  • the transformation unit may include: RAHT transformation 212 and lifting (lifting transform) unit 214. Among them, the lifting transformation depends on generating a level of detail (LOD).
  • LOD level of detail
  • any of the RAHT transformation and the lifting transformation can be understood as being used to predict the attribute information of a point in a point cloud to obtain a predicted value of the attribute information of the point, and then obtain a residual value of the attribute information of the point based on the predicted value of the attribute information of the point.
  • the residual value of the attribute information of the point can be the original value of the attribute information of the point minus the predicted value of the attribute information of the point.
  • the process of generating LOD by the LOD generating unit includes: obtaining the Euclidean distance between points according to the position information of the points in the point cloud; and dividing the points into different detail expression layers according to the Euclidean distance.
  • the Euclidean distances can be sorted and then the Euclidean distances in different ranges can be divided into different detail expression layers. For example, a point can be randomly selected as the first detail expression layer. Then the Euclidean distances between the remaining points and the point are calculated, and the points whose Euclidean distances meet the first threshold requirement are classified as the second detail expression layer.
  • the centroid of the points in the second detail expression layer is obtained, and the Euclidean distances between the points other than the first and second detail expression layers and the centroid are calculated, and the points whose Euclidean distances meet the second threshold are classified as the third detail expression layer.
  • all points are classified into the detail expression layer.
  • the threshold of the Euclidean distance By adjusting the threshold of the Euclidean distance, the number of points in each LOD layer can be increased. It should be understood that the LOD division method can also be adopted in other ways, and the present application does not limit this.
  • the point cloud may be directly divided into one or more detail expression layers, or the point cloud may be first divided into a plurality of point cloud slices, and then each point cloud slice may be divided into one or more LOD layers.
  • the point cloud can be divided into multiple point cloud blocks, and the number of points in each point cloud block can be between 550,000 and 1.1 million.
  • Each point cloud block can be regarded as a separate point cloud.
  • Each point cloud block can be divided into multiple detail expression layers, and each detail expression layer includes multiple points.
  • the detail expression layer can be divided according to the Euclidean distance between points.
  • the quantization unit 215 may be used to quantize the residual value of the attribute information of the point. For example, if the quantization unit 215 is connected to the RAHT transformation unit 212, the quantization unit 215 may be used to quantize the residual value of the attribute information of the point output by the RAHT transformation unit 212.
  • the arithmetic coding unit 216 may use zero run length coding to perform entropy coding on the residual value of the attribute information of the point to obtain an attribute code stream.
  • the attribute code stream may be bit stream information.
  • Figure 4B is a schematic block diagram of a point cloud decoder provided in an embodiment of the present application.
  • the decoder 300 can obtain the point cloud code stream from the encoding device, and obtain the position information and attribute information of the points in the point cloud by parsing the code.
  • the decoding of the point cloud includes position decoding and attribute decoding.
  • the process of position decoding includes: performing arithmetic decoding on the geometric code stream; merging after building the octree, reconstructing the position information of the point to obtain the reconstructed information of the point position information; performing coordinate transformation on the reconstructed information of the point position information to obtain the point position information.
  • the point position information can also be called the geometric information of the point.
  • the attribute decoding process includes: obtaining the residual value of the attribute information of the point in the point cloud by parsing the attribute code stream; obtaining the residual value of the attribute information of the point after dequantization by dequantizing the residual value of the attribute information of the point; based on the reconstruction information of the point position information obtained in the position decoding process, selecting one of the following RAHT inverse transform and lifting inverse transform to predict the point cloud to obtain the predicted value, and adding the predicted value to the residual value to obtain the reconstructed value of the attribute information of the point; performing color space inverse conversion on the reconstructed value of the attribute information of the point to obtain the decoded point cloud.
  • position decoding can be achieved by the following units:
  • Arithmetic decoding unit 301 Arithmetic decoding unit 301, octree synthesis (synthesize octree) unit 302, surface fitting unit (Synthesize suface approximation) 303, geometry reconstruction (Reconstruct geometry) unit 304, inverse transform (inverse transform coordinates) unit 305 and prediction tree reconstruction unit 306.
  • Attribute encoding can be achieved through the following units:
  • each unit in the decoder 300 can refer to the functions of the corresponding units in the encoder 200.
  • the point cloud decoder 300 may include more, fewer or different functional components than those in FIG. 5 .
  • the decoder 300 can divide the point cloud into multiple LODs according to the Euclidean distance between points in the point cloud; then, the attribute information of the points in the LOD is decoded in sequence; for example, the number of zeros (zero_cnt) in the zero-run encoding technology is calculated to decode the residual based on zero_cnt; then, the decoding framework 200 can perform inverse quantization based on the decoded residual value, and add the inverse quantized residual value to the predicted value of the current point to obtain the reconstruction value of the point cloud until all point clouds are decoded.
  • the current point will be used as the nearest point of the subsequent LOD point, and the reconstruction value of the current point will be used to predict the attribute information of the subsequent point.
  • the following introduces octree-based geometric coding and prediction tree-based geometric coding.
  • Octree-based geometric encoding includes: first, coordinate transformation of geometric information so that all point clouds are contained in a bounding box. Then quantization is performed. This step of quantization mainly plays a role of scaling. Due to quantization rounding, the geometric information of some points is the same. Whether to remove duplicate points is determined based on parameters. The process of quantization and removal of duplicate points is also called voxelization. Next, the bounding box is continuously divided into trees (octree/quadtree/binary tree) in the order of breadth-first traversal, and the placeholder code of each node is encoded. In an implicit geometric division method, the bounding box of the point cloud is first calculated.
  • K and M In the process of binary tree/quadtree/octree partitioning, two parameters are introduced: K and M.
  • K indicates the maximum number of binary tree/quadtree partitioning before octree partitioning;
  • parameter M is used to indicate that the minimum block side length corresponding to binary tree/quadtree partitioning is 2M .
  • the current node has only one occupied child node, and the parent node of the current node's parent node has only two occupied child nodes, that is, the current node has at most one neighbor node.
  • the parent node of the current node has only one child node, the current node.
  • the six neighbor nodes that share a face with the current node are also empty nodes.
  • the current node does not have the DCM coding qualification, it will be divided into octrees. If it has the DCM coding qualification, the number of points contained in the node will be further determined. When the number of points is less than the threshold 2, the node will be DCM-encoded, otherwise the octree division will continue.
  • the DCM coding mode is applied, the geometric coordinates X, Y, and Z components of the points contained in the current node will be directly encoded independently.
  • the side length of a node is 2d , d bits are required to encode each component of the geometric coordinates of the node, and the bit information is directly encoded into the bit stream.
  • G-PCC currently introduces a plane coding mode. In the process of geometric division, it will determine whether the child nodes of the current node are in the same plane. If the child nodes of the current node meet the conditions of the same plane, the child nodes of the current node will be represented by the plane.
  • the decoding end obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1X1X1 unit cube is obtained. The number of points contained in each leaf node is parsed, and finally the geometric reconstructed point cloud information is restored.
  • geometric division In the geometric information coding framework based on trisoup (triangle soup, triangle patch set), geometric division must also be performed first, but different from the geometric information coding based on binary tree/quadtree/octree, this method does not need to divide the point cloud into unit cubes with a side length of 1x1x1 step by step, but stops dividing when the block (sub-block) has a side length of W.
  • this method Based on the surface formed by the distribution of the point cloud in each block, at most twelve vertices (intersection points) generated by the surface and the twelve edges of the block are obtained. The vertex coordinates of each block are encoded in turn to generate a binary code stream.
  • the decoding end When reconstructing the point cloud geometry information based on trisoup, the decoding end first decodes the vertex coordinates to complete the reconstruction of the triangle patch, as shown in Figures 5A to 5C. There are three vertices (v1, v2, v3) in the block shown in Figure 5A. The triangle patch set formed by these three vertices in a certain order is called triangle soup, or trisoup, as shown in Figure 5B. After that, sampling is performed on the triangle patch set, and the obtained sampling points are used as the reconstructed point cloud in the block, as shown in Figure 5C.
  • the geometric coding based on the prediction tree includes: first, sorting the input point cloud.
  • the currently used sorting methods include unordered, Morton order, azimuth order and radial distance order.
  • the prediction tree structure is established by using two different methods, including: KD-Tree (high-latency slow mode) and using the laser radar calibration information to divide each point into different Lasers, and establish a prediction structure according to different Lasers (low-latency fast mode).
  • KD-Tree high-latency slow mode
  • Lasers low-latency fast mode
  • traverse each node in the prediction tree predict the geometric position information of the node by selecting different prediction modes to obtain the prediction residual, and quantize the geometric prediction residual using the quantization parameter.
  • the prediction residual of the prediction tree node position information, the prediction tree structure and the quantization parameters are encoded to generate a binary code stream.
  • the decoding end Based on the geometric decoding of the prediction tree, the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream, and then obtains the geometric position prediction residual information and quantization parameters of each prediction node through parsing, and dequantizes the prediction residual to recover the reconstructed geometric position information of each node, and finally completes the geometric reconstruction of the decoding end.
  • the geometric information is reconstructed.
  • attribute encoding is mainly performed on color information.
  • the color information is converted from the RGB color space to the YUV color space.
  • the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information.
  • RAHT Random Adaptive Hierarchal Transform
  • Morton codes can be used to search for nearest neighbors.
  • the Morton code corresponding to each point in the point cloud can be obtained from the geometric coordinates of the point.
  • the specific method for calculating the Morton code is described as follows. For each component of the three-dimensional coordinate represented by a d-bit binary number, its three components can be expressed as formula (1):
  • the Morton code M is x, y, z starting from the highest bit and arranged in sequence from x l ,y l ,z l to the lowest bit.
  • the calculation formula of M is shown in the following formula (2):
  • Condition 1 The geometric position is limitedly lossy and the attributes are lossy;
  • Condition 3 The geometric position is lossless, and the attributes are limitedly lossy
  • Condition 4 The geometric position and attributes are lossless.
  • GPCC's general test sequences include four categories: Cat1A, Cat1B, Cat3-fused, and Cat3-frame. Among them, Cat2-frame point cloud only contains reflectance attribute information, Cat1A and Cat1B point clouds only contain color attribute information, and Cat3-fused point cloud contains both color and reflectance attribute information.
  • GPCC's technical routes There are 2 types in total, differentiated by the algorithms used for geometric compression.
  • the bounding box is divided into sub-cubes in sequence, and the non-empty sub-cubes (containing points in the point cloud) are continued to be divided until the leaf node obtained by division is a 1X1X1 unit cube.
  • the leaf node obtained by division is a 1X1X1 unit cube.
  • the decoding end obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1x1x1 unit cube is obtained.
  • geometric lossless decoding it is necessary to parse the number of points contained in each leaf node and finally restore the geometrically reconstructed point cloud information.
  • the prediction tree structure is established by using two different methods, including: KD-Tree (high-latency slow mode) and using the laser radar calibration information to divide each point into different Lasers and establish a prediction structure according to different Lasers (low-latency fast mode).
  • KD-Tree high-latency slow mode
  • laser radar calibration information to divide each point into different Lasers
  • establish a prediction structure according to different Lasers low-latency fast mode.
  • each node in the prediction tree is traversed, and the geometric position information of the node is predicted by selecting different prediction modes to obtain the prediction residual, and the geometric prediction residual is quantized using the quantization parameter.
  • the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.
  • the decoding end reconstructs the prediction tree structure by continuously parsing the bit stream, and then obtains the geometric position prediction residual information and quantization parameters of each prediction node through parsing, and dequantizes the prediction residual to restore the reconstructed geometric position information of each node, and finally completes the geometric reconstruction at the decoding end.
  • the embodiments of the present application mainly relate to prediction tree encoding and decoding, and the prediction tree encoding and decoding framework is introduced below.
  • FIG6A is a schematic diagram of a coding framework based on a prediction tree
  • FIG6B is a schematic diagram of a decoding framework based on a prediction tree.
  • the encoding side constructs a prediction tree including:
  • Input for building prediction trees voxelized point cloud
  • the output of the prediction tree is constructed: the geometric prediction value and prediction residual of the current point, the prediction mode adopted by the current point, the quantization parameter of the current point, the number of repeated points and the number of child nodes.
  • the decoding end reconstructs the prediction tree including:
  • Input of the reconstructed prediction tree decoded data (including the prediction mode adopted by the current point, the prediction residual of the current point, the quantization parameter of the current point, the number of repeated points, and the number of child nodes);
  • Output of the reconstruction prediction tree reconstructed voxelized point cloud.
  • the first is to build a prediction tree based on KD-Tree, and the other is to build a prediction tree based on lidar calibration information.
  • the following introduces these two prediction tree construction methods.
  • the process of building a prediction tree based on KD-Tree is mainly divided into five steps: reordering, building a prediction tree, selecting a prediction mode, and generating a prediction value.
  • available sorting methods are unordered, Morton order, azimuth order, and radial distance order.
  • the default sorting method is sorting by azimuth.
  • KD-Tree can be used to perform nearest neighbor search.
  • KD-Tree is empty, and each node is visited in turn in the selected order.
  • the K nearest neighbors are found in KD-Tree using the position of the current node, and the nearest neighbors found are used as child nodes of the current point for prediction according to certain criteria.
  • the following information is determined:
  • a new prediction mode is created based on the current node, and the position corresponding to each prediction mode is added to the KD-Tree. This process is repeated until all nodes are traversed and the entire prediction tree encoding structure is established.
  • a prediction tree is established by traversing in depth-first order, and each node in the tree can only be predicted by its ancestors. Based on this, various prediction strategies are possible. Therefore, the prior art sets the following four prediction modes:
  • Mode1 Delta prediction (i.e. p0);
  • Mode2 Linear prediction (i.e. 2p0-p1);
  • Mode3 Parallelogram prediction (i.e. p0+p1-p2).
  • p0, p1, and p2 are the positions of the parent node, grandfather node, and great-grandfather node of the current node respectively.
  • the best prediction mode is selected for the current node for prediction. For example, the prediction mode with the smallest rate-distortion cost is determined as the best prediction mode for the current node.
  • the geometric position of each node in the tree is predicted, and the corresponding prediction value and prediction residual are generated.
  • the current point geometric prediction includes Cartesian coordinate prediction, and the specific process is as follows:
  • the prediction mode selects Mode0, that is, there is no prediction for the cylindrical coordinates of the current node, and the corresponding Cartesian coordinate prediction value is (0,0,0).
  • the Cartesian coordinates of the current point are predicted using the corresponding prediction method.
  • the predicted value of the Cartesian coordinates of the current node is
  • the Cartesian coordinates (x, y, z) of the current point are predicted, and the Cartesian coordinates (x, y, z) of the current point are predicted.
  • each node When performing geometric prediction coding based on the KD-Tree structure, each node first needs to encode the number of child nodes of the current node, and then encode the prediction mode of the current node and the prediction residual (r x , ry , r z ) corresponding to the current node.
  • G_PCC uses lossless arithmetic coding for (r x , ry , r z ).
  • Reconstructing the prediction tree based on KD-Tree mainly includes four steps: parsing the prediction mode, generating prediction values, reconstructing the prediction tree, and reconstructing the geometric point cloud. The following are introduced respectively:
  • the geometric coordinates of the current point are predicted and the corresponding prediction values are generated.
  • the specific process is as follows:
  • the prediction mode selects Mode0, that is, there is no prediction for the cylindrical coordinates of the current node, and the corresponding Cartesian coordinate prediction value is (0,0,0).
  • the Cartesian coordinates of the current point are predicted using the corresponding prediction method.
  • the predicted value of the Cartesian coordinates of the current node is
  • Cartesian coordinate residual (r x , ry , r z ) obtained by decoding and the predicted Cartesian coordinate of the current point are used: Computes the reconstructed Cartesian coordinates (x,y,z) of the current point.
  • the following introduces the process of establishing a prediction tree based on lidar calibration information.
  • the process of establishing a prediction tree based on lidar calibration information is mainly divided into five steps: reordering, coordinate conversion, establishing a prediction tree, selecting a prediction mode, and generating a prediction value.
  • reordering reordering, coordinate conversion, establishing a prediction tree, selecting a prediction mode, and generating a prediction value.
  • the voxelized point cloud is reordered to build a more efficient prediction tree.
  • the available sorting methods are unordered, Morton order, azimuth order, and radial distance order.
  • the default sorting method is sorting by azimuth.
  • the Cartesian coordinates (x, y, z) of each point are converted to polar coordinates (r, ⁇ , tan ⁇ ), and the points are sorted according to the azimuth ⁇ , radius r, and elevation tangent tan ⁇ .
  • the point cloud is traversed and the points are converted from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, ⁇ , i) according to the following formula (4) and stored, as shown in FIG7 .
  • i is the LaserID corresponding to the point (a typical laser radar system may have 16, 32 or 64 Laser Scanners, and the prior information of each laser is different, that is, the elevation angle ⁇ and the height zlaser in the vertical direction are different).
  • i is determined by looping the prior information of different Lasers. In each loop, the z component of the point is calculated using the r, prior information and the above conversion formula of the point, and the deviation between the converted z component and the original z component of the point is calculated, and then the point with the smallest deviation is selected from different LaserIDs as the i of the point. This process processes the non-uniform distribution of the point cloud in the vertical direction in space and makes it regular.
  • a prediction tree is established by traversing in depth-first order, and each node in the tree can only be predicted by its ancestors. Based on this, various prediction strategies are possible. Currently, the following four prediction modes are set:
  • Mode1 Delta prediction (i.e. p0);
  • Mode2 Linear prediction (i.e. 2p0-p1);
  • p0, p1, and p2 are the positions of the parent node, grandfather node, and great-grandfather node of the current node respectively.
  • the prediction is performed by selecting the best prediction coding mode for the current node.
  • the geometric position of each node in the tree is predicted and the corresponding prediction value and prediction residual are generated.
  • the geometric prediction of the midpoint in the prior art includes cylindrical coordinate prediction and Cartesian coordinate prediction. The specific process is as follows:
  • the prediction mode is Mode0, that is, the cylindrical coordinates of the current node are not predicted, and the corresponding cylindrical coordinate prediction value is Where r min is the minimum value of the r component after the coordinate transformation of the entire point cloud. If the current node has no parent node, then i prev is set to 0, otherwise it is the cylindrical coordinate component of the parent node.
  • the Cartesian coordinate prediction value is the original cylindrical coordinate of the point The inverse transformation
  • the cylindrical coordinates of the current point are obtained by multiplying the cylindrical coordinates of its parent node.
  • the prediction value of the cylindrical coordinates of the current point can be obtained by making a prediction
  • the Cartesian coordinates are predicted to be the original cylindrical coordinates.
  • the cylindrical coordinates of the current point are predicted using the corresponding prediction method, and the predicted value of the cylindrical coordinates of the current point is Likewise, the Cartesian coordinates predicted are the original cylindrical coordinates
  • the cylindrical coordinates of the current point make a prediction and get the corresponding prediction residual (r r , r ⁇ , r i ) in the cylindrical coordinate system, and predict the Cartesian coordinates (x, y, z) of the current point to get the prediction residual (r x , ry , r z ).
  • the predicted value of the azimuth of the current point is Calculate according to the following formula (5):
  • n indicates the number of points that need to be skipped between the parent node and the current point according to the scanning speed, and this parameter also needs to be compressed into the bitstream;
  • ⁇ ⁇ indicates the scanning speed of the lidar.
  • each node when performing geometric prediction coding on the Cat3_framed point cloud, each node first needs to encode the number of child nodes of the current node, then encode the prediction mode of the current node, and the corresponding (r r ,r ⁇ , ri ) and (r x , ry ,r z ) prediction residuals of the current node, and encode the number of repeated points of the current node.
  • G_PCC uses lossless coding for (r r ,r ⁇ , ri ), and will encode each node at The component is encoded according to the number of skipped points n.
  • the components (r x , ry , r z ) are quantized when geometrically lossy, and the prediction residuals after quantization are arithmetically coded.
  • the depth information R of the cylindrical coordinate system is used to adaptively quantize the horizontal azimuth angle, so as to adaptively change the precision of the horizontal azimuth angle and further improve the coding efficiency of the geometric information.
  • This coding scheme is described in detail below.
  • ⁇ arc is fixed to 0.79, then 2* ⁇ / ⁇ arc is 8, that is, right shifted by 3 bits, r2Drec is the reconstructed value of the depth information, and N is the fixed precision.
  • the following introduces the process of reconstructing the prediction tree based on the lidar calibration information.
  • the process of reconstructing the prediction tree based on the lidar calibration information mainly includes the following four steps: generating prediction values, reconstructing the prediction tree, inverse coordinate transformation, and reconstructing the geometric point cloud. The following are introduced respectively:
  • the cylindrical coordinates of the current point are predicted and the corresponding prediction values are generated.
  • the specific process is as follows:
  • the prediction mode is Mode0, that is, the cylindrical coordinates of the current node are not predicted, and the corresponding cylindrical coordinate prediction value is Where r min is the minimum value of the r component after the coordinate transformation of the entire point cloud. If the current node has no parent node, then i prev is set to 0, otherwise it is the cylindrical coordinate component of the parent node.
  • the Cartesian coordinate prediction value is the original cylindrical coordinate of the point The inverse transformation
  • the cylindrical coordinates of the current point are obtained by multiplying the cylindrical coordinates of its parent node.
  • the prediction value of the cylindrical coordinates of the current point can be obtained by making a prediction
  • the Cartesian coordinates are predicted to be the original cylindrical coordinates.
  • the cylindrical coordinates of the current point are predicted using the corresponding prediction method, and the predicted value of the cylindrical coordinates of the current point is Likewise, the Cartesian coordinates predicted are the original cylindrical coordinates
  • the cylindrical coordinates of the current point make a prediction and get the corresponding prediction residual (r r , r ⁇ , r i ) in the cylindrical coordinate system.
  • Use the Cartesian coordinates (x, y, z) of the current point and the predicted Cartesian coordinates Perform differential prediction to obtain the prediction residual (r x , ry , r z ) in the Cartesian coordinate system.
  • n indicates the number of points that need to be skipped between the parent node and the current point according to the scanning speed, and this parameter also needs to be compressed into the bitstream;
  • ⁇ ⁇ indicates the scanning speed of the lidar.
  • the predicted value of the cylindrical coordinates of the current point can be obtained through the previous step Next, according to the following formula (10), the cylindrical coordinate residual (r r , r ⁇ , r i ) obtained by decoding and the predicted cylindrical coordinate of the current point are used: Compute the reconstructed cylindrical coordinates (r, ⁇ , i) of the current point.
  • the position of the current point in the prediction tree can be further determined according to the reconstructed cylindrical coordinates (r, ⁇ , i), thereby reconstructing the prediction tree.
  • i is the LaserID corresponding to the point, and the prior information of each laser is different, that is, the elevation angle ⁇ and the height zLaser in the vertical direction are different. Therefore, the elevation angle corresponding to the i-th Laser is ⁇ (i), and the height in the vertical direction is zLaser(i).
  • the Cartesian coordinate residual (r x , ry , r z ) obtained by decoding and the predicted Cartesian coordinate of the current point are used: Computes the reconstructed Cartesian coordinates (x,y,z) of the current point.
  • the above introduces the coding and decoding method based on the prediction tree. It can be seen from the above that in the coding and decoding based on the prediction tree, for each node in the prediction tree, the repeated point information of the node needs to be encoded and decoded, but not every node has repeated points. Therefore, encoding and decoding the repeated point information for each node increases the complexity of coding and decoding, and wastes a lot of coding and decoding time, resulting in low coding and decoding efficiency.
  • the embodiment of the present application first determines the first parameter corresponding to the current node before encoding and decoding the current node.
  • the first parameter is used to determine whether the current node includes duplicate points, and then decodes the current node based on the first parameter. For example, when it is determined based on the first parameter that the current node does not include duplicate points, when encoding and decoding the current node, the encoding and decoding of the duplicate point information of the current node is skipped.
  • the duplicate point information of the current node is encoded and decoded, thereby reducing the encoding and decoding complexity of the point cloud, saving encoding and decoding time, and thus improving the encoding and decoding efficiency.
  • the point cloud decoding method provided in the embodiment of the present application is introduced.
  • Fig. 9 is a schematic diagram of a point cloud decoding method according to an embodiment of the present application.
  • the point cloud decoding method according to the embodiment of the present application can be implemented by the point cloud decoding device shown in Fig. 3 or Fig. 5 above.
  • the point cloud decoding method of the embodiment of the present application includes:
  • S102 Decode the current node based on the first parameter.
  • the first parameter is used to determine whether the current node includes duplicate points, and the current node is a node in the prediction tree of the point cloud.
  • the point cloud includes geometric information and attribute information
  • the decoding of the point cloud includes geometric decoding and attribute decoding.
  • the embodiment of the present application relates to geometric decoding of point clouds.
  • the geometric information of the point cloud is also referred to as the position information of the point cloud. Therefore, the geometric decoding of the point cloud is also referred to as the position decoding of the point cloud.
  • the encoder constructs a prediction tree structure of the point cloud based on the geometric information of the point cloud.
  • the prediction tree consists of multiple nodes, and each node includes at least one point in the point cloud.
  • the points in the point cloud are divided into nodes in the prediction tree, and the decoding of the points in the point cloud is achieved by decoding the nodes in the prediction tree.
  • these points with the same coordinates are divided into the same node of the prediction tree, so that the node includes repeated points.
  • the encoder needs to encode the repeated point information of each node.
  • the decoder decodes the repeated point information of each node. This will increase the complexity of decoding, waste decoding time, and reduce decoding efficiency.
  • the first parameter corresponding to the current node is first determined, and the first parameter is used to determine whether the current node includes duplicate points, and then the current node is decoded based on the first parameter. For example, when it is determined based on the first parameter that the current node does not include duplicate points, when decoding the current node, the duplicate point information of the current node is skipped. If it is determined based on the first parameter that the current node may include duplicate points, the duplicate point information of the current node is decoded, thereby reducing the decoding complexity of the point cloud, saving decoding time, and improving decoding efficiency.
  • the decoding process for each point in the prediction tree is basically the same.
  • the decoding process of the embodiment of the present application is introduced by taking the current node in the prediction tree as an example.
  • the current node can be understood as any node in the prediction tree.
  • the current node may be understood as a node in the prediction tree that is currently waiting to be decoded.
  • the first parameter corresponding to the current node is first determined, and then the current node is decoded based on the first parameter.
  • the method for determining the first parameter corresponding to the current node is different, and the corresponding method for decoding the current node based on the first parameter is also different. The following is a detailed introduction to several methods for determining the first parameter corresponding to the current node and the process for decoding the current node based on the first parameter involved in the embodiment of the present application.
  • the above S101 includes the following steps S101-A1 to S101-A2:
  • S101-A1 determining the number of nodes in the to-be-decoded cache queue after taking out the current node from the to-be-decoded cache queue and putting the child nodes of the current node in the prediction tree into the to-be-decoded cache queue;
  • S101-A2 Determine the number of nodes in the to-be-decoded cache queue as a first parameter.
  • the encoding end encodes the nodes in the prediction tree based on a depth-first traversal method, and correspondingly, the decoding end decodes the prediction tree based on a depth-first traversal method.
  • the decoding end includes a cache queue to be decoded, which is used to place nodes to be decoded, and the nodes to be decoded can also be called undecoded nodes.
  • the decoding end first decodes the geometric code stream of the point cloud to obtain the relevant data of the first node of the prediction tree, and the relevant data of the first node includes the number of child nodes included in the first node. Then, the decoding end obtains the child nodes of the first node from the geometric code stream based on the number of child nodes included in the first node, and places the child nodes of the first node in the cache queue to be decoded.
  • the placement of the child node in the cache queue to be decoded described here can be understood as placing the relevant information to be decoded of the child node in the cache queue to be decoded.
  • the relevant information to be decoded of the child node includes the coordinate residual of the child node, the number of child nodes included in the child node, the prediction mode of the child node, etc.
  • the prediction tree includes 5 nodes, which are respectively recorded as node 0, node 1, node 2, node 3 and node 4, where node 0 is the root node, node 1 and node 2 are the two child nodes of node 0, and node 3 and node 4 are the two child nodes of node 1.
  • the geometric code stream is first decoded to obtain that the number of child nodes included in the root node 0 is 2, and then 2 nodes are taken out from the geometric code stream and placed in the cache queue to be decoded.
  • the cache queue to be decoded includes node 1 and node 2, and node 1 and node 2 are both undecoded nodes.
  • node 1 is taken out from the cache queue to be decoded for decoding, and node 1 includes 2 child nodes. Then 2 nodes are taken out from the geometric code stream and placed in the cache queue to be decoded. At this time, the cache queue to be decoded includes node 2, node 3 and node 4, which are the three undecoded nodes.
  • node 3 is taken out from the cache queue to be decoded for decoding, and node 3 does not include child nodes. At this time, the undecoded nodes included in the cache queue to be decoded are node 2 and node 4.
  • node 4 is taken from the cache queue to be decoded for decoding, and it is found that node 4 does not include a child node.
  • the cache queue to be decoded includes an undecoded node, that is, node 2.
  • node 2 in the cache queue to be decoded is decoded, and it is found that node 2 does not include a child node.
  • the decoding of all nodes in the cache queue to be decoded is completed, and the cache queue to be decoded is empty, which means that the decoding of the prediction tree is completed.
  • the current node when decoding the current node, it can be determined whether the current node includes duplicate points based on the number of nodes included in the to-be-decoded cache queue and the number of undecoded points in the point cloud. For example, when decoding the current node, the current node is taken out from the decoding cache queue, and the child nodes of the current node are placed in the to-be-decoded cache queue. At this time, the nodes included in the to-be-decoded cache queue are all undecoded nodes. At the same time, when decoding the current node, it can be guaranteed that at least one point is decoded from the current node.
  • the current node includes a decoded point, and then the number of undecoded points in the point cloud is determined. If the number of undecoded nodes included in the to-be-decoded cache queue is the same as the number of undecoded points in the point cloud, it means that when assuming that the current node includes one point, each node in the to-be-decoded cache queue includes one point, and no duplicate points are included. Therefore, it is assumed that the assumption that the current node includes one point is established, that is, the current node includes one point and does not include duplicate points, and then when decoding the current node, the duplicate point information of the current node is not decoded.
  • the number of nodes included in the cache queue to be decoded is less than the number of undecoded points in the point cloud after assuming that the current node includes a decoded point, it means that at least one of the nodes in the cache queue to be decoded or the current node includes duplicate points, which means that the assumption that the current node includes a point may not be true, that is, the current node may include duplicate points.
  • the current node may include duplicate points.
  • the number of nodes in the cache queue to be decoded is determined as the first parameter corresponding to the current node.
  • the prediction tree includes 5 nodes, which are respectively recorded as node 0, node 1, node 2, node 3 and node 4, where node 0 is the root node, node 1 and node 2 are two child nodes of node 0, and node 3 and node 4 are two child nodes of node 1.
  • node 1 is taken from the to-be-decoded cache queue including node 1 and node 2, and the child nodes of node 1, namely node 3 and node 4, are placed in the to-be-decoded cache queue.
  • the to-be-decoded cache queue includes node 2, node 3 and node 4, which are 3 undecoded nodes.
  • the first parameter corresponding to the current node is determined to be 3. Assuming that the current node is node 3, node 3 is taken from the to-be-decoded cache queue including node 2, node 3 and node 4, but node 3 does not include child nodes. At this time, after node 3 is taken out, the to-be-decoded cache queue includes node 2 and node 4, which are 2 undecoded nodes. Therefore, the first parameter corresponding to the current node is determined to be 2.
  • step S102 is executed to decode the current node based on the first parameter.
  • the above S102 includes the following steps S102-A1 to S102-A3:
  • S102-A3 Decode the current node based on the number of nodes in the to-be-decoded cache queue and the number of first points.
  • the decoding end determines the first parameter corresponding to the current node based on the above steps S101-A1 to S101-A2, and the first parameter is the number of undecoded nodes included in the to-be-decoded cache queue when decoding the current node. Then, based on the above steps S102-A1 to S102-A3, the number of undecoded points in the point cloud is determined, and then based on the number of undecoded nodes in the to-be-decoded cache queue and the number of undecoded points in the point cloud, it is determined whether the current node includes duplicate points, thereby achieving accurate decoding of the current node.
  • the currently decoded point includes a point in the current node, that is, in case 1, after the current node is taken out from the to-be-decoded cache queue, it is assumed that the current node can decode a point, so when determining the number of undecoded points in the point cloud, the point included in the current node is removed. Therefore, for the convenience of description, the undecoded point in the point cloud in case 1 is recorded as the first point.
  • the decoding end determines the first parameter corresponding to the current node based on the above steps S101-A1 to S101-A2, it decodes the geometric code stream of the point cloud to obtain the total number of points in the point cloud. Then, the number of currently decoded points is determined, and the currently decoded points include a point included in the current node, that is, the number of currently decoded points is equal to the sum of the number of points included in the current decoded node plus 1.
  • the decoding end records the number of currently decoded points through the following instructions:
  • codedPointCount is initialized to 0
  • codedPointCount+1 is the number of currently decoded points
  • nodeCount is the number of nodes
  • pointNum is the number of points included in the node.
  • the number of undecoded first points in the point cloud is determined.
  • the difference between the total number of points in the point cloud and the number of currently decoded points is determined as the number of undecoded first points in the point cloud.
  • the current node is decoded.
  • the embodiment of the present application does not limit the specific method in which the decoding end obtains the total number of points in the point cloud.
  • the encoding end writes the total number of points of the point cloud into the geometric code stream, so that the decoding end obtains the total number of points of the point cloud by decoding the geometric code stream.
  • the encoding end writes the total number of points of the point cloud into the geometric data unit of the point cloud. In this way, the decoding end obtains the total number of points of the point cloud by decoding the geometric data unit of the point cloud.
  • the encoder when encoding the total number of points in the point cloud, the encoder subtracts one from the total number of points in the point cloud to obtain a first value, and writes the first value into the geometry data unit, that is, the first value is represented as slice_num_points_minus1.
  • the decoder when decoding, the decoder decodes the geometry data unit to obtain the first value, and then adds 1 to the first value to obtain the total number of points in the point cloud.
  • the script syntax of the geometry data unit (Geometry data unit footer syntax) is shown in Table 2:
  • slice_num_points_minus1 plus 1 is used to specify the total number of points in the point cloud. Bitstream conformance requires that slice_num_points_minus1 plus 1 should be equal to the number of decodable points. Decoders should not rely on bitstream conformance to prevent implementation buffer overflows.
  • the decoding end obtains the first value, namely, slice_num_points_minus1, by decoding the geometric data unit shown in Table 2, and adds 1 to the first value to obtain the total number of points in the point cloud.
  • the decoding end determines the total number of points in the point cloud based on the following formula (13):
  • pointCount is the total number of points in the point cloud.
  • the implementation methods of the above S102-A3 include but are not limited to the following:
  • Mode 1 If the number of nodes in the to-be-decoded cache queue is equal to the number of the first points, then the above S102-A3 includes the following steps S102-A3-11 and S102-A3-12:
  • the decoding end determines that the number of nodes in the to-be-decoded cache queue is the same as the number of the first undecoded points in the point cloud, it means that when the current node is assumed to include a point, each node in the to-be-decoded cache queue includes a point, and no duplicate points are included. Therefore, it means that the assumption that the current node includes a point is established, that is, the current node includes a point and does not include duplicate points, and then when decoding the current node, the duplicate point information of the current node is not decoded. Furthermore, when decoding other nodes after the current node, the duplicate point information is not decoded, which reduces the decoding complexity, saves decoding time, and improves decoding efficiency.
  • the current node includes only one point, and then the geometric reconstruction value of the point is determined.
  • the geometric code stream is decoded to obtain the coordinate residual of the point, and the geometric reconstruction value of the point is determined based on the coordinate residual.
  • the process of determining the geometric reconstruction value of the point can be specifically referred to the description of the following steps 11 to 12, which will not be repeated here.
  • Mode 2 If the number of nodes in the to-be-decoded cache queue is less than the number of the first point, the above S102-A3 includes the following steps S102-A3-21 and S102-A3-22:
  • the decoding end determines that the number of nodes in the to-be-decoded cache queue is less than the number of undecoded first points in the point cloud, it means that at least one of the nodes in the to-be-decoded cache queue or the current node includes duplicate points, that is, the assumption that the current node includes a point may not be true, and the current node may include duplicate points.
  • the duplicate point information of the current node For example, the number of duplicate points included in the current node is obtained by decoding. Then, based on the duplicate point information, the geometric reconstruction value of the point included in the current node is determined.
  • the same method as the above method 1 is used to determine the geometric reconstruction value of a point included in the current node.
  • the geometric reconstruction value of the first point included in the current node and the geometric reconstruction value of the repeated points included in the current node are determined.
  • the above S102-A3-22 includes the following steps S102-A3-221 and S102-A3-222:
  • repeated points refer to points with the same coordinates in the second coordinate system, for example, the second coordinate system is a Cartesian coordinate system.
  • the second coordinates can also be understood as the original coordinates of the point cloud.
  • the current node When the encoder encodes the current node, the current node includes N+1 points, of which N points are repeated with the first point, and thus the current node is determined to include N repeated points.
  • the encoder first encodes the first point in the current node, for example, the coordinate residual value of the first point in the first coordinate system, the coordinate residual value of the first point in the second coordinate system, and the prediction mode corresponding to the first point are encoded.
  • the repeated point information corresponding to the current node is determined, for example, the repeated point information includes the number N of repeated points included in the current node, and the repeated point information is encoded into the bitstream.
  • the decoding end decodes the current node, based on the above judgment conditions, it is determined that the repeated point information of the current node needs to be decoded, and then the repeated point information of the current node is decoded, and the repeated point information of the current node is determined through the repeated point information. Then, the decoding end determines the geometric reconstruction value of the first point in the current node.
  • the process of the decoding end determining the geometric reconstruction value of the first point in the current node can refer to the detailed description of the following steps 11 to 12, which will not be repeated here.
  • the geometric reconstruction value of each of the N repeated points is determined based on the repeated point information of the current node and the geometric reconstruction value of the first point.
  • repeated points refer to points with the same coordinates in the second coordinate system, that is, each repeated point in the current node has the same coordinates as the first point in the second coordinate system. Therefore, the geometric reconstruction value of the first point in the second coordinate system can be directly determined as the geometric reconstruction values of the N repeated points in the second coordinate system.
  • the number of undecoded nodes in the cache queue to be decoded is determined as the first parameter of the current node, and the specific process of decoding the current node is introduced based on the number of nodes in the cache queue to be decoded and the number of undecoded first points in the point cloud.
  • the following introduces the process of determining the first parameter corresponding to the current node in situation 2 and decoding the current node based on the first parameter.
  • the number of undecoded second points in the point cloud is used as the first parameter corresponding to the current node to determine whether the current node includes duplicate points, thereby achieving accurate decoding of the current node.
  • the undecoded second point in the point cloud in this case 2 is different from the undecoded first point in the point cloud in the above case 1.
  • the undecoded first point in the point cloud in the above case 1 includes the point in the current node, while in this case 2, the undecoded second point in the point cloud includes the undecoded point in the current node.
  • the decoding end first decodes the geometric code stream of the point cloud to obtain the total number of points in the point cloud.
  • the method for determining the total number of points in the point cloud can refer to the description in the above case 1 and will not be repeated here.
  • the decoded points here refer to the decoded points included in the decoded nodes, and the current node is an undecoded node. Therefore, the decoded points here do not include the points in the current node.
  • the number of undecoded second points in the point cloud is obtained. In order to distinguish it from the above case 1, the undecoded points of the point cloud in case 2 are recorded as the second points. Then, the number of undecoded second points in the point cloud is determined as the first parameter corresponding to the current node.
  • the difference between the total number of points in the point cloud and the number of decoded points is determined as the number of undecoded second points in the point cloud.
  • the decoding end records the number of decoded points in the point cloud in real time, so that when decoding the current node, the number of decoded points in the point cloud at this time is determined, and then the difference between the total number of points in the point cloud and the number of currently decoded points is determined as the number of undecoded second points in the point cloud, and then based on the number of undecoded second points in the point cloud at this time, it is determined whether the current node includes duplicate points to achieve accurate decoding of the current node.
  • the number of undecoded second points in the point cloud at this time is the same as the number of undecoded nodes in the prediction tree at this time, it means that the current node and all nodes after the current node do not include duplicate points, and then when decoding these nodes, the decoding of duplicate information can be skipped, thereby improving the decoding speed.
  • the above step S102 is executed to decode the current node based on the first parameter.
  • the above S102 includes the following steps S102-B1 and S102-B2:
  • S102-B2 Decode the current node based on the number of second points and the number of undecoded nodes.
  • the decoding end determines the first parameter corresponding to the current node based on the above steps S101-B1 to S101-B4, and the first parameter is the number of undecoded second points in the point cloud. Then, based on the above steps S102-B1 and S102-B2, the number of unsolved nodes in the prediction tree is determined, and then based on the number of undecoded second points in the point cloud and the number of unsolved nodes in the prediction tree, it is determined whether the current node includes duplicate points, thereby achieving accurate decoding of the current node.
  • the current node is an undecoded node, so the undecoded nodes in the prediction tree include the current node.
  • the decoding end records the number of decoded nodes in the prediction tree in real time, and when decoding the current node, determines the number of currently undecoded nodes based on the number of decoded nodes. For example, the difference between the total number of nodes in the prediction tree and the number of currently decoded nodes is determined as the number of currently undecoded nodes.
  • the embodiment of the present application does not limit the method for obtaining the total number of nodes of the prediction tree.
  • the total number of nodes of the prediction tree is determined based on the total number of points in the point cloud. For example, different total numbers of nodes of the prediction tree are set for different intervals of the total number of points in the point cloud. Exemplarily, when the total number of points in the point cloud is between a1 and a2, the total number of nodes of the corresponding prediction tree is b1, and when the total number of points in the point cloud is between a2 and a3, the total number of nodes of the corresponding prediction tree is b2.
  • the decoding end can determine the total number of nodes of the prediction tree based on the total number of points in the point cloud, and then determine the number of undecoded nodes in the prediction tree based on the total number of nodes of the prediction tree and the number of decoded nodes.
  • the above S102-B1 includes the following steps S102-B11 to S102-B13:
  • the encoder constructs a prediction tree corresponding to the point cloud, and writes the total number of nodes of the prediction tree into the geometry stream.
  • the decoder obtains the total number of nodes of the prediction tree by decoding the geometry stream, and when decoding the current node, determines the number of decoded nodes in the prediction tree before decoding the current node, and then obtains the number of undecoded nodes in the prediction tree, for example, the difference between the total number of nodes of the prediction tree and the number of decoded nodes in the current prediction tree is determined as the number of undecoded nodes in the current prediction tree.
  • the decoding end decodes the current node based on the number of undecoded second points in the current point cloud determined by steps S101-B1 to S101-B4 and the number of undecoded nodes in the prediction tree determined by the above steps.
  • the implementation methods of decoding the current node based on the number of second points and the number of undecoded nodes in the above S102-B2 include but are not limited to the following:
  • Mode 1 If the number of the second points is equal to the number of undecoded nodes, then the above S102-B2 includes the following steps S102-B2-11 and S102-B2-12:
  • the decoding end determines that the number of undecoded second points in the current point cloud is the same as the number of undecoded nodes in the prediction tree, it means that each of the undecoded nodes in the prediction tree includes a point, and no duplicate points are included.
  • the undecoded nodes in the prediction tree include the current node. Therefore, it can be determined that the current node includes a point and does not include duplicate points. Therefore, when decoding the current node and the nodes after the current node, the decoding of duplicate point information is skipped, for example, the number of duplicate points included in the current node is skipped, thereby reducing the decoding complexity, saving decoding time, and improving decoding efficiency.
  • method 1 if it is determined that the current node includes one point and does not include duplicate points based on the number of undecoded second points in the current point cloud and the number of undecoded nodes in the prediction tree, the decoding of the duplicate point information is skipped, and only the geometric reconstruction value of the point included in the current node needs to be determined.
  • the geometric code stream is decoded to obtain the coordinate residual of the point, and the geometric reconstruction value of the point is determined based on the coordinate residual.
  • the process of determining the geometric reconstruction value of the point can be specifically described in the following steps 11 to 12, which will not be repeated here.
  • Mode 2 If the number of the second points is less than the number of undecoded nodes, the above S102-B2 includes the following steps S102-B2-21 and S102-B2-22:
  • the decoding end when the decoding end is decoding the current node, if it is determined that the number of undecoded second points in the current point cloud is greater than the number of undecoded nodes in the prediction tree, it means that at least one of the undecoded nodes in the prediction tree includes multiple points, that is, at least one of the undecoded nodes in the prediction tree includes duplicate points.
  • the undecoded nodes in the prediction tree include the current node, and the current node may include duplicate points.
  • the duplicate point information of the current node is decoded, for example, the number of duplicate points included in the current node is decoded. Then, based on the duplicate point information, the geometric reconstruction value of the point included in the current node is determined.
  • the same method as the above method 1 is used to determine the geometric reconstruction value of a point included in the current node.
  • the geometric reconstruction value of the first point included in the current node and the geometric reconstruction value of the repeated points included in the current node are determined.
  • the above S102-B2-22 includes the following steps:
  • repeated points refer to points with the same coordinates in the second coordinate system, for example, the second coordinate system is a Cartesian coordinate system.
  • the second coordinates can also be understood as the original coordinates of the point cloud.
  • the current node When the encoder encodes the current node, the current node includes N+1 points, of which N points are repeated with the first point, and thus the current node is determined to include N repeated points.
  • the encoder first encodes the first point in the current node, for example, the coordinate residual value of the first point in the first coordinate system, the coordinate residual value of the first point in the second coordinate system, and the prediction mode corresponding to the first point are encoded.
  • the repeated point information corresponding to the current node is determined, for example, the repeated point information includes the number N of repeated points included in the current node, and the repeated point information is encoded into the bitstream.
  • the decoding end decodes the current node, based on the above judgment conditions, it is determined that the repeated point information of the current node needs to be decoded, and then the repeated point information of the current node is decoded, and the repeated point information of the current node is determined through the repeated point information. Then, the decoding end determines the geometric reconstruction value of the first point in the current node.
  • the process of the decoding end determining the geometric reconstruction value of the first point in the current node can refer to the detailed description of the following steps 11 to 12, which will not be repeated here.
  • the geometric reconstruction value of each of the N repeated points is determined based on the repeated point information of the current node and the geometric reconstruction value of the first point.
  • repeated points refer to points with the same coordinates in the second coordinate system, that is, each repeated point in the current node has the same coordinates as the first point in the second coordinate system. Therefore, the geometric reconstruction value of the first point in the second coordinate system can be directly determined as the geometric reconstruction values of the N repeated points in the second coordinate system.
  • the following introduces the process of determining the first parameter corresponding to the current node in situation 3 and decoding the current node based on the first parameter.
  • the decoded duplicate points in the point cloud can be understood as the number of duplicate points that have been decoded before decoding the current node. That is to say, in the embodiment of the present application, the decoding end counts the number of decoded duplicate points in real time during decoding, so that when decoding the current node, the number of currently decoded duplicate points in the point cloud is determined as the first parameter corresponding to the current node, and based on the first parameter, it is determined whether the current node includes duplicate points, thereby achieving accurate decoding of the current node.
  • dupCount is used to represent the number of duplicate points currently decoded, and dupCount is initialized to 0.
  • the duplicate point information of the first node includes the number of duplicate points included in the first node. Assuming that the number of duplicate points included in the first node is a, dupCount is updated to a. Next, the second node in L3C2 is decoded, and the current dupCount is updated using the number of duplicate points included in the second node, and so on.
  • the decoding end decodes the current node in the prediction tree, it first determines the number of duplicate points decoded before decoding the current node, that is, the number of decoded duplicate points dupCount, and then determines whether to decode the duplicate point information of the current node based on the number of decoded duplicate points dupCount.
  • the decoding end records the number of decoded duplicate points through the following instructions:
  • dupPointNum represents the number of duplicate points included in the node.
  • the decoding end records the number of decoded duplicate points in the point cloud in real time, so that when decoding the current node, the number of decoded duplicate points in the point cloud at this time is determined, and based on the number of decoded duplicate points, it is determined whether the current node includes duplicate points, so as to achieve accurate decoding of the current node. For example, if the number of decoded duplicate points in the point cloud at this time is the same as the total number of duplicate points in the point cloud, it means that the current node and all nodes after the current node do not include duplicate points, and then when decoding these nodes, the decoding of duplicate information can be skipped, thereby improving the decoding speed.
  • the above step S102 is executed to decode the current node based on the first parameter.
  • the above S102 includes the following steps S102-C1 and S102-C2:
  • S102-C2 Decode the current node based on the number of decoded duplicate points and the total number of duplicate points in the point cloud.
  • the decoding end determines the first parameter corresponding to the current node based on the above steps S101-C1 and S101-C2, and the first parameter is the number of decoded duplicate points in the point cloud. Then, based on the above steps S102-C1 and S102-C2, the total number of duplicate points in the point cloud is determined, and then based on the number of decoded duplicate points in the point cloud and the total number of duplicate points in the point cloud, it is determined whether the current node includes duplicate points, thereby achieving accurate decoding of the current node.
  • the methods for determining the total number of repeated points in the point cloud in S102-B1 include but are not limited to the following:
  • the encoder writes the total number of repeated points of the point cloud into the geometry stream, so that the decoder obtains the total number of repeated points of the point cloud by decoding the geometry stream.
  • the encoder writes the total number of nodes of the prediction tree and the total number of points of the point cloud into the geometry stream.
  • the decoder obtains the total number of points of the point cloud by decoding the geometry stream of the point cloud, and obtains the total number of nodes of the prediction tree by decoding the geometry stream. The difference between the total number of points of the point cloud and the total number of nodes of the prediction tree is determined as the total number of repeated points of the point cloud.
  • the decoding end determines the difference between the total number of points in the point cloud and the total number of nodes in the prediction tree as the total number of repeated points in the point cloud.
  • the decoding end determines the total number of repeated points in the point cloud by the following formula (14):
  • dupSumNum (slice_num_points_minus1+1)-nodeCount (14)
  • dupSumNum is the total number of duplicate points in the point cloud
  • slice_num_points_minus1+1 is the total number of points in the point cloud
  • nodeCount is the total number of nodes in the prediction tree.
  • the decoding end determines the number of decoded duplicate points in the point cloud before decoding the current node based on the above steps S101-C1 and S101-C2, and determines the total number of duplicate points in the point cloud based on the above steps S102-C1 and S102-C2. Then, the above step S102-C2 is executed to decode the current node based on the number of decoded duplicate points and the total number of duplicate points in the point cloud.
  • the implementation methods of decoding the current node based on the number of decoded duplicate points and the total number of duplicate points in the point cloud include but are not limited to the following:
  • Mode 1 If the number of decoded duplicate points is equal to the total number of duplicate points in the point cloud, then the above S102-C2 includes the following steps S102-C2-11 and S102-C2-12:
  • method 1 if it is determined that the current node includes one point but does not include duplicate points based on the number of decoded duplicate points in the current point cloud and the total number of duplicate points in the point cloud, the decoding of the duplicate point information is skipped, and only the geometric reconstruction value of the point included in the current node needs to be determined.
  • the geometric code stream is decoded to obtain the coordinate residual of the point, and the geometric reconstruction value of the point is determined based on the coordinate residual.
  • the process of determining the geometric reconstruction value of the point can be specifically described in the following steps 11 to 12, which will not be repeated here.
  • Mode 2 If the number of decoded duplicate points is less than the total number of duplicate points in the point cloud, the above S102-C2 includes the following steps S102-C2-21 and S102-C2-22:
  • the decoding end when the decoding end is decoding the current node, if it is determined that the number of decoded duplicate points in the current point cloud is less than the total number of duplicate points in the point cloud, it means that at least one of the undecoded nodes in the prediction tree includes multiple points, that is, at least one of the undecoded nodes in the prediction tree includes duplicate points.
  • the undecoded nodes in the prediction tree include the current node, that is, the current node may include duplicate points.
  • it is necessary to decode the duplicate point information of the current node for example, to decode and obtain the number of duplicate points included in the current node. Then, based on the duplicate point information, the geometric reconstruction value of the points included in the current node is determined.
  • the same method as the above method 1 is used to determine the geometric reconstruction value of a point included in the current node.
  • the geometric reconstruction value of the first point included in the current node and the geometric reconstruction value of the repeated points included in the current node are determined.
  • the above S102-C2-22 includes the following steps:
  • repeated points refer to points with the same coordinates in the second coordinate system, for example, the second coordinate system is a Cartesian coordinate system.
  • the second coordinates can also be understood as the original coordinates of the point cloud.
  • the current node When the encoder encodes the current node, the current node includes N+1 points, of which N points are repeated with the first point, and thus the current node is determined to include N repeated points.
  • the encoder first encodes the first point in the current node, for example, the coordinate residual value of the first point in the first coordinate system, the coordinate residual value of the first point in the second coordinate system, and the prediction mode corresponding to the first point are encoded.
  • the repeated point information corresponding to the current node is determined, for example, the repeated point information includes the number N of repeated points included in the current node, and the repeated point information is encoded into the bitstream.
  • the decoding end decodes the current node, based on the above judgment conditions, it is determined that the repeated point information of the current node needs to be decoded, and then the repeated point information of the current node is decoded, and the repeated point information of the current node is determined through the repeated point information. Then, the decoding end determines the geometric reconstruction value of the first point in the current node.
  • the process of the decoding end determining the geometric reconstruction value of the first point in the current node can refer to the detailed description of the following steps 11 to 12, which will not be repeated here.
  • the geometric reconstruction value of each of the N repeated points is determined based on the repeated point information of the current node and the geometric reconstruction value of the first point.
  • repeated points refer to points with the same coordinates in the second coordinate system, that is, each repeated point in the current node has the same coordinates as the first point in the second coordinate system. Therefore, the geometric reconstruction value of the first point in the second coordinate system can be directly determined as the geometric reconstruction values of the N repeated points in the second coordinate system.
  • the number of decoded repeated points is also updated based on the number of repeated points N included in the current node, for example, the sum of the number of repeated points included in the current node and the number of decoded repeated points is determined as the new number of decoded repeated points. Based on the new number of decoded repeated points, the next node is decoded.
  • the number of decoded duplicate points in the point cloud is determined as the first parameter of the current node, and the specific process of decoding the current node is introduced based on the number of decoded duplicate points in the point cloud and the total number of duplicate points in the point cloud.
  • the following is an introduction to the specific process of determining the geometric reconstruction value of a point or the first point included in the current node in the above cases 1 to 3. That is, the specific process of determining the geometric reconstruction value of a point included in the current node in the above S102-A3-12, S102-B2-12, and S102-C2-12, and the specific process of determining the geometric reconstruction value of the first point in the current node in the above S102-A3-221, S102-B2-221, and S102-C2-221 are introduced.
  • the decoding end determines the geometric reconstruction value of a point included in the current node, which is the same as the process of determining the geometric reconstruction value of the first point in the current node.
  • the target point is used to replace a point in S102-A3-12, S102-B2-12, S102-C2-12, and the first point in S102-A3-221, S102-B2-221, and S102-C2-221.
  • the target point in the following steps 11 to 12 can be understood as a point in S102-A3-12, S102-B2-12, and S102-C2-12, and can also be understood as the first point in S102-A3-221, S102-B2-221, and S102-C2-221.
  • Step 11 determine the predicted coordinate value of the target point.
  • a coordinate prediction value of the target point is first determined, and then a coordinate reconstruction value of the target point is determined based on the coordinate prediction value.
  • the embodiment of the present application does not limit the specific method of determining the coordinate prediction value of the target point.
  • the arithmetic mean or weighted mean of the coordinate reconstruction values of one or several decoded points before the target point is determined as the coordinate prediction value of the target point.
  • the above step 11 includes the following steps 11-1 and 11-2:
  • Step 11-1 determine the prediction mode corresponding to the target point
  • Step 11-2 Determine the coordinate prediction value of the target point based on the prediction model.
  • the prediction mode corresponding to the current node is the prediction mode corresponding to the target point.
  • the prediction mode corresponding to the target point may be a default mode.
  • the geometric code stream is decoded to obtain the prediction mode corresponding to the target point. That is, when the encoder encodes the current node, the prediction mode corresponding to the current node is written into the geometric code stream, for example, the index of the prediction mode corresponding to the current node is written into the code stream. In this way, the decoder obtains the prediction mode corresponding to the current node by decoding the geometric code stream.
  • the encoder determines that the prediction mode corresponding to the current node is Mode0, and writes Mode0 into the geometry code stream.
  • the encoder For another example, if the current node is not a root node, and the encoder determines that the prediction mode corresponding to the current node is Mode1, the encoder writes Mode1 into the geometry stream.
  • the encoder determines that the prediction mode corresponding to the current node is Mode2 or Mode3, the encoder writes Mode2 or Mode3 into the geometry stream.
  • the first node in the prediction tree since each parent node, the corresponding prediction mode is usually Mode0, the child node of the first node in the prediction tree has a parent node, so Mode1 is usually selected. Based on this, in order to further save codewords, the prediction mode of the first node in the prediction tree and the child node of the first node is not encoded.
  • the decoding end defaults the prediction mode corresponding to the first node of the prediction tree to Mode0, and the prediction mode corresponding to the child node of the first node in the prediction tree to Mode1.
  • the methods of generating the prediction tree are different, and the methods of determining the prediction value under the same prediction mode are also different.
  • the coordinate prediction value of the target point determined based on the prediction mode is the coordinate value of the target point in a second coordinate system (e.g., a Cartesian coordinate system).
  • a second coordinate system e.g., a Cartesian coordinate system
  • Example 11 If the prediction mode corresponding to the current node is Mode0, that is, no prediction, the predicted value of the target point in the second coordinate system is (0,0,0).
  • Example 12 If the prediction mode corresponding to the current node is Mode 1, that is, Delta prediction, the geometric reconstruction value of the parent node of the current node in the second coordinate system is determined as the predicted value of the target point in the second coordinate system.
  • Mode 1 that is, Delta prediction
  • Example 13 If the prediction mode corresponding to the current node is Mode 2, i.e., Linear prediction, then the prediction value of the target point in the second coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the second coordinate system and the geometric reconstruction value of the grandparent node of the current node in the second coordinate system.
  • Mode 2 i.e., Linear prediction
  • the predicted value of the target point in the second coordinate system is determined:
  • p0 is the geometric reconstruction value of the parent node of the current node in the second coordinate system
  • p1 is the geometric reconstruction value of the grandparent node of the current node in the second coordinate system.
  • Example 14 If the prediction mode corresponding to the current node is Mode 3, that is, Parallelogram prediction, then the predicted value of the target point in the second coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the second coordinate system, the geometric reconstruction value of the grandparent node of the current node in the second coordinate system, and the geometric reconstruction value of the great-grandfather of the current node in the second coordinate system.
  • Mode 3 that is, Parallelogram prediction
  • the predicted value of the target point in the second coordinate system is determined:
  • p0 is the geometric reconstruction value of the parent node of the current node in the second coordinate system
  • p1 is the geometric reconstruction value of the grandparent node of the current node in the second coordinate system
  • p2 is the geometric reconstruction value of the great-grandparent node of the current node in the second coordinate system.
  • the coordinate prediction value of the target point determined based on the prediction mode is the coordinate value of the target point in the first coordinate system (e.g., cylindrical coordinate system).
  • the coordinate prediction value of the target point determined based on the prediction mode includes the following examples:
  • Example 21 If the prediction mode corresponding to the current node is Mode0, that is, no prediction, the predicted value of the target point in the first coordinate system is Where r min is the minimum value of the r component after the coordinate transformation of the entire point cloud. If the current node has no parent node, then i prev is set to 0, otherwise it is the cylindrical coordinate component of the parent node.
  • Example 22 If the prediction mode corresponding to the current node is Mode 1, that is, Delta prediction, the geometric reconstruction value of the parent node of the current node in the first coordinate system is determined as the prediction value of the target point in the first coordinate system.
  • Mode 1 that is, Delta prediction
  • Example 23 If the prediction mode corresponding to the current node is Mode 2, i.e., Linear prediction, the prediction value of the target point in the first coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the first coordinate system and the geometric reconstruction value of the grandparent node of the current node in the first coordinate system.
  • Mode 2 i.e., Linear prediction
  • Example 14 If the prediction mode corresponding to the current node is Mode 3, that is, Parallelogram prediction, then the prediction value of the target point in the first coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the first coordinate system, the geometric reconstruction value of the grandparent node of the current node in the first coordinate system, and the geometric reconstruction value of the great-grandfather of the current node in the first coordinate system.
  • Mode 3 that is, Parallelogram prediction
  • step 12 is executed.
  • Step 12 Determine the geometric reconstruction value of the target point based on the coordinate prediction value of the target point.
  • step 12 includes the following steps:
  • Step 12-11 decode the geometric code stream of the point cloud to obtain the coordinate residual value of the target point in the second coordinate system.
  • the encoder determines the coordinate residual value of the target point in the second coordinate system based on the predicted coordinate value and the coordinate value of the target point in the second coordinate system, and writes the coordinate residual value into the decoded bitstream.
  • the encoder does not quantize the coordinate residual value of the target point in the second coordinate system, and directly writes it into the geometry stream.
  • the decoder obtains the coordinate residual value of the target point in the second coordinate system by decoding the geometry stream, and does not need to perform inverse quantization.
  • the coordinate residual value of the target point in the second coordinate system is quantized at the encoding end, and the quantized coordinate residual value of the target point in the second coordinate system is written into the geometric code stream.
  • the decoding end obtains the quantized coordinate residual value of the target point in the second coordinate system by decoding the geometric code stream, and dequantizes the quantized coordinate residual value of the target point in the second coordinate system to obtain the coordinate residual value of the target point in the second coordinate system.
  • the coordinate residual value of the target point in the second coordinate system is also referred to as the coordinate residual value of the current node in the second coordinate system, and is recorded as (r x , ry , r z ).
  • Step 12-12 Determine the coordinate reconstruction value of the target point in the second coordinate system based on the coordinate prediction value and the coordinate residual value of the target point in the second coordinate system.
  • the sum of the predicted coordinate value and the residual coordinate value of the target point in the second coordinate system is determined as the reconstructed coordinate value of the target point in the second coordinate system.
  • the coordinate reconstruction value of the target point in the second coordinate system is determined:
  • (x, y, z) is the coordinate reconstruction value of the target point in the second coordinate system.
  • Step 12-13 Reconstruct the coordinate value of the target point in the second coordinate system to determine the geometric reconstruction value of the target point.
  • the coordinate reconstruction value of the target point determined above in the second coordinate system is determined as the geometric reconstruction value of the target point.
  • step 12 includes the following steps:
  • Step 12-21 determine the coordinate reconstruction value of the target point in the first coordinate system based on the coordinate prediction value of the target point in the first coordinate system.
  • the predicted coordinate value of the target point in the first coordinate system is determined as the reconstructed coordinate value of the target point in the first coordinate system.
  • steps 12-21 include the following steps:
  • Step 12-211 decoding the geometric code stream to obtain a coordinate residual value of the target point in the first coordinate system
  • Step 12-212 Obtain a coordinate reconstruction value of the target point in the first coordinate system based on the coordinate prediction value and the coordinate residual value of the target point in the first coordinate system.
  • the encoder determines the coordinate residual value of the target point in the first coordinate system based on the coordinate prediction value and coordinate value of the target point in the first coordinate system.
  • the coordinate residual value is written into the decoded code stream.
  • the decoder decodes the geometric code stream to obtain the coordinate residual value of the target point in the first coordinate system.
  • the encoder does not quantize the coordinate residual value of the target point in the first coordinate system, and directly writes it into the geometry stream.
  • the decoder obtains the coordinate residual value of the target point in the first coordinate system by decoding the geometry stream, and does not need to perform inverse quantization.
  • the coordinate residual value of the target point in the first coordinate system is quantized at the encoding end, and the quantized coordinate residual value of the target point in the first coordinate system is written into the geometry code stream.
  • the decoding end obtains the quantized coordinate residual value of the target point in the first coordinate system by decoding the geometry code stream, and dequantizes the quantized coordinate residual value of the target point in the first coordinate system to obtain the coordinate residual value of the target point in the first coordinate system.
  • the coordinate residual value of the target point in the first coordinate system is also referred to as the coordinate residual value of the current node in the first coordinate system, and is recorded as (r r , r ⁇ , r i ).
  • the coordinate reconstruction value of the target point in the first coordinate system is obtained.
  • the sum of the predicted coordinate value and the coordinate residual value of the target point in the first coordinate system is determined as the reconstructed coordinate value of the target point in the first coordinate system.
  • the coordinate reconstruction value of the target point in the first coordinate system is determined:
  • (r, ⁇ , i) is the coordinate reconstruction value of the target point in the first coordinate system.
  • Step 12-22 Determine the coordinate reconstruction value of the target point in the second coordinate system based on the coordinate reconstruction value of the target point in the first coordinate system.
  • the embodiment of the present application does not limit the specific types of the first coordinate system and the second coordinate system.
  • the embodiment of the present application does not limit the specific method of determining the coordinate reconstruction value of the target point in the second coordinate system based on the coordinate reconstruction value of the target point in the first coordinate system.
  • Mode 1 The decoding end converts the coordinate reconstruction value of the target point in the first coordinate system into the coordinate reconstruction value of the target point in the second coordinate system based on the conversion relationship between the first coordinate system and the second coordinate system.
  • the decoding end determines the coordinate reconstruction value of the target point in the second coordinate system through the following steps 12-221 to 12-223:
  • Step 12-221 performing coordinate transformation on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate value of the target point in the second coordinate system.
  • coordinate conversion is performed on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate value of the target point in the second coordinate system.
  • the coordinate value of the target point in the second coordinate system is determined based on the following formula (19):
  • i is the LaserID corresponding to the target point
  • is the elevation angle of the laser Laser corresponding to i
  • zLaser is the height of the laser Laser corresponding to i in the vertical direction.
  • Step 12-222 decode the geometric code stream to obtain the coordinate residual value of the target point in the second coordinate system.
  • the encoding point when encoding the target point, determines the coordinate reconstruction value of the target point in the first coordinate system based on the coordinate prediction value of the target point in the first coordinate system, and transforms the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate reconstruction value of the target point in the second coordinate system. Then, the encoding end determines the coordinate residual value of the target point in the second coordinate system based on the coordinate value of the target point in the second coordinate system and the coordinate reconstruction value. The encoding end writes the coordinate residual value of the target point in the second coordinate system into the geometric code stream.
  • the decoding end decodes the geometric code stream to obtain the coordinate residual value of the target point in the second coordinate system.
  • the decoder parses the coordinate residual value of the target point in the second coordinate system from the geometric code stream and then dequantizes the coordinate residual value of the target point in the second coordinate system to obtain the coordinate residual value of the target point in the second coordinate system.
  • Step 12-223 Based on the coordinate value and coordinate residual value of the target point in the second coordinate system, obtain the coordinate reconstruction value of the target point in the second coordinate system.
  • the sum of the coordinate value of the target point in the second coordinate system and the coordinate residual value is determined as the coordinate reconstruction value of the target point in the second coordinate system.
  • the coordinate reconstruction value (x, y, z) of the target point in the second coordinate system is determined:
  • (r x , ry ,r z ) is the coordinate residual value of the target point in the second coordinate system.
  • Step 12-23 determine the coordinate reconstruction value of the target point in the second coordinate system as the geometric reconstruction value of the target point.
  • the coordinate reconstruction value of the target point determined above in the second coordinate system is determined as the geometric reconstruction value of the target point.
  • the above embodiment is described by taking the geometric decoding process of the current node in the prediction tree as an example.
  • the decoding process of other nodes in the prediction tree can refer to the decoding process of the current node, and then the reconstructed point cloud geometric information can be obtained.
  • the first parameter corresponding to the current node is first determined, and the first parameter is used to determine whether the current node includes repeated points, and then the current node is decoded based on the first parameter. For example, when it is determined based on the first parameter that the current node does not include repeated points, when decoding the current node, the repeated point information of the current node is skipped. If it is determined based on the first parameter that the current node includes repeated points, the repeated point information of the current node is decoded, thereby reducing the decoding complexity of the point cloud, saving decoding time, and improving decoding efficiency.
  • the above takes the decoding end as an example to introduce in detail the point cloud decoding method provided in the embodiment of the present application.
  • the following takes the encoding end as an example to introduce the point cloud encoding method provided in the embodiment of the present application.
  • Fig. 10 is a schematic diagram of a point cloud coding method according to an embodiment of the present application.
  • the point cloud coding method according to the embodiment of the present application can be implemented by the point cloud coding device shown in Fig. 3 or Fig. 4 above.
  • the point cloud encoding method of the embodiment of the present application includes:
  • the encoder reorders the points in the point cloud based on the coordinate information of the points in the point cloud, and constructs a prediction tree for the point cloud based on the coordinate information of the reordered points.
  • the embodiment of the present application does not limit the specific method of determining the prediction tree corresponding to the point cloud.
  • a prediction tree is established based on KD-Tree.
  • the voxelized point cloud is reordered to build a more efficient prediction tree.
  • the available sorting methods are unordered, Morton order, azimuth order, and radial distance order.
  • the default sorting method is sorting by azimuth.
  • KD-Tree is used to perform nearest neighbor search. At the beginning, KD-Tree is empty, and each node is visited in turn in the selected order. The K nearest neighbors are found in the KD-Tree using the position of the current node, and the nearest neighbors found are used as child nodes of the current point according to certain criteria. Finally, the prediction tree of the point cloud is constructed.
  • a prediction tree is established based on the laser radar calibration information, for example, the voxelized point cloud is reordered to build a more efficient prediction tree.
  • the available sorting methods are unordered, Morton order, azimuth order and radial distance order.
  • the default sorting method is sorting by azimuth. To this end, the Cartesian coordinates (x, y, z) of each point are converted into polar coordinates (r, ⁇ , tan ⁇ ), and the points are sorted in turn according to the azimuth ⁇ , radius r and elevation tangent tan ⁇ .
  • the point cloud is traversed, and the points are converted from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, ⁇ , i) according to the following formula and stored. Then, based on the cylindrical coordinates (r, ⁇ , i) of the point, a prediction tree is established. Exemplarily, if a point with LaserID i appears for the first time, the point is used as the root node of all points corresponding to LaserID i; if not, the point is regarded as a child node of the previously processed point with LaserID i, and this process is repeated until all points are traversed. Finally, the prediction tree can be established by connecting the root nodes of all LaserIDs, for example, obtaining the prediction tree shown in FIG. 8A or FIG. 8B .
  • S203 Encode the current node based on the first parameter.
  • the first parameter is used to determine whether the current node includes duplicate points, and the current node is a node in the prediction tree of the point cloud.
  • the point cloud includes geometric information and attribute information
  • the encoding of the point cloud includes geometric encoding and attribute encoding.
  • the embodiment of the present application relates to geometric encoding of point clouds.
  • the geometric information of the point cloud is also referred to as the position information of the point cloud, and therefore, the geometric encoding of the point cloud is also referred to as the position encoding of the point cloud.
  • the encoder constructs a prediction tree structure of the point cloud based on the geometric information of the point cloud.
  • the prediction tree consists of multiple nodes, and each node includes at least one point in the point cloud.
  • the points in the point cloud are divided into nodes in the prediction tree, and the encoding of the nodes in the prediction tree is achieved by encoding the points in the point cloud.
  • these points with the same coordinates are divided into the same node of the prediction tree, so that the node includes repeated points.
  • the encoder needs to encode the repeated point information of each node, which will increase the complexity of encoding, waste encoding time and reduce encoding efficiency.
  • the first parameter corresponding to the current node is first determined, and the first parameter is used to determine whether the current node includes duplicate points, and then based on the first parameter, the current node is encoded. For example, when it is determined based on the first parameter that the current node does not include duplicate points, when encoding the current node, the encoding of the duplicate point information of the current node is skipped. If it is determined based on the first parameter that the current node may include duplicate points, the duplicate point information of the current node is encoded, thereby reducing the encoding complexity of the point cloud, saving decoding time, and improving decoding efficiency.
  • the encoding process for each point in the prediction tree is basically the same.
  • the encoding process of the embodiment of the present application is introduced by taking the current node in the prediction tree as an example.
  • the current node can be understood as any node in the prediction tree.
  • the current node may be understood as a node in the prediction tree that is currently waiting to be encoded.
  • the first parameter corresponding to the current node is first determined, and then the current node is encoded based on the first parameter.
  • the method of determining the first parameter corresponding to the current node is different, and the corresponding method of encoding the current node based on the first parameter is also different. The following is a detailed introduction to several methods of determining the first parameter corresponding to the current node and the process of encoding the current node based on the first parameter involved in the embodiment of the present application.
  • the above S201 includes the following steps S201-A1 to S201-A2:
  • S201-A1 determining the number of nodes in the to-be-encoded cache queue after taking out the current node from the to-be-encoded cache queue and putting the child nodes of the current node in the prediction tree into the to-be-encoded cache queue;
  • S201-A2 Determine the number of nodes in the to-be-encoded cache queue as a first parameter.
  • the encoding end encodes the nodes in the prediction tree based on a depth-first traversal method.
  • the encoding end includes a cache queue to be encoded, which is used to place the nodes to be encoded, and the nodes to be encoded can also be called unencoded nodes.
  • the encoding end first encodes the geometric code stream of the point cloud to obtain the relevant data of the first node of the prediction tree, and the relevant data of the first node includes the number of child nodes included in the first node. Then, based on the number of child nodes included in the first node, the encoding end obtains the child nodes of the first node from the prediction tree, and places the child nodes of the first node in the cache queue to be encoded.
  • the placement of the child node in the cache queue to be encoded described here can be understood as placing the relevant information to be encoded of the child node in the cache queue to be encoded.
  • the relevant information to be encoded of the child node includes the coordinate residual of the child node, the number of child nodes included in the child node, the prediction mode of the child node, etc.
  • the prediction tree includes 5 nodes, which are respectively recorded as node 0, node 1, node 2, node 3 and node 4, where node 0 is the root node, node 1 and node 2 are the two child nodes of node 0, and node 3 and node 4 are the two child nodes of node 1.
  • node 0 is the root node
  • node 1 and node 2 are the two child nodes of node
  • node 3 and node 4 are the two child nodes of node 1.
  • the cache queue to be encoded includes node 1 and node 2, and both node 1 and node 2 are unencoded nodes.
  • node 1 is taken out from the cache queue to be encoded for encoding, and node 1 includes 2 child nodes. Then 2 nodes are taken out from the prediction tree and placed in the cache queue to be encoded. At this time, the cache queue to be encoded includes node 2, node 3 and node 4, which are the three unencoded nodes.
  • node 3 is taken out from the cache queue to be encoded for encoding, and node 3 does not include child nodes. At this time, the unencoded nodes included in the cache queue to be encoded are node 2 and node 4.
  • node 4 is taken from the cache queue to be encoded for encoding, and node 4 does not include child nodes.
  • the cache queue to be encoded includes an unencoded node, namely node 2.
  • node 2 in the cache queue to be encoded is encoded, and it is obtained that node 2 does not include child nodes.
  • the encoding of all nodes in the cache queue to be encoded is completed, and the cache queue to be encoded is empty, which means that the encoding of the prediction tree is completed.
  • the current node when encoding the current node, it can be determined whether the current node includes duplicate points based on the number of nodes included in the to-be-encoded cache queue and the number of unencoded points in the point cloud. For example, when encoding the current node, the current node is taken out from the encoding cache queue, and the child nodes of the current node are placed in the to-be-encoded cache queue. At this time, the nodes included in the to-be-encoded cache queue are all unencoded nodes. At the same time, when encoding the current node, it can be guaranteed that at least one point is included from the current node.
  • the current node includes an encoded point, and then the number of unencoded points in the point cloud is determined. If the number of unencoded nodes included in the to-be-encoded cache queue is the same as the number of unencoded points in the point cloud, it means that when assuming that the current node includes one point, each node in the to-be-encoded cache queue includes one point, and no duplicate points are included. Therefore, it is assumed that the assumption that the current node includes one point is established, that is, the current node includes one point and does not include duplicate points, and then when encoding the current node, the duplicate point information of the current node is not encoded.
  • the number of nodes included in the cache queue to be encoded is less than the number of unencoded points in the point cloud after assuming that the current node includes an encoded point, it means that at least one of the nodes in the cache queue to be encoded or the current node includes duplicate points, which means that the assumption that the current node includes a point may not be true, that is, the current node may include duplicate points.
  • the current node may include duplicate points.
  • the number of nodes in the cache queue to be encoded is determined as the first parameter corresponding to the current node.
  • the above step S202 is performed to encode the current node based on the first parameter.
  • the above S202 includes the following steps S202-A1 to S202-A3:
  • S202-A3 Encode the current node based on the number of nodes in the to-be-encoded cache queue and the number of first points.
  • the encoder determines the first parameter corresponding to the current node based on the above steps S201-A1 to S201-A2, and the first parameter is the number of uncoded nodes included in the to-be-coded cache queue when encoding the current node. Then, based on the above steps S202-A1 to S202-A3, the number of uncoded points in the point cloud is determined, and then based on the number of uncoded nodes in the to-be-coded cache queue and the number of uncoded points in the point cloud, it is determined whether the current node includes duplicate points, thereby achieving accurate encoding of the current node.
  • the currently encoded point includes a point in the current node, that is, in case 1, after the current node is taken out from the to-be-encoded cache queue, it is assumed that the current node includes a point, so when determining the number of unencoded points in the point cloud, the point included in the current node is removed. Therefore, for ease of description, the unencoded point in the point cloud in case 1 is recorded as the first point.
  • the encoding end determines the first parameter corresponding to the current node based on the above steps S201-A1 to S201-A2, and then determines the number of currently encoded points, where the currently encoded points include a point included in the current node, that is, the number of currently encoded points is equal to the sum of the number of points included in the current encoded node plus 1.
  • the number of unencoded first points in the point cloud is determined.
  • the difference between the total number of points in the point cloud and the number of currently encoded points is determined as the number of unencoded first points in the point cloud.
  • the current node is encoded based on the number of nodes in the to-be-encoded buffer queue and the number of unencoded first points in the point cloud.
  • the encoding end writes the total number of points of the point cloud into the geometric code stream. In this way, the encoding end obtains the total number of points of the point cloud by encoding the geometric code stream.
  • the encoding end writes the total number of points of the point cloud into the geometric data unit of the point cloud. In this way, the encoding end obtains the total number of points of the point cloud by encoding the geometric data unit of the point cloud.
  • the encoding end subtracts one from the total number of points in the point cloud when encoding the total number of points in the point cloud, obtains a first value, and writes the first value into the geometric data unit, that is, the first value is represented as slice_num_points_minuS1.
  • the implementation methods of the above S202-A3 include but are not limited to the following:
  • Mode 1 If the number of nodes in the to-be-encoded cache queue is equal to the number of the first points, then the above S202-A3 includes the following steps S202-A3-11 and S202-A3-12:
  • the encoding end determines that the number of nodes in the to-be-encoded cache queue is the same as the number of the first unencoded points in the point cloud, it means that when the current node is assumed to include a point, each node in the to-be-encoded cache queue includes a point, and no duplicate points are included. Therefore, it means that the assumption that the current node includes a point is established, that is, the current node includes a point and does not include duplicate points, and then when encoding the current node, the duplicate point information of the current node is not encoded. Furthermore, when encoding other nodes after the current node, the duplicate point information is not encoded, which reduces the encoding complexity, saves encoding time, and improves encoding efficiency.
  • the current node includes only one point, and then the coordinate residual value of the one point is determined.
  • the coordinate prediction value of the point is determined, and the coordinate residual of the point is obtained based on the coordinate prediction value.
  • the process of determining the coordinate residual value of the point can be specifically referred to the description of the following steps 21 to 22, which will not be repeated here.
  • Mode 2 If the number of nodes in the to-be-encoded cache queue is less than the number of the first point, then the above S202-A3 includes the following steps S202-A3-21 to S202-A3-23:
  • the encoding end determines that the number of nodes in the to-be-encoded cache queue is less than the number of unencoded first points in the point cloud, it means that at least one of the nodes in the to-be-encoded cache queue or the current node includes duplicate points, that is, the assumption that the current node includes a point may not be true, and the current node may include duplicate points.
  • the duplicate point information of the current node it is necessary to encode the duplicate point information of the current node. For example, the number of duplicate points included in the current node is obtained by encoding.
  • the coordinate residual value of the first point in the current node is determined, wherein the process of determining the coordinate residual value of the point can be specifically referred to the description of the following steps 21 to 22, which will not be repeated here. Finally, the coordinate residual value of the first point and the duplicate point information of the current node are written into the geometric code stream.
  • the current node When the encoder encodes the current node, the current node includes N+1 points, of which N points are repeated with the first point, and thus the current node is determined to include N repeated points.
  • the encoder first encodes the first point in the current node, for example, determines the coordinate residual value of the first point in the first coordinate system, the coordinate residual value of the first point in the second coordinate system, and the prediction mode corresponding to the first point.
  • the repeated point information corresponding to the current node is determined, for example, the repeated point information includes the number N of repeated points included in the current node, and the repeated point information is encoded into the bitstream.
  • the number of unencoded nodes in the cache queue to be encoded is determined as the first parameter of the current node, and the specific process of encoding the current node is introduced based on the number of nodes in the cache queue to be encoded and the number of unencoded first points in the point cloud.
  • the following introduces the process of determining the first parameter corresponding to the current node in situation 2 and encoding the current node based on the first parameter.
  • Case 2 The above S201 includes the following steps S201-B1 to S201-B3:
  • S201-B1 determine the total number of points in the point cloud
  • the number of uncoded second points in the point cloud is used as the first parameter corresponding to the current node to determine whether the current node includes duplicate points, thereby achieving accurate coding of the current node.
  • the uncoded second point in the point cloud in this case 2 is different from the uncoded first point in the point cloud in the above case 1.
  • the uncoded first point in the point cloud in the above case 1 includes the midpoint of the current node, while in this case 2, the uncoded second point in the point cloud includes the uncoded point in the current node.
  • the encoding end first determines the total number of points in the point cloud, for example, obtains the total number of points in the point cloud from the point cloud file. Next, the number of encoded points in the point cloud before encoding the current node is determined.
  • the encoded points here refer to the encoded points included in the encoded node, and the current node is an unencoded node. Therefore, the encoded points here do not include the points in the current node. Then, based on the total number of points in the point cloud and the number of encoded points, the number of unencoded points in the point cloud is obtained. In order to distinguish it from the above case 1, the unencoded points of the point cloud in case 2 are recorded as the second point. Then, the number of unencoded second points in the point cloud is determined as the first parameter corresponding to the current node.
  • the difference between the total number of points in the point cloud and the number of encoded points is determined as the number of unencoded second points in the point cloud.
  • the encoding end records the number of encoded points in the point cloud in real time, so that when encoding the current node, the number of encoded points in the point cloud at this time is determined, and then the difference between the total number of points in the point cloud and the number of currently encoded points is determined as the number of unencoded second points in the point cloud, and then based on the number of unencoded second points in the point cloud at this time, it is determined whether the current node includes duplicate points to achieve accurate encoding of the current node.
  • the number of unencoded second points in the point cloud at this time is the same as the number of unencoded nodes in the prediction tree at this time, it means that the current node and all nodes after the current node do not include duplicate points, and then when encoding these nodes, the encoding of duplicate information can be skipped, thereby improving the encoding speed.
  • the encoding end determines the first parameter corresponding to the current node based on the above method, it executes the above step S202 to encode the current node based on the first parameter.
  • the above S202 includes the following steps S202-B1 and S202-B2:
  • S202-B2 Encode the current node based on the number of second points and the number of unencoded nodes.
  • the encoder determines the first parameter corresponding to the current node based on the above steps S201-B1 to S201-B4, and the first parameter is the number of uncoded second points in the point cloud. Then, based on the above steps S202-B1 and S202-B2, the number of unsolved nodes in the prediction tree is determined, and then based on the number of uncoded second points in the point cloud and the number of unsolved nodes in the prediction tree, it is determined whether the current node includes duplicate points, thereby achieving accurate encoding of the current node.
  • the current node is an uncoded node, so the uncoded nodes in the prediction tree include the current node.
  • the above S202-B1 includes the following steps S202-B11 to S202-B13:
  • the encoding end constructs a prediction tree corresponding to the point cloud, and then the total number of nodes in the prediction tree can be obtained.
  • the number of encoded nodes in the prediction tree before encoding the current node is determined, and then the number of unencoded nodes in the prediction tree is obtained. For example, the difference between the total number of nodes in the prediction tree and the number of encoded nodes in the current prediction tree is determined as the number of unencoded nodes in the current prediction tree.
  • the encoder encodes the current node based on the number of uncoded second points in the current point cloud determined by steps S201-B1 to S201-B4 and the number of uncoded nodes in the prediction tree determined by the above steps.
  • the implementation methods of encoding the current node based on the number of second points and the number of uncoded nodes in the above S202-B2 include but are not limited to the following:
  • Mode 1 If the number of the second points is equal to the number of uncoded nodes, then the above S202-B2 includes the following steps S202-B2-11 and S202-B2-12:
  • S202-B2-12. Determine the coordinate residual value of a point included in the current node, and write the coordinate residual value of the point into the geometric code stream of the point cloud.
  • the encoder determines that the number of uncoded second points in the current point cloud is the same as the number of uncoded nodes in the prediction tree, it means that each of the uncoded nodes in the prediction tree includes a point and does not include duplicate points.
  • the uncoded nodes in the prediction tree include the current node. Therefore, it can be determined that the current node includes a point and does not include duplicate points. Therefore, when encoding the current node and the nodes after the current node, the encoding of duplicate point information is skipped, such as skipping the encoding of the number of duplicate points included in the current node, thereby reducing the encoding complexity, saving encoding time, and improving encoding efficiency.
  • this mode 1 if it is determined that the current node includes one point and does not include duplicate points based on the number of uncoded second points in the current point cloud and the number of uncoded nodes in the prediction tree, the encoding of duplicate point information is skipped, and only the coordinate residual value of one point included in the current node needs to be determined, and the coordinate residual value of one point is written into the geometric code stream of the point cloud.
  • the process of determining the coordinate residual value of one point included in the current node can be specifically referred to the description of the following steps 21 to 22, which will not be repeated here.
  • Mode 2 If the number of the second points is greater than the number of uncoded nodes, the above S202-B2 includes the following steps S202-B2-21 and S202-B2-22:
  • the encoder when the encoder is encoding the current node, if it is determined that the number of uncoded second points in the current point cloud is greater than the number of uncoded nodes in the prediction tree, it means that at least one of the uncoded nodes in the prediction tree includes multiple points, that is, at least one of the uncoded nodes in the prediction tree includes duplicate points.
  • the uncoded nodes in the prediction tree include the current node, and the current node may include duplicate points.
  • the duplicate point information of the current node is encoded, for example, the number of duplicate points included in the current node is obtained by encoding.
  • the coordinate residual value of the first point in the current node is determined, wherein the specific process of determining the coordinate residual value of the first point in the current node refers to the description of the following steps 11 and 12, which will not be repeated here. Finally, the coordinate residual value of the first point and the duplicate point information of the current node are written into the geometric code stream.
  • the current node When the encoder encodes the current node, the current node includes N+1 points, of which N points are repeated with the first point, and thus the current node is determined to include N repeated points.
  • the encoder first encodes the first point in the current node, for example, the coordinate residual value of the first point in the first coordinate system, the coordinate residual value of the first point in the second coordinate system, and the prediction mode corresponding to the first point are encoded.
  • the repeated point information corresponding to the current node is determined, for example, the repeated point information includes the number N of repeated points included in the current node, and the repeated point information is encoded into the bitstream.
  • the total number of nodes in the prediction tree is written into the geometry code stream.
  • the following introduces the process of determining the first parameter corresponding to the current node in situation 3 and encoding the current node based on the first parameter.
  • Case 3 The above S201 includes the following steps S201-C1 to S201-C3:
  • S201-C2 determine the number of encoded repeated points as the first parameter.
  • the encoded repeated points in the point cloud can be understood as the number of repeated points that have been encoded before encoding the current node. That is to say, in the embodiment of the present application, the encoding end counts the number of encoded repeated points in real time during encoding, so that when encoding the current node, the number of currently encoded repeated points in the point cloud is determined as the first parameter corresponding to the current node, and based on the first parameter, it is determined whether the current node includes repeated points, thereby achieving accurate encoding of the current node.
  • dupCount is used to represent the number of duplicate points currently encoded, and dupCount is initialized to 0.
  • the duplicate point information of the first node includes the number of duplicate points included in the first node. Assuming that the number of duplicate points included in the first node is a, dupCount is updated to a. Next, encode the second node in L3C2, and use the number of duplicate points included in the second node to update the current dupCount, and so on.
  • the encoding end when the encoding end encodes the current node in the prediction tree, it first determines the number of repeated points that have been encoded before encoding the current node, that is, the number of encoded repeated points dupCount, and then determines whether to encode the repeated point information of the current node based on the number of encoded repeated points dupCount.
  • the encoding end records the number of encoded duplicate points in the point cloud in real time, so that when encoding the current node, the number of encoded duplicate points in the point cloud at this time is determined, and based on the number of encoded duplicate points, it is determined whether the current node includes duplicate points, so as to achieve accurate encoding of the current node. For example, if the number of encoded duplicate points in the point cloud at this time is the same as the total number of duplicate points in the point cloud, it means that the current node and all nodes after the current node do not include duplicate points, and then when encoding these nodes, the encoding of duplicate information can be skipped, thereby improving the encoding speed.
  • the encoding end determines the first parameter corresponding to the current node based on the above method, it executes the above step S202 to encode the current node based on the first parameter.
  • the above S202 includes the following steps S202-C1 and S202-C2:
  • S202-C2 Encode the current node based on the number of encoded duplicate points and the total number of duplicate points in the point cloud.
  • the encoder determines the first parameter corresponding to the current node based on the above steps S201-C1 and S201-C2, and the first parameter is the number of encoded duplicate points in the point cloud. Then, based on the above steps S202-C1 and S202-C2, the total number of duplicate points in the point cloud is determined, and then based on the number of encoded duplicate points in the point cloud and the total number of duplicate points in the point cloud, it is determined whether the current node includes duplicate points, thereby achieving accurate encoding of the current node.
  • the methods for determining the total number of repeated points in the point cloud in S202-B1 include but are not limited to the following:
  • Method 1 When obtaining a point cloud, the encoder determines the total number of repeated points included in the point cloud based on the coordinates of the points in the point cloud.
  • the encoder determines the total number of points in the point cloud and the total number of nodes in the prediction tree, and determines the difference between the total number of points in the point cloud and the total number of nodes in the prediction tree as the total number of repeated points in the point cloud.
  • the encoder determines the number of encoded duplicate points in the point cloud before encoding the current node based on the above steps S201-C1 and S201-C2, and determines the total number of duplicate points in the point cloud based on the above step S202-C1. Then, the above step S202-C2 is executed to encode the current node based on the number of encoded duplicate points and the total number of duplicate points in the point cloud.
  • the implementation methods of encoding the current node based on the number of encoded duplicate points and the total number of duplicate points in the point cloud include but are not limited to the following:
  • Mode 1 If the number of encoded duplicate points is equal to the total number of duplicate points in the point cloud, then the above S202-C2 includes the following steps S202-C2-11 and S202-C2-12:
  • S202-C2-12. Determine the coordinate residual value of a point included in the current node, and write the coordinate residual value of the point into the geometric code stream of the point cloud.
  • the encoding of duplicate point information is skipped, such as skipping the encoding of the number of duplicate points included in the current node, thereby reducing the encoding complexity, saving encoding time, and improving encoding efficiency.
  • this method 1 if it is determined that the current node includes one point and does not include duplicate points based on the number of encoded duplicate points in the current point cloud and the total number of duplicate points in the point cloud, the encoding of duplicate point information is skipped, and only the coordinate residual value of a point included in the current node needs to be determined, and the coordinate residual value of a point is written into the geometric code stream of the point cloud.
  • the process of determining the coordinate residual value of a point included in the current node can be specifically referred to the description of the following steps 21 to 22, which will not be repeated here.
  • Mode 2 If the number of encoded duplicate points is less than the total number of duplicate points in the point cloud, the above S202-C2 includes the following steps S202-C2-21 to S202-C2-23:
  • the encoder when the encoder is encoding the current node, if it is determined that the number of encoded duplicate points in the current point cloud is less than the total number of duplicate points in the point cloud, it means that at least one of the unencoded nodes in the prediction tree includes multiple points, that is, at least one of the unencoded nodes in the prediction tree includes duplicate points.
  • the unencoded nodes in the prediction tree include the current node, that is, the current node may include duplicate points.
  • it is necessary to encode the duplicate point information of the current node for example, to encode the number of duplicate points included in the current node.
  • the current node When the encoder encodes the current node, the current node includes N+1 points, of which N points are repeated with the first point, and thus the current node is determined to include N repeated points.
  • the encoder first encodes the first point in the current node, for example, the coordinate residual value of the first point in the first coordinate system, the coordinate residual value of the first point in the second coordinate system, and the prediction mode corresponding to the first point are encoded.
  • the repeated point information corresponding to the current node is determined, for example, the repeated point information includes the number N of repeated points included in the current node, and the repeated point information is encoded into the bitstream.
  • the repeated point information of the embodiment of the present application includes the number of repeated points included in the current node.
  • the number of encoded repeated points is also updated based on the number of repeated points N included in the current node, for example, the sum of the number of repeated points included in the current node and the number of encoded repeated points is determined as the new number of encoded repeated points. Based on the new number of encoded repeated points, the next node is encoded.
  • the total number of repeated points in the point cloud is written into the geometry code stream.
  • the number of encoded duplicate points in the point cloud is determined as the first parameter of the current node, and the specific process of encoding the current node is introduced based on the number of encoded duplicate points in the point cloud and the total number of duplicate points in the point cloud.
  • the specific process of determining the geometric reconstruction value of a point or the first point included in the current node in the above cases 1 to 3 is introduced below. That is, the specific process of determining the geometric reconstruction value of a point included in the current node in the above S202-A3-12, S202-B2-12, S202-C2-12, and the specific process of determining the geometric reconstruction value of the first point in the current node in the above S202-A3-221, S202-B2-221, S202-C2-221 are introduced.
  • the encoding end determines the geometric reconstruction value of a point included in the current node, which is the same as the process of determining the geometric reconstruction value of the first point in the current node.
  • the target point is used to replace a point in S202-A3-12, S202-B2-12, S202-C2-12, and the first point in S202-A3-221, S202-B2-221, S202-C2-221.
  • the target point in the following steps 21 to 22 can be understood as a point in S202-A3-12, S202-B2-12, S202-C2-12, and can also be understood as the first point in S202-A3-221, S202-B2-221, S202-C2-221.
  • Step 21 determine the coordinate prediction value of the target point.
  • the coordinate prediction value of the target point is first determined, and based on the coordinate prediction value, the coordinate residual value of the target point is determined.
  • the embodiment of the present application does not limit the specific method of determining the coordinate prediction value of the target point.
  • the arithmetic mean or weighted mean of the coordinate reconstruction values of one or several encoded points before the target point is determined as the coordinate prediction value of the target point.
  • the above step 21 includes the following steps 21-1 and 21-2:
  • Step 21-1 determining the prediction mode corresponding to the target point
  • Step 21-2 Determine the coordinate prediction value of the target point based on the prediction model.
  • the prediction mode corresponding to the current node is the prediction mode corresponding to the target point.
  • the prediction mode corresponding to the target point may be a default mode.
  • the prediction mode corresponding to the target point is determined based on a rate-distortion proxy.
  • the encoder determines that the prediction mode corresponding to the current node is Mode0, and writes Mode0 into the geometry code stream.
  • the encoder For another example, if the current node is not a root node, and the encoder determines that the prediction mode corresponding to the current node is Mode1, the encoder writes Mode1 into the geometry stream.
  • the encoding end determines that the prediction mode corresponding to the current node is Mode2 or Mode3, specifically, a prediction mode is determined from Mode2 and Mode3 using rate-distortion cost as the prediction mode of the current node, and the determined prediction mode is written into the geometric code stream.
  • the methods of generating the prediction tree are different, and the methods of determining the prediction value under the same prediction mode are also different.
  • the coordinate prediction value of the target point determined based on the prediction mode is the coordinate value of the target point in a second coordinate system (e.g., a Cartesian coordinate system).
  • a second coordinate system e.g., a Cartesian coordinate system
  • Example 11 If the prediction mode corresponding to the current node is Mode0, that is, no prediction, the predicted value of the target point in the second coordinate system is (0,0,0).
  • Example 12 If the prediction mode corresponding to the current node is Mode 1, that is, Delta prediction, the geometric reconstruction value of the parent node of the current node in the second coordinate system is determined as the predicted value of the target point in the second coordinate system.
  • Mode 1 that is, Delta prediction
  • Example 13 If the prediction mode corresponding to the current node is Mode 2, i.e., Linear prediction, then the prediction value of the target point in the second coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the second coordinate system and the geometric reconstruction value of the grandparent node of the current node in the second coordinate system.
  • Mode 2 i.e., Linear prediction
  • Example 14 If the prediction mode corresponding to the current node is Mode 3, that is, Parallelogram prediction, then the predicted value of the target point in the second coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the second coordinate system, the geometric reconstruction value of the grandparent node of the current node in the second coordinate system, and the geometric reconstruction value of the great-grandfather of the current node in the second coordinate system.
  • Mode 3 that is, Parallelogram prediction
  • the coordinate prediction value of the target point determined based on the prediction mode is the coordinate value of the target point in the first coordinate system (e.g., cylindrical coordinate system).
  • the coordinate prediction value of the target point determined based on the prediction mode includes the following examples:
  • Example 21 If the prediction mode corresponding to the current node is Mode0, that is, no prediction, the predicted value of the target point in the first coordinate system is Where r min is the minimum value of the r component after the coordinate transformation of the entire point cloud. If the current node has no parent node, then i prev is set to 0, otherwise it is the cylindrical coordinate component of the parent node.
  • Example 22 If the prediction mode corresponding to the current node is Mode 1, that is, Delta prediction, the geometric reconstruction value of the parent node of the current node in the first coordinate system is determined as the prediction value of the target point in the first coordinate system.
  • Mode 1 that is, Delta prediction
  • Example 23 If the prediction mode corresponding to the current node is Mode 2, i.e., Linear prediction, the prediction value of the target point in the first coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the first coordinate system and the geometric reconstruction value of the grandparent node of the current node in the first coordinate system.
  • Mode 2 i.e., Linear prediction
  • Example 14 If the prediction mode corresponding to the current node is Mode 3, that is, Parallelogram prediction, then the prediction value of the target point in the first coordinate system is determined based on the geometric reconstruction value of the parent node of the current node in the first coordinate system, the geometric reconstruction value of the grandparent node of the current node in the first coordinate system, and the geometric reconstruction value of the great-grandfather of the current node in the first coordinate system.
  • Mode 3 that is, Parallelogram prediction
  • step 22 is executed.
  • Step 22 based on the predicted coordinate value of the target point, determine the coordinate residual value of the target point.
  • step 22 includes the following steps 22-11 and 22-12:
  • Step 22-11 determine the coordinate residual value of the target point in the second coordinate system based on the coordinate prediction value of the target point in the second coordinate system.
  • the encoding end determines the coordinate residual value of the target point in the second coordinate system by taking the difference between the coordinate value of the target point in the second coordinate system and the coordinate prediction value.
  • the encoder quantizes the coordinate residual value of the target point in the second coordinate system, and writes the quantized coordinate residual value of the target point in the second coordinate system into the geometric code stream.
  • the coordinate residual value of the target point in the second coordinate system is also referred to as the coordinate residual value of the current node in the second coordinate system, and is recorded as (r x , ry , r z ).
  • Step 22-12 determine the coordinate residual value of the target point in the second coordinate system as the coordinate residual value of the target point.
  • the coordinate residual value of the target point determined above in the second coordinate system is determined as the coordinate residual value of the target point.
  • step 22 includes the following steps 22-21 to 22-25:
  • Step 22-21 determine the residual value of the target point in the first coordinate system based on the predicted coordinate value of the target point in the first coordinate system and the coordinate value of the target point in the first coordinate system.
  • coordinate transformation is performed based on the coordinate value of the target point in the second coordinate system to obtain the coordinate value of the target point in the first coordinate system.
  • the difference between the coordinate value of the target point in the first coordinate system and the predicted coordinate value of the target point in the first coordinate system is determined as the residual value of the target point in the first coordinate system, for example, (r r , r ⁇ , r i ).
  • Step 22-22 based on the predicted coordinate value of the target point in the first coordinate system, obtain the reconstructed coordinate value of the target point in the first coordinate system.
  • the predicted coordinate value of the target point in the first coordinate system is determined as the reconstructed coordinate value of the target point in the first coordinate system.
  • the encoding end does not quantize the residual value of the target point in the first coordinate system
  • the sum of the coordinate prediction value of the target point in the first coordinate system and the unquantized residual value is determined as the coordinate reconstruction value of the target point in the first coordinate system.
  • step 22-22 includes: dequantizing the quantized coordinate residual value of the target point in the first coordinate system to obtain the coordinate residual value of the target point in the first coordinate system; based on the coordinate prediction value and the coordinate residual value of the target point in the first coordinate system, obtaining the coordinate reconstruction value of the target point in the first coordinate system, for example, determining the sum of the coordinate prediction value and the coordinate residual value of the target point in the first coordinate system as the coordinate reconstruction value of the target point in the first coordinate system.
  • Steps 22-23 performing coordinate transformation on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate reconstruction value of the target point in the second coordinate system.
  • Steps 22-24 determining a coordinate residual value of the target point in the second coordinate system based on the coordinate reconstruction value and the coordinate value of the target point in the second coordinate system.
  • the difference between the coordinate value of the target point in the second coordinate system and the coordinate reconstruction value is determined as the coordinate residual value of the target point in the second coordinate system, that is, (r x , ry , r z ).
  • Step 22-25 determine the residual value of the target point in the first coordinate system and the coordinate residual value of the target point in the second coordinate system as the coordinate residual value of the target point.
  • the above embodiment is described by taking the geometric coding process of the current node in the prediction tree as an example, and the coding process of other nodes in the prediction tree may refer to the coding process of the current node.
  • the first parameter corresponding to the current node is first determined, and the first parameter is used to determine whether the current node includes repeated points, and then the current node is encoded based on the first parameter. For example, when it is determined based on the first parameter that the current node does not include repeated points, when encoding the current node, the repeated point information of the current node is skipped. If it is determined based on the first parameter that the current node includes repeated points, the repeated point information of the current node is encoded, thereby reducing the encoding complexity of the point cloud, saving encoding time, and improving encoding efficiency.
  • FIGS. 9 to 10 are merely examples of the present application and should not be construed as limiting the present application.
  • the size of the sequence number of each process does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.
  • the term "and/or” is merely a description of the association relationship of associated objects, indicating that three relationships may exist. Specifically, A and/or B can represent: A exists alone, A and B exist at the same time, and B exists alone.
  • the character "/" in this article generally indicates that the objects associated before and after are in an "or" relationship.
  • FIG. 11 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application.
  • the point cloud decoding device 10 may include:
  • a parameter determination unit 11 used to determine a first parameter corresponding to a current node, where the first parameter is used to determine whether the current node includes a duplicate point, and the current node is a node in a prediction tree of the point cloud;
  • the decoding unit 12 is used to decode the current node based on the first parameter.
  • the parameter determination unit 11 is specifically used to determine the number of nodes in the cache queue to be decoded after taking out the current node from the cache queue to be decoded and placing the child nodes of the current node in the prediction tree into the cache queue to be decoded; the number of nodes in the cache queue to be decoded is determined as the first parameter.
  • the decoding unit 12 is specifically used to decode the geometric code stream of the point cloud to obtain the total number of points in the point cloud; based on the total number of points in the point cloud and the number of currently decoded points, determine the number of undecoded first points in the point cloud, and the decoded points include a point in the current node; based on the number of nodes in the to-be-decoded cache queue and the number of the first points, decode the current node.
  • the decoding unit 12 is specifically used to skip decoding the repeated point information of the current node if the number of nodes in the to-be-decoded cache queue is equal to the number of the first points, and determine the geometric reconstruction value of a point included in the current node.
  • the decoding unit 12 is specifically used to decode the duplicate point information of the current node if the number of nodes in the to-be-decoded cache queue is less than the number of the first points; and determine the geometric reconstruction values of the points included in the current node based on the duplicate point information.
  • the parameter determination unit 11 is specifically used to decode the geometric code stream of the point cloud to obtain the total number of points in the point cloud; determine the number of decoded points in the point cloud before decoding the current node; based on the total number of points in the point cloud and the number of decoded points, obtain the number of undecoded second points in the point cloud; determine the number of the second points as the first parameter corresponding to the current node.
  • the decoding unit 12 is specifically used to determine the number of undecoded nodes in the prediction tree before decoding the current node; and decode the current node based on the number of the second points and the number of the undecoded nodes.
  • the decoding unit 12 is specifically used to decode the geometric code stream to obtain the total number of nodes of the prediction tree; determine the number of decoded nodes of the prediction tree before decoding the current node; and obtain the number of undecoded nodes based on the total number of nodes and the number of decoded nodes.
  • the decoding unit 12 is specifically used to skip decoding the repeated point information of the current node if the number of the second points is equal to the number of the undecoded nodes, and determine the geometric reconstruction value of a point included in the current node.
  • the decoding unit 12 is specifically used to decode the repeated point information of the current node if the number of the second points is greater than the number of the undecoded nodes; and determine the geometric reconstruction values of the points included in the current node based on the repeated point information.
  • the parameter determination unit 11 is specifically used to determine the number of decoded repeated points in the point cloud before decoding the current node; and determine the number of decoded repeated points as the first parameter.
  • the decoding unit 12 is specifically used to determine the total number of repeated points in the point cloud; and decode the current node based on the number of decoded repeated points and the total number of repeated points in the point cloud.
  • the decoding unit 12 is specifically configured to decode the geometric code stream of the point cloud to obtain the total number of repeated points of the point cloud.
  • the decoding unit 12 is specifically used to decode the geometric code stream of the point cloud to obtain the total number of points of the point cloud; decode the geometric code stream to obtain the total number of nodes of the prediction tree; and determine the difference between the total number of points of the point cloud and the total number of nodes of the prediction tree as the total number of repeated points of the point cloud.
  • the decoding unit 12 is specifically used to skip decoding the duplicate point information of the current node if the number of decoded duplicate points is equal to the total number of duplicate points in the point cloud, and determine the geometric reconstruction value of a point included in the current node.
  • the decoding unit 12 is specifically used to decode the duplicate point information of the current node if the number of decoded duplicate points is less than the total number of duplicate points in the point cloud; and determine the geometric reconstruction values of the points included in the current node based on the duplicate point information.
  • the repeated point information includes the number of repeated points included in the current node
  • the decoding unit 12 is specifically used to determine the geometric reconstruction value of the first point in the current node; the geometric reconstruction value of the first point is determined as the geometric reconstruction values of N repeated points included in the current node, where N is a positive integer.
  • the decoding unit 12 is further configured to determine the sum of the number of repeated points included in the current node and the number of decoded repeated points as the new number of decoded repeated points.
  • the decoding unit 12 is also used to determine a coordinate prediction value of a target point, where the target point is a point included in the current node or the first point in the current node; and based on the coordinate prediction value of the target point, determine a geometric reconstruction value of the target point.
  • the decoding unit 12 is specifically configured to determine a prediction mode corresponding to the target point; and determine a coordinate prediction value of the target point based on the prediction mode.
  • the decoding unit 12 is specifically configured to decode the geometric code stream to obtain a prediction mode corresponding to the target point.
  • the decoding unit 12 is specifically used to decode the geometric code stream of the point cloud to obtain the coordinate residual value of the target point in the second coordinate system; based on the coordinate prediction value and the coordinate residual value of the target point in the second coordinate system, determine the coordinate reconstruction value of the target point in the second coordinate system; and use the coordinate reconstruction value of the target point in the second coordinate system to determine the geometric reconstruction value of the target point.
  • the decoding unit 12 is specifically used to determine the coordinate reconstruction value of the target point in the first coordinate system based on the coordinate prediction value of the target point in the first coordinate system; determine the coordinate reconstruction value of the target point in the second coordinate system based on the coordinate reconstruction value of the target point in the first coordinate system; and determine the coordinate reconstruction value of the target point in the second coordinate system as the geometric reconstruction value of the target point.
  • the decoding unit 12 is specifically used to decode the geometric code stream to obtain the coordinate residual value of the target point in the first coordinate system; based on the coordinate prediction value and the coordinate residual value of the target point in the first coordinate system, obtain the coordinate reconstruction value of the target point in the first coordinate system.
  • the decoding unit 12 is specifically used to perform coordinate conversion on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate value of the target point in the second coordinate system; decode the geometric code stream to obtain the coordinate residual value of the target point in the second coordinate system; and obtain the coordinate reconstruction value of the target point in the second coordinate system based on the coordinate value and the coordinate residual value of the target point in the second coordinate system.
  • the decoding unit 12 is specifically configured to decode the geometric data unit of the point cloud to obtain the total number of points of the point cloud.
  • the decoding unit 12 is specifically used to decode the geometric data unit to obtain a first value, where the first value is the total number of points in the point cloud minus one; and add one to the first value to obtain the total number of points in the point cloud.
  • the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, no further description is given here.
  • the point cloud decoding device 10 shown in FIG. 11 may correspond to the corresponding subject in the point cloud decoding method of the embodiment of the present application, and the aforementioned and other operations and/or functions of each unit in the point cloud decoding device 10 are respectively for implementing the corresponding processes in the point cloud decoding method, and for the sake of brevity, no further description is given here.
  • FIG. 12 is a schematic block diagram of a point cloud encoding device provided in an embodiment of the present application.
  • the point cloud encoding device 20 includes:
  • a construction unit 21 is used to determine a prediction tree corresponding to the point cloud
  • a parameter determination unit 22 configured to determine a first parameter corresponding to a current node, wherein the first parameter is used to determine whether the current node includes a duplicate point, and the current node is a node in the prediction tree;
  • the encoding unit 23 is used to encode the current node based on the first parameter.
  • the parameter determination unit 22 is specifically used to determine the number of nodes in the cache queue to be encoded after taking out the current node from the cache queue to be encoded and placing the child nodes of the current node in the prediction tree into the cache queue to be encoded; and determine the number of nodes in the cache queue to be encoded as the first parameter.
  • the encoding unit 23 is specifically used to determine the total number of points in the point cloud; based on the total number of points in the point cloud and the number of currently encoded points, determine the number of unencoded first points in the point cloud, and the encoded points include a point in the current node; based on the number of nodes in the to-be-encoded cache queue and the number of the first points, encode the current node.
  • the encoding unit 23 is specifically used to skip encoding repeated point information of the current node if the number of nodes in the to-be-encoded cache queue is equal to the number of the first points; determine the coordinate residual value of a point included in the current node, and write the coordinate residual value of the point into the geometric code stream of the point cloud.
  • the encoding unit 23 is specifically used to determine the duplicate point information of the current node if the number of nodes in the to-be-encoded cache queue is less than the number of the first points; determine the coordinate residual value of the first point in the current node; and write the coordinate residual value of the first point and the duplicate point information of the current node into the geometric code stream.
  • the parameter determination unit 22 is specifically used to determine the total number of points in the point cloud; determine the number of encoded points in the point cloud before encoding the current node; obtain the number of unencoded second points in the point cloud based on the total number of points in the point cloud and the number of encoded points; and determine the number of the second points as the first parameter corresponding to the current node.
  • the encoding unit 23 is specifically used to determine the number of unencoded nodes in the prediction tree before encoding the current node; and encode the current node based on the number of second points and the number of unencoded nodes.
  • the encoding unit 23 is specifically used to determine the total number of nodes of the prediction tree; determine the number of encoded nodes of the prediction tree before encoding the current node; and obtain the number of unencoded nodes based on the total number of nodes and the number of encoded nodes.
  • the encoding unit 23 is specifically used to skip encoding repeated point information of the current node if the number of the second points is equal to the number of the unencoded nodes; determine the coordinate residual value of a point included in the current node, and write the coordinate residual value of the point into the geometric code stream of the point cloud.
  • the encoding unit 23 is specifically used to determine the duplicate point information of the current node if the number of the second points is greater than the number of the unencoded nodes; determine the coordinate residual value of the first point in the current node; and write the coordinate residual value of the first point and the duplicate point information of the current node into the geometric code stream.
  • the encoding unit 23 is further configured to write the total number of nodes of the prediction tree into the geometry code stream.
  • the parameter determination unit 22 is specifically used to determine the number of encoded repeated points in the point cloud before encoding the current node; and determine the number of encoded repeated points as the first parameter.
  • the encoding unit 23 is specifically used to determine the total number of repeated points in the point cloud; and encode the current node based on the number of encoded repeated points and the total number of repeated points in the point cloud.
  • the encoding unit 23 is specifically used to determine the total number of points in the point cloud; determine the total number of nodes in the prediction tree; and determine the difference between the total number of points in the point cloud and the total number of nodes in the prediction tree as the total number of repeated points in the point cloud.
  • the encoding unit 23 is specifically used to skip encoding the duplicate point information of the current node if the number of the encoded duplicate points is equal to the total number of duplicate points of the point cloud; determine the coordinate residual value of a point included in the current node, and write the coordinate residual value of the point into the geometric code stream of the point cloud.
  • the encoding unit 23 is specifically used to determine the duplicate point information of the current node if the number of the encoded duplicate points is less than the total number of duplicate points in the point cloud; determine the coordinate residual value of the first point in the current node; and write the coordinate residual value of the first point and the duplicate point information of the current node into the geometric code stream.
  • the encoding unit 23 is further configured to write the total number of repeated points of the point cloud into the geometric code stream.
  • the repeated point information includes the number of repeated points included in the current node.
  • the encoding unit 23 is further configured to determine the sum of the number of repeated points included in the current node and the number of encoded repeated points as the number of new encoded repeated points.
  • the encoding unit 23 is also used to determine a coordinate prediction value of a target point, where the target point is a point included in the current node or is the first point in the current node; and based on the coordinate prediction value of the target point, determine a coordinate residual value of the target point.
  • the encoding unit 23 is specifically configured to determine a prediction mode corresponding to the target point; and determine a coordinate prediction value of the target point based on the prediction mode.
  • the encoding unit 23 is further configured to write the prediction mode corresponding to the target point into the geometric code stream.
  • the encoding unit 23 is specifically used to determine the coordinate residual value of the target point in the second coordinate system based on the coordinate prediction value of the target point in the second coordinate system; and determine the coordinate residual value of the target point in the second coordinate system as the coordinate residual value of the target point.
  • the encoding unit 23 is specifically used to determine the residual value of the target point in the first coordinate system based on the coordinate prediction value of the target point in the first coordinate system and the coordinate value of the target point in the first coordinate system; obtain the coordinate reconstruction value of the target point in the first coordinate system based on the coordinate prediction value of the target point in the first coordinate system; perform coordinate transformation on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate reconstruction value of the target point in the second coordinate system; determine the coordinate residual value of the target point in the second coordinate system based on the coordinate reconstruction value and the coordinate value of the target point in the second coordinate system; and determine the residual value of the target point in the first coordinate system and the coordinate residual value of the target point in the second coordinate system as the coordinate residual value of the target point.
  • the encoding unit 23 is specifically used to dequantize the quantized coordinate residual value of the target point in the first coordinate system to obtain the coordinate residual value of the target point in the first coordinate system; based on the coordinate prediction value and the coordinate residual value of the target point in the first coordinate system, obtain the coordinate reconstruction value of the target point in the first coordinate system.
  • the encoding unit 23 is further configured to write the total number of points of the point cloud into the geometric code stream of the point cloud.
  • the encoding unit 23 is specifically configured to write the total number of points of the point cloud into the geometry data unit.
  • the encoding unit 23 is specifically configured to subtract 1 from the total number of points in the point cloud to obtain a first value; and write the first value into the geometric data unit.
  • the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, it will not be repeated here.
  • the point cloud encoding device 20 shown in Figure 12 may correspond to the corresponding subject in the point cloud encoding method of the embodiment of the present application, and the aforementioned and other operations and/or functions of each unit in the point cloud encoding device 20 are respectively for implementing the corresponding processes in the point cloud encoding method. For the sake of brevity, they will not be repeated here.
  • the functional unit can be implemented in hardware form, can be implemented by instructions in software form, and can also be implemented by a combination of hardware and software units.
  • the steps of the method embodiment in the embodiment of the present application can be completed by the hardware integrated logic circuit and/or software form instructions in the processor, and the steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor to perform, or a combination of hardware and software units in the decoding processor to perform.
  • the software unit can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc.
  • the storage medium is located in a memory, and the processor reads the information in the memory, and completes the steps in the above method embodiment in conjunction with its hardware.
  • FIG. 13 is a schematic block diagram of an electronic device provided in an embodiment of the present application.
  • the electronic device 30 may be a point cloud decoding device or a point cloud encoding device as described in an embodiment of the present application, and the electronic device 30 may include:
  • the memory 33 and the processor 32, the memory 33 is used to store the computer program 34 and transmit the program code 34 to the processor 32.
  • the processor 32 can call and run the computer program 34 from the memory 33 to implement the method in the embodiment of the present application.
  • the processor 32 may be configured to execute the steps in the method 200 according to the instructions in the computer program 34 .
  • the processor 32 may include but is not limited to:
  • DSP digital signal processor
  • ASIC application-specific integrated circuit
  • FPGA field programmable gate array
  • the memory 33 includes but is not limited to:
  • Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) or flash memory.
  • the volatile memory can be random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDR SDRAM double data rate synchronous dynamic random access memory
  • ESDRAM enhanced synchronous dynamic random access memory
  • SLDRAM synchronous link DRAM
  • Direct Rambus RAM Direct Rambus RAM, DR RAM
  • the computer program 34 may be divided into one or more units, which are stored in the memory 33 and executed by the processor 32 to complete the method provided by the present application.
  • the one or more units may be a series of computer program instruction segments capable of completing specific functions, and the instruction segments are used to describe the execution process of the computer program 34 in the electronic device 30.
  • the electronic device 30 may further include:
  • the transceiver 33 may be connected to the processor 32 or the memory 33 .
  • the processor 32 may control the transceiver 33 to communicate with other devices, specifically, to send information or data to other devices, or to receive information or data sent by other devices.
  • the transceiver 33 may include a transmitter and a receiver.
  • the transceiver 33 may further include an antenna, and the number of antennas may be one or more.
  • bus system includes not only a data bus but also a power bus, a control bus and a status signal bus.
  • FIG. 14 is a schematic block diagram of a point cloud encoding and decoding system provided in an embodiment of the present application.
  • the point cloud encoding and decoding system 40 may include: a point cloud encoder 41 and a point cloud decoder 42, wherein the point cloud encoder 41 is used to execute the point cloud encoding method involved in the embodiment of the present application, and the point cloud decoder 42 is used to execute the point cloud decoding method involved in the embodiment of the present application.
  • the present application also provides a code stream, which is generated according to the above encoding method.
  • the present application also provides a computer storage medium on which a computer program is stored, and when the computer program is executed by a computer, the computer can perform the method of the above method embodiment.
  • the present application embodiment also provides a computer program product containing instructions, and when the instructions are executed by a computer, the computer can perform the method of the above method embodiment.
  • the computer program product includes one or more computer instructions.
  • the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions can be transmitted from a website, computer, server or data center to another website, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode.
  • the computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated.
  • the available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a digital video disc (digital video disc, DVD)), or a semiconductor medium (e.g., a solid state drive (solid state disk, SSD)), etc.
  • a magnetic medium e.g., a floppy disk, a hard disk, a tape
  • an optical medium e.g., a digital video disc (digital video disc, DVD)
  • a semiconductor medium e.g., a solid state drive (solid state disk, SSD)
  • the disclosed systems, devices and methods can be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the unit is only a logical function division.
  • Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
  • each functional unit in each embodiment of the present application may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

La présente demande concerne un procédé et un appareil de codage de nuage de points, un procédé et un appareil de décodage de nuage de points, des dispositifs, et un support de stockage. Un procédé comprend : dans un codage et un décodage de nuage de points basé sur un arbre de prédiction, avant le codage et le décodage d'un nœud actuel, la détermination d'abord d'un premier paramètre correspondant au nœud actuel, le premier paramètre étant utilisé pour déterminer si le nœud actuel comprend un point répété, puis le décodage du nœud actuel sur la base du premier paramètre. Par exemple, lorsqu'il est déterminé sur la base du premier paramètre que le nœud courant ne comprend pas de point répété, le codage et le décodage d'informations de point répété du nœud courant sont omis lors du codage et du décodage du nœud courant ; et s'il est déterminé sur la base du premier paramètre que le nœud courant comprend un point répété, des informations de point répété du nœud courant sont codées et décodées, ce qui réduit la complexité de codage et de décodage du nuage de points, économise le temps de codage et de décodage et améliore en outre l'efficacité de codage et de décodage.
PCT/CN2022/122114 2022-09-28 2022-09-28 Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositifs, et support de stockage WO2024065270A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/122114 WO2024065270A1 (fr) 2022-09-28 2022-09-28 Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositifs, et support de stockage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/122114 WO2024065270A1 (fr) 2022-09-28 2022-09-28 Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositifs, et support de stockage

Publications (1)

Publication Number Publication Date
WO2024065270A1 true WO2024065270A1 (fr) 2024-04-04

Family

ID=90475249

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/122114 WO2024065270A1 (fr) 2022-09-28 2022-09-28 Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositifs, et support de stockage

Country Status (1)

Country Link
WO (1) WO2024065270A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565794A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云孤立点编码、解码方法及装置
US20210218994A1 (en) * 2020-01-09 2021-07-15 Apple Inc. Geometry Encoding of Duplicate Points
WO2021187561A1 (fr) * 2020-03-19 2021-09-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Procédé de codage de données tridimensionnelles, procédé de décodage de données tridimensionnelles, dispositif de codage de données tridimensionnelles et dispositif de décodage de données tridimensionnelles
US20210306663A1 (en) * 2020-03-30 2021-09-30 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
CN114913253A (zh) * 2021-02-08 2022-08-16 西安电子科技大学 一种自适应点云几何编解码方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210218994A1 (en) * 2020-01-09 2021-07-15 Apple Inc. Geometry Encoding of Duplicate Points
WO2021187561A1 (fr) * 2020-03-19 2021-09-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Procédé de codage de données tridimensionnelles, procédé de décodage de données tridimensionnelles, dispositif de codage de données tridimensionnelles et dispositif de décodage de données tridimensionnelles
US20210306663A1 (en) * 2020-03-30 2021-09-30 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
CN113826029A (zh) * 2020-03-30 2021-12-21 腾讯美国有限责任公司 点云编解码中对复制点和孤立点进行编码的方法
CN112565794A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云孤立点编码、解码方法及装置
CN114913253A (zh) * 2021-02-08 2022-08-16 西安电子科技大学 一种自适应点云几何编解码方法及装置

Similar Documents

Publication Publication Date Title
US11803989B2 (en) Quantization for geometry-based point cloud compression
US20210407144A1 (en) Attribute parameter coding for geometry-based point cloud compression
CN114930858A (zh) 用于基于几何的点云压缩的高级语法
US11601488B2 (en) Device and method for transmitting point cloud data, device and method for processing point cloud data
US11910017B2 (en) Method for predicting point cloud attribute, encoder, decoder, and storage medium
WO2022133753A1 (fr) Procédés et systèmes de codage et de décodage de nuage de points, codeur de nuage de points et décodeur de nuage de points
JP2023543752A (ja) 点群コーデック方法及びシステム、並びに点群エンコーダ及び点群デコーダ
WO2024065270A1 (fr) Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositifs, et support de stockage
WO2024065271A1 (fr) Procédé et appareil de codage/décodage de nuage de points, et dispositif et support d'enregistrement
WO2024065269A1 (fr) Procédé et appareil de codage et de décodage de nuage de points, dispositif, et support de stockage
WO2024065272A1 (fr) Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositif, et support de stockage
WO2024065406A1 (fr) Procédés de codage et de décodage, train de bits, codeur, décodeur et support de stockage
WO2022257145A1 (fr) Procédé et appareil de prédiction d'attributs de nuage de points, et codec
US20240015325A1 (en) Point cloud coding and decoding methods, coder, decoder and storage medium
WO2022257150A1 (fr) Procédés et appareil de codage et de décodage de nuage de points, codec de nuage de points et support de stockage
WO2023024842A1 (fr) Procédé, appareil et dispositif de codage/décodage de nuage de points, et support de stockage
TWI806481B (zh) 點雲中鄰居點的選擇方法及裝置、編碼設備、解碼設備及電腦設備
WO2024065408A1 (fr) Procédé de codage, procédé de décodage, flux de code, codeur, décodeur et support de stockage
US20230082456A1 (en) Point cloud attribute prediction method and apparatus, and related device
US20240087174A1 (en) Coding and decoding point cloud attribute information
CN117354496A (zh) 点云编解码方法、装置、设备及存储介质
WO2023240662A1 (fr) Procédé de codage, procédé de décodage, codeur, décodeur, et support de stockage
WO2022140937A1 (fr) Procédé et système de codage de nuage de points, procédé et système de décodage de nuage de points, codeur de nuage de points et décodeur de nuage de points
CN116866615A (zh) 点云编码方法及设备
WO2024026712A1 (fr) Procédé et appareil de codage de nuage de points, procédé et appareil de décodage de nuage de points, dispositif, et support de stockage

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22959917

Country of ref document: EP

Kind code of ref document: A1