WO2024065271A1 - Point cloud encoding/decoding method and apparatus, and device and storage medium - Google Patents

Point cloud encoding/decoding method and apparatus, and device and storage medium Download PDF

Info

Publication number
WO2024065271A1
WO2024065271A1 PCT/CN2022/122116 CN2022122116W WO2024065271A1 WO 2024065271 A1 WO2024065271 A1 WO 2024065271A1 CN 2022122116 W CN2022122116 W CN 2022122116W WO 2024065271 A1 WO2024065271 A1 WO 2024065271A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
coordinate
repeated
points
value
Prior art date
Application number
PCT/CN2022/122116
Other languages
French (fr)
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/122116 priority Critical patent/WO2024065271A1/en
Publication of WO2024065271A1 publication Critical patent/WO2024065271A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties

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 methods such as the low latency, low complexity coding model (L3C2), need to encode and decode the duplicate point information of each node in L3C2 when encoding and decoding the node, thereby reducing the encoding and decoding efficiency of the point cloud.
  • L3C2 low latency, low complexity coding model
  • 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 according to the number of the decoded repeated points and the total number of repeated points in the point cloud.
  • the present application provides a point cloud encoding method, comprising:
  • the current node is encoded according to the number of the encoded repeated points and the total number of repeated points in the point cloud.
  • 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 total number of repeated points included in the point cloud is first determined by the total number of points included in the point cloud and the total number of L3C2 nodes of the point cloud.
  • the number of repeated points that have been encoded and decoded is recorded in real time, and the number of repeated points that have been encoded and decoded is compared with the total number of repeated points included in the point cloud to determine whether to encode and decode the repeated point information of the node when encoding and decoding the current node.
  • the number of repeated points that have been encoded and decoded is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been encoded and decoded, and the remaining nodes do not include repeated points, and thus there is no need to encode and decode the repeated point information of subsequent nodes, 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
  • FIG6 is a schematic diagram of a decoding framework of L3C2
  • FIG7A is a schematic diagram of a single-chain structure
  • FIG7B is a schematic diagram of a single chain after the single chain structure shown in FIG7A is regularized
  • FIG8 is a schematic diagram of the scanning principle of a laser scanner
  • FIG9 is a schematic diagram of a prediction structure
  • FIG10 is a schematic diagram of a determination principle of a quantization factor
  • FIG11 is a schematic diagram of another principle for determining a quantization factor
  • FIG12 is a schematic diagram of a decoding framework of L3C2
  • FIG13 is a schematic diagram of a point cloud decoding method flow chart provided in an embodiment of the present application.
  • FIG14 is a schematic diagram of a point cloud encoding method flow chart provided by an embodiment of the present application.
  • FIG15 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application.
  • FIG16 is a schematic block diagram of a point cloud encoding device provided in an embodiment of the present application.
  • FIG17 is a schematic block diagram of an electronic device provided in an embodiment of the present application.
  • Figure 18 is a schematic block diagram of the 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 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.
  • FIG4B 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.
  • dx, dy, dz bits are required to encode each component of the x , y, and z components of the geometric coordinates of the node, and this bit information is directly encoded into the bitstream.
  • 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 decoder obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and divides the nodes in sequence 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 vertex coordinates are first decoded to complete the reconstruction of the triangle facets at the decoding end.
  • the process is shown in Figures 5A to 5C.
  • the triangle facet set formed by these three vertices in a certain order is called triangle soup, or trisoup, as shown in Figure 5B.
  • sampling is performed on the triangle facet 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 highest bits of x, y, and z are To the lowest position The corresponding binary value.
  • the Morton code M is x, y, z, starting from the highest bit, arranged in sequence 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.
  • Input for constructing a single chain structure voxelized point cloud and prior information of rotating lidar.
  • the output of constructing a single chain structure includes: 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 skipped points corresponding to each mode.
  • L3C2 As shown in Figure 6, the construction of L3C2 is specifically divided into: reordering, coordinate transformation, establishing a single chain structure, selecting a prediction mode, generating a prediction value, encoding the number of repeated points, quantizing the prediction residual, inverse coordinate transformation, and encoding the coordinate transformation residual.
  • the voxelized point cloud is reordered to construct a more efficient single chain structure.
  • the default sorting method is to sort according to the scanning order of the lidar.
  • 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 elevation tangent value tan ⁇ , the azimuth angle ⁇ , and the radius r.
  • 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.
  • 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.
  • FIG. 7A is a single chain structure obtained by sorting the points in the point cloud based on the cylindrical coordinates (r, ⁇ , i).
  • the rotation interval of each Laser can be obtained by using the acquisition parameters of the laser scanner, that is, by using To compare the single-chain structure shown in FIG7A in the vertical direction (i.e. The regularized single-stranded structure is obtained as shown in FIG7B .
  • the single-chain structure shown in FIG. 7A can be regularized in the vertical direction by the following formula (5):
  • round() is the rounding function.
  • the entire encoding process is performed using the regularized single-chain structure as an example.
  • N laser represents the number of Lasers
  • i represents the LaserID corresponding to the current point
  • each point is predicted and encoded according to the structure shown in FIG9.
  • the best prediction mode predMode is selected by using the rate-distortion optimization criterion at the encoding end, and the prediction mode needs to be encoded.
  • the update criteria are as follows:
  • Criterion 1 When the prediction residual is greater than a certain threshold (Th), the current point is updated to the prediction list and the last prediction value is deleted.
  • Criterion 2 When the prediction residual is less than or equal to a certain threshold (Th), the selected prediction value is deleted and the current point is updated to the prediction list.
  • Th a certain threshold
  • the prediction value of the current point is assumed to be Based on the predicted value and original value of the current point, the predicted residual value of the current point is determined to be
  • the determination principle of the quantization factors corresponding to x and y is shown in FIG. 10 , where r and The determination principle of the corresponding quantization factor is shown in FIG11 .
  • r and r are calculated according to the following formula (7) and formula (8) respectively:
  • the corresponding quantization factors ⁇ r and ⁇ are:
  • the prediction residual value of the current point is quantized, for example,
  • 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).
  • Input for reconstructing the single-chain structure 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, the order of each point), and the prior information of the rotating lidar.
  • Output of reconstructing a single chain structure reconstructed voxelized point cloud.
  • the reconstruction of the single chain structure is divided into four steps: generating prediction values, reconstructing the single chain structure, decoding the number of repeated points, 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:
  • predictive coding is performed on each point according to the structure shown in FIG9 .
  • the prediction mode predMode of the current point is obtained by parsing the bitstream at the decoding end, and then the cylindrical coordinate prediction value of the current point is obtained in the prediction list using the prediction mode predMode.
  • the predicted value of Cartesian coordinates is the reconstructed value of cylindrical coordinates of the point.
  • 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 obtained by decoding is used and the predicted cylindrical coordinates of the current point Calculate the reconstructed cylindrical coordinates of the current point
  • the position of the current point in the L3C2 structure can be determined, and the cylindrical coordinates (r, ⁇ , i) can be reconstructed to reconstruct the L3C2 structure.
  • the reconstructed cylindrical coordinates of the current point (r, ⁇ , i), that is, the reconstructed cylindrical coordinates mentioned above Convert to Cartesian coordinates according to the following formula (11): This is the predicted Cartesian coordinate of the current point.
  • 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 following formula (12) is used to use the decoded Cartesian coordinate residual (r x , ry , r z ) and the predicted Cartesian coordinate of the current point: Computes the reconstructed Cartesian coordinates (x,y,z) of the current point.
  • the above introduces the encoding and decoding method based on L3C2. It can be seen from the above that in the encoding and decoding based on L3C2, for each node in L3C2, the repeated point information of the node needs to be encoded and decoded, but not every node has repeated points. Therefore, encoding and decoding repeated point information for each node increases the complexity of encoding and decoding, wastes a lot of encoding and decoding time, and makes the encoding and decoding efficiency low.
  • the total number of repeated points included in the point cloud is first determined by the total number of points included in the point cloud and the total number of L3C2 nodes of the point cloud. In this way, during encoding and decoding, the number of repeated points that have been encoded and decoded is recorded in real time, and the number of repeated points that have been encoded and decoded is compared with the total number of repeated points included in the point cloud to determine whether to encode and decode the repeated point information of the node when encoding and decoding the current node.
  • the number of repeated points that have been encoded and decoded is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been encoded and decoded, and the remaining nodes do not include repeated points, and thus there is no need to encode and decode the repeated point information of subsequent nodes, 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. 13 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:
  • 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 the L3C2 structure of the point cloud based on the geometric information of the point cloud.
  • the L3C2 structure is a chain structure composed of at least one single chain structure, and each single chain structure includes at least one node.
  • a node includes at least one point in the point cloud, that is, in the L3C2 encoding, the points in the point cloud are divided into nodes in L3C2.
  • these points with the same coordinates are divided into the same node of L3C2, so that the node includes repeated points.
  • L3C2 of a point cloud when constructing L3C2 of a point cloud, it is necessary to perform coordinate conversion on the points in the point cloud. For example, when converting the coordinates of the points in the point cloud in the second coordinate system to the coordinates in the first coordinate system, the coordinates of the points with different coordinates in the second coordinate system may become the same when converted to the first coordinate system. In this way, when constructing L3C2 based on the coordinates of the points in the first coordinate system, the points with the same coordinates in the first coordinate system will be divided into one node, so that the node includes duplicate points.
  • nodes in L3C2 of the point cloud include duplicate 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 encoding and decoding, waste encoding and decoding time, and reduce encoding and decoding efficiency.
  • the total number of duplicate points included in the point cloud is first determined, and during the decoding process, the number of decoded duplicate points is counted, and then before decoding each point, it is first determined whether the number of currently decoded duplicate points is equal to the total number of duplicate points included in the point cloud.
  • the number of currently decoded duplicate points is equal to the total number of duplicate points included in the point cloud, it means that the duplicate points in the point cloud have been decoded, and the remaining nodes to be decoded in L3C2 do not include duplicate nodes. In this way, when these nodes are subsequently decoded, the duplicate point information of these nodes will no longer be decoded, thereby reducing the decoding complexity of the point cloud, saving decoding time, and improving decoding efficiency.
  • the embodiment of the present application does not limit the specific method for the decoding end to obtain the total number of L3C2 nodes of the point cloud and the total number of points of the point cloud.
  • the encoder writes the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud into the geometry stream. In this way, the decoder obtains the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud by decoding the geometry stream.
  • the encoding end writes the number of single chains included in the point cloud and the number of nodes included in each single chain into the geometric code stream.
  • the decoding end decodes the geometric code stream of the point cloud to obtain the number of single chains headsCount included in the point cloud and the number of nodes included in each single chain, and then obtains the total number of nodes of L3C2 based on the number of single chains and the number of nodes included in each single chain. For example, the sum of the number of nodes included in each single chain is determined as the total number of nodes of L3C2.
  • the nodes on each single chain included in the point cloud can be added together to obtain the total number of nodes nodeCount of L3C2 through the following instructions:
  • 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 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 obtains the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud, and then executes the following step S102.
  • S102 Determine the total number of repeated points in the point cloud according to the total number of points in the point cloud and the total number of nodes in L3C2.
  • the decoding end determines the total number of L3C2 nodes of the point cloud and the total number of points in the point cloud, it determines the total number of repeated points in the point cloud based on the total number of points in the point cloud and the total number of L3C2 nodes, and then uses the total number of repeated points in the point cloud as supervision for subsequent decoding.
  • the embodiment of the present application does not limit the specific method in which the decoding end determines the total number of repeated points in the point cloud based on the total number of nodes of L3C2 of the point cloud and the total number of points in the point cloud.
  • some point information may be lost or damaged during data transmission or encoding.
  • the decoding end may perform shallow decoding on the geometry stream to determine the number of nodes included in the geometry stream, and then determine the total number of repeated points in the point cloud based on the number of nodes included in the geometry stream, the total number of points in the point cloud determined in the above steps, and the total number of nodes in L3C2.
  • the difference between the total number of points in the point cloud and the total number of nodes in L3C2 is directly determined 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 (13):
  • dupSumNum (slice_num_points_minus1+1)-nodeCount (13)
  • 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 L3C2.
  • the decoding end After the decoding end determines the total number of repeated points in the point cloud, it starts decoding each point in L3C2, as shown in S103 below.
  • the decoding end decodes each node in L3C2 in the same manner.
  • the current node in L3C2 is taken as an example for illustration.
  • dupCount represents the number of duplicate points currently decoded, and dupCount is initialized to 0.
  • dupCount 0, which is less than the total number of duplicate points dupSumNum in the point cloud.
  • 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.
  • decode the second node in L3C2. Before decoding the second node, first determine whether dupCount a is equal to the total number of duplicate points dupSumNum in the point cloud. If not, continue to decode the duplicate point information of the second node, and use the number of duplicate points included in the second node to update the current dupCount, and so on.
  • the decoding end decodes the current node in L3C2
  • 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.
  • S104 Decode the current node according to the number of decoded duplicate points and the total number of duplicate points in the point cloud.
  • the decoding end compares the number of decoded duplicate points with the total number of duplicate points in the point cloud to decode the current node.
  • the implementation process of the above S104 includes the following situations:
  • the current node includes only one point, which is recorded as the first point. Then, the geometric reconstruction value of the first point is determined.
  • the above describes the process of skipping decoding the duplicate point information of the current node and determining the geometric reconstruction value of the first point included in the current node for case 1, if the number of decoded duplicate points is equal to the total number of duplicate points in the point cloud.
  • Case 2 If the duplicate point information includes the number of duplicate points included in the current node, the number of decoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is the last node in L3C2, the above S104 includes S104-C1 and S104-C2:
  • S104-A2 Determine the difference between the total number of repeated points in the point cloud and the number of decoded repeated points as the number of repeated points included in the current node.
  • the decoding end determines that the current node is the last node of L3C2, it is determined that the current node must include duplicate points, and the number of duplicate points included in the current node is the difference between the total number of duplicate points in the point cloud and the number of decoded duplicate points.
  • the decoding end also needs to determine the geometric reconstruction value of the first point included in the current node, wherein the process of determining the geometric reconstruction value of the first point can be specifically referred to the description of the following steps 11 to 13, which will not be repeated here.
  • Case 3 If the number of decoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is not the last node in L3C2, the above S104 includes S104-B1 and S104-B2:
  • the encoder determines that the number of repeated points of the encoded points corresponding to the current node is less than the total number of repeated points of the point cloud, and the current node is not the last node in L3C2, when determining that the current node has repeated points, the repeated point information of the current node is written into the geometric code stream.
  • the decoder determines that the number of repeated points of the decoded points corresponding to the current node is less than the total number of repeated points of the point cloud, and the current node is not the last node in L3C2
  • the decoder decodes the geometric code stream to obtain the repeated point information of the current node, and based on the repeated point information, determines the geometric reconstruction values of the N repeated points included in the current node.
  • the embodiment of the present application does not limit the specific content included in the repeated point information.
  • the repeated point information includes the number of repeated points included in the current node.
  • the repeated point information includes the number of repeated points included in the current node, and at least one first flag, where the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point at the second coordinate.
  • the current node includes three points, which are recorded as point 1, point 2 and point 3 respectively.
  • Point 2 and point 3 correspond to a first flag respectively, wherein the first flag of point 2 is used to indicate whether the coordinates of point 2 and point 1 in the second coordinate are the same, and the first flag of point 3 is used to indicate whether the coordinates of point 3 and point 2 in the second coordinate are the same.
  • step S104-B2 After the decoding end determines the repeated point information of the current node, it executes step S104-B2 to determine the geometric reconstruction value of each of the N repeated points included in the current node based on the repeated point information.
  • the geometric reconstruction values of all the points included in the current node are determined with reference to the above method of determining the geometric reconstruction value of the first point.
  • the above S104-B2 includes the following steps:
  • the encoder 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 it is determined that the current node includes 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 and the order o(P) in the single chain are encoded.
  • the repeated point information corresponding to the current node is determined, and the repeated point information is encoded into the bitstream.
  • the decoding end first 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 13, 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.
  • the repeated point information is parsed, and the first flag corresponding to each repeated point is obtained from the repeated point information. If the first flag corresponding to each repeated point indicates that the coordinate value of the repeated point is the same as that of the previous point in the second coordinate system, and is also the same as that of the first point in the second coordinate system, for example, the value of the first flag of each repeated point is 1. In this way, the decoding end can directly determine the geometric reconstruction value of the first point as the geometric reconstruction value of the N repeated points.
  • the decoding end decodes each of the N repeated points one by one.
  • the above S104-B22 includes the following steps:
  • S104-B22-1 For the i-th repeated point among the N repeated points, parse the repeated point information to obtain a first flag corresponding to the i-th repeated point, where the first flag is used to indicate whether the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are the same, where i is a positive integer less than or equal to N, and if i is 1, the i-1-th repeated point is the first point;
  • the method for determining each of the N repeated points is the same.
  • the i-th repeated point among the N repeated points is used as an example for explanation.
  • the first identifier corresponding to the i-th repeated point is obtained from the repeated point information of the current node.
  • the first identifier indicates whether the i-th repeated point and the previous point, i.e., the i-1-th repeated point, have the same coordinates in the second coordinate system.
  • the decoding end determines the geometric reconstruction value of the ith repeated point based on the first flag corresponding to the ith repeated point.
  • the geometric reconstruction value of the i-1-th repeated point is determined as the geometric reconstruction value of the i-th repeated point.
  • the decoding end needs to re-determine the geometric reconstruction value of the i-th repeated point.
  • the decoding end decodes the geometric code stream, obtains the coordinate residual value of the i-th repeated point in the second coordinate system, the coordinate residual value of the i-th repeated point in the first coordinate system, and the prediction mode corresponding to the i-th repeated point, determines the coordinate prediction value of the i-th repeated point in the first coordinate system based on the prediction mode corresponding to the i-th repeated point, determines the coordinate reconstruction value of the i-th repeated point in the first coordinate system based on the coordinate prediction value and the coordinate residual value of the i-th repeated point in the first coordinate system, performs coordinate conversion on the coordinate reconstruction value of the i-th repeated point in the first coordinate system, adds it to the coordinate residual value of the i-th repeated point in the second coordinate system, obtains the coordinate reconstruction value of the i-th repeated point in the second coordinate system, and determines the coordinate reconstruction value of the i-th repeated point in the second coordinate system as the geometric reconstruction value of the i-th repeated point.
  • the decoding end can determine the geometric reconstruction value of each of the N repeated points.
  • 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 following describes the process of determining the geometric reconstruction value of a point included in the current node, i.e., the first point, in the above case 1, the geometric reconstruction value of the first point when the current node includes multiple points in cases 2 and 3, and the process of determining the geometric reconstruction value of the i-th repeated point among the N repeated points included in the current node in case 3. That is, the target value in the following steps 11 to 13 can be understood as the first point in case 1, the first point in cases 2 and 3, or the i-th repeated point in case 3.
  • Step 11 determine the predicted coordinate value of the target point in the first coordinate system.
  • the coordinate prediction value of the target point in the first coordinate system is determined based on the coordinate reconstruction value of the current decoded point in the first coordinate system. For example, the arithmetic mean or weighted mean of the coordinate reconstruction values of one or more decoded points before the target point in the first coordinate system is determined as the coordinate prediction value of the target point in the first coordinate system.
  • step 11 includes the following steps: step 11-1 and step 11-2:
  • Step 11-1 decoding the geometric code stream to obtain the prediction mode corresponding to the target point
  • Step 11-2 Based on the prediction model, determine the coordinate prediction value of the target point in the first coordinate system.
  • the encoder When encoding, the encoder encodes the prediction mode corresponding to the target point into the geometric code stream, so that the decoder can decode the geometric code stream to obtain the prediction mode corresponding to the target point, and then determine the coordinate prediction value of the target point in the first coordinate system based on the prediction mode.
  • the embodiment of the present application does not limit the specific type of prediction mode corresponding to the target point.
  • the laser radar for scanning the point cloud includes N lasers, each laser corresponds to a prediction list, and the corresponding L3C2 corresponds to N prediction lists.
  • the coordinates of the target point in the first coordinate system are Where i represents the laser mark corresponding to the target point, so that the prediction list corresponding to the i of the target point can be determined as the prediction list corresponding to the target point.
  • the target point is predicted respectively using these M prediction values, and the cost corresponding to each of the M prediction values is determined, and then the index of the prediction value with the lowest price in the prediction list is determined as the prediction mode corresponding to the target point, and then encoded.
  • the prediction mode corresponding to the target point is the index of the prediction value with the lowest cost in the prediction list corresponding to the target point.
  • the encoding end determines the order of the target point in the L3C2 single chain based on the i of the target point, that is, o(P), and encodes o(P) and the prediction mode corresponding to the target point into the bitstream.
  • the decoding end decodes the bitstream to obtain o(P) and the prediction mode corresponding to the target point, and then determines the i component of the target point based on o(P), record i rec , and then determines the prediction list corresponding to the target point based on i rec . Then, in the prediction list, the prediction value indexed as the prediction mode corresponding to the target point is determined as the coordinate prediction value of the target point in the first coordinate system.
  • the predicted value includes r pred and
  • the embodiment of the present application does not limit the specific type of the first coordinate system.
  • the first coordinate system is cylindrical coordinates.
  • step 12 is executed.
  • Step 12 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 reconstructed coordinate value of the target point in the first coordinate system is determined based on the predicted 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 above step 12 includes the following steps 12-1 to 12-3:
  • Step 12-1 decoding the geometric code stream to obtain the coordinate residual value of the target point after quantization in the first coordinate system
  • Step 12-2 dequantize the quantized coordinate residual value to obtain the coordinate residual value of the target point in the first coordinate system
  • Step 12-3 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 encoder when encoding the target point, determines the coordinate 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, for example, the difference between the coordinate value of the target point in the first coordinate system and the coordinate prediction value is determined as the coordinate residual value of the target point in the first coordinate system. Then, the encoder quantizes the coordinate residual value of the target point in the first coordinate system and encodes it into the bitstream.
  • the decoding end decodes the geometric code stream to obtain the quantized coordinate residual value of the target point in the first coordinate system, and dequantizes the quantized coordinate residual value to obtain the coordinate residual value of the target point in the first coordinate system.
  • the decoding end before dequantizing the coordinate residual value of the target point after quantization in the first coordinate system, the decoding end first determines a quantization factor, and dequantizes the coordinate residual value of the target point after quantization in the first coordinate system based on the determined quantization factor.
  • the geometric code stream is decoded and the coordinate residual value of the target point after quantization in the first coordinate system is Q(r res ) and Based on the above steps, the predicted coordinate value of the target point in the first coordinate system is
  • the decoding end determines the quantization factor ⁇ r corresponding to Q(r res ) by the following formula (14):
  • ⁇ Q is determined based on a preset quantization parameter.
  • the quantized coordinate residual value Q(r res ) of the target point in the first coordinate system is dequantized to obtain the coordinate residual value r res of the target point in the first coordinate system.
  • the decoding end obtains a coordinate reconstruction value r rec of the target point in the first coordinate system based on the coordinate prediction value r prd and the coordinate residual value r res of the target point in the first coordinate system.
  • the decoding end determines the sum of the coordinate prediction value r prd and the coordinate residual value r res of the target point in the first coordinate system as the coordinate reconstruction value r rec of the target point in the first coordinate system.
  • the decoding end determines the coordinate reconstruction value r rec of the target point in the first coordinate system according to the above method, the decoding end determines based on r rec The corresponding quantization factor
  • the decoding end determines by the following formula (15): The corresponding quantization factor
  • the decoding end determines The corresponding quantization factor Then, based on the quantization factor right Perform inverse quantization to obtain the coordinate residual value of the target point in the first coordinate system
  • the decoder predicts the coordinates of the target point in the first coordinate system. and coordinate residuals
  • the coordinate reconstruction value r rec of the target point in the first coordinate system is obtained.
  • the decoding end predicts the coordinates of the target point in the first coordinate system and coordinate residuals The sum of the coordinates of the target point in the first coordinate system is determined as
  • the coordinate reconstruction value of the target point in the first coordinate system can be determined
  • Step 13 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 13-1 to 13-3:
  • Step 13-1 performing coordinate transformation on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate prediction value of the target point in the second coordinate system.
  • the coordinate reconstruction value of the target point in the first coordinate system is transformed to obtain the coordinate prediction value of the target point in the second coordinate system.
  • the coordinate prediction value of the target point in the second coordinate system is determined based on the following formula (16):
  • is the elevation angle of the laser Laser corresponding to i rec
  • zLaser is the height of the laser Laser corresponding to i rec in the vertical direction.
  • Step 13-2 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 prediction value and the coordinate reconstruction value of the target point in the second coordinate system. 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 13-3 Based on the predicted coordinate value and the residual coordinate value of the target point in the second coordinate system, obtain the reconstructed coordinate 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 (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.
  • the above embodiment is described by taking the geometric decoding process of the current node in L3C2 as an example.
  • the decoding process of other nodes in L3C2 can refer to the decoding process of the current node, and then the reconstructed point cloud geometric information can be obtained.
  • the point cloud decoding method decodes the geometric code stream of the point cloud to obtain the total number of L3C2 nodes of the point cloud and the total number of points of the point cloud. Based on the total number of points of the point cloud and the total number of L3C2 nodes of the point cloud, the total number of repeated points included in the point cloud is determined. In this way, during decoding, the number of decoded repeated points is recorded in real time, and the number of decoded repeated points is compared with the total number of repeated points included in the point cloud to determine whether to decode the repeated point information of the node when decoding the current node.
  • the number of decoded repeated points is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been decoded, and the remaining nodes do not include repeated points, so that there is no need to decode the repeated point information of subsequent nodes, 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. 14 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 encoding end reorders the points in the point cloud based on the coordinate information of the points in the point cloud, constructs a single chain structure based on the coordinate information of the reordered points, and then obtains the L3C2 structure of the point cloud.
  • the embodiment of the present application does not limit the method of reordering the point cloud.
  • the voxelized point cloud is reordered to construct a more efficient single chain structure, and the default sorting method is to sort according to the scanning order of the lidar.
  • the coordinate value of each point in the point cloud in the second coordinate system is converted into the coordinate value in the third coordinate system, such as the third coordinate system is the polar coordinate system, and the corresponding coordinate value is (r, ⁇ , tan ⁇ ).
  • the points are sorted according to the elevation tangent value tan ⁇ , the azimuth angle ⁇ , and the radius r in the polar coordinate system.
  • the third coordinate system includes a cylindrical coordinate system, a polar coordinate system, and may also include other coordinate systems.
  • coordinate transformation is performed on the sorted point cloud. Specifically, the point cloud is traversed according to the sorted result, and the coordinate values of the midpoints of the point cloud in the second coordinate system are transformed into coordinate values in the first coordinate system and stored.
  • the first coordinate system is a cylindrical coordinate system and the second coordinate system is a Cartesian coordinate system
  • the coordinate value (x, y, z) of the point in the point cloud in the Cartesian coordinate system is converted to the coordinate value (r, ⁇ , i) in the cylindrical coordinate system.
  • a single chain structure is constructed based on the coordinate values of the midpoints of the point cloud in the first coordinate system.
  • the first coordinate system is a cylindrical coordinate system
  • the single chain structure constructed by the point cloud is shown in FIG. 7A .
  • the rotation interval of each Laser is by using The single-chain structure shown in FIG7A is regularized in the vertical direction to obtain the single-chain structure shown in FIG7B.
  • the above formula (5) may be used for regularization.
  • encoding is performed based on the regularized single-chain structure.
  • the encoding end constructs the L3C2 structure of the point cloud based on the geometric information of the point cloud.
  • the L3C2 structure is a chain structure, which is composed of at least one single chain structure, and each single chain structure includes at least one node.
  • a node includes at least one point in the point cloud, that is, in the L3C2 encoding, the points in the point cloud are divided into nodes in L3C2.
  • these points with the same coordinates are divided into the same node of L3C2, so that the node includes repeated points.
  • L3C2 of a point cloud it is necessary to perform coordinate conversion on the points in the point cloud.
  • the coordinates of the points with different coordinates in the second coordinate system may become the same when converted to the first coordinate system.
  • the points with the same coordinates in the first coordinate system will be divided into one node, so that the node includes duplicate points.
  • the encoding end 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 total number of duplicate points included in the point cloud is first determined, and during the encoding process, the number of encoded duplicate points is counted, and then before encoding each point, it is first determined whether the number of currently encoded duplicate points is equal to the total number of duplicate points included in the point cloud.
  • the number of currently encoded duplicate points is equal to the total number of duplicate points included in the point cloud, it means that the duplicate points in the point cloud have been encoded, and the remaining nodes to be encoded in L3C2 do not include duplicate nodes. In this way, when these nodes are subsequently encoded, the duplicate point information of these nodes will no longer be encoded, thereby reducing the encoding complexity of the point cloud, saving encoding time, and improving encoding efficiency.
  • the embodiment of the present application does not limit the specific method for the encoder to obtain the total number of L3C2 nodes of the point cloud and the total number of points of the point cloud.
  • the encoder when constructing L3C2, the encoder counts the number of node points included in L3C2.
  • the encoding end determines the number of single chains included in L3C2 and the number of nodes included in each single chain, and obtains the total number of nodes of L3C2 based on the number of single chains and the number of nodes included in each single chain. For example, the sum of the number of nodes included in each single chain is determined as the total number of nodes of L3C2.
  • the nodes on each single chain included in the point cloud can be added together to obtain the total number of nodes nodeCount of L3C2 through the following instructions:
  • the encoding end also includes: writing the number of single chains included in L3C2 and the number of nodes included in each single chain into the geometric code stream of the point cloud.
  • the point cloud file includes the total number of points of the point cloud, so that the encoding end obtains the total number of points of the point cloud by receiving the point cloud file.
  • the encoder writes the total number of points in the point cloud into the geometry code stream.
  • the encoding end writes the total number of points of the point cloud into the geometric data unit.
  • the encoder subtracts 1 from the total number of points in the point cloud to obtain a first value, and writes the first value into the geometric data unit. For example, as shown in Table 2 above.
  • the encoder obtains the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud, and then executes the following step S203.
  • S203 Determine the total number of repeated points in the point cloud according to the total number of points in the point cloud and the total number of nodes in L3C2.
  • the encoder determines the total number of L3C2 nodes and the total number of points of the point cloud, it determines the total number of repeated points in the point cloud based on the total number of points in the point cloud and the total number of L3C2 nodes, and then uses the total number of repeated points in the point cloud as supervision for subsequent encoding.
  • the embodiment of the present application does not limit the specific method in which the encoder determines the total number of repeated points in the point cloud based on the total number of nodes of L3C2 of the point cloud and the total number of points in the point cloud.
  • the difference between the total number of points in the point cloud and the total number of nodes in L3C2 is directly determined as the total number of repeated points in the point cloud.
  • the encoder determines the total number of repeated points in the point cloud through the above formula (13).
  • the encoder After the encoder determines the total number of repeated points in the point cloud, it starts to encode each point in L3C2, as shown in S204 below.
  • the encoding end encodes each node in L3C2 in the same way.
  • the current node in L3C2 is taken as an example for illustration.
  • dupCount is used to represent the number of duplicate points currently encoded, and dupCount is initialized to 0.
  • dupCount 0, which is less than the total number of duplicate points dupSumNum in the point cloud.
  • the duplicate point information of the first node needs to be encoded.
  • 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.
  • dupCount a is equal to the total number of duplicate points dupSumNum in the point cloud. If not, continue to encode the duplicate point information of the second node, and use the number of duplicate points included in the second node to update the current dupCount, and so on.
  • the encoding end when encoding the current node in L3C2, the encoding end 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 encoder records the number of encoded duplicate points through the following instructions:
  • dupPointNum represents the number of duplicate points included in the node.
  • the encoder compares the number of encoded duplicate points with the total number of duplicate points in the point cloud to encode the current node.
  • the implementation process of the above S205 includes the following situations:
  • S205-A Determine the coordinate residual value of the first point included in the current node, and write the coordinate residual value of the first point into the geometric code stream of the point cloud.
  • the current node includes only one point, which is recorded as the first point. Then, the coordinate residual value of the first point is determined, and the coordinate residual value of the first point is written into the geometric code stream of the point cloud.
  • the embodiment of the present application does not limit the specific content included in the repeated point information.
  • the encoding end when encoding the current node, determines the number of encoded duplicate points corresponding to the current node. If the number of encoded duplicate points corresponding to the current node is less than the total number of duplicate points in the point cloud, it means that the current node may include duplicate points. At this time, in order to accurately encode, it is necessary to determine the duplicate point information of the current node and encode the duplicate point information of the current node.
  • the repeated point information includes the number of repeated points included in the current node. Thus, by determining the number of repeated points included in the current node, the repeated point information of the current node can be determined.
  • the repeated point information includes the number of repeated points included in the current node and at least one first flag, where the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point at the second coordinate.
  • the current node includes three points, which are recorded as point 1, point 2 and point 3 respectively.
  • Point 2 and point 3 correspond to a first flag respectively, wherein the first flag of point 2 is used to indicate whether the coordinates of point 2 and point 1 in the second coordinate are the same, and the first flag of point 3 is used to indicate whether the coordinates of point 3 and point 2 in the second coordinate are the same.
  • the first flag is used to indicate whether the coordinates of the current point in the current node are the same as the coordinates of the previous point under the second coordinate, then the above S205-B1 includes the following S205-B11 and S205-B12:
  • S205-B13 Determine the repeated point information of the current node based on the number of N repeated points included in the current node and the first flags respectively corresponding to the N repeated points.
  • the points that are repeated with the first point are determined. For example, if the current node includes 3 points, it is determined that the current node includes 2 repeated nodes.
  • first marks corresponding to the N repeated points are determined.
  • the coordinate value of the repeated point in the second coordinate system is compared with the coordinate value of the first point in the second coordinate system to determine the first mark corresponding to the repeated point. For example, if the coordinate value of the repeated point in the second coordinate system is the same as the coordinate value of the first point in the second coordinate system, the value of the first mark corresponding to the repeated point is set to the first value; if the coordinate value of the repeated point in the second coordinate system is different from the coordinate value of the first point in the second coordinate system, the value of the first mark corresponding to the repeated point is set to the second value.
  • the embodiment of the present application does not limit the specific values of the first numerical value and the second numerical value.
  • the first value is 1.
  • the second value is 0.
  • the first mark corresponding to the i-th repeated point is determined, where i is a positive integer greater than 0 and less than or equal to N. If i is 1, the i-1-th repeated point is the first point.
  • the value of the first mark is set to a first numerical value, and the first numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system.
  • the value of the first mark is determined to be set to a second numerical value, and the second numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system.
  • the embodiment of the present application further includes: determining the coordinate residual value of the i-th repeated point, and using the coordinate residual value of the i-th repeated point to determine the geometric code stream.
  • the determination of the coordinate residual value of the i-th repeated point can refer to the description of the following steps 21 to 25, which will not be repeated here.
  • the number N of repeated points included in the current node and the first mark corresponding to each repeated point are determined as the repeated point information of the current node.
  • the encoding end uses the number N of repeated points included in the current node to update the number of encoded repeated points, 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.
  • step S205-B2 is executed.
  • the coordinate prediction value of the first point in the current node is determined, and the coordinate residual value of the first point is determined based on the coordinate prediction value and the coordinate value.
  • S205-C3 write the coordinate residual value of the first point and the duplicate point information of the current node into the geometry code stream.
  • the encoder determines that the current node is the last node of L3C2, it is determined that the current node must include duplicate points, and the number of duplicate points included in the current node is the difference between the total number of duplicate points in the point cloud and the number of encoded duplicate points.
  • the decoder can determine the difference between the total number of duplicate points in the point cloud and the number of encoded duplicate points as the number of duplicate points included in the current node, and then the encoder skips encoding the duplicate point information of the current node, thereby reducing encoding complexity, saving encoding time, and improving encoding efficiency.
  • the encoding end also needs to determine the coordinate residual value of the first point included in the current node, and write the coordinate residual value of the first point into the geometric code stream.
  • the process of determining the coordinate residual value of the first point can be specifically referred to the description of steps 21 to 25 below, which will not be repeated here.
  • the following describes the process of determining the coordinate residual value of a point included in the current node, i.e., the first point, in the above-mentioned case 1, as well as the process of determining the coordinate residual value of the first point when the current node includes multiple points and the coordinate residual value of the i-th repeated point among the N repeated points included in the current node in case 2, and the process of determining the coordinate residual value of the first point of the current node in case 3. That is, the target value in the following steps 21 to 25 can be understood as the first point in case 1, and can also be understood as the first point in case 2.
  • Step 21 Determine the predicted 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. For example, the arithmetic mean or weighted mean of the coordinate values of one or more encoded points before the target point in the first coordinate system is determined as the predicted coordinate value of the target point in the first coordinate system.
  • 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 Based on the prediction model, determine the coordinate prediction value of the target point in the first coordinate system.
  • the prediction mode corresponding to the target point is a default mode.
  • the laser radar for scanning the point cloud includes N lasers, each laser corresponds to a prediction list, and the corresponding L3C2 corresponds to N prediction lists.
  • the coordinates of the target point in the first coordinate system are Where i represents the laser mark corresponding to the target point.
  • the prediction list corresponding to i of the target point can be determined as the prediction list corresponding to the target point.
  • the prediction list corresponding to the target point includes M prediction values, the target point is predicted using these M prediction values, and the cost corresponding to each of the M prediction values is determined.
  • the index of the prediction value with the lowest price in the prediction list is determined as the prediction mode corresponding to the target point.
  • the prediction mode corresponding to the target point is the index of the prediction value with the lowest cost in the prediction list corresponding to the target point.
  • the coordinate prediction value of the target point in the first coordinate system is determined.
  • the prediction value corresponding to the index of the prediction mode in the prediction list corresponding to the target point i is determined as the coordinate prediction value of the target point in the first coordinate system.
  • the prediction value includes r pred and
  • the encoder writes the prediction mode corresponding to the target point into the geometry bitstream.
  • the encoder determines the predicted coordinate value of the target point in the first coordinate system based on the above steps, it executes the following step 22.
  • Step 22 Determine a 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.
  • the difference between the coordinate value of the target point in the first coordinate system and the predicted coordinate value is determined as the residual value of the target point in the first coordinate system.
  • the encoding end quantizes the residual value of the target point in the first coordinate system to obtain the quantized residual value of the target point in the first coordinate system.
  • the quantization factor when the residual value of the target point in the first coordinate system is quantized, the quantization factor needs to be determined first.
  • the quantization factors ⁇ r and ⁇ r are determined based on the above formulas (7) and (8). Then, based on the quantization factor ⁇ r, the residual value r res of the target point in the first coordinate system is quantized and used The residual value of the target point in the first coordinate system Quantify.
  • the coordinate residual value of the target point includes the coordinate 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. Based on the above method, the coordinate residual value of the target point in the first coordinate system is determined. Then, based on steps 23 to 25, the coordinate residual value of the target point in the second coordinate system is determined.
  • Step 23 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 used as the reconstructed coordinate value of the target point in the first coordinate system.
  • the sum of the coordinate prediction value and the residual value of the target point in the first coordinate system is determined as the coordinate reconstruction value of the target point in the first coordinate system.
  • the encoder if the residual value of the target point in the first coordinate system is quantized, performs inverse quantization on the quantized residual value of the coordinate of the target point in the first coordinate system to obtain the residual value of the coordinate of the target point in the first coordinate system; based on the predicted value of the coordinate of the target point in the first coordinate system and the residual value of the coordinate, obtain the reconstructed value of the coordinate of the target point in the first coordinate system. For example, the sum of the predicted value of the coordinate of the target point in the first coordinate system and the residual value of the coordinate is determined as the reconstructed value of the coordinate of the target point in the first coordinate system.
  • Step 24 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.
  • Different first coordinate systems correspond to different second coordinate systems in different conversion relationships.
  • the coordinate reconstruction value of the target point in the first coordinate system is transformed with reference to the above formula (9) to obtain the coordinate reconstruction value of the target point in the second coordinate system.
  • Step 25 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.
  • the difference between the predicted coordinate value and the reconstructed coordinate value of the target point in the second coordinate system is determined as the coordinate residual value of the target point in the second coordinate system.
  • the encoder writes the coordinate 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 into the geometric code stream.
  • the encoder quantizes at least one of a coordinate residual value of the target point in the first coordinate system and a coordinate residual value of the target point in the second coordinate system, and then writes the quantized value into a geometric code stream.
  • the encoding end further determines the order of the target point in the single-link structure, that is, o(P), based on the above formula (6), and then encodes o(P).
  • the above embodiment is described by taking the geometric encoding process of the current node in L3C2 as an example.
  • the encoding process of other nodes in L3C2 can refer to the encoding process of the current node, and then the reconstructed point cloud geometric information can be obtained.
  • the point cloud encoding method determines the L3C2 structure of the point cloud, determines the total number of nodes of L3C2 of the point cloud, and the total number of points of the point cloud, and determines the total number of repeated points included in the point cloud based on the total number of points of the point cloud and the total number of nodes of L3C2 of the point cloud. In this way, during encoding, the number of encoded repeated points is recorded in real time, and the number of encoded repeated points is compared with the total number of repeated points included in the point cloud to determine whether to encode the repeated point information of the node when encoding the current node.
  • the number of encoded repeated points is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been encoded, and the remaining nodes do not include repeated points, and thus there is no need to encode the repeated point information of subsequent nodes, thereby reducing the encoding complexity of the point cloud, saving encoding time, and improving encoding efficiency.
  • FIGS. 13 to 14 are merely examples of the present application and should not be construed as limitations to 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 embodiments 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. 15 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:
  • the first decoding unit 11 is used to decode the geometric code stream of the point cloud to obtain the total number of nodes of the low-delay and low-complexity coding model L3C2 of the point cloud and the total number of points of the point cloud;
  • a point number determination unit 12 configured to determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
  • a repeated point determination unit 13 used to determine the number of decoded repeated points when decoding the current node in the L3C2;
  • the second decoding unit 14 is used to decode the current node according to the number of the decoded repeated points and the total number of repeated points in the point cloud.
  • the point number determination unit 12 is specifically configured to determine the difference between the total number of points of the point cloud and the total number of nodes of the L3C2 as the total number of repeated points of the point cloud.
  • the second decoding unit 14 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 the first point included in the current node.
  • the second decoding unit 14 is specifically used to skip decoding 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 the current node is the last node in the L3C2; and determine the difference between the total number of duplicate points in the point cloud and the number of decoded duplicate points as the number of duplicate points included in the current node.
  • the second decoding unit 14 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 the current node is not the last node in the L3C2; based on the duplicate point information, determine the geometric reconstruction values of the N duplicate points included in the current node, where N is an integer.
  • the second decoding unit 14 is specifically used to determine the geometric reconstruction value of the first point in the current node; based on the repeated point information and the geometric reconstruction value of the first point, determine the geometric reconstruction values of the N repeated points.
  • the second decoding unit 14 is specifically used to parse the repeated point information for the i-th repeated point among the N repeated points, and obtain the first flag corresponding to the i-th repeated point, where i is a positive integer less than or equal to N, and if i is 1, the i-1th repeated point is the first point; based on the first flag corresponding to the i-th repeated point, determine the geometric reconstruction value of the i-th repeated point.
  • the second decoding unit 14 is specifically used to determine the geometric reconstruction value of the i-1th repeated point as the geometric reconstruction value of the i-1th repeated point if the first flag indicates that the coordinates of the i-1th repeated point and the i-1th repeated point in the second coordinate system are the same.
  • the second decoding unit 14 is specifically used to determine the geometric reconstruction value of the i-th repeated point if the first flag indicates that the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are different.
  • the second decoding unit 14 is specifically 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 second decoding unit 14 is specifically used to determine a coordinate prediction value of a target point in a first coordinate system, where the target point is the first point in the current node, or the first point included in the current node, or the i-th repeated point among N repeated points included in the current node; based on the coordinate prediction value of the target point in the first coordinate system, determine a coordinate reconstruction value of the target point in the first coordinate system; based on the coordinate reconstruction value of the target point in the first coordinate system, determine a coordinate reconstruction value of the target point in a second 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 second decoding unit 14 is specifically used to decode the geometric code stream to obtain a prediction mode corresponding to the target point; based on the prediction mode, determine a coordinate prediction value of the target point in the first coordinate system.
  • the second decoding unit 14 is specifically used to decode the geometric code stream to obtain the quantized coordinate residual value of the target point in the first coordinate system; dequantize the quantized coordinate residual value 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 second decoding unit 14 is specifically configured to determine 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.
  • the second decoding unit 14 is specifically used to perform coordinate conversion on the coordinate reconstruction value of the target point in the first coordinate system to obtain a coordinate prediction value of the target point in the second coordinate system; decode the geometric code stream to obtain a coordinate residual value of the target point in the second coordinate system; and obtain a 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 second decoding unit 14 is specifically configured to determine the sum of the coordinate prediction value and the coordinate residual value of the target point in the second coordinate system as the coordinate reconstruction value of the target point in the second coordinate system.
  • the first decoding unit 11 is specifically used to decode the geometric code stream of the point cloud to obtain the number of single chains included in the L3C2 and the number of nodes included in each single chain; based on the number of single chains and the number of nodes included in each single chain, the total number of nodes of the L3C2 is obtained.
  • the first decoding unit 11 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 first decoding unit 11 is specifically used to decode the geometric data unit to obtain a first value, where the first value is the 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. 15 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.
  • FIG16 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 structure determination unit 21 used to determine a low-delay and low-complexity coding model L3C2 structure of the point cloud;
  • a point number determination unit 22 used to determine the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud;
  • a repeated point determination unit 23 used to determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
  • a calculation unit 24 configured to determine the number of encoded repeated points when encoding the current node in the L3C2;
  • the encoding unit 25 is used to encode the current node according to the number of the encoded repeated points and the total number of repeated points in the point cloud.
  • the point number determination unit 22 is specifically configured to determine the difference between the total number of points of the point cloud and the total number of nodes of the L3C2 as the total number of repeated points of the point cloud.
  • the encoding unit 25 is specifically used to skip determining and encoding the duplicate point information of the current node if the number of encoded duplicate points is equal to the total number of duplicate points of the point cloud; determine the coordinate residual value of the first point included in the current node, and write the coordinate residual value of the first point into the geometric code stream of the point cloud.
  • the encoding unit 25 is specifically used to skip encoding the number of duplicate points included in the current node if the number of encoded duplicate points is less than the total number of duplicate points in the point cloud and the current node is the last node in the L3C2; 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 25 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 and the current node is not the last node in the L3C2; 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 25 is specifically used to determine the number of N repeated points included in the current node; based on the coordinate value of the first point included in the current node in the second coordinate system, and the coordinate values of the N repeated points in the second coordinate system, determine the first flags corresponding to the N repeated points respectively; based on the number of N repeated points included in the current node and the first flags corresponding to the N repeated points respectively, determine the repeated point information of the current node.
  • the encoding unit 25 is specifically used to determine, for the i-th repeated point among the N repeated points, a first mark corresponding to the i-th repeated point based on the coordinate value of the i-1-th repeated point in the second coordinate system and the coordinate value of the i-th repeated point in the second coordinate system, where i is a positive integer greater than 0 and less than or equal to N, and if i is 1, the i-1-th repeated point is the first point.
  • the encoding unit 25 is specifically used to set the value of the first mark to a first numerical value if the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system, and the first numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system.
  • the encoding unit 25 is specifically used to set the value of the first mark to a second numerical value if the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system, and the second numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system.
  • the encoding unit 25 is also used to determine the coordinate residual value of the i-th repeated point if the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system; and write the coordinate residual value of the i-th repeated point into the geometric code stream.
  • the encoding unit 25 is specifically 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 25 is specifically used to determine a coordinate prediction value of a target point in a first coordinate system, where the target point is the first point in the current node, or the first point included in the current node, or the i-th repeated point among N repeated points included in the current node; 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, 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, obtain the coordinate reconstruction 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; based on the coordinate reconstruction value and coordinate value of the target point in the second coordinate system, determine the coordinate residual value of the target point in the second coordinate system.
  • the encoding unit 25 is specifically configured to quantize at least one of a coordinate residual value of the target point in the first coordinate system and a coordinate residual value of the target point in the second coordinate system, and then write the quantized value into the geometric code stream.
  • the encoding unit 25 is specifically configured to determine a prediction mode corresponding to the target point; and based on the prediction mode, determine a coordinate prediction value of the target point in the first coordinate system.
  • the encoding unit 25 is specifically configured to write the prediction mode corresponding to the target point into the geometric code stream.
  • the encoding unit 25 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 25 is specifically configured to determine 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.
  • the point determination unit 22 is specifically used to determine the number of single chains included in the L3C2 and the number of nodes included in each single chain; based on the number of single chains and the number of nodes included in each single chain, the total number of nodes of the L3C2 is obtained.
  • the encoding unit 25 is further used to write the number of single chains included in the L3C2 and the number of nodes included in each single chain into the geometric code stream of the point cloud.
  • the encoding unit 25 is further configured to write the total number of points of the point cloud into the geometry data unit.
  • the encoding unit 25 is further used 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 coding device 20 shown in Figure 16 may correspond to the corresponding subject in the point cloud coding method of the embodiment of the present application, and the aforementioned and other operations and/or functions of each unit in the point cloud coding device 20 are respectively for implementing the corresponding processes in the point cloud coding 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. 17 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.
  • Figure 18 is a schematic block diagram of the 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.

Abstract

Provided in the present application are a point cloud encoding/decoding method and apparatus, and a device and a storage medium. The point cloud encoding/decoding method comprises: during L3C2-based point cloud encoding/decoding, first determining, according to the total number of points comprised in a point cloud and the total number of nodes of L3C2 of the point cloud, the total number of duplicate points comprised in the point cloud; and during such encoding/decoding, recording in real time the number of duplicate points that have been encoded/decoded, and comparing the number of duplicate points that have been encoded/decoded with the total number of duplicate points comprised in the point cloud, so as to determine whether to encode/decode information of duplicate points of the current node when encoding/decoding the node. For example, when the current node is encoded/decoded, it being determined that the number of duplicate points that have been encoded/decoded is equal to the total number of duplicate points in the point cloud indicates that the encoding/decoding of duplicate points in the point cloud has ended, and that none of the remaining nodes comprises duplicate points and thus it is not necessary to encode/decode information of duplicate points of the subsequent nodes, thereby reducing the complexity in encoding/decoding the point cloud, saving on encoding/decoding time, and increasing the encoding/decoding efficiency.

Description

点云编解码方法、装置、设备及存储介质Point cloud encoding and decoding method, device, equipment and storage medium 技术领域Technical Field
本申请涉及点云技术领域,尤其涉及一种点云编解码方法、装置、设备及存储介质。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.
背景技术Background technique
通过采集设备对物体表面进行采集,形成点云数据,点云数据包括几十万甚至更多的点。在视频制作过程中,将点云数据以点云媒体文件的形式在点云编码设备和点云解码设备之间传输。但是,如此庞大的点给传输带来了挑战,因此,点云编码设备需要对点云数据进行压缩后传输。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. In the video production process, 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. However, such a large number of points brings challenges to transmission, so the point cloud encoding device needs to compress the point cloud data before transmission.
点云的压缩也称为点云的编码,在点云编码过程中,采用不同的编码模型,将点云中的点对应到节点中,对节点进行编码,其中有些节点包括重复点。目前的编解码方式,例如低时延低复杂度编码模型(Low latency,Low complexity coding,简称L3C2),在编解码L3C2中的每一个节点时,需要编解码该节点的重复点信息,进而降低了点云的编解码效率。Point cloud compression is also called point cloud encoding. In the point cloud encoding process, 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 methods, such as the low latency, low complexity coding model (L3C2), need to encode and decode the duplicate point information of each node in L3C2 when encoding and decoding the node, thereby reducing the encoding and decoding efficiency of the point cloud.
发明内容Summary of the invention
本申请实施例提供了一种点云编解码方法、装置、设备及存储介质,以降低编解码的复杂度、节约编解码时间,进而提升点云的编解码效率。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.
第一方面,本申请实施例提供一种点云解码方法,包括:In a first aspect, an embodiment of the present application provides a point cloud decoding method, comprising:
解码点云的几何码流,得到所述点云的低时延低复杂度编码模型L3C2的节点总数,以及所述点云的总点数;Decode the geometric code stream of the point cloud to obtain the total number of nodes of the low-latency and low-complexity coding model L3C2 of the point cloud and the total number of points of the point cloud;
根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;Determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
在解码所述L3C2中的当前节点时,确定已解码重复点的个数;When decoding the current node in the L3C2, determining the number of decoded duplicate points;
根据所述已解码重复点的个数和所述点云的重复点总数,对所述当前节点进行解码。The current node is decoded according to the number of the decoded repeated points and the total number of repeated points in the point cloud.
第二方面,本申请提供了一种点云编码方法,包括:In a second aspect, the present application provides a point cloud encoding method, comprising:
确定点云的低时延低复杂度编码模型L3C2结构;Determine the L3C2 structure of the low-latency and low-complexity coding model for point clouds;
确定所述点云的L3C2的节点总数和所述点云的总点数;Determine the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud;
根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;Determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
在编码所述L3C2中的当前节点时,确定已编码重复点的个数;When encoding the current node in the L3C2, determining the number of encoded repeated points;
根据所述已编码重复点的个数和所述点云的重复点总数,对所述当前节点进行编码。The current node is encoded according to the number of the encoded repeated points and the total number of repeated points in the point cloud.
第三方面,本申请提供了一种点云解码装置,用于执行上述第一方面或其各实现方式中的方法。具体地,该装置包括用于执行上述第一方面或其各实现方式中的方法的功能单元。In a third aspect, the present application provides a point cloud decoding device for executing the method in the first aspect or its respective implementations. Specifically, the device includes a functional unit for executing the method in the first aspect or its respective implementations.
第四方面,本申请提供了一种点云编码装置,用于执行上述第二方面或其各实现方式中的方法。具体地,该装置包括用于执行上述第二方面或其各实现方式中的方法的功能单元。In a fourth aspect, the present application provides a point cloud encoding device for executing the method in the second aspect or its respective implementations. Specifically, the device includes a functional unit for executing the method in the second aspect or its respective implementations.
第五方面,提供了一种点云解码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。In a fifth aspect, a point cloud decoder is provided, 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.
第六方面,提供了一种点云编码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。In a sixth aspect, a point cloud encoder is provided, 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.
第七方面,提供了一种点云编解码系统,包括点云编码器和点云解码器。点云解码器用于执行上述第一方面或其各实现方式中的方法,点云编码器用于执行上述第二方面或其各实现方式中的方法。In a seventh aspect, a point cloud encoding and decoding system is provided, 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, and the point cloud encoder is used to execute the method in the second aspect or its respective implementations.
第八方面,提供了一种芯片,用于实现上述第一方面至第二方面中的任一方面或其各实现方式中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面至第二方面中的任一方面或其各实现方式中的方法。In an eighth aspect, a chip is provided for implementing the method in any one of the first to second aspects or their respective implementations. Specifically, 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.
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。In a ninth aspect, a computer-readable storage medium is provided 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.
第十方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。In a tenth aspect, a computer program product is provided, 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.
第十一方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。In an eleventh aspect, a computer program is provided, 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.
第十二方面,提供了一种码流,码流是基于上述第二方面的方法生成的,可选的,上述码流包括第一参数和第二参数中的至少一个。In a twelfth aspect, a code stream is provided, which is generated based on the method of the second aspect. Optionally, the code stream includes at least one of the first parameter and the second parameter.
基于以上技术方案,在基于L3C2的点云编解码中,首先通过点云所包括的总点数,以及该点云的L3C2的节点总数,确定该点云所包括的重复点总数,这样在编解码时,实时记录已编解码的重复点的个数,且将已编解码的重复点的个数与点云所包括的重复点总数进行比较,以确定在编解码当前节点时,是否编解码该节点的重复点信息,例如,在编解码当前点时,确定已编解码的重复点的个数等于点云的重复点总数,说明点云中的重复点已编解码结束,剩余节点均不包括重复点,进而不需要编解码后续节点的重复点信息,进而降低了点云的编解码复杂度,节约了编解码时间,进而提升了编解码效率。Based on the above technical solution, in the point cloud encoding and decoding based on L3C2, the total number of repeated points included in the point cloud is first determined by the total number of points included in the point cloud and the total number of L3C2 nodes of the point cloud. In this way, during encoding and decoding, the number of repeated points that have been encoded and decoded is recorded in real time, and the number of repeated points that have been encoded and decoded is compared with the total number of repeated points included in the point cloud to determine whether to encode and decode the repeated point information of the node when encoding and decoding the current node. For example, when encoding and decoding the current point, it is determined that the number of repeated points that have been encoded and decoded is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been encoded and decoded, and the remaining nodes do not include repeated points, and thus there is no need to encode and decode the repeated point information of subsequent nodes, thereby reducing the encoding and decoding complexity of the point cloud, saving encoding and decoding time, and thus improving the encoding and decoding efficiency.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1A为点云示意图;FIG1A is a schematic diagram of a point cloud;
图1B为点云局部放大图;Figure 1B is a partial enlarged view of the point cloud;
图2为点云图像的六个观看角度示意图;FIG2 is a schematic diagram of six viewing angles of a point cloud image;
图3为本申请实施例涉及的一种点云编解码系统的示意性框图;FIG3 is a schematic block diagram of a point cloud encoding and decoding system according to an embodiment of the present application;
图4A是本申请实施例提供的点云编码器的示意性框图;FIG4A is a schematic block diagram of a point cloud encoder provided in an embodiment of the present application;
图4B是本申请实施例提供的点云解码器的示意性框图;FIG4B is a schematic block diagram of a point cloud decoder provided in an embodiment of the present application;
图5A至图5C为基于三角面片的几何信息编码示意图;5A to 5C are schematic diagrams of geometric information encoding based on triangular facets;
图6为L3C2的一种解码框架示意图;FIG6 is a schematic diagram of a decoding framework of L3C2;
图7A为一种单链结构示意图;FIG7A is a schematic diagram of a single-chain structure;
图7B为对图7A所示的单链结构进行规则化后的单链示意图;FIG7B is a schematic diagram of a single chain after the single chain structure shown in FIG7A is regularized;
图8为激光扫描仪的扫描原理示意图;FIG8 is a schematic diagram of the scanning principle of a laser scanner;
图9为一种预测结构示意图;FIG9 is a schematic diagram of a prediction structure;
图10为一种量化因子的确定原理示意图;FIG10 is a schematic diagram of a determination principle of a quantization factor;
图11为另一种量化因子的确定原理示意图;FIG11 is a schematic diagram of another principle for determining a quantization factor;
图12为L3C2的一种解码框架示意图;FIG12 is a schematic diagram of a decoding framework of L3C2;
图13为本申请一实施例提供的点云解码方法流程示意图;FIG13 is a schematic diagram of a point cloud decoding method flow chart provided in an embodiment of the present application;
图14为本申请一实施例提供的点云编码方法流程示意图;FIG14 is a schematic diagram of a point cloud encoding method flow chart provided by an embodiment of the present application;
图15是本申请实施例提供的点云解码装置的示意性框图;FIG15 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application;
图16是本申请实施例提供的点云编码装置的示意性框图;FIG16 is a schematic block diagram of a point cloud encoding device provided in an embodiment of the present application;
图17是本申请实施例提供的电子设备的示意性框图;FIG17 is a schematic block diagram of an electronic device provided in an embodiment of the present application;
图18是本申请实施例提供的点云编解码系统的示意性框图。Figure 18 is a schematic block diagram of the point cloud encoding and decoding system provided in an embodiment of the present application.
具体实施方式Detailed ways
本申请可应用于点云上采样技术领域,例如可以应用于点云压缩技术领域。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.
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:In order to facilitate understanding of the embodiments of the present application, the relevant concepts involved in the embodiments of the present application are briefly introduced as follows:
点云(Point Cloud)是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。图1A为三维点云图像示意图,图1B为图1A的局部放大图,由图1A和图1B可知,点云表面是由分布稠密的点所组成的。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, and 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)是点云的具体记录形式,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息、反射率信息、法向量信息等等。颜色信息反映物体的色彩,反射率(reflectance)信息反映物体的表面材质。所述颜色信息可以是任意一种色彩空间上的信息。例如,所述颜色信息可以是(RGB)。再如,所述颜色信息可以是于亮度色度(YcbCr,YUV)信息。例如,Y表示明亮度(Luma),Cb(U)表示蓝色色差,Cr(V)表示红色,U和V表示为色度(Chroma)用于描述色差信息。例如,根据激光测量原理得到的点云,所述点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,所述点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,所述点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。如图2示出了一幅点云图像,其中,图2示出了点云图像的六个观看角度,表1示出了由文件头信息部分和数据部分组成的点云数据存储格式: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. For example, 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. For example, 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. For example, the color information may be (RGB). For another example, the color information may be information about brightness and chromaticity (YcbCr, YUV). For example, Y represents brightness (Luma), Cb (U) represents blue color difference, Cr (V) represents red, and U and V represent chromaticity (Chroma) for describing color difference information. For example, according to the point cloud obtained by the laser measurement principle, 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. For another example, according to the point cloud obtained by the photogrammetry principle, the points in the point cloud may include the three-dimensional coordinate information of the point and the color information of the point. For another example, 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:
表1Table 1
Figure PCTCN2022122116-appb-000001
Figure PCTCN2022122116-appb-000001
表1中,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容,例如,本例中的点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维位置信息XYZ和三维颜色信息RGB。In Table 1, 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. For example, 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.
点云数据的获取途径可以包括但不限于以下至少一种:(1)计算机设备生成。计算机设备可以根据虚拟三维物体及虚拟三维场景的生成点云数据。(2)3D(3-Dimension,三维)激光扫描获取。通过3D激光扫描可以获取静态现实 世界三维物体或三维场景的点云数据,每秒可以获取百万级点云数据;(3)3D摄影测量获取。通过3D摄影设备(即一组摄像机或具有多个镜头和传感器的摄像机设备)对现实世界的视觉场景进行采集以获取现实世界的视觉场景的点云数据,通过3D摄影可以获得动态现实世界三维物体或三维场景的点云数据。(4)通过医学设备获取生物组织器官的点云数据。在医学领域可以通过磁共振成像(Magnetic Resonance Imaging,MRI)、电子计算机断层扫描(Computed Tomography,CT)、电磁定位信息等医学设备获取生物组织器官的点云数据。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.
点云可以按获取的途径分为:密集型点云和稀疏性点云。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.
上述点云获取技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。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. With the growth of application demand, the processing of massive 3D point cloud data encounters bottlenecks of storage space and transmission bandwidth.
以帧率为30fps(帧每秒)的点云视频为例,每帧点云的点数为70万,每个点具有坐标信息xyz(float)和颜色信息RGB(uchar),则10s点云视频的数据量大约为0.7million·(4Byte·3+1Byte·3)·30fps·10s=3.15GB,而YUV采样格式为4:2:0,帧率为24fps的1280·720二维视频,其10s的数据量约为1280·720·12bit·24frames·10s≈0.33GB,10s的两视角3D视频的数据量约为0.33X2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。Taking a point cloud video with a frame rate of 30fps (frames per second) as an example, the number of points in each point cloud frame is 700,000, and each point has coordinate information xyz (float) and color information RGB (uchar). The data volume of a 10s point cloud video is approximately 0.7 million (4Byte 3 + 1Byte 3) 30fps 10s = 3.15GB, while the YUV sampling format is 4:2:0, and 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, and the data volume of a 10s two-view 3D video is approximately 0.33X2 = 0.66GB. It can be seen that the data volume of a point cloud video far exceeds that of a two-dimensional video and a three-dimensional video of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry.
下面对点云编解码的相关知识进行介绍。The following is an introduction to the relevant knowledge of point cloud encoding and decoding.
图3为本申请实施例涉及的一种点云编解码系统的示意性框图。需要说明的是,图3只是一种示例,本申请实施例的点云编解码系统包括但不限于图3所示。如图3所示,该点云编解码系统100包含编码设备110和解码设备120。其中编码设备用于对点云数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的点云数据。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. As 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.
本申请实施例的编码设备110可以理解为具有点云编码功能的设备,解码设备120可以理解为具有点云解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、点云游戏控制台、车载计算机等。The encoding device 110 of the embodiment of the present application can be understood as a device with a point cloud encoding function, and 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.
在一些实施例中,编码设备110可以经由信道130将编码后的点云数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的点云数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。In some embodiments, 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.
在一个实例中,信道130包括使编码设备110能够实时地将编码后的点云数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的点云数据,且将调制后的点云数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。In one example, 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. In this example, 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.
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的点云数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的点云数据。In another example, 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. In this example, the decoding device 120 can obtain the encoded point cloud data from the storage medium.
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的点云数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的点云数据。可选的,该存储服务器可以存储编码后的点云数据且可以将该编码后的点云数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。In another example, the channel 130 may include a storage server that can store the point cloud data encoded by the encoding device 110. In this example, the decoding device 120 can download the stored encoded point cloud data from the storage server. Optionally, 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.
一些实施例中,编码设备110包含点云编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。In some embodiments, 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.
在一些实施例中,编码设备110除了包括点云编码器112和输入接口113外,还可以包括点云源111。In some embodiments, 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 .
点云源111可包含点云采集装置(例如,扫描仪)、点云存档、点云输入接口、计算机图形系统中的至少一个,其中,点云输入接口用于从点云内容提供者处接收点云数据,计算机图形系统用于产生点云数据。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.
点云编码器112对来自点云源111的点云数据进行编码,产生码流。点云编码器112经由输出接口113将编码后的点云数据直接传输到解码设备120。编码后的点云数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。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.
在一些实施例中,解码设备120包含输入接口121和点云解码器122。In some embodiments, the decoding device 120 includes an input interface 121 and a point cloud decoder 122 .
在一些实施例中,解码设备120除包括输入接口121和点云解码器122外,还可以包括显示装置123。In some embodiments, the decoding device 120 may further include a display device 123 in addition to the input interface 121 and the point cloud decoder 122 .
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的点云数据。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 .
点云解码器122用于对编码后的点云数据进行解码,得到解码后的点云数据,并将解码后的点云数据传输至显示装置123。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.
显示装置123显示解码后的点云数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。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.
此外,图3仅为实例,本申请实施例的技术方案不限于图3,例如本申请的技术还可以应用于单侧的点云编码或单侧的点云解码。In addition, Figure 3 is only an example, and the technical solution of the embodiment of the present application is not limited to Figure 3. For example, the technology of the present application can also be applied to unilateral point cloud encoding or unilateral point cloud decoding.
目前的点云编码器可以采用国际标准组织运动图像专家组(Moving Picture Experts Group,MPEG)提出了两种点云压缩编码技术路线,分别是基于投影的点云压缩(Video-based Point Cloud Compression,VPCC)和基于几何的点云压缩(Geometry-based Point Cloud Compression,GPCC)。VPCC通过将三维点云投影到二维,利用现有的二维编码工具对投影后的二维图像进行编码,GPCC利用层级化的结构将点云逐级划分为多个单元,通过编码记录划分过程编码整个点云。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). 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.
下面以GPCC编解码框架为例,对本申请实施例可适用的点云编码器和点云解码器进行说明。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.
图4A是本申请实施例提供的点云编码器的示意性框图。FIG. 4A is a schematic block diagram of a point cloud encoder provided in an embodiment of the present application.
由上述可知点云中的点可以包括点的位置信息和点的属性信息,因此,点云中的点的编码主要包括位置编码和属性编码。在一些示例中点云中点的位置信息又称为几何信息,对应的点云中点的位置编码也可以称为几何编码。From the above, we can know that 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. In some examples, 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.
在GPCC编码框架中,点云的几何信息和对应的属性信息是分开编码的。In the GPCC coding framework, the geometric information of the point cloud and the corresponding attribute information are encoded separately.
如下图4A所示,目前G-PCC的几何编解码可分为基于八叉树的几何编解码和基于预测树的几何编解码。As shown in FIG. 4A below, 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. At the same time, based on the position information output by the constructed octree or prediction tree, 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.
如图4A所示,位置编码可通过以下单元实现:As shown in Figure 4A, position encoding can be achieved by the following units:
坐标转换(Tanmsform coordinates)单元201、体素(Voxelize)单元202、八叉树划分(Analyze octree)单元203、几何重建(Reconstruct geometry)单元204、第一算术编码(Arithmetic enconde)单元205、表面拟合单元(Analyze surface approximation)206和预测树构建单元207。Coordinate 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.
坐标转换单元201可用于将点云中点的世界坐标变换为相对坐标。例如,点的几何坐标分别减去xyz坐标轴的最小值,相当于去直流操作,以实现将点云中的点的坐标从世界坐标转换为相对坐标。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.
体素(Voxelize)单元202也称为量化和移除重复点(Quantize and remove points)单元,可通过量化减少坐标的数目;量化后原先不同的点可能被赋予相同的坐标,基于此,可通过去重操作将重复的点删除;例如,具有相同量化位置和不同属性信息的多个云可通过属性转换合并到一个云中。在本申请的一些实施例中,体素单元202为可选的单元模块。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. In some embodiments of the present application, the voxel unit 202 is an optional unit module.
八叉树划分单元203可利用八叉树(octree)编码方式,编码量化的点的位置信息。例如,将点云按照八叉树的形式进行划分,由此,点的位置可以和八叉树的位置一一对应,通过统计八叉树中有点的位置,并将其标识(flag)记为1,以进行几何编码。The octree division unit 203 may use an octree encoding method to encode the position information of the quantized points. For example, 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.
在一些实施例中,在基于三角面片集(trianglesoup,trisoup)的几何信息编码过程中,同样也要通过八叉树划分单元203对点云进行八叉树划分,但区别于基于八叉树的几何信息编码,该trisoup不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到block(子块)边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点),通过表面拟合单元206对交点进行表面拟合,对拟合后的交点进行几何编码。In some embodiments, 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. However, different from the geometric information encoding based on the octree, 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. 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.
预测树构建单元207可利用预测树编码方式,编码量化的点的位置信息。例如,将点云按照预测树的形式进行划分,由此,点的位置可以和预测树中节点的位置一一对应,通过统计预测树中有点的位置,通过选取不同的预测模式对节点的几何位置信息进行预测得到预测残差,并且利用量化参数对几何预测残差进行量化。最终通过不断迭代,对预测树节点位置信息的预测残差、预测树结构以及量化参数等进行编码,生成二进制码流。The prediction tree construction unit 207 can use the prediction tree encoding method to encode the position information of the quantized points. For example, 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. By counting the positions of the points in the prediction tree, 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. Finally, through continuous iteration, 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.
几何重建单元204可以基于八叉树划分单元203输出的位置信息或表面拟合单元206拟合后的交点进行位置重建,得到点云数据中各点的位置信息的重建值。或者,基于预测树构建单元207输出的位置信息进行位置重建,得到点云数据中各点的位置信息的重建值。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. Alternatively, 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.
算术编码单元205可以采用熵编码方式对八叉树分析单元203输出的位置信息或对表面拟合单元206拟合后的交点,或者预测树构建单元207输出的几何预测残差值进行算术编码,生成几何码流;几何码流也可称为几何比特流(geometry bitstream)。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)单元210、重着色(Transfer attributes)单元211、区域自适应分层变换(Region Adaptive Hierarchical Transform,RAHT)单元212、生成LOD(Generate LOD)单元213以及提升(lifting transform)单元214、量化系数(Quantize coefficients)单元215以及算术编码单元216。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.
需要说明的是,点云编码器200可包含比图4A更多、更少或不同的功能组件。It should be noted that the point cloud encoder 200 may include more, fewer or different functional components than those shown in FIG. 4A .
颜色转换单元210可用于将点云中点的RGB色彩空间变换为YCbCr格式或其他格式。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.
重着色单元211利用重建的几何信息,对颜色信息进行重新着色,使得未编码的属性信息与重建的几何信息对应起来。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.
经过重着色单元211转换得到点的属性信息的原始值后,可选择任一种变换单元,对点云中的点进行变换。变换 单元可包括:RAHT变换212和提升(lifting transform)单元214。其中,提升变化依赖生成细节层(level of detail,LOD)。After the original value of the attribute information of the point is converted by the recoloring unit 211, 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).
RAHT变换和提升变换中的任一项可以理解为用于对点云中点的属性信息进行预测,以得到点的属性信息的预测值,进而基于点的属性信息的预测值得到点的属性信息的残差值。例如,点的属性信息的残差值可以是点的属性信息的原始值减去点的属性信息的预测值。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. For example, 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.
在本申请的一实施例中,生成LOD单元生成LOD的过程包括:根据点云中点的位置信息,获取点与点之间的欧式距离;根据欧式距离,将点分为不同的细节表达层。在一个实施例中,可以将欧式距离进行排序后,将不同范围的欧式距离划分为不同的细节表达层。例如,可以随机挑选一个点,作为第一细节表达层。然后计算剩余点与该点的欧式距离,并将欧式距离符合第一阈值要求的点,归为第二细节表达层。获取第二细节表达层中点的质心,计算除第一、第二细节表达层以外的点与该质心的欧式距离,并将欧式距离符合第二阈值的点,归为第三细节表达层。以此类推,将所有的点都归到细节表达层中。通过调整欧式距离的阈值,可以使得每层LOD层的点的数量是递增的。应理解,LOD划分的方式还可以采用其它方式,本申请对此不进行限制。In one embodiment of the present application, 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. In one embodiment, the Euclidean distances can be sorted and 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. By analogy, all points are classified into the detail expression layer. 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.
需要说明的是,可以直接将点云划分为一个或多个细节表达层,也可以先将点云划分为多个点云切块(slice),再将每一个点云切块划分为一个或多个LOD层。It should be noted that 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.
例如,可将点云划分为多个点云切块,每个点云切块的点的个数可以在55万-110万之间。每个点云切块可看成单独的点云。每个点云切块又可以划分为多个细节表达层,每个细节表达层包括多个点。在一个实施例中,可根据点与点之间的欧式距离,进行细节表达层的划分。For example, 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. In one embodiment, the detail expression layer can be divided according to the Euclidean distance between points.
量化单元215可用于量化点的属性信息的残差值。例如,若量化单元215和RAHT变换单元212相连,则量化单元215可用于量化RAHT变换单元212输出的点的属性信息的残差值。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.
算术编码单元216可使用零行程编码(Zero run length coding)对点的属性信息的残差值进行熵编码,以得到属性码流。所述属性码流可以是比特流信息。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.
图4B是本申请实施例提供的点云解码器的示意性框图。FIG4B is a schematic block diagram of a point cloud decoder provided in an embodiment of the present application.
如图4B所示,解码器300可以从编码设备获取点云码流,通过解析码得到点云中的点的位置信息和属性信息。点云的解码包括位置解码和属性解码。As shown in Fig. 4B, 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.
属性解码过程包括:通过解析属性码流,获取点云中点的属性信息的残差值;通过对点的属性信息的残差值进行反量化,得到反量化后的点的属性信息的残差值;基于位置解码过程中获取的点的位置信息的重建信息,选择如下RAHT逆变换和提升逆变换中的一种进行点云预测,得到预测值,预测值与残差值相加得到点的属性信息的重建值;对点的属性信息的重建值进行颜色空间逆转换,以得到解码点云。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.
如图4B所示,位置解码可通过以下单元实现:As shown in FIG4B , position decoding can be achieved by the following units:
算数解码单元301、八叉树合成(synthesize octree)单元302、表面拟合单元(Synthesize suface approximation)303、几何重建(Reconstruct geometry)单元304、逆坐标变换(inverse transform coordinates)单元305和预测树重建单元306。 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:
算数解码单元310、反量化(inverse quantize)单元311、RAHT逆变换单元312、生成LOD(Generate LOD)单元313、提升逆变换(Inverse lifting)单元314以及逆颜色转换(inverse trasform colors)单元315。 Arithmetic decoding unit 310, inverse quantize unit 311, RAHT inverse transform unit 312, generate LOD unit 313, inverse lifting unit 314 and inverse trasform colors unit 315.
需要说明的是,解压缩是压缩的逆过程,类似的,解码器300中的各个单元的功能可参见编码器200中相应的单元的功能。另外,点云解码器300可包含比图5更多、更少或不同的功能组件。It should be noted that decompression is the inverse process of compression. Similarly, the functions of each unit in the decoder 300 can refer to the functions of the corresponding units in the encoder 200. In addition, the point cloud decoder 300 may include more, fewer or different functional components than those in FIG. 5 .
例如,解码器300可根据点云中点与点之间的欧式距离将点云划分为多个LOD;然后,依次对LOD中点的属性信息进行解码;例如,计算零行程编码技术中零的数量(zero_cnt),以基于zero_cnt对残差进行解码;接着,解码框架200可基于解码出的残差值进行反量化,并基于反量化后的残差值与当前点的预测值相加得到该点云的重建值,直到解码完所有的点云。当前点将会作为后续LOD中点的最邻近点,并利用当前点的重建值对后续点的属性信息进行预测。For example, 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.
上述是基于GPCC编解码框架下的点云编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于GPCC编解码框架下的点云编解码器的基本流程,但不限于该框架及流程。The above is the basic process of the point cloud codec based on the GPCC codec framework. With the development of technology, some modules or steps of the framework or process may be optimized. This application is applicable to the basic process of the point cloud codec based on the GPCC codec framework, but is not limited to the framework and process.
下面对基于八叉树的几何编码和基于预测树的几何编码进行介绍。The following introduces octree-based geometric coding and prediction tree-based geometric coding.
基于八叉树的几何编码包括:首先对几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中。然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接下来,按照广度优先遍历的顺序不断对bounding box进行树划分(八叉树/四叉树/二叉树),对每个节点的占位码进行编码。在一种隐式几何的划分方式中,首先计算点云的包围盒
Figure PCTCN2022122116-appb-000002
假设,该d x>d y>d z包围盒对应为一个长方体。在几何划分时,首先会基于x轴一直进行二叉树划分,得到两个子节点;直到满足d x=d y>d z条件时,才会基于x和y轴一直进行四叉树划分,得到四个子节点;当最终满足d x=d y=d z条件时,会一直进行八叉树划分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,对叶子结点中的点进行编码,生成二进制码流。在基于二叉树/四叉树/八叉树划分的过程中,引入两个参数:K、M。参数K指示在进行八叉树划分之前二叉树/四叉树划分的最多次数;参数M用来指示在进行二叉树/四叉树划分时对应 的最小块边长为2 M。同时K和M必须满足条件:假设d max=max(d x,d y,d z),d min=min(d x,d y,d z),参数K满足:K>=d max-d min;参数M满足:M>=d min。参数K与M之所以满足上述的条件,是因为目前G-PCC在几何隐式划分的过程中,划分方式的优先级为二叉树、四叉树和八叉树,当节点块大小不满足二叉树/四叉树的条件时,才会对节点一直进行八叉树的划分,直到划分到叶子节点最小单位1X1X1。但基于八叉树的几何信息编码模式仅对空间中具有相关性的点有高效的压缩速率,而对于在几何空间中处于孤立位置的点来说,使用直接编码模式(Direct Coding Model,简称DCM)编码方式可以大大降低复杂度。对于八叉树中的所有节点,DCM的使用不是通过标志位信息来表示的,而是通过当前节点的父节点和邻居信息来进行推断得到。判断当前节点是否具有DCM编码资格的方式有以下两种:
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.
Figure PCTCN2022122116-appb-000002
Assume that the bounding box of dx > dy > dz corresponds to a cuboid. During geometric partitioning, binary tree partitioning will be performed based on the x-axis to obtain two child nodes. When the condition of dx = dy > dz is met, quadtree partitioning will be performed based on the x-axis and y-axis to obtain four child nodes. When the condition of dx = dy = dz is finally met, octree partitioning will be performed until the leaf node obtained by partitioning is a 1x1x1 unit cube. The partitioning will be stopped, and the points in the leaf node will be encoded to generate a binary code stream. In the process of binary tree/quadtree/octree partitioning, two parameters are introduced: K and M. Parameter 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 . At the same time, K and M must meet the following conditions: Assuming d max = max(d x , dy , d z ), d min = min(d x , dy , d z ), parameter K satisfies: K>=d max -d min ; parameter M satisfies: M>=d min . The reason why parameters K and M meet the above conditions is that in the process of geometric implicit partitioning of G-PCC, the priority of partitioning is binary tree, quadtree and octree. When the node block size does not meet the conditions of binary tree/quadtree, the node will be partitioned by octree until it is partitioned to the minimum unit of leaf node 1X1X1. However, the geometric information coding mode based on octree has an efficient compression rate only for points with correlation in space, while for points in isolated positions in geometric space, the use of direct coding mode (Direct Coding Model, referred to as DCM) coding can greatly reduce the complexity. For all nodes in the octree, the use of DCM is not represented by flag information, but is inferred by the parent node and neighbor information of the current node. There are two ways to determine whether the current node is eligible for DCM encoding:
(1)当前节点仅有一个被占据子节点,同时当前节点父节点的父节点仅有两个被占据子节点,即当前节点最多只有一个邻居节点。(1) 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.
(2)当前节点的父节点仅有当前节点一个占据子节点,同时与当前节点共用一个面的六个邻居节点也都属于空节点。(2) The parent node of the current node has only one child node, the current node. At the same time, the six neighbor nodes that share a face with the current node are also empty nodes.
如果当前节点不具有DCM编码资格将对其进行八叉树划分,若具有DCM编码资格将进一步判断该节点中包含的点数,当点数小于阈值2时,则对该节点进行DCM编码,否则将继续进行八叉树划分。当应用DCM编码模式时,当前节点中包含点的几何坐标X,Y,Z分量将分别独立地被直接编码。当一个节点的边长为(2 dx,2 dy,2 dz)时,对该节点几何坐标的x、y和z每一个分量进行编码时需要d x,d y,d z比特,该比特信息直接被编进码流中。 If 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. When 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. When the side length of a node is (2 dx , 2 dy , 2 dz ), dx, dy, dz bits are required to encode each component of the x , y, and z components of the geometric coordinates of the node, and this bit information is directly encoded into the bitstream.
需要注意的是,在节点划分到叶子节点时,在几何无损编码的情况下,需要对叶子节点中的重复点数目进行编码。最终对所有节点的占位信息进行编码,生成二进制码流。另外G-PCC目前引入了一种平面编码模式,在对几何进行划分的过程中,会判断当前节点的子节点是否处于同一平面,如果当前节点的子节点满足同一平面的条件,会用该平面对当前节点的子节点进行表示。It should be noted that when nodes are divided into leaf nodes, in the case of geometric lossless coding, the number of repeated points in the leaf nodes needs to be encoded. Finally, the placeholder information of all nodes is encoded to generate a binary code stream. In addition, 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.
在基于八叉树的几何解码,解码端按照广度优先遍历的顺序,通过不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1x1x1的单位立方体时停止划分,解析得到每个叶子节点中包含的点数,最终恢复得到几何重构点云信息。In octree-based geometric decoding, the decoder obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and divides the nodes in sequence 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.
在基于trisoup(triangle soup,三角面片集)的几何信息编码框架中,同样也要先进行几何划分,但区别于基于二叉树/四叉树/八叉树的几何信息编码,该方法不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到block(子块)边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点)。依次编码每个block的vertex坐标,生成二进制码流。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. 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.
基于trisoup的点云几何信息重建,在解码端进行点云几何信息重建时,首先解码vertex坐标用于完成三角面片重建,该过程如图5A至图5C所示。图5A所示的block中存在3个vertex(v1,v2,v3),利用这3个vertex按照一定顺序所构成的三角面片集被称为triangle soup,即trisoup,如图5B所示。之后,在该三角面片集上进行采样,将得到的采样点作为该block内的重建点云,如图5C所示。When reconstructing the point cloud geometry information based on trisoup, the vertex coordinates are first decoded to complete the reconstruction of the triangle facets at the decoding end. The process is shown in Figures 5A to 5C. There are three vertices (v1, v2, v3) in the block shown in Figure 5A. The triangle facet 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 facet set, and the obtained sampling points are used as the reconstructed point cloud in the block, as shown in Figure 5C.
基于预测树的几何编码包括:首先对输入点云进行排序,目前采用的排序方法包括无序、莫顿序、方位角序和径向距离序。在编码端通过利用两种不同的方式建立预测树结构,其中包括:KD-Tree(高时延慢速模式)和利用激光雷达标定信息,将每个点划分到不同的Laser上,按照不同的Laser建立预测结构(低时延快速模式)。接下来基于预测树的结构,遍历预测树中的每个节点,通过选取不同的预测模式对节点的几何位置信息进行预测得到预测残差,并且利用量化参数对几何预测残差进行量化。最终通过不断迭代,对预测树节点位置信息的预测残差、预测树结构以及量化参数等进行编码,生成二进制码流。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. At the encoding end, 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). Next, based on the structure of the prediction tree, 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. Finally, through continuous iteration, 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.
基于预测树的几何解码,解码端通过不断解析码流,重构预测树结构,其次通过解析得到每个预测节点的几何位置预测残差信息以及量化参数,并且对预测残差进行反量化,恢复得到每个节点的重构几何位置信息,最终完成解码端的几何重构。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.
几何编码完成后,对几何信息进行重建。目前,属性编码主要针对颜色信息进行。首先,将颜色信息从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码中,主要有两种变换方法,一是依赖于LOD(Level of Detail,细节层次)划分的基于距离的提升变换,二是直接进行RAHT(Region Adaptive Hierarchal Transform,区域自适应分层变换)变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化并编码,生成二进制码流。After the geometric encoding is completed, the geometric information is reconstructed. At present, attribute encoding is mainly performed on color information. First, the color information is converted from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD (Level of Detail) division, and the other is to directly perform RAHT (Region Adaptive Hierarchal Transform) transformation. Both methods will convert color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize and encode the coefficients to generate a binary code stream.
在利用几何信息来对属性信息进行预测时,可以利用莫顿码进行最近邻居搜索,点云中每点对应的莫顿码可以由该点的几何坐标得到。计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标,其三个分量可以表示为公式(1):When using geometric information to predict attribute information, 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):
Figure PCTCN2022122116-appb-000003
Figure PCTCN2022122116-appb-000003
其中,
Figure PCTCN2022122116-appb-000004
分别是x,y,z的最高位
Figure PCTCN2022122116-appb-000005
到最低位
Figure PCTCN2022122116-appb-000006
对应的二进制数值。莫顿码M是对x,y,z从最高位开始,依次交叉排列
Figure PCTCN2022122116-appb-000007
到最低位,M的计算公式如下公式(2)所示:
in,
Figure PCTCN2022122116-appb-000004
The highest bits of x, y, and z are
Figure PCTCN2022122116-appb-000005
To the lowest position
Figure PCTCN2022122116-appb-000006
The corresponding binary value. The Morton code M is x, y, z, starting from the highest bit, arranged in sequence
Figure PCTCN2022122116-appb-000007
To the lowest bit, the calculation formula of M is shown in the following formula (2):
Figure PCTCN2022122116-appb-000008
Figure PCTCN2022122116-appb-000008
其中,
Figure PCTCN2022122116-appb-000009
分别是M的最高位
Figure PCTCN2022122116-appb-000010
到最低位
Figure PCTCN2022122116-appb-000011
的值。在得到点云中每个点的莫顿码M后,将点云中的点按莫顿码由小到大的顺序进行排列,并将每个点的权值w设为1。
in,
Figure PCTCN2022122116-appb-000009
The highest bit of M
Figure PCTCN2022122116-appb-000010
To the lowest position
Figure PCTCN2022122116-appb-000011
After obtaining the Morton code M of each point in the point cloud, the points in the point cloud are arranged in order from small to large Morton codes, and the weight w of each point is set to 1.
GPCC的通用测试条件共4种:There are 4 general test conditions for GPCC:
条件1:几何位置有限度有损、属性有损;Condition 1: The geometric position is limitedly lossy and the attributes are lossy;
条件2:几何位置无损、属性有损;Condition 2: The geometric position is lossless, but the attributes are lossy;
条件3:几何位置无损、属性有限度有损;Condition 3: The geometric position is lossless, and the attributes are limitedly lossy;
条件4:几何位置无损、属性无损。Condition 4: The geometric position and attributes are lossless.
GPCC的通用测试序列包括Cat1A,Cat1B,Cat3-fused,Cat3-frame共四类,其中Cat2-frame点云只包含反射率属性信息,Cat1A、Cat1B点云只包含颜色属性信息,Cat3-fused点云同时包含颜色和反射率属性信息。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的技术路线:共2种,以几何压缩所采用的算法进行区分。GPCC's technical routes: There are 2 types in total, differentiated by the algorithms used for geometric compression.
技术路线1:八叉树编码分支:Technical route 1: Octree encoding branch:
在编码端,将包围盒依次划分得到子立方体,对非空的(包含点云中的点)的子立方体继续进行划分,直到划分得到的叶子结点为1X1X1的单位立方体时停止划分,在几何无损编码情况下,需要对叶子节点中所包含的点数进行编码,最终完成几何八叉树的编码,生成二进制码流。At the encoding end, 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. In the case of geometric lossless coding, it is necessary to encode the number of points contained in the leaf node, and finally complete the encoding of the geometric octree to generate a binary code stream.
在解码端,解码端按照广度优先遍历的顺序,通过不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1x1x1的单位立方体时停止划分,在几何无损解码的情况下,需要解析得到每个叶子节点中包含的点数,最终恢复得到几何重构点云信息。At the decoding end, 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. In the case of 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.
技术路线2:预测树编码分支:Technical route 2: prediction tree encoding branch:
在编码端通过利用两种不同的方式建立预测树结构,其中包括:KD-Tree(高时延慢速模式)和利用激光雷达标定信息,将每个点划分到不同的Laser上,按照不同的Laser建立预测结构(低时延快速模式)。接下来基于预测树的结构,遍历预测树中的每个节点,通过选取不同的预测模式对节点的几何位置信息进行预测得到预测残差,并且利用量化参数对几何预测残差进行量化。最终通过不断迭代,对预测树节点位置信息的预测残差、预测树结构以及量化参数等进行编码,生成二进制码流。At the encoding end, 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). Next, based on the structure of the prediction tree, 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. Finally, through continuous iteration, 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.
在解码端,解码端通过不断解析码流,重构预测树结构,其次通过解析得到每个预测节点的几何位置预测残差信息以及量化参数,并且对预测残差进行反量化,恢复得到每个节点的重构几何位置信息,最终完成解码端的几何重构。At the decoding end, 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.
下面对L3C2编解码框架进行介绍。The following is an introduction to the L3C2 encoding and decoding framework.
如图6所示,L3C2编码端算法:As shown in Figure 6, the L3C2 encoding algorithm:
构建单链结构的输入:体素化后的点云、旋转激光雷达的先验信息。Input for constructing a single chain structure: voxelized point cloud and prior information of rotating lidar.
构建单链结构的输出:当前点的几何预测值及预测残差、当前点采用的预测模式、当前点的量化参数、重复点数和以及当每种模式所对应跳过的点数。The output of constructing a single chain structure includes: 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 skipped points corresponding to each mode.
如图6所示,构建L3C2具体分为:重排序、坐标转换、建立单链结构、选择预测模式、生成预测值、重复点数的编码、预测残差的量化、坐标逆转换、坐标转换残差的编码。As shown in Figure 6, the construction of L3C2 is specifically divided into: reordering, coordinate transformation, establishing a single chain structure, selecting a prediction mode, generating a prediction value, encoding the number of repeated points, quantizing the prediction residual, inverse coordinate transformation, and encoding the coordinate transformation residual.
下面对L3C2编码过程的各步骤分别进行介绍:The following are the steps of the L3C2 encoding process:
1)重排序1) Reorder
对体素化后的点云进行重排序以构建更高效的单链结构,默认的排序方法是按激光雷达的扫描顺序进行排序。The voxelized point cloud is reordered to construct a more efficient single chain structure. The default sorting method is to sort according to the scanning order of the lidar.
示例性的,将每个点的笛卡尔坐标(x,y,z)转化为极坐标(r,φ,tanθ),并依次根据仰角正切值tanθ、方位角φ、半径r对各点进行排序。Exemplarily, 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 elevation tangent value tanθ, the azimuth angle φ, and the radius r.
2)坐标转换2) Coordinate transformation
根据排序后的结果遍历点云,将点由笛卡尔坐标(x,y,z)按照以下公式(4)转换为柱面坐标(r,φ,i)并进行存储。According to the sorted results, 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.
Figure PCTCN2022122116-appb-000012
Figure PCTCN2022122116-appb-000012
Figure PCTCN2022122116-appb-000013
Figure PCTCN2022122116-appb-000013
Figure PCTCN2022122116-appb-000014
Figure PCTCN2022122116-appb-000014
其中,i即点对应的LaserID(一个典型的激光雷达系统可能有16、32或64个Laser Scanner,每个laser的先验信息不同即仰角θ和在垂直方向上的高度zLaser不同),i的确定是通过循环不同Laser的先验信息,在每次循环中利用点的r、先验信息和以上转换公式计算点的z分量,并计算该转换而来的z分量与点的原始z分量之间的偏差,进而从不同LaserID中选择出偏差最小的作为该点的i,此过程对点云在空间中垂直方向的非均匀分布进行了处理,使其规则化。Among them, 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.
3)建立单链结构3) Establish a single chain structure
图7A是基于柱面坐标(r,φ,i)对点云中的点进行排序,得到的单链结构。FIG. 7A is a single chain structure obtained by sorting the points in the point cloud based on the cylindrical coordinates (r, φ, i).
由于激光雷达点云是通过利用激光扫描仪来对物体进行扫描的,具体的扫描示意图如图8所示。可以利用激光扫描仪的采集参数得到每个Laser的旋转间隔即
Figure PCTCN2022122116-appb-000015
通过利用
Figure PCTCN2022122116-appb-000016
来对图7A所示的单链结构在垂直方向(即
Figure PCTCN2022122116-appb-000017
方向)进行规则化处理,得到如图7B所示的规则化后的单链结构。
Since the laser radar point cloud is obtained by scanning the object with a laser scanner, the specific scanning diagram is shown in Figure 8. The rotation interval of each Laser can be obtained by using the acquisition parameters of the laser scanner, that is,
Figure PCTCN2022122116-appb-000015
by using
Figure PCTCN2022122116-appb-000016
To compare the single-chain structure shown in FIG7A in the vertical direction (i.e.
Figure PCTCN2022122116-appb-000017
The regularized single-stranded structure is obtained as shown in FIG7B .
示例性的,可以通过如下公式(5)对图7A所示的单链结构在垂直方向进行规则化处理:For example, the single-chain structure shown in FIG. 7A can be regularized in the vertical direction by the following formula (5):
Figure PCTCN2022122116-appb-000018
Figure PCTCN2022122116-appb-000018
其中,round()为四舍五入函数。Among them, round() is the rounding function.
本申请实施例,整个编码过程均是以规则化后的单链结构为例进行。In the embodiment of the present application, the entire encoding process is performed using the regularized single-chain structure as an example.
在得到图8所示的规则化结构之后,计算每个点在单链结构中的顺序(order)o(P)。After obtaining the regularized structure shown in FIG8 , the order o(P) of each point in the single chain structure is calculated.
示例性的,通过如下公式(6)计算每个点在单链结构中对应的o(P):Exemplarily, the o(P) corresponding to each point in the single-chain structure is calculated by the following formula (6):
Figure PCTCN2022122116-appb-000019
Figure PCTCN2022122116-appb-000019
其中,N laser表示Laser的数目,i表示当前点对应的LaserID,
Figure PCTCN2022122116-appb-000020
表示当前点规则化后的
Figure PCTCN2022122116-appb-000021
分量。在得到每个点在单链结构中的order即o(P)后,对o(P)进行编码。
Among them, N laser represents the number of Lasers, i represents the LaserID corresponding to the current point,
Figure PCTCN2022122116-appb-000020
Represents the regularized current point
Figure PCTCN2022122116-appb-000021
After obtaining the order of each point in the single chain structure, i.e., o(P), o(P) is encoded.
4)预测模式选择4) Prediction model selection
示例性的,按照如图9所示的结构对每个点进行预测编码。对于每个点建立一个预测列表,其中包含N(假设N=5)个参考值。在编码端利用率失真优化准则选取最佳的预测模式predMode,需要将预测模式进行编码。Exemplarily, each point is predicted and encoded according to the structure shown in FIG9. A prediction list is established for each point, which includes N (assuming N=5) reference values. The best prediction mode predMode is selected by using the rate-distortion optimization criterion at the encoding end, and the prediction mode needs to be encoded.
在编码完之后,需要对预测列表的值进行更新,更新准则如下所示:After encoding, the values of the prediction list need to be updated. The update criteria are as follows:
准则1、当预测残差大于一定阈值(Th)时,则将当前点更新到预测列表内,并且将最后的一个预测值进行删除。Criterion 1: When the prediction residual is greater than a certain threshold (Th), the current point is updated to the prediction list and the last prediction value is deleted.
准则2、当预测残差小于或等于一定阈值(Th)时,则将所选取的预测值进行删除,并将当前点更新到预测列表内。Criterion 2: When the prediction residual is less than or equal to a certain threshold (Th), the selected prediction value is deleted and the current point is updated to the prediction list.
5)预测残差的量化5) Quantification of prediction residuals
基于上述确定的预测模式和预测列表,确定当前点的预测值假设为
Figure PCTCN2022122116-appb-000022
基于当前点的预测值和原始值,确定出当前点的预测残差值假定为
Figure PCTCN2022122116-appb-000023
Based on the above determined prediction mode and prediction list, the prediction value of the current point is assumed to be
Figure PCTCN2022122116-appb-000022
Based on the predicted value and original value of the current point, the predicted residual value of the current point is determined to be
Figure PCTCN2022122116-appb-000023
接着,对当前点的预测残差值
Figure PCTCN2022122116-appb-000024
进行量化得到
Figure PCTCN2022122116-appb-000025
Next, the predicted residual value of the current point
Figure PCTCN2022122116-appb-000024
Quantify
Figure PCTCN2022122116-appb-000025
示例性的,x和y对应的量化因子的确定原理如图10所示,r和
Figure PCTCN2022122116-appb-000026
对应的量化因子的确定原理如图11所示。
For example, the determination principle of the quantization factors corresponding to x and y is shown in FIG. 10 , where r and
Figure PCTCN2022122116-appb-000026
The determination principle of the corresponding quantization factor is shown in FIG11 .
示例性的,根据如下公式(7)和公式(8)分别计算得到r和
Figure PCTCN2022122116-appb-000027
对应的量化因子Δr和Δφ:
For example, r and r are calculated according to the following formula (7) and formula (8) respectively:
Figure PCTCN2022122116-appb-000027
The corresponding quantization factors Δr and Δφ are:
Δr=ΔQ/(|cosφ c|+|sinφ c|)  (7) Δr=ΔQ/(|cosφ c |+|sinφ c |) (7)
Δφ=Δr/r  (8)Δφ=Δr/r  (8)
确定出量化因子Δr和Δφ后,对当前点的预测残差值进行量化,例如,After determining the quantization factors Δr and Δφ, the prediction residual value of the current point is quantized, for example,
Qr res=round(r res/Δr) Qr res = round(r res /Δr)
Figure PCTCN2022122116-appb-000028
Figure PCTCN2022122116-appb-000028
并对量化后的预测残差值进行编码。And encode the quantized prediction residual value.
6)重复点数的编码6) Encoding of repeated points
对当前点在笛卡尔坐标下的重复点数目进行编码。Encodes the number of duplicate points of the current point in Cartesian coordinates.
7)坐标逆转换7) Coordinate inverse transformation
将当前点的重建柱面坐标
Figure PCTCN2022122116-appb-000029
按照以下公式(9)转换为笛卡尔坐标
Figure PCTCN2022122116-appb-000030
即为当前点的预测笛卡尔坐标。
Reconstruct the cylindrical coordinates of the current point
Figure PCTCN2022122116-appb-000029
Convert to Cartesian coordinates according to the following formula (9):
Figure PCTCN2022122116-appb-000030
This is the predicted Cartesian coordinate of the current point.
r rec=r pred+Qr res×Δr r rec = r pred + Q r res × Δr
Figure PCTCN2022122116-appb-000031
Figure PCTCN2022122116-appb-000031
Figure PCTCN2022122116-appb-000032
Figure PCTCN2022122116-appb-000032
Figure PCTCN2022122116-appb-000033
Figure PCTCN2022122116-appb-000033
Figure PCTCN2022122116-appb-000034
Figure PCTCN2022122116-appb-000034
其中,i为点对应的LaserID,每个laser的先验信息不同即仰角θ和在垂直方向上的高度zLaser不同,因此第i个Laser对应的仰角为θ(i),在垂直方向上的高度为zLaser(i)。Among them, 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).
8)坐标转换残差的编码8) Coding of coordinate transformation residuals
利用当前点的坐标(x,y,z)以及坐标逆转换得到的坐标
Figure PCTCN2022122116-appb-000035
得到坐标转换残差(Δx,Δy,Δz)之后,几何有损情况下,对Δx,Δy残差分量不进行编码,并且对Δz进行残差量化编码。而对于无损编码情况下,需要对坐标转换残差进行编码。
The coordinates obtained by using the coordinates (x, y, z) of the current point and the inverse conversion of the coordinates
Figure PCTCN2022122116-appb-000035
After obtaining the coordinate transformation residual (Δx, Δy, Δz), in the case of geometric loss, the Δx and Δy residual components are not encoded, and the Δz is residually quantized and encoded. In the case of lossless encoding, the coordinate transformation residual needs to be encoded.
下面对L3C2的解码过程进行介绍。The decoding process of L3C2 is introduced below.
重构单链结构的输入:解码后数据(包括当前点采用的预测模式、当前点的预测残差、当前点的量化参数、重复点数、每个点的Order)、旋转激光雷达的先验信息。Input for reconstructing the single-chain structure: 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, the order of each point), and the prior information of the rotating lidar.
重构单链结构的输出:重建的体素化后点云。Output of reconstructing a single chain structure: reconstructed voxelized point cloud.
如图12所示,重构单链结构具体分为四步:生成预测值、重建单链结构、解码重复点数、坐标逆转换、重建几何点云。下面分别进行介绍:As shown in Figure 12, the reconstruction of the single chain structure is divided into four steps: generating prediction values, reconstructing the single chain structure, decoding the number of repeated points, inverse coordinate transformation, and reconstructing the geometric point cloud. The following are introduced respectively:
1)生成预测值1) Generate predicted values
根据解码得到的当前点采用的预测模式及其祖先的重建柱面坐标对当前点的柱面坐标进行预测并生成对应的预测值,具体过程如下:According to the prediction mode adopted by the current point obtained by decoding and the reconstructed cylindrical coordinates of its ancestors, the cylindrical coordinates of the current point are predicted and the corresponding prediction values are generated. The specific process is as follows:
示例性的,按照如图9所示的结构对每个点进行预测编码。对于每个点建立一个预测列表,其中包含N(假设N=5)个参考值。在解码端通过从码流中解析得到当前点的预测模式predMode,其次利用预测模式predMode在预测列表中得到当前点的柱面坐标预测值
Figure PCTCN2022122116-appb-000036
For example, predictive coding is performed on each point according to the structure shown in FIG9 . A prediction list is established for each point, which contains N (assuming N=5) reference values. The prediction mode predMode of the current point is obtained by parsing the bitstream at the decoding end, and then the cylindrical coordinate prediction value of the current point is obtained in the prediction list using the prediction mode predMode.
Figure PCTCN2022122116-appb-000036
笛卡尔坐标预测值为点的柱面坐标重建值
Figure PCTCN2022122116-appb-000037
逆转换得到的
Figure PCTCN2022122116-appb-000038
The predicted value of Cartesian coordinates is the reconstructed value of cylindrical coordinates of the point
Figure PCTCN2022122116-appb-000037
The inverse transformation
Figure PCTCN2022122116-appb-000038
对柱面坐标系下的预测残差分量进行反量化,以及预测值来恢复得到当前点的重建柱面坐标
Figure PCTCN2022122116-appb-000039
Dequantize the prediction residual components in the cylindrical coordinate system and restore the predicted value to obtain the reconstructed cylindrical coordinates of the current point
Figure PCTCN2022122116-appb-000039
2)重建L3C2结构2) Reconstruction of L3C2 structure
通过上一步可得当前点的柱面坐标预测值
Figure PCTCN2022122116-appb-000040
接下来按照以下公式(10)利用解码得到的柱面坐标残差
Figure PCTCN2022122116-appb-000041
和当前点的预测柱面坐标
Figure PCTCN2022122116-appb-000042
计算当前点的重建柱面坐标
Figure PCTCN2022122116-appb-000043
The predicted value of the cylindrical coordinates of the current point can be obtained through the previous step
Figure PCTCN2022122116-appb-000040
Next, according to the following formula (10), the cylindrical coordinate residual obtained by decoding is used
Figure PCTCN2022122116-appb-000041
and the predicted cylindrical coordinates of the current point
Figure PCTCN2022122116-appb-000042
Calculate the reconstructed cylindrical coordinates of the current point
Figure PCTCN2022122116-appb-000043
Δr=ΔQ/(|cosφ c|+|sinφ c|) Δr=ΔQ/(|cosφ c |+|sinφ c |)
Δφ=Δr/rΔφ=Δr/r
r rec=r pred+Qr res×Δr r rec = r pred + Q r res × Δr
Figure PCTCN2022122116-appb-000044
Figure PCTCN2022122116-appb-000044
Figure PCTCN2022122116-appb-000045
Figure PCTCN2022122116-appb-000045
通过解析当前点在单链结构中的顺序(order)o(P),可以确定当前点在L3C2结构的位置,以及重建柱面坐标(r,φ,i)从而重建L3C2结构。By analyzing the order (order) o(P) of the current point in the single chain structure, the position of the current point in the L3C2 structure can be determined, and the cylindrical coordinates (r, φ, i) can be reconstructed to reconstruct the L3C2 structure.
3)解码重复点数目3) Number of decoding repeat points
对当前点的重复点数目进行解码。Decode the number of duplicate points of the current point.
4)坐标逆转换4) Coordinate inverse transformation
将当前点的重建柱面坐标(r,φ,i),即上述的重建柱面坐标
Figure PCTCN2022122116-appb-000046
按照以下公式(11)转换为笛卡尔坐标
Figure PCTCN2022122116-appb-000047
即为当前点的预测笛卡尔坐标。
The reconstructed cylindrical coordinates of the current point (r, φ, i), that is, the reconstructed cylindrical coordinates mentioned above
Figure PCTCN2022122116-appb-000046
Convert to Cartesian coordinates according to the following formula (11):
Figure PCTCN2022122116-appb-000047
This is the predicted Cartesian coordinate of the current point.
Figure PCTCN2022122116-appb-000048
Figure PCTCN2022122116-appb-000048
Figure PCTCN2022122116-appb-000049
Figure PCTCN2022122116-appb-000049
Figure PCTCN2022122116-appb-000050
Figure PCTCN2022122116-appb-000050
其中,i为点对应的LaserID,每个laser的先验信息不同即仰角θ和在垂直方向上的高度zLaser不同,因此第i个Laser对应的仰角为θ(i),在垂直方向上的高度为zLaser(i)。Among them, 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).
6)重建几何点云6) Reconstruct geometric point cloud
示例性的,按照以下公式(12)利用解码得到的笛卡尔坐标残差(r x,r y,r z)和当前点的预测笛卡尔坐标
Figure PCTCN2022122116-appb-000051
计算当前点的重建笛卡尔坐标(x,y,z)。
Exemplarily, the following formula (12) is used to use the decoded Cartesian coordinate residual (r x , ry , r z ) and the predicted Cartesian coordinate of the current point:
Figure PCTCN2022122116-appb-000051
Computes the reconstructed Cartesian coordinates (x,y,z) of the current point.
Figure PCTCN2022122116-appb-000052
Figure PCTCN2022122116-appb-000052
最终,即得到了重建的体素化后的点云。Finally, the reconstructed voxelized point cloud is obtained.
上文对基于L3C2的编解码方法进行介绍,由上述可知,在基于L3C2的编解码中,对于L3C2中的每一个节点,均需要编解码该节点的重复点信息,但是并不是每一个节点上均具有重复点,因此,对每一个编解码重复点信息,增加了编解码的复杂度,且浪费大量编解码时间,使得编解码效率低。The above introduces the encoding and decoding method based on L3C2. It can be seen from the above that in the encoding and decoding based on L3C2, for each node in L3C2, the repeated point information of the node needs to be encoded and decoded, but not every node has repeated points. Therefore, encoding and decoding repeated point information for each node increases the complexity of encoding and decoding, wastes a lot of encoding and decoding time, and makes the encoding and decoding efficiency low.
为了解决上述技术问题,本申请实施例在基于L3C2的点云编解码中,首先通过点云所包括的总点数,以及该点云的L3C2的节点总数,确定该点云所包括的重复点总数,这样在编解码时,实时记录已编解码的重复点的个数,且将已编解码的重复点的个数与点云所包括的重复点总数进行比较,以确定在编解码当前节点时,是否编解码该节点的重复点信息,例如,在编解码当前点时,确定已编解码的重复点的个数等于点云的重复点总数,说明点云中的重复点已编解码结束,剩余节点均不包括重复点,进而不需要编解码后续节点的重复点信息,进而降低了点云的编解码复杂度,节约了编解码时间,进而提升了编解码效率。In order to solve the above technical problems, in the embodiment of the present application, in the point cloud encoding and decoding based on L3C2, the total number of repeated points included in the point cloud is first determined by the total number of points included in the point cloud and the total number of L3C2 nodes of the point cloud. In this way, during encoding and decoding, the number of repeated points that have been encoded and decoded is recorded in real time, and the number of repeated points that have been encoded and decoded is compared with the total number of repeated points included in the point cloud to determine whether to encode and decode the repeated point information of the node when encoding and decoding the current node. For example, when encoding and decoding the current point, it is determined that the number of repeated points that have been encoded and decoded is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been encoded and decoded, and the remaining nodes do not include repeated points, and thus there is no need to encode and decode the repeated point information of subsequent nodes, 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 encoding and decoding method involved in the embodiments of the present application is introduced below in conjunction with specific embodiments.
首先,以解码端为例,对本申请实施例提供的点云解码方法进行介绍。First, taking the decoding end as an example, the point cloud decoding method provided in the embodiment of the present application is introduced.
图13为本申请一实施例提供的点云解码方法流程示意图。本申请实施例的点云解码方法可以由上述图3或图5所示的点云解码设备完成。Fig. 13 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.
如图13所示,本申请实施例的点云解码方法包括:As shown in FIG13 , the point cloud decoding method of the embodiment of the present application includes:
S101、解码点云的几何码流,得到点云的L3C2的节点总数,以及点云的总点数。S101, decoding the geometric code stream of the point cloud to obtain the total number of L3C2 nodes of the point cloud and the total number of points of the point cloud.
由上述可知,点云包括几何信息和属性信息,对点云的解码包括几何解码和属性解码。本申请实施例涉及点云的几何解码。As can be seen from the above, the point cloud includes geometric information and attribute information, and 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.
在一些实施例中,点云的几何信息也称为点云的位置信息,因此,点云的几何解码也称为点云的位置解码。In some embodiments, 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.
在基于L3C2的编码方式中,编码端基于点云的几何信息,构建点云的L3C2结构,L3C2结构为链结构,由至少一个单链结构组成,每个单链结构中包括至少一个节点。一个节点包括至少一个点云中的点,也就是说,在L3C2编码中,将点云中的点划分至L3C2中的节点上。In the L3C2-based encoding method, the encoder constructs the L3C2 structure of the point cloud based on the geometric information of the point cloud. The L3C2 structure is a chain structure composed of at least one single chain structure, and each single chain structure includes at least one node. A node includes at least one point in the point cloud, that is, in the L3C2 encoding, the points in the point cloud are divided into nodes in L3C2.
在一些实施例中,由于点云中的有些点的坐标信息相同,因此,这些坐标相同的点被划分到L3C2的同一个节点上,使得该节点包括重复点。In some embodiments, since some points in the point cloud have the same coordinate information, these points with the same coordinates are divided into the same node of L3C2, so that the node includes repeated points.
在一些实施例中,构建点云的L3C2时,需要对点云中的点进行坐标转换,例如,将点云中的点在第二坐标系下的坐标转换为第一坐标系下的坐标时,可能会使得第二坐标系下坐标不同的点,转换到第一坐标系下时,坐标变得相同。这样基于第一坐标系下点的坐标进行L3C2构建时,会将第一坐标系下坐标相同的点划分到一个节点上,进而使得该节点包括重复点。In some embodiments, when constructing L3C2 of a point cloud, it is necessary to perform coordinate conversion on the points in the point cloud. For example, when converting the coordinates of the points in the point cloud in the second coordinate system to the coordinates in the first coordinate system, the coordinates of the points with different coordinates in the second coordinate system may become the same when converted to the first coordinate system. In this way, when constructing L3C2 based on the coordinates of the points in the first coordinate system, the points with the same coordinates in the first coordinate system will be divided into one node, so that the node includes duplicate points.
当然可能还有其他的情况,使得点云的L3C2中的节点包括重复点。Of course there may be other situations where the nodes in L3C2 of the point cloud include duplicate points.
目前编码端在对L3C2中的每一个节点进行编码时,需要编码每一个节点的重复点信息。对应的,解码端在解码时,对每一个节点的重复点信息解码。这样会增加编解码的复杂度,浪费编解码时间,降低编解码效率。At present, when encoding each node in L3C2, the encoder needs to encode the repeated point information of each node. Correspondingly, when decoding, the decoder decodes the repeated point information of each node. This will increase the complexity of encoding and decoding, waste encoding and decoding time, and reduce encoding and decoding efficiency.
由上述可知,在点云的L3C2中,并不是每一个节点具有重复点,甚至可以理解的是,点云的L3C2中只有较少的节点包括重复点。基于此,本申请实施例中,在解码时,首先确定出该点云所包括的重复点总数,且在解码过程中,对已解码的重复点的个数进行统计,进而在解码每一个点之前,首先判断统计的当前已解码的重复点的个数是否已经等于点云所包括的重复点总数。若当前已解码的重复点的个数等于点云所包括的重复点总数时,说明点云中的重复点均已解码完成,L3C2中的剩余待解码的节点上均不包括重复节点,这样在后续对这些节点进行解码时,不再解码这些节点的重复点信息,进而降低点云的解码复杂度,节约了解码时间,进而提升了解码效率。From the above, it can be seen that in the L3C2 of the point cloud, not every node has duplicate points. It can even be understood that only a few nodes in the L3C2 of the point cloud include duplicate points. Based on this, in the embodiment of the present application, when decoding, the total number of duplicate points included in the point cloud is first determined, and during the decoding process, the number of decoded duplicate points is counted, and then before decoding each point, it is first determined whether the number of currently decoded duplicate points is equal to the total number of duplicate points included in the point cloud. If the number of currently decoded duplicate points is equal to the total number of duplicate points included in the point cloud, it means that the duplicate points in the point cloud have been decoded, and the remaining nodes to be decoded in L3C2 do not include duplicate nodes. In this way, when these nodes are subsequently decoded, the duplicate point information of these nodes will no longer be decoded, thereby reducing the decoding complexity of the point cloud, saving decoding time, and improving decoding efficiency.
本申请实施例对解码端获得点云的L3C2的节点总数和点云的总点数的具体方式不做限制。The embodiment of the present application does not limit the specific method for the decoding end to obtain the total number of L3C2 nodes of the point cloud and the total number of points of the point cloud.
在一些实施例中,编码端将点云的L3C2的节点总数和点云的总点数写入几何码流。这样,解码端通过解码几何 码流,得到点云的L3C2的节点总数和点云的总点数。In some embodiments, the encoder writes the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud into the geometry stream. In this way, the decoder obtains the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud by decoding the geometry stream.
在一些实施例中,编码端将点云所包括的单链数量,以及每个单链所包括的节点数目写入几何码流。这样,解码端解码点云的几何码流,得到点云所包括的单链数量headsCount,以及每一个单链所包括的节点数量,进而基于单链数量,以及每个单链所包括的节点数量,得到L3C2的节点总数。例如,将各个单链所包括的节点数量之和,确定为L3C2的节点总数。In some embodiments, the encoding end writes the number of single chains included in the point cloud and the number of nodes included in each single chain into the geometric code stream. In this way, the decoding end decodes the geometric code stream of the point cloud to obtain the number of single chains headsCount included in the point cloud and the number of nodes included in each single chain, and then obtains the total number of nodes of L3C2 based on the number of single chains and the number of nodes included in each single chain. For example, the sum of the number of nodes included in each single chain is determined as the total number of nodes of L3C2.
在该实施例的一种示例中,可以通过如下指令,将点云所包括的各单链上的节点进行相加,得到L3C2的节点总数nodeCount:In an example of this embodiment, the nodes on each single chain included in the point cloud can be added together to obtain the total number of nodes nodeCount of L3C2 through the following instructions:
for(index=0;index<headsCount;index++)for(index=0;index<headsCount;index++)
nodeCount+=nodeCntnodeCount+=nodeCnt
在一些实施例中,编码端将点云的总点数写入点云的几何数据单元中。这样,解码端通过解码点云的几何数据单元,得到点云的总点数。In some embodiments, 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.
在一些实施例中,由于点云至少包括一个点,为了节约码字,则编码端在编码点云的总点数时,对点云的总点数减一,得到第一值,将该第一值写入几何数据单元中,即第一值表示为slice_num_points_minus1。对应的,解码端在解码时,解码几何数据单元,得到第一值,接着对该第一值加1,得到点云的总点数。In some embodiments, since the point cloud includes at least one point, in order to save code words, 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. Correspondingly, 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.
在一种示例中,几何数据单元的脚本语法(Geometry data unit footer syntax)如表2所示:In one example, the script syntax of the geometry data unit (Geometry data unit footer syntax) is shown in Table 2:
表2Table 2
Figure PCTCN2022122116-appb-000053
Figure PCTCN2022122116-appb-000053
表2中,slice_num_points_minus1加1,用于指定点云的总点数。比特流一致性要求slice_num_points_minus1加1应等于可解码点的数量。解码器不应依赖比特流一致性来防止实现缓冲区溢出。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.
也就是说,解码端通过解码表2所示的几何数据单元,得到第一值slice_num_points_minus1,对第一值加1,得到点云的总点数。That is, the decoding end obtains the first value 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.
解码端基于上述方法,得到点云的L3C2的节点总数,以及点云的总点数后,执行如下S102的步骤。Based on the above method, the decoding end obtains the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud, and then executes the following step S102.
S102、根据点云的总点数和L3C2的节点总数,确定点云的重复点总数。S102. Determine the total number of repeated points in the point cloud according to the total number of points in the point cloud and the total number of nodes in L3C2.
解码端确定出点云的L3C2的节点总数,以及点云的总点数后,根据点云的总点数和L3C2的节点总数,确定点云的重复点总数,进而以点云的重复点总数作为监督,进行后续的解码。After the decoding end determines the total number of L3C2 nodes of the point cloud and the total number of points in the point cloud, it determines the total number of repeated points in the point cloud based on the total number of points in the point cloud and the total number of L3C2 nodes, and then uses the total number of repeated points in the point cloud as supervision for subsequent decoding.
本申请实施例对解码端根据点云的L3C2的节点总数,以及点云的总点数,确定点云的重复点总数的具体方式不做限制。The embodiment of the present application does not limit the specific method in which the decoding end determines the total number of repeated points in the point cloud based on the total number of nodes of L3C2 of the point cloud and the total number of points in the point cloud.
在一种可能的实现方式中,在数据传输或编码等过程中,可以会丢失或损毁部分点的信息。解码端可以对几何码流进行浅层解码,确定出几何码流中所包括的节点个数,进而基于几何码流中所包括的节点个数,以及上述步骤确定出的点云的总点数和L3C2的节点总数,确定点云的重复点总数。In a possible implementation, some point information may be lost or damaged during data transmission or encoding. The decoding end may perform shallow decoding on the geometry stream to determine the number of nodes included in the geometry stream, and then determine the total number of repeated points in the point cloud based on the number of nodes included in the geometry stream, the total number of points in the point cloud determined in the above steps, and the total number of nodes in L3C2.
在另一种可能的实现方式中,直接将点云的总点数和L3C2的节点总数之间的差值,确定为点云的重复点总数。In another possible implementation, the difference between the total number of points in the point cloud and the total number of nodes in L3C2 is directly determined as the total number of repeated points in the point cloud.
示例性的,解码端通过如下公式(13),确定出点云的重复点总数:Exemplarily, the decoding end determines the total number of repeated points in the point cloud by the following formula (13):
dupSumNum=(slice_num_points_minus1+1)-nodeCount  (13)dupSumNum=(slice_num_points_minus1+1)-nodeCount  (13)
其中,dupSumNum为点云的重复点总数,slice_num_points_minus1+1为点云的总点数,nodeCount为L3C2的节点总数。Among them, 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, and nodeCount is the total number of nodes in L3C2.
解码端基于上述步骤,确定出点云的重复点总数后,开始对L3C2中的各点进行解码,具体参照下面S103。Based on the above steps, after the decoding end determines the total number of repeated points in the point cloud, it starts decoding each point in L3C2, as shown in S103 below.
S103、在解码L3C2中的当前节点时,确定已解码重复点的个数。S103. When decoding the current node in L3C2, determine the number of decoded duplicate points.
本申请实施例中,解码端解码L3C2中每一个节点的方式相同,为了便于描述,以L3C2中的当前节点为例进行说明。In the embodiment of the present application, the decoding end decodes each node in L3C2 in the same manner. For ease of description, the current node in L3C2 is taken as an example for illustration.
在一种示例中,用dupCount表示当前已解码的重复点的个数,dupCount初始化为0,在解码L3C2中的第一个节点时,dupCount=0,小于点云的重复点总数dupSumNum,则解码第一个节点时,需要对该第一个节点的重复点信息进行解码。可选的,第一个节点的重复点信息包括该第一个节点所包括的重复点的个数,假设第一个节点包括的重复点的个数为a,则将dupCount更新为a。接着,解码L3C2中的第二个节点,在解码第二节点之前,首先判断dupCount=a是否等于点云的重复点总数dupSumNum,若否,则继续解码该第二节点的重复点信息,并使用该第二节点所包括的重复点的个数对当前的dupCount进行更新,依次类推。In one example, dupCount represents the number of duplicate points currently decoded, and dupCount is initialized to 0. When decoding the first node in L3C2, dupCount=0, which is less than the total number of duplicate points dupSumNum in the point cloud. When decoding the first node, it is necessary to decode the duplicate point information of the first node. Optionally, 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, decode the second node in L3C2. Before decoding the second node, first determine whether dupCount=a is equal to the total number of duplicate points dupSumNum in the point cloud. If not, continue to decode the duplicate point information of the second node, and use the number of duplicate points included in the second node to update the current dupCount, and so on.
由于上述可知,解码端在解码L3C2中的当前节点时,首先确定在解码当前节点之前,已解码的重复点的个数,即已解码重复点的个数dupCount,进而基于该已解码重复点的个数dupCount,确定是否解码当前节点的重复点信息。As can be seen from the above, when the decoding end decodes the current node in L3C2, 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.
在一种示例中,解码端通过如下指令,记录已解码重复点的个数:In one example, the decoding end records the number of decoded duplicate points through the following instructions:
for(index=0;index<nodeCount;index++)for(index=0;index<nodeCount;index++)
dupCount+=dupPointNumdupCount+=dupPointNum
其中,dupPointNum表示节点所包括的重复点的个数。Wherein, dupPointNum represents the number of duplicate points included in the node.
S104、根据已解码重复点的个数和点云的重复点总数,对当前节点进行解码。S104. Decode the current node according to the number of decoded duplicate points and the total number of duplicate points in the point cloud.
解码端在解码当前节点时,将已解码重复点的个数和点云的重复点总数进行比较,以对当前节点进行解码。When decoding the current node, the decoding end compares the number of decoded duplicate points with the total number of duplicate points in the point cloud to decode the current node.
具体的,上述S104的实现过程包括如下几种情况:Specifically, the implementation process of the above S104 includes the following situations:
情况1,若已解码重复点的个数等于点云的重复点总数,则上述S104包括S104-A1和S104-A2:Case 1: If the number of decoded duplicate points is equal to the total number of duplicate points in the point cloud, then the above S104 includes S104-A1 and S104-A2:
S104-A1、跳过解码当前节点的重复点信息;S104-A1, skip decoding repeated point information of the current node;
S104-A2、确定当前节点所包括的第一点的几何重建值。S104-A2. Determine the geometric reconstruction value of the first point included in the current node.
在情况1中,在解码当前节点时,若确定解码重复点的个数等于点云的重复点总数,则说明所有重复点已经解码结束,L3C2的剩余节点均不包括重复点。基于此,在解码当前节点时,则跳过重复点信息的解码,进而降低解码复杂度,节约解码时间,提升解码效率。In case 1, when decoding the current node, if it is determined that the number of decoded duplicate points is equal to the total number of duplicate points in the point cloud, it means that all duplicate points have been decoded and the remaining nodes of L3C2 do not include duplicate points. Based on this, when decoding the current node, the decoding of duplicate point information is skipped, thereby reducing decoding complexity, saving decoding time, and improving decoding efficiency.
此时,可以确定当前节点只包括一个点,记为第一点,接着,确定该第一点的几何重建值。At this point, it can be determined that the current node includes only one point, which is recorded as the first point. Then, the geometric reconstruction value of the first point is determined.
需要说明的是,确定第一点的几何重建值的过程具体可以参照如下步骤11至步骤13的描述,在此不再赘述。It should be noted that the process of determining the geometric reconstruction value of the first point may specifically refer to the description of the following steps 11 to 13, which will not be repeated here.
上文对情况1,若已解码重复点的个数等于点云的重复点总数,则跳过解码当前节点的重复点信息,并确定当前节点所包括的第一点的几何重建值的过程进行介绍。The above describes the process of skipping decoding the duplicate point information of the current node and determining the geometric reconstruction value of the first point included in the current node for case 1, if the number of decoded duplicate points is equal to the total number of duplicate points in the point cloud.
情况2,若重复点信息包括当前节点所包括的重复点的个数,已解码重复点的个数小于点云的重复点总数,且当前节点为L3C2中的最后一个节点时,上述S104包括S104-C1和S104-C2:Case 2: If the duplicate point information includes the number of duplicate points included in the current node, the number of decoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is the last node in L3C2, the above S104 includes S104-C1 and S104-C2:
S104-A1、跳过解码当前节点的重复点信息;S104-A1, skip decoding repeated point information of the current node;
S104-A2、将点云的重复点总数与已解码重复点的个数的差值,确定为当前节点所包括的重复点个数。S104-A2: Determine the difference between the total number of repeated points in the point cloud and the number of decoded repeated points as the number of repeated points included in the current node.
在该情况2中,若当前节点对应的已解码重复点的个数小于点云的重复点总数,则说明当前节点可能包括重复点,进一步的,若解码端确定当前节点为L3C2的最后一个节点时,则确定当前节点一定包括重复点,且当前节点所包括的重复点的个数为点云的重复点总数与已解码重复点的个数的差值。因此,在该情况2中,若确定当前节点对应的已解码重复点的个数小于点云的重复点总数,且当前节点为L3C2的最后一个节点,则跳过解码当前节点的重复点信息,且将点云的重复点总数与已解码重复点的个数的差值,确定为当前节点所包括的重复点个数,进而降低解码复杂度,节约解码时间,提升解码效率。In this case 2, if the number of decoded duplicate points corresponding to the current node is less than the total number of duplicate points in the point cloud, it means that the current node may include duplicate points. Further, if the decoding end determines that the current node is the last node of L3C2, it is determined that the current node must include duplicate points, and the number of duplicate points included in the current node is the difference between the total number of duplicate points in the point cloud and the number of decoded duplicate points. Therefore, in this case 2, if it is determined that the number of decoded duplicate points corresponding to the current node is less than the total number of duplicate points in the point cloud, and the current node is the last node of L3C2, the decoding of the duplicate point information of the current node is skipped, and the difference between the total number of duplicate points in the point cloud and the number of decoded duplicate points is determined as the number of duplicate points included in the current node, thereby reducing the decoding complexity, saving decoding time, and improving decoding efficiency.
在该情况2中,解码端还需要确定当前节点所包括的第一个点的几何重建值,其中确定第一点的几何重建值的过程具体可以参照如下步骤11至步骤13的描述,在此不再赘述。In this situation 2, the decoding end also needs to determine the geometric reconstruction value of the first point included in the current node, wherein the process of determining the geometric reconstruction value of the first point can be specifically referred to the description of the following steps 11 to 13, which will not be repeated here.
情况3,若已解码重复点的个数小于点云的重复点总数,且当前节点不是L3C2中的最后一个节点时,上述S104包括S104-B1和S104-B2:Case 3: If the number of decoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is not the last node in L3C2, the above S104 includes S104-B1 and S104-B2:
S104-B1、解码当前节点的重复点信息;S104-B1, decoding repeated point information of the current node;
S104-B2、基于重复点信息,确定当前节点所包括的N个重复点的几何重建值,N为整数。S104-B2. Based on the repeated point information, determine the geometric reconstruction values of N repeated points included in the current node, where N is an integer.
本申请实施例中,编码端在确定当前节点对应的已编码点重复点的个数小于点云的重复点总数,且当前节点不是L3C2中的最后一个节点时,确定当前节点具有重复点时,将当前节点的重复点信息写入几何码流。对应的,解码端在确定当前节点对应的已解码点重复点的个数小于点云的重复点总数,且当前节点不是L3C2中的最后一个节点时,解码几何码流,得到当前节点的重复点信息,并基于该重复点信息,确定当前节点所包括的N个重复点的几何重建值。In the embodiment of the present application, when the encoder determines that the number of repeated points of the encoded points corresponding to the current node is less than the total number of repeated points of the point cloud, and the current node is not the last node in L3C2, when determining that the current node has repeated points, the repeated point information of the current node is written into the geometric code stream. Correspondingly, when the decoder determines that the number of repeated points of the decoded points corresponding to the current node is less than the total number of repeated points of the point cloud, and the current node is not the last node in L3C2, the decoder decodes the geometric code stream to obtain the repeated point information of the current node, and based on the repeated point information, determines the geometric reconstruction values of the N repeated points included in the current node.
本申请实施例对重复点信息所包括的具体内容不做限制。The embodiment of the present application does not limit the specific content included in the repeated point information.
在一些实施例中,重复点信息包括当前节点所包括的重复点的个数。In some embodiments, the repeated point information includes the number of repeated points included in the current node.
在一些实施例中,若N大于0,则重复点信息包括当前节点所包括的重复点的个数,以及至少一个第一标志,第一标志用于指示当前节点中的当前点与前一个点在第二坐标下的坐标是否相同。In some embodiments, if N is greater than 0, the repeated point information includes the number of repeated points included in the current node, and at least one first flag, where the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point at the second coordinate.
例如,当前节点包括3个点,分别记为点1、点2和点3,点2和点3分别对应一个第一标志,其中,点2的第一标志用于指示点2与点1在第二坐标下的坐标是否相同,点3的第一标志用于指示点3与点2在第二坐标下的坐标是否相同。For example, the current node includes three points, which are recorded as point 1, point 2 and point 3 respectively. Point 2 and point 3 correspond to a first flag respectively, wherein the first flag of point 2 is used to indicate whether the coordinates of point 2 and point 1 in the second coordinate are the same, and the first flag of point 3 is used to indicate whether the coordinates of point 3 and point 2 in the second coordinate are the same.
解码端确定出当前节点的重复点信息后,执行S104-B2的步骤,基于重复点信息,确定当前节点所包括的N个重复点中每个重复点的几何重建值。After the decoding end determines the repeated point information of the current node, it executes step S104-B2 to determine the geometric reconstruction value of each of the N repeated points included in the current node based on the repeated point information.
在一些实施例中,若重复点信息指示当前节点所包括的点的坐标值相同时,则参照上述确定第一点的几何重建值的方式,确定出当前节点所包括的所有点的几何重建值。In some embodiments, if the duplicate point information indicates that the coordinate values of the points included in the current node are the same, the geometric reconstruction values of all the points included in the current node are determined with reference to the above method of determining the geometric reconstruction value of the first point.
在一些实施例中,上述S104-B2包括如下步骤:In some embodiments, the above S104-B2 includes the following steps:
S104-B21、确定当前节点中第一个点的几何重建值;S104-B21, determining the geometric reconstruction value of the first point in the current node;
S104-B22、基于重复点信息,以及第一个点的几何重建值,确定N个重复点的几何重建值。S104-B22. Determine the geometric reconstruction values of N repeated points based on the repeated point information and the geometric reconstruction value of the first point.
具体的,编码端在对当前节点进行编码时,该当前节点包括N+1个点,其中N个点与第一个点重复,进而确定该当前节点包括N个重复点。在编码时,编码端首先对当前节点中的第一个点进行编码,例如,将第一个点在第一坐标系下的坐标残差值,以及第一个点在第二坐标系下的坐标残差值,以及第一个点对应的预测模式和在单链中的顺序o(P)进行编码。同时,确定当前节点对应的重复点信息,并将该重复点信息编入码流。Specifically, 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 it is determined that the current node includes N repeated points. When encoding, 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 and the order o(P) in the single chain are encoded. At the same time, the repeated point information corresponding to the current node is determined, and the repeated point information is encoded into the bitstream.
基于此,解码端首先确定当前节点中第一个点的几何重建值。其中,解码端确定当前节点中第一个点的几何重建值的过程可以参照如下步骤11至步骤13的详细描述,在此不再赘述。Based on this, the decoding end first 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 13, which will not be repeated here.
解码端确定出当前节点中第一个点的几何重建值后,基于当前节点的重复点信息和第一个点的几何重建值,确定N个重复点中每一个重复点的几何重建值。After the decoding end determines the geometric reconstruction value of the first point in the current node, 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.
在一些实施例中,解析重复点信息,从重复点信息中获得每一个重复点对应的第一标志,若每一个重复点对应的第一标志均指示该重复点与前一个点在第二坐标系下的坐标值均相同,且与第一个点的在第二坐标系下的坐标值也相同,例如每一个重复点的第一标志的取值均为1。这样,解码端可以直接将第一个点的几何重建值,确定为N个重复 点的几何重建值。In some embodiments, the repeated point information is parsed, and the first flag corresponding to each repeated point is obtained from the repeated point information. If the first flag corresponding to each repeated point indicates that the coordinate value of the repeated point is the same as that of the previous point in the second coordinate system, and is also the same as that of the first point in the second coordinate system, for example, the value of the first flag of each repeated point is 1. In this way, the decoding end can directly determine the geometric reconstruction value of the first point as the geometric reconstruction value of the N repeated points.
在一些实施例中,解码端对N个重复点中的每一个重复点一一进行解码,此时,上述S104-B22包括如下步骤:In some embodiments, the decoding end decodes each of the N repeated points one by one. In this case, the above S104-B22 includes the following steps:
S104-B22-1、针对N个重复点中的第i个重复点,解析重复点信息,得到第i个重复点对应的第一标志,第一标志用于指示第i个重复点与第i-1个重复点在第二坐标系下的坐标是否相同,i为小于或等于N的正整数,若i为1时,则第i-1个重复点为第一个点;S104-B22-1. For the i-th repeated point among the N repeated points, parse the repeated point information to obtain a first flag corresponding to the i-th repeated point, where the first flag is used to indicate whether the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are the same, where i is a positive integer less than or equal to N, and if i is 1, the i-1-th repeated point is the first point;
S104-B22-2、基于第i个重复点对应的第一标志,确定第i个重复点的几何重建值。S104-B22-2. Determine the geometric reconstruction value of the ith repeated point based on the first mark corresponding to the ith repeated point.
在该实现方式中,确定N个重复点中每一个重复点的方式相同,为了便于描述,在此以N个重复点中的第i个重复点为例进行说明。针对N个重复点中的第i个重复点,首先从当前节点的重复点信息中,得到该第i个重复点对应的第一标识,该第一标志指示第i个重复点与前一个点,即第i-1个重复点在在第二坐标系下的坐标是否相同。示例性的,若第i个重复点为N个重复点中的第一个重复点,即i=1,此时,第i-1个重复点为当前节点中的第一个点。In this implementation, the method for determining each of the N repeated points is the same. For ease of description, the i-th repeated point among the N repeated points is used as an example for explanation. For the i-th repeated point among the N repeated points, firstly, the first identifier corresponding to the i-th repeated point is obtained from the repeated point information of the current node. The first identifier indicates whether the i-th repeated point and the previous point, i.e., the i-1-th repeated point, have the same coordinates in the second coordinate system. Exemplarily, if the i-th repeated point is the first repeated point among the N repeated points, i.e., i=1, then the i-1-th repeated point is the first point in the current node.
接着,解码端基于第i个重复点对应的第一标志,确定第i个重复点的几何重建值。Next, the decoding end determines the geometric reconstruction value of the ith repeated point based on the first flag corresponding to the ith repeated point.
在一些实施例中,若第一标志指示第i个重复点与第i-1个重复点在所述第二坐标系下的坐标相同,例如,第一标志的取值为1,则将第i-1个重复点的几何重建值,确定为第i个重复点的几何重建值。In some embodiments, if the first flag indicates that the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are the same, for example, the value of the first flag is 1, then the geometric reconstruction value of the i-1-th repeated point is determined as the geometric reconstruction value of the i-th repeated point.
在一些实施例中,若第一标志指示第i个重复点与第i-1个重复点在第二坐标系下的坐标不相同,则解码端需要重新确定第i个重复点的几何重建值。例如,解码端解码几何码流,得到第i个重复点在第二坐标系下的坐标残差值、第i个重复点在第一坐标系下的坐标残差值,以及第i个重复点对应的预测模式,基于第i个重复点对应的预测模式,确定第i个重复点在第一坐标系下的坐标预测值,基于第i个重复点在第一坐标系下的坐标预测值和坐标残差值,确定第i个重复点在第一坐标系下的坐标重建值,对第i个重复点在第一坐标系下的坐标重建值进行坐标转换后,与第i个重复点在第二坐标系下的坐标残差值进行相加,得到第i个重复点在第二坐标系下的坐标重建值,将第i个重复点在第二坐标系下的坐标重建值确定为第i个重复点的几何重建值。In some embodiments, if the first flag indicates that the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are different, the decoding end needs to re-determine the geometric reconstruction value of the i-th repeated point. For example, the decoding end decodes the geometric code stream, obtains the coordinate residual value of the i-th repeated point in the second coordinate system, the coordinate residual value of the i-th repeated point in the first coordinate system, and the prediction mode corresponding to the i-th repeated point, determines the coordinate prediction value of the i-th repeated point in the first coordinate system based on the prediction mode corresponding to the i-th repeated point, determines the coordinate reconstruction value of the i-th repeated point in the first coordinate system based on the coordinate prediction value and the coordinate residual value of the i-th repeated point in the first coordinate system, performs coordinate conversion on the coordinate reconstruction value of the i-th repeated point in the first coordinate system, adds it to the coordinate residual value of the i-th repeated point in the second coordinate system, obtains the coordinate reconstruction value of the i-th repeated point in the second coordinate system, and determines the coordinate reconstruction value of the i-th repeated point in the second coordinate system as the geometric reconstruction value of the i-th repeated point.
需要说明的是,上述确定第i个重复点的几何重建值的过程具体可以参照如下步骤11至步骤13的描述,在此不再赘述。It should be noted that the above process of determining the geometric reconstruction value of the i-th repeated point may be specifically described in the following steps 11 to 13, which will not be repeated here.
解码端基于上述步骤,可以确定出N个重复点中每一个重复点的几何重建值。Based on the above steps, the decoding end can determine the geometric reconstruction value of each of the N repeated points.
在该情况2中,通过上述步骤,确定出当前节点所包括的第一个节点和N个重复点的几何重建值外,还基于当前节点所包括的重复点个数N,对已解码重复点的个数进行更新,例如将当前节点所包括的重复点的个数与已解码重复点的个数之和,确定为新的已解码重复点的个数。基于该新的已解码重复点的个数,进行下一个节点的解码。In this case 2, in addition to determining the geometric reconstruction values of the first node and N repeated points included in the current node through the above steps, 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.
下面对上述情况1中,确定当前节点所包括的一个点,即第一点的几何重建值的确定过程,以及情况2和情况3中,当前节点包括多个点时的第一个点的几何重建值,以及情况3中当前节点所包括的N个重复点中第i个重复点的几何重建值的确定过程进行介绍。也就是说,下面步骤11至步骤13中的目标值可以理解为情况1中的第一点,也可以理解为情况2和情况3中的第一个点,也可以理解为情况3中的第i个重复点。The following describes the process of determining the geometric reconstruction value of a point included in the current node, i.e., the first point, in the above case 1, the geometric reconstruction value of the first point when the current node includes multiple points in cases 2 and 3, and the process of determining the geometric reconstruction value of the i-th repeated point among the N repeated points included in the current node in case 3. That is, the target value in the following steps 11 to 13 can be understood as the first point in case 1, the first point in cases 2 and 3, or the i-th repeated point in case 3.
下面对确定目标点的几何重建值的具体过程进行介绍。The specific process of determining the geometric reconstruction value of the target point is introduced below.
步骤11,确定目标点在第一坐标系下的坐标预测值。Step 11, determine the predicted coordinate value of the target point in the first coordinate system.
在一种可能的实现方式中,基于当前解码点在第一坐标系下的坐标重建值,确定目标点在第一坐标系下的坐标预测值。例如,将目标点之前的一个或几个已解码点在第一坐标系下的坐标重建值的算术平均值或加权平均值,确定为目标点在第一坐标系下的坐标预测值。In a possible implementation, the coordinate prediction value of the target point in the first coordinate system is determined based on the coordinate reconstruction value of the current decoded point in the first coordinate system. For example, the arithmetic mean or weighted mean of the coordinate reconstruction values of one or more decoded points before the target point in the first coordinate system is determined as the coordinate prediction value of the target point in the first coordinate system.
在另一种可能的实现方式中,上述步骤11包括如下步骤步骤11-1和步骤11-2:In another possible implementation, the above step 11 includes the following steps: step 11-1 and step 11-2:
步骤11-1、解码几何码流,得到目标点对应的预测模式;Step 11-1, decoding the geometric code stream to obtain the prediction mode corresponding to the target point;
步骤11-2、基于预测模式,确定目标点在第一坐标系下的坐标预测值。Step 11-2: Based on the prediction model, determine the coordinate prediction value of the target point in the first coordinate system.
编码端在编码时,将目标点对应预测模式编入几何码流中,这样解码端可以解码几何码流,得到目标点对应的预测模式,进而基于该预测模式,确定出目标点在第一坐标系下的坐标预测值。When encoding, the encoder encodes the prediction mode corresponding to the target point into the geometric code stream, so that the decoder can decode the geometric code stream to obtain the prediction mode corresponding to the target point, and then determine the coordinate prediction value of the target point in the first coordinate system based on the prediction mode.
本申请实施例对目标点对应的预测模式的具体类型不做限制。The embodiment of the present application does not limit the specific type of prediction mode corresponding to the target point.
在一些实施例中,在L3C2编码时,假设扫描点云的激光雷达包括N个激光,每个激光对应一个预测列表,对应的L3C2对应N个预测列表。对于目标点,假设目标点在第一坐标系下的坐标为
Figure PCTCN2022122116-appb-000054
其中i表示目标点对应的激光标识,这样,可以将目标点的i对应的预测列表,确定为目标点对应的预测列表。假设目标点对应的预测列表中包括M个预测值,使用这M个预测值分别对目标点进行预测,确定M个预测值中每一个预测值对应的代价,进而将低价最小的一个预测值在该预测列表中的索引,确定为目标点对应的预测模式,进行编码。也就是说,目标点对应的预测模式,为目标点对应的预测列表中,代价最小的预测值的索引。接着,编码端基于目标点的i确定出目标点在L3C2单链中的顺序(order),即o(P),并将o(P)以及目标点对应的预测模式编入码流。对应的,解码端解码码流,得到目标点对应的o(P)和预测模式,接着,基于o(P)确定出目标点的i分量,记i rec,接着基于i rec确定出目标点对应的预测列表。接着,在该预测列表中,将索引为目标点对应的预测模式的预测值,确定为目标点在第一坐标系下的坐标预测值。可选的,该预测值包括r pred
Figure PCTCN2022122116-appb-000055
In some embodiments, when L3C2 is encoded, it is assumed that the laser radar for scanning the point cloud includes N lasers, each laser corresponds to a prediction list, and the corresponding L3C2 corresponds to N prediction lists. For the target point, it is assumed that the coordinates of the target point in the first coordinate system are
Figure PCTCN2022122116-appb-000054
Where i represents the laser mark corresponding to the target point, so that the prediction list corresponding to the i of the target point can be determined as the prediction list corresponding to the target point. Assuming that the prediction list corresponding to the target point includes M prediction values, the target point is predicted respectively using these M prediction values, and the cost corresponding to each of the M prediction values is determined, and then the index of the prediction value with the lowest price in the prediction list is determined as the prediction mode corresponding to the target point, and then encoded. In other words, the prediction mode corresponding to the target point is the index of the prediction value with the lowest cost in the prediction list corresponding to the target point. Then, the encoding end determines the order of the target point in the L3C2 single chain based on the i of the target point, that is, o(P), and encodes o(P) and the prediction mode corresponding to the target point into the bitstream. Correspondingly, the decoding end decodes the bitstream to obtain o(P) and the prediction mode corresponding to the target point, and then determines the i component of the target point based on o(P), record i rec , and then determines the prediction list corresponding to the target point based on i rec . Then, in the prediction list, the prediction value indexed as the prediction mode corresponding to the target point is determined as the coordinate prediction value of the target point in the first coordinate system. Optionally, the predicted value includes r pred and
Figure PCTCN2022122116-appb-000055
本申请实施例对第一坐标系的具体类型不做限制。The embodiment of the present application does not limit the specific type of the first coordinate system.
在一种示例中,第一坐标系为柱面坐标。In one example, the first coordinate system is cylindrical coordinates.
基于上述步骤,确定出目标点在第一坐标系下的坐标预测值后,执行如下步骤12。Based on the above steps, after the predicted coordinate value of the target point in the first coordinate system is determined, the following step 12 is executed.
步骤12、基于目标点在第一坐标系下的坐标预测值,确定目标点在第一坐标系下的坐标重建值。Step 12: 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.
基于上述步骤,确定出目标点在第一坐标系下的坐标预测值后,基于目标点在第一坐标系下的坐标预测值,确定目标点在第一坐标系下的坐标重建值。Based on the above steps, after the predicted coordinate value of the target point in the first coordinate system is determined, the reconstructed coordinate value of the target point in the first coordinate system is determined based on the predicted coordinate value of the target point in the first coordinate system.
在一种示例中,将目标点在第一坐标系下的坐标预测值,确定为目标点在第一坐标系下的坐标重建值。In one example, 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.
在另一种示例中,上述步骤12包括如下步骤12-1至步骤12-3:In another example, the above step 12 includes the following steps 12-1 to 12-3:
步骤12-1、解码几何码流,得到目标点在第一坐标系下量化后的坐标残差值;Step 12-1, decoding the geometric code stream to obtain the coordinate residual value of the target point after quantization in the first coordinate system;
步骤12-2、对量化后的坐标残差值进行反量化,得到目标点在第一坐标系下的坐标残差值;Step 12-2, dequantize the quantized coordinate residual value to obtain the coordinate residual value of the target point in the first coordinate system;
步骤12-3、基于目标点在第一坐标系下的坐标预测值和坐标残差值,得到目标点在第一坐标系下的坐标重建值。Step 12-3: 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.
在该实现方式中,编码端在对目标点进行编码时,基于目标点在第一坐标系下的坐标预测值,确定出目标点在第一坐标系下的坐标残差值,例如将目标点在第一坐标系下的坐标值与坐标预测值的差值,确定为目标点在第一坐标系下的坐标残差值。接着,编码端将目标点在第一坐标系下的坐标残差值进行量化后,编入码流。In this implementation, when encoding the target point, the encoder determines the coordinate 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, for example, the difference between the coordinate value of the target point in the first coordinate system and the coordinate prediction value is determined as the coordinate residual value of the target point in the first coordinate system. Then, the encoder quantizes the coordinate residual value of the target point in the first coordinate system and encodes it into the bitstream.
基于此,解码端解码几何码流,得到目标点在第一坐标系下量化后的坐标残差值,对量化后的坐标残差值进行反量化,得到目标点在第一坐标系下的坐标残差值。Based on this, the decoding end decodes the geometric code stream to obtain the quantized coordinate residual value of the target point in the first coordinate system, and dequantizes the quantized coordinate residual value to obtain the coordinate residual value of the target point in the first coordinate system.
在一些实施例中,解码端在对目标点在第一坐标系下量化后的坐标残差值进行反量化之前,首先确定量化因子,基于确定的量化因子对目标点在第一坐标系下量化后的坐标残差值进行反量化。In some embodiments, before dequantizing the coordinate residual value of the target point after quantization in the first coordinate system, the decoding end first determines a quantization factor, and dequantizes the coordinate residual value of the target point after quantization in the first coordinate system based on the determined quantization factor.
假设解码几何码流,得到目标点在第一坐标系下量化后的坐标残差值为Q(r res)和
Figure PCTCN2022122116-appb-000056
基于上述步骤,确定出的目标点在第一坐标系下的坐标预测值为
Figure PCTCN2022122116-appb-000057
Assume that the geometric code stream is decoded and the coordinate residual value of the target point after quantization in the first coordinate system is Q(r res ) and
Figure PCTCN2022122116-appb-000056
Based on the above steps, the predicted coordinate value of the target point in the first coordinate system is
Figure PCTCN2022122116-appb-000057
示例性的,解码端通过如下公式(14),确定出Q(r res)对应的量化因子Δr: Exemplarily, the decoding end determines the quantization factor Δr corresponding to Q(r res ) by the following formula (14):
Figure PCTCN2022122116-appb-000058
Figure PCTCN2022122116-appb-000058
其中,ΔQ为基于预设的量化参数确定的。Wherein, ΔQ is determined based on a preset quantization parameter.
基于上述公式(14)确定出的量化因子Δr,对目标点在第一坐标系下量化后的坐标残差值Q(r res)进行反量化,得到目标点在第一坐标系下的坐标残差值r resBased on the quantization factor Δr determined by the above formula (14), the quantized coordinate residual value Q(r res ) of the target point in the first coordinate system is dequantized to obtain the coordinate residual value r res of the target point in the first coordinate system.
接着,解码端基于目标点在第一坐标系下的坐标预测值r prd和坐标残差值r res,得到目标点在第一坐标系下的坐标重建值r recNext, the decoding end obtains a coordinate reconstruction value r rec of the target point in the first coordinate system based on the coordinate prediction value r prd and the coordinate residual value r res of the target point in the first coordinate system.
示例性的,解码端将目标点在第一坐标系下的坐标预测值r prd和坐标残差值r res之和,确定为目标点在第一坐标系下的坐标重建值r recExemplarily, the decoding end determines the sum of the coordinate prediction value r prd and the coordinate residual value r res of the target point in the first coordinate system as the coordinate reconstruction value r rec of the target point in the first coordinate system.
解码端根据上述方法确定出目标点在第一坐标系下的坐标重建值r rec后,解码端基于r rec确定
Figure PCTCN2022122116-appb-000059
对应的量化因子
Figure PCTCN2022122116-appb-000060
After the decoding end determines the coordinate reconstruction value r rec of the target point in the first coordinate system according to the above method, the decoding end determines based on r rec
Figure PCTCN2022122116-appb-000059
The corresponding quantization factor
Figure PCTCN2022122116-appb-000060
在一种示例中,解码端通过如下公式(15),确定
Figure PCTCN2022122116-appb-000061
对应的量化因子
Figure PCTCN2022122116-appb-000062
In one example, the decoding end determines by the following formula (15):
Figure PCTCN2022122116-appb-000061
The corresponding quantization factor
Figure PCTCN2022122116-appb-000062
Figure PCTCN2022122116-appb-000063
Figure PCTCN2022122116-appb-000063
基于上述方法,解码端确定出
Figure PCTCN2022122116-appb-000064
对应的量化因子
Figure PCTCN2022122116-appb-000065
后,基于该量化因子
Figure PCTCN2022122116-appb-000066
Figure PCTCN2022122116-appb-000067
进行反量化,得到目标点在第一坐标系下的坐标残差值
Figure PCTCN2022122116-appb-000068
Based on the above method, the decoding end determines
Figure PCTCN2022122116-appb-000064
The corresponding quantization factor
Figure PCTCN2022122116-appb-000065
Then, based on the quantization factor
Figure PCTCN2022122116-appb-000066
right
Figure PCTCN2022122116-appb-000067
Perform inverse quantization to obtain the coordinate residual value of the target point in the first coordinate system
Figure PCTCN2022122116-appb-000068
接着,解码端基于目标点在第一坐标系下的坐标预测值
Figure PCTCN2022122116-appb-000069
和坐标残差值
Figure PCTCN2022122116-appb-000070
得到目标点在第一坐标系下的坐标重建值r rec
Next, the decoder predicts the coordinates of the target point in the first coordinate system.
Figure PCTCN2022122116-appb-000069
and coordinate residuals
Figure PCTCN2022122116-appb-000070
The coordinate reconstruction value r rec of the target point in the first coordinate system is obtained.
示例性的,解码端将目标点在第一坐标系下的坐标预测值
Figure PCTCN2022122116-appb-000071
和坐标残差值
Figure PCTCN2022122116-appb-000072
之和,确定为目标点在第一坐标系下的坐标重建值
Figure PCTCN2022122116-appb-000073
Exemplarily, the decoding end predicts the coordinates of the target point in the first coordinate system
Figure PCTCN2022122116-appb-000071
and coordinate residuals
Figure PCTCN2022122116-appb-000072
The sum of the coordinates of the target point in the first coordinate system is determined as
Figure PCTCN2022122116-appb-000073
基于上述方法,可以确定出目标点在第一坐标系下的坐标重建值
Figure PCTCN2022122116-appb-000074
Based on the above method, the coordinate reconstruction value of the target point in the first coordinate system can be determined
Figure PCTCN2022122116-appb-000074
接着,解码端执行如下步骤13。Next, the decoding end executes the following step 13.
步骤13、基于目标点在第一坐标系下的坐标重建值,确定目标点在第二坐标系下的坐标重建值。Step 13: 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.
方式1,解码端基于第一坐标系与第二坐标系之间的转换关系,将目标点在第一坐标系下的坐标重建值转换为目标点在第二坐标系下的坐标重建值。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.
方式二,解码端通过如下步骤13-1至步骤13-3的步骤,确定目标点在第二坐标系下的坐标重建值:In method 2, the decoding end determines the coordinate reconstruction value of the target point in the second coordinate system through the following steps 13-1 to 13-3:
步骤13-1、对目标点在第一坐标系下的坐标重建值进行坐标转换,得到目标点在第二坐标系下的坐标预测值。Step 13-1, performing coordinate transformation on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate prediction value of the target point in the second coordinate system.
具体的,基于第一坐标系与第二坐标系之间的转换关系,对目标点在第一坐标系下的坐标重建值进行坐标转换,得到目标点在第二坐标系下的坐标预测值。Specifically, based on the conversion relationship between the first coordinate system and the second coordinate system, the coordinate reconstruction value of the target point in the first coordinate system is transformed to obtain the coordinate prediction value of the target point in the second coordinate system.
示例性的,假设第一坐标系为笛卡尔坐标系,第二坐标系为柱面坐标系,则基于如下公式(16)确定目标点在第二坐标系下的坐标预测值:Exemplarily, assuming that the first coordinate system is a Cartesian coordinate system and the second coordinate system is a cylindrical coordinate system, the coordinate prediction value of the target point in the second coordinate system is determined based on the following formula (16):
Figure PCTCN2022122116-appb-000075
Figure PCTCN2022122116-appb-000075
Figure PCTCN2022122116-appb-000076
Figure PCTCN2022122116-appb-000076
Figure PCTCN2022122116-appb-000077
Figure PCTCN2022122116-appb-000077
其中,θ为i rec对应的激光Laser的仰角,zLaser为i rec对应的激光Laser在垂直方向上的高度。 Wherein, θ is the elevation angle of the laser Laser corresponding to i rec , and zLaser is the height of the laser Laser corresponding to i rec in the vertical direction.
步骤13-2、解码几何码流,得到目标点在第二坐标系下的坐标残差值。Step 13-2: Decode the geometric code stream to obtain the coordinate residual value of the target point in the second coordinate system.
在本申请实施例中,编码点在编码目标点时,基于目标点在第一坐标系下的坐标预测值,确定目标点在第一坐标系下的坐标重建值,对目标点在第一坐标系下的坐标重建值进行变换,得到目标点在第二坐标系下的坐标重建值。接着,编码端基于目标点在第二坐标系下的坐标预测值以及坐标重建值,确定目标点在第二坐标系下的坐标残差值。编码端将基于目标点在第二坐标系下的坐标残差值写入几何码流。In the embodiment of the present application, when encoding the target point, the encoding 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 prediction value and the coordinate reconstruction value of the target point in the second coordinate system. The encoding end writes the coordinate residual value of the target point in the second coordinate system into the geometric code stream.
基于此,解码端解码几何码流,得到目标点在第二坐标系下的坐标残差值。Based on this, the decoding end decodes the geometric code stream to obtain the coordinate residual value of the target point in the second coordinate system.
在一些实施例中,若编码端对目标点在第二坐标系下的坐标残差值进行量化后,写入几何码流。对应的,解码端从几何码流中解析出目标点在第二坐标系下量化后的坐标残差值后,对该目标点在第二坐标系下量化后的坐标残差值进行反量化,得到目标点在第二坐标系下的坐标残差值。In some embodiments, if the encoder quantizes the coordinate residual value of the target point in the second coordinate system and writes it into the geometric code stream, 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.
步骤13-3、基于目标点在第二坐标系下的坐标预测值和坐标残差值,得到目标点在第二坐标系下的坐标重建值。Step 13-3: Based on the predicted coordinate value and the residual coordinate value of the target point in the second coordinate system, obtain the reconstructed coordinate value of the target point in the second coordinate system.
例如,将目标点在第二坐标系下的坐标预测值和坐标残差值之和,确定为目标点在第二坐标系下的坐标重建值。For example, 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.
示例性的,基于如下公式(17),确定出目标点在第二坐标系下的坐标重建值(x,y,z):Exemplarily, based on the following formula (17), the coordinate reconstruction value (x, y, z) of the target point in the second coordinate system is determined:
Figure PCTCN2022122116-appb-000078
Figure PCTCN2022122116-appb-000078
其中,(r x,r y,r z)为目标点在第二坐标系下的坐标残差值。 Among them, (r x , ry ,r z ) is the coordinate residual value of the target point in the second coordinate system.
上述实施例以L3C2中当前节点的几何解码过程为例进行说明,L3C2中的其他节点的解码过程参照当前节点的解码过程即可,进而可以得到重建后的点云几何信息。The above embodiment is described by taking the geometric decoding process of the current node in L3C2 as an example. The decoding process of other nodes in L3C2 can refer to the decoding process of the current node, and then the reconstructed point cloud geometric information can be obtained.
本申请实施例提供的点云解码方法,解码点云的几何码流,得到点云的L3C2的节点总数,以及点云的总点数,基于点云的总点数,以及该点云的L3C2的节点总数,确定该点云所包括的重复点总数,这样在解码时,实时记录已解码的重复点的个数,且将已解码的重复点的个数与点云所包括的重复点总数进行比较,以确定在解码当前节点时,是否解码该节点的重复点信息,例如,在解码当前点时,确定已解码的重复点的个数等于点云的重复点总数,说明点云中的重复点已解码结束,剩余节点均不包括重复点,进而不需要解码后续节点的重复点信息,进而降低了点云的解码复杂度,节约了解码时间,进而提升了解码效率。The point cloud decoding method provided in the embodiment of the present application decodes the geometric code stream of the point cloud to obtain the total number of L3C2 nodes of the point cloud and the total number of points of the point cloud. Based on the total number of points of the point cloud and the total number of L3C2 nodes of the point cloud, the total number of repeated points included in the point cloud is determined. In this way, during decoding, the number of decoded repeated points is recorded in real time, and the number of decoded repeated points is compared with the total number of repeated points included in the point cloud to determine whether to decode the repeated point information of the node when decoding the current node. For example, when decoding the current point, it is determined that the number of decoded repeated points is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been decoded, and the remaining nodes do not include repeated points, so that there is no need to decode the repeated point information of subsequent nodes, 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.
图14为本申请一实施例提供的点云编码方法流程示意图。本申请实施例的点云编码方法可以由上述图3或图4所示的点云编码设备完成。Fig. 14 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.
如图14所示,本申请实施例的点云编码方法包括:As shown in FIG. 14 , the point cloud encoding method of the embodiment of the present application includes:
S201、确定点云的L3C2结构。S201. Determine the L3C2 structure of the point cloud.
具体的,编码端基于点云中点的坐标信息,对点云中的点进行重排序,基于重排序后的点的坐标信息构建单链结构,进而得到点云的L3C2结构。Specifically, the encoding end reorders the points in the point cloud based on the coordinate information of the points in the point cloud, constructs a single chain structure based on the coordinate information of the reordered points, and then obtains the L3C2 structure of the point cloud.
本申请实施例对点云重排序的方式不做限制。The embodiment of the present application does not limit the method of reordering the point cloud.
在一些实施例中,对体素化后的点云进行重排序以构建更高效的单链结构,默认的排序方法是按激光雷达的扫描顺序进行排序。In some embodiments, the voxelized point cloud is reordered to construct a more efficient single chain structure, and the default sorting method is to sort according to the scanning order of the lidar.
示例性的,将点云中每个点的在第二坐标系下的坐标值,例如笛卡尔坐标下的坐标值(x,y,z)转化为第三坐标系下的坐标值,例如第三坐标系为极坐标系,对应的坐标值为(r,φ,tanθ)。接着,依次根据极坐标系下的仰角正切值tanθ、方位角φ、半径r对各点进行排序。Exemplarily, the coordinate value of each point in the point cloud in the second coordinate system, such as the coordinate value (x, y, z) in the Cartesian coordinate system, is converted into the coordinate value in the third coordinate system, such as the third coordinate system is the polar coordinate system, and the corresponding coordinate value is (r, φ, tanθ). Then, the points are sorted according to the elevation tangent value tanθ, the azimuth angle φ, and the radius r in the polar coordinate system.
需要说明的是,本申请实施例对第三坐标系的具体类型不做限制,第三坐标系包括柱面坐标系、极坐标系,也可以包括其他坐标系。It should be noted that the embodiment of the present application does not limit the specific type of the third coordinate system. The third coordinate system includes a cylindrical coordinate system, a polar coordinate system, and may also include other coordinate systems.
接着,对排序后的点云进行坐标转换,具体的,根据排序后的结果遍历点云,将点云中点在第二坐标系的坐标值,转换为第一坐标系下的坐标值,并进行存储。Next, coordinate transformation is performed on the sorted point cloud. Specifically, the point cloud is traversed according to the sorted result, and the coordinate values of the midpoints of the point cloud in the second coordinate system are transformed into coordinate values in the first coordinate system and stored.
示例性的,假设第一坐标系为柱面坐标系,第二坐标系为笛卡尔坐标系,则基于上述公式(4),将点云中点在笛卡尔坐标系下的坐标值(x,y,z),转换为柱面坐标系下的坐标值(r,φ,i)。Exemplarily, assuming that the first coordinate system is a cylindrical coordinate system and the second coordinate system is a Cartesian coordinate system, based on the above formula (4), the coordinate value (x, y, z) of the point in the point cloud in the Cartesian coordinate system is converted to the coordinate value (r, φ, i) in the cylindrical coordinate system.
基于点云中点在第一坐标系下的坐标值构建单链结构,一种示例中,假设第一坐标系为柱面坐标系,则点云构建的单链结构如图7A所示。A single chain structure is constructed based on the coordinate values of the midpoints of the point cloud in the first coordinate system. In one example, assuming that the first coordinate system is a cylindrical coordinate system, the single chain structure constructed by the point cloud is shown in FIG. 7A .
在一些实施例中,每个Laser的旋转间隔即
Figure PCTCN2022122116-appb-000079
通过利用
Figure PCTCN2022122116-appb-000080
来对图7A所示的单链结构在垂直方向上进行规则化处理,得到如图7B所示的单链结构。可选的,可以采用上述公式(5)进行规则化处理。
In some embodiments, the rotation interval of each Laser is
Figure PCTCN2022122116-appb-000079
by using
Figure PCTCN2022122116-appb-000080
The single-chain structure shown in FIG7A is regularized in the vertical direction to obtain the single-chain structure shown in FIG7B. Optionally, the above formula (5) may be used for regularization.
本申请实施例中,基于规则化后的单链结构进行编码。In the embodiment of the present application, encoding is performed based on the regularized single-chain structure.
S202、确定点云的L3C2的节点总数和点云的总点数。S202, determining the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud.
本申请实施例中,在基于L3C2的编码方式中,编码端基于点云的几何信息,构建点云的L3C2结构,L3C2结构为链结构,由至少一个单链结构组成,每个单链结构中包括至少一个节点。一个节点包括至少一个点云中的点,也就是说,在L3C2编码中,将点云中的点划分至L3C2中的节点上。In the embodiment of the present application, in the encoding method based on L3C2, the encoding end constructs the L3C2 structure of the point cloud based on the geometric information of the point cloud. The L3C2 structure is a chain structure, which is composed of at least one single chain structure, and each single chain structure includes at least one node. A node includes at least one point in the point cloud, that is, in the L3C2 encoding, the points in the point cloud are divided into nodes in L3C2.
在一些实施例中,由于点云中的有些点的坐标信息相同,因此,这些坐标相同的点被划分到L3C2的同一个节点上,使得该节点包括重复点。In some embodiments, since some points in the point cloud have the same coordinate information, these points with the same coordinates are divided into the same node of L3C2, so that the node includes repeated points.
在一些实施例中,由上述可知,构建点云的L3C2时,需要对点云中的点进行坐标转换,例如,将点云中的点在第二坐标系下的坐标转换为第一坐标系下的坐标时,可能会使得第二坐标系下坐标不同的点,转换到第一坐标系下时,坐标变得相同。这样基于第一坐标系下点的坐标进行L3C2构建时,会将第一坐标系下坐标相同的点划分到一个节点上,进而使得该节点包括重复点。In some embodiments, it can be seen from the above that when constructing L3C2 of a point cloud, it is necessary to perform coordinate conversion on the points in the point cloud. For example, when converting the coordinates of the points in the point cloud in the second coordinate system to the coordinates in the first coordinate system, the coordinates of the points with different coordinates in the second coordinate system may become the same when converted to the first coordinate system. In this way, when constructing L3C2 based on the coordinates of the points in the first coordinate system, the points with the same coordinates in the first coordinate system will be divided into one node, so that the node includes duplicate points.
目前编码端在对L3C2中的每一个节点进行编码时,需要编码每一个节点的重复点信息。这样会增加编码的复杂度,浪费编码时间,降低编码效率。At present, when encoding each node in L3C2, the encoding end needs to encode the repeated point information of each node, which will increase the complexity of encoding, waste encoding time and reduce encoding efficiency.
由上述可知,在点云的L3C2中,并不是每一个节点具有重复点,甚至可以理解的是,点云的L3C2中只有较少的节点包括重复点。基于此,本申请实施例中,在编码时,首先确定出该点云所包括的重复点总数,且在编码过程中,对已编码的重复点的个数进行统计,进而在编码每一个点之前,首先判断统计的当前已编码的重复点的个数是否已经等于点云所包括的重复点总数。若当前已编码的重复点的个数等于点云所包括的重复点总数时,说明点云中的重复点均已编码完成,L3C2中的剩余待编码的节点上均不包括重复节点,这样在后续对这些节点进行编码时,不再编码这些节点的重复点信息,进而降低点云的编码复杂度,节约了编码时间,进而提升了编码效率。From the above, it can be seen that in the L3C2 of the point cloud, not every node has duplicate points, and it can even be understood that only a few nodes in the L3C2 of the point cloud include duplicate points. Based on this, in the embodiment of the present application, when encoding, the total number of duplicate points included in the point cloud is first determined, and during the encoding process, the number of encoded duplicate points is counted, and then before encoding each point, it is first determined whether the number of currently encoded duplicate points is equal to the total number of duplicate points included in the point cloud. If the number of currently encoded duplicate points is equal to the total number of duplicate points included in the point cloud, it means that the duplicate points in the point cloud have been encoded, and the remaining nodes to be encoded in L3C2 do not include duplicate nodes. In this way, when these nodes are subsequently encoded, the duplicate point information of these nodes will no longer be encoded, thereby reducing the encoding complexity of the point cloud, saving encoding time, and improving encoding efficiency.
本申请实施例对编码端获得点云的L3C2的节点总数和点云的总点数的具体方式不做限制。The embodiment of the present application does not limit the specific method for the encoder to obtain the total number of L3C2 nodes of the point cloud and the total number of points of the point cloud.
在一些实施例中,编码端在构建L3C2时,统计L3C2所包括的节点点数。In some embodiments, when constructing L3C2, the encoder counts the number of node points included in L3C2.
在一些实施例中,编码端确定L3C2所包括的单链数量,以及每个单链所包括的节点数量;基于单链数量,以及每个单链所包括的节点数量,得到L3C2的节点总数。例如,将各个单链所包括的节点数量之和,确定为L3C2的节点总数。In some embodiments, the encoding end determines the number of single chains included in L3C2 and the number of nodes included in each single chain, and obtains the total number of nodes of L3C2 based on the number of single chains and the number of nodes included in each single chain. For example, the sum of the number of nodes included in each single chain is determined as the total number of nodes of L3C2.
在该实施例的一种示例中,可以通过如下指令,将点云所包括的各单链上的节点进行相加,得到L3C2的节点总数nodeCount:In an example of this embodiment, the nodes on each single chain included in the point cloud can be added together to obtain the total number of nodes nodeCount of L3C2 through the following instructions:
for(index=0;index<headsCount;index++)for(index=0;index<headsCount;index++)
nodeCount+=nodeCntnodeCount+=nodeCnt
在该实现方式中,编码端还包括:将L3C2所包括的单链数量,以及每个单链所包括的节点数量写入点云的几何码流。In this implementation, the encoding end also includes: writing the number of single chains included in L3C2 and the number of nodes included in each single chain into the geometric code stream of the point cloud.
另外,点云文件中包括该点云的总点数,这样编码端通过接收点云文件,得到点云的总点数。In addition, the point cloud file includes the total number of points of the point cloud, so that the encoding end obtains the total number of points of the point cloud by receiving the point cloud file.
进一步的,编码端将点云的总点数写入几何码流。Furthermore, the encoder writes the total number of points in the point cloud into the geometry code stream.
在一些实施例中,编码端将点云的总点数,写入几何数据单元中。In some embodiments, the encoding end writes the total number of points of the point cloud into the geometric data unit.
在一些实施例中,编码端将点云的总点数减1,得到第一值;将第一值写入几何数据单元中。示例性的,如上述表2所示。In some embodiments, the encoder subtracts 1 from the total number of points in the point cloud to obtain a first value, and writes the first value into the geometric data unit. For example, as shown in Table 2 above.
编码端基于上述方法,得到点云的L3C2的节点总数,以及点云的总点数后,执行如下S203的步骤。Based on the above method, the encoder obtains the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud, and then executes the following step S203.
S203、根据点云的总点数和L3C2的节点总数,确定点云的重复点总数。S203. Determine the total number of repeated points in the point cloud according to the total number of points in the point cloud and the total number of nodes in L3C2.
编码端确定出点云的L3C2的节点总数,以及点云的总点数后,根据点云的总点数和L3C2的节点总数,确定点云的重复点总数,进而以点云的重复点总数作为监督,进行后续的编码。After the encoder determines the total number of L3C2 nodes and the total number of points of the point cloud, it determines the total number of repeated points in the point cloud based on the total number of points in the point cloud and the total number of L3C2 nodes, and then uses the total number of repeated points in the point cloud as supervision for subsequent encoding.
本申请实施例对编码端根据点云的L3C2的节点总数,以及点云的总点数,确定点云的重复点总数的具体方式不做限制。The embodiment of the present application does not limit the specific method in which the encoder determines the total number of repeated points in the point cloud based on the total number of nodes of L3C2 of the point cloud and the total number of points in the point cloud.
在一种可能的实现方式中,直接将点云的总点数和L3C2的节点总数之间的差值,确定为点云的重复点总数。In a possible implementation, the difference between the total number of points in the point cloud and the total number of nodes in L3C2 is directly determined as the total number of repeated points in the point cloud.
示例性的,编码端通过上述公式(13),确定出点云的重复点总数。Exemplarily, the encoder determines the total number of repeated points in the point cloud through the above formula (13).
编码端基于上述步骤,确定出点云的重复点总数后,开始对L3C2中的各点进行编码,具体参照下面S204。Based on the above steps, after the encoder determines the total number of repeated points in the point cloud, it starts to encode each point in L3C2, as shown in S204 below.
S204、在编码L3C2中的当前节点时,确定已编码重复点的个数。S204. When encoding the current node in L3C2, determine the number of encoded repeated points.
本申请实施例中,编码端编码L3C2中每一个节点的方式相同,为了便于描述,以L3C2中的当前节点为例进行说明。In the embodiment of the present application, the encoding end encodes each node in L3C2 in the same way. For the convenience of description, the current node in L3C2 is taken as an example for illustration.
在一种示例中,用dupCount表示当前已编码的重复点的个数,dupCount初始化为0,在编码L3C2中的第一个节点时,dupCount=0,小于点云的重复点总数dupSumNum,则编码第一个节点时,需要对该第一个节点的重复点信息进行编码。可选的,第一个节点的重复点信息包括该第一个节点所包括的重复点的个数,假设第一个节点包括的重复点的个数为a,则将dupCount更新为a。接着,编码L3C2中的第二个节点,在编码第二节点之前,首先判断dupCount=a是否等于点云的重复点总数dupSumNum,若否,则继续编码该第二节点的重复点信息,并使用该第二节点所包括的重复点的个数对当前的dupCount进行更新,依次类推。In one example, dupCount is used to represent the number of duplicate points currently encoded, and dupCount is initialized to 0. When encoding the first node in L3C2, dupCount = 0, which is less than the total number of duplicate points dupSumNum in the point cloud. In this case, when encoding the first node, the duplicate point information of the first node needs to be encoded. Optionally, 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. Before encoding the second node, first determine whether dupCount = a is equal to the total number of duplicate points dupSumNum in the point cloud. If not, continue to encode the duplicate point information of the second node, and use the number of duplicate points included in the second node to update the current dupCount, and so on.
由于上述可知,编码端在编码L3C2中的当前节点时,首先确定在编码当前节点之前,已编码的重复点的个数,即已编码重复点的个数dupCount,进而基于该已编码重复点的个数dupCount,确定是否编码当前节点的重复点信息。As can be seen from the above, when encoding the current node in L3C2, the encoding end 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.
在一种示例中,编码端通过如下指令,记录已编码重复点的个数:In one example, the encoder records the number of encoded duplicate points through the following instructions:
for(index=0;index<nodeCount;index++)for(index=0;index<nodeCount;index++)
dupCount+=dupPointNumdupCount+=dupPointNum
其中,dupPointNum表示节点所包括的重复点的个数。Wherein, dupPointNum represents the number of duplicate points included in the node.
S205、根据已编码重复点的个数和点云的重复点总数,对当前节点进行编码。S205 . Encode the current node according to the number of encoded duplicate points and the total number of duplicate points in the point cloud.
编码端在编码当前节点时,将已编码重复点的个数和点云的重复点总数进行比较,以对当前节点进行编码。When encoding the current node, the encoder compares the number of encoded duplicate points with the total number of duplicate points in the point cloud to encode the current node.
具体的,上述S205的实现过程包括如下几种情况:Specifically, the implementation process of the above S205 includes the following situations:
情况1,若已编码重复点的个数等于点云的重复点总数,则上述S205包括如下S205-A1和S205-A2:Case 1: If the number of encoded duplicate points is equal to the total number of duplicate points in the point cloud, then the above S205 includes the following S205-A1 and S205-A2:
S205-A1、跳过确定以及编码当前节点的重复点信息。S205-A1, skip determining and encoding the repeated point information of the current node.
S205-A2、确定当前节点所包括的第一点的坐标残差值,将第一点的坐标残差值写入点云的几何码流。S205-A2. Determine the coordinate residual value of the first point included in the current node, and write the coordinate residual value of the first point into the geometric code stream of the point cloud.
在情况1中,在编码当前节点时,若确定编码重复点的个数等于点云的重复点总数,则说明所有重复点已经编码结束,L3C2的剩余节点均不包括重复点。基于此,在编码当前节点时,则跳过重复点信息的编码,进而降低编码复杂度,节约编码时间,提升编码效率。In case 1, when encoding the current node, if it is determined that the number of coded repeated points is equal to the total number of repeated points in the point cloud, it means that all repeated points have been encoded and the remaining nodes of L3C2 do not include repeated points. Based on this, when encoding the current node, the encoding of repeated point information is skipped, thereby reducing the encoding complexity, saving encoding time, and improving encoding efficiency.
此时,可以确定当前节点只包括一个点,记为第一点,接着,确定该第一点的坐标残差值,并将第一点的坐标残差值写入点云的几何码流。At this point, it can be determined that the current node includes only one point, which is recorded as the first point. Then, the coordinate residual value of the first point is determined, and the coordinate residual value of the first point is written into the geometric code stream of the point cloud.
需要说明的是,确定第一点的坐标残差值,并将第一点的坐标残差值写入点云的几何码流的过程具体可以参照如下步骤21至步骤25的描述,在此不再赘述。It should be noted that the process of determining the coordinate residual value of the first point and writing the coordinate residual value of the first point into the geometric code stream of the point cloud can be specifically referred to the description of the following steps 21 to 25, which will not be repeated here.
上文对情况1,若已编码重复点的个数等于点云的重复点总数,则跳过编码当前节点的重复点信息,并确定当前节点所包括的第一点的几何编码过程进行介绍。The above introduces the case 1, that is, if the number of encoded duplicate points is equal to the total number of duplicate points in the point cloud, then the encoding of the duplicate point information of the current node is skipped, and the geometric encoding process of the first point included in the current node is determined.
情况2,若已编码重复点的个数小于点云的重复点总数,且当前节点不是L3C2中的最后一个节点,则上述S205包括如下步骤:Case 2: If the number of encoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is not the last node in L3C2, then the above S205 includes the following steps:
S205-B1、确定当前节点的重复点信息。S205-B1. Determine the duplicate point information of the current node.
本申请实施例对重复点信息所包括的具体内容不做限制。The embodiment of the present application does not limit the specific content included in the repeated point information.
在本申请实施例中,编码端在编码当前节点时,确定当前节点对应的已编码重复点的个数,若当前节点对应的已编码重复点的个数小于点云的重复点总数,则说明当前节点可能包括重复点,此时为了准确编码,则需要确定当前节点的重复点信息,且对当前节点的重复点信息进行编码。In an embodiment of the present application, when encoding the current node, the encoding end determines the number of encoded duplicate points corresponding to the current node. If the number of encoded duplicate points corresponding to the current node is less than the total number of duplicate points in the point cloud, it means that the current node may include duplicate points. At this time, in order to accurately encode, it is necessary to determine the duplicate point information of the current node and encode the duplicate point information of the current node.
在一些实施例中,重复点信息包括当前节点所包括的重复点的个数,这样,确定出当前节点所包括的重复点的个数,即可以确定出当前节点的重复点信息。In some embodiments, the repeated point information includes the number of repeated points included in the current node. Thus, by determining the number of repeated points included in the current node, the repeated point information of the current node can be determined.
在一些实施例中,重复点信息包括当前节点所包括的重复点的个数,以及至少一个第一标志,第一标志用于指示当前节点中的当前点与前一个点在第二坐标下的坐标是否相同。In some embodiments, the repeated point information includes the number of repeated points included in the current node and at least one first flag, where the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point at the second coordinate.
例如,当前节点包括3个点,分别记为点1、点2和点3,点2和点3分别对应一个第一标志,其中,点2的第一标志用于指示点2与点1在第二坐标下的坐标是否相同,点3的第一标志用于指示点3与点2在第二坐标下的坐标是否相同。For example, the current node includes three points, which are recorded as point 1, point 2 and point 3 respectively. Point 2 and point 3 correspond to a first flag respectively, wherein the first flag of point 2 is used to indicate whether the coordinates of point 2 and point 1 in the second coordinate are the same, and the first flag of point 3 is used to indicate whether the coordinates of point 3 and point 2 in the second coordinate are the same.
在一些实施例中,若N大于0,且所述重复点信息包括第一标志,第一标志用于指示所述当前节点中的当前点与前一个点在第二坐标下的坐标是否相同,则上述S205-B1包括如下S205-B11和S205-B12:In some embodiments, if N is greater than 0, and the repeated point information includes a first flag, the first flag is used to indicate whether the coordinates of the current point in the current node are the same as the coordinates of the previous point under the second coordinate, then the above S205-B1 includes the following S205-B11 and S205-B12:
S205-B11、确定当前节点所包括的N个重复点的个数;S205-B11, determining the number of N repeated points included in the current node;
S205-B12、基于当前节点所包括的第一个点在第二坐标系下的坐标值,以及N个重复点在第二坐标系下的坐标值,确定N个重复点分别对应的第一标志;S205-B12, based on the coordinate value of the first point included in the current node in the second coordinate system and the coordinate values of the N repeated points in the second coordinate system, determine the first marks corresponding to the N repeated points respectively;
S205-B13、基于当前节点所包括的N个重复点的个数和N个重复点分别对应的第一标志,确定当前节点的重复点信息。S205-B13. Determine the repeated point information of the current node based on the number of N repeated points included in the current node and the first flags respectively corresponding to the N repeated points.
具体的,将当前节点中除第一个点之外的点,确定出与第一个点重复的点,例如,当前节点包括3个点,则确定当前节点包括2个重复节点。Specifically, among the points in the current node except the first point, the points that are repeated with the first point are determined. For example, if the current node includes 3 points, it is determined that the current node includes 2 repeated nodes.
接着,基于当前节点所包括的第一个点在第二坐标系下的坐标值,以及N个重复点在第二坐标系下的坐标值,确定N个重复点分别对应的第一标志。Next, based on the coordinate value of the first point included in the current node in the second coordinate system and the coordinate values of the N repeated points in the second coordinate system, first marks corresponding to the N repeated points are determined.
在一种可能的实现方式中,针对N个重复点中的每一个重复点,将该重复点在第二坐标系下的坐标值与第一个点在第二坐标系下的坐标值进行比较,确定该重复点对应的第一标志。例如,该重复点在第二坐标系下的坐标值与第一个点在第二坐标系下的坐标值相同,则将该重复点对应的第一标志的值置为第一数值,若该重复点在第二坐标系下的坐标值与第一个点在第二坐标系下的坐标值不相同,则将该重复点对应的第一标志的值置为第二数值。In a possible implementation, for each of the N repeated points, the coordinate value of the repeated point in the second coordinate system is compared with the coordinate value of the first point in the second coordinate system to determine the first mark corresponding to the repeated point. For example, if the coordinate value of the repeated point in the second coordinate system is the same as the coordinate value of the first point in the second coordinate system, the value of the first mark corresponding to the repeated point is set to the first value; if the coordinate value of the repeated point in the second coordinate system is different from the coordinate value of the first point in the second coordinate system, the value of the first mark corresponding to the repeated point is set to the second value.
本申请实施例对第一数值和第二数值的具体取值不做限制。The embodiment of the present application does not limit the specific values of the first numerical value and the second numerical value.
可选的,第一数值为1。Optionally, the first value is 1.
可选的,第二数值为0。Optionally, the second value is 0.
在另一种可能的实现方式中,针对N个重复点中的第i个重复点,基于第i-1个重复点在第二坐标系下的坐标值,以及第i个重复点在第二坐标系下的坐标值,确定第i个重复点对应的第一标志,i为大于0且小于或等于N的正整数,若i为1时,则第i-1个重复点为第一个点。In another possible implementation, for the i-th repeated point among N repeated points, based on the coordinate value of the i-1-th repeated point in the second coordinate system and the coordinate value of the i-th repeated point in the second coordinate system, the first mark corresponding to the i-th repeated point is determined, where i is a positive integer greater than 0 and less than or equal to N. If i is 1, the i-1-th repeated point is the first point.
例如,若第i个重复点在第二坐标系下的坐标值与第i-1个重复点在第二坐标系下的坐标值相同,则将第一标志的值置为第一数值,第一数值指示第i个重复点在第二坐标系下的坐标值与第i-1个重复点在第二坐标系下的坐标值相同。For example, if the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system, the value of the first mark is set to a first numerical value, and the first numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system.
再例如,若第i个重复点在第二坐标系下的坐标值与第i-1个重复点在第二坐标系下的坐标值不相同,则确定第一标志的值置为第二数值,第二数值指示第i个重复点在第二坐标系下的坐标值与第i-1个重复点在第二坐标系下的坐标值不相同。For another example, if the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system, the value of the first mark is determined to be set to a second numerical value, and the second numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system.
在一些实施例中,若确定第i个重复点在第二坐标系下的坐标值与第i-1个重复点在第二坐标系下的坐标值不相同,即第i个重复点对应的第一标志的取值为第二数值,此时,本申请实施例还包括:确定第i个重复点的坐标残差值,并将该第i个重复点的坐标残差值,确定几何码流。其中,确定第i个重复点的坐标残差值可以参照如下步骤21至步骤25的描述,在此不再赘述。In some embodiments, if it is determined that the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system, that is, the value of the first mark corresponding to the i-th repeated point is the second value, then the embodiment of the present application further includes: determining the coordinate residual value of the i-th repeated point, and using the coordinate residual value of the i-th repeated point to determine the geometric code stream. The determination of the coordinate residual value of the i-th repeated point can refer to the description of the following steps 21 to 25, which will not be repeated here.
基于上述确定出当前节点所包括的重复点的个数N,以及每个重复点对应的第一标志后,将当前节点所包括的重复点个数N,以及每个重复点对应的第一标志,确定为当前节点的重复点信息。After determining the number N of repeated points included in the current node and the first mark corresponding to each repeated point based on the above, the number N of repeated points included in the current node and the first mark corresponding to each repeated point are determined as the repeated point information of the current node.
进一步的,编码端使用当前节点所包括的重复点个数N,对已编码重复点的个数进行更新,例如将当前节点所包括的重复点的个数与已编码重复点的个数之和,确定为新的已编码重复点的个数。Furthermore, the encoding end uses the number N of repeated points included in the current node to update the number of encoded repeated points, 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.
基于上述步骤,确定出当前节点的重复点信息后,执行S205-B2的步骤。Based on the above steps, after the duplicate point information of the current node is determined, step S205-B2 is executed.
S205-B2、确定当前节点中第一个点的坐标残差值。S205-B2. Determine the coordinate residual value of the first point in the current node.
例如,确定当前节点中第一个点的坐标预测值,基于坐标预测值和坐标值,确定第一个点的坐标残差值。For example, the coordinate prediction value of the first point in the current node is determined, and the coordinate residual value of the first point is determined based on the coordinate prediction value and the coordinate value.
上述S205-B2的具体实现过程参照如下步骤21至步骤25的描述,在此不再赘述。The specific implementation process of the above S205-B2 refers to the description of the following steps 21 to 25, which will not be repeated here.
S205-B3、将第一个点的坐标残差值和当前节点的重复点信息写入几何码流。S205-B3. Write the coordinate residual value of the first point and the duplicate point information of the current node into the geometry code stream.
在该情况2中,基于上述步骤,确定出当前节点的重复点信息,以及当前节点的第一个点的坐标残差值后,将第一个点的坐标残差值和当前节点的重复点信息写入几何码流。In case 2, based on the above steps, after determining the duplicate point information of the current node and the coordinate residual value of the first point of the current node, the coordinate residual value of the first point and the duplicate point information of the current node are written into the geometry code stream.
情况3,若重复点信息包括当前节点所包括的重复点的个数,已编码重复点的个数小于点云的重复点总数,且当前节点为L3C2中的最后一个节点,则上述S205包括如下步骤:Case 3: If the duplicate point information includes the number of duplicate points included in the current node, the number of encoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is the last node in L3C2, then the above S205 includes the following steps:
S205-C1、跳过编码当前节点所包括的重复点个数;S205-C1, skip encoding the number of repeated points included in the current node;
S205-C2、确定当前节点中第一个点的坐标残差值;S205-C2, determine the coordinate residual value of the first point in the current node;
S205-C3、将第一个点的坐标残差值和当前节点的重复点信息写入几何码流。S205-C3, write the coordinate residual value of the first point and the duplicate point information of the current node into the geometry code stream.
在该情况3中,若当前节点对应的已编码重复点的个数小于点云的重复点总数,则说明当前节点可能包括重复点,进一步的,若编码端确定当前节点为L3C2的最后一个节点时,则确定当前节点一定包括重复点,且当前节点所包括的重复点的个数为点云的重复点总数与已编码重复点的个数的差值。因此,在该情况3中,若确定当前节点对应的已编码重复点的个数小于点云的重复点总数,且当前节点为L3C2的最后一个节点,则解码端可以将点云的重复点总数与已编码重复点的个数的差值,确定为当前节点所包括的重复点个数,进而编码端跳过编码当前节点的重复点信息,进而降低编码复杂度,节约编码时间,提升编码效率。In this case 3, if the number of encoded duplicate points corresponding to the current node is less than the total number of duplicate points in the point cloud, it means that the current node may include duplicate points. Further, if the encoder determines that the current node is the last node of L3C2, it is determined that the current node must include duplicate points, and the number of duplicate points included in the current node is the difference between the total number of duplicate points in the point cloud and the number of encoded duplicate points. Therefore, in this case 3, if it is determined that the number of encoded duplicate points corresponding to the current node is less than the total number of duplicate points in the point cloud, and the current node is the last node of L3C2, the decoder can determine the difference between the total number of duplicate points in the point cloud and the number of encoded duplicate points as the number of duplicate points included in the current node, and then the encoder skips encoding the duplicate point information of the current node, thereby reducing encoding complexity, saving encoding time, and improving encoding efficiency.
在该情况3中,编码端还需要确定当前节点所包括的第一个点的坐标残差值,并将第一个点的坐标残差值写入几何码流,其中确定第一点的坐标残差值的过程具体可以参照如下步骤21至步骤25的描述,在此不再赘述。In this case 3, the encoding end also needs to determine the coordinate residual value of the first point included in the current node, and write the coordinate residual value of the first point into the geometric code stream. The process of determining the coordinate residual value of the first point can be specifically referred to the description of steps 21 to 25 below, which will not be repeated here.
下面对上述情况1中,确定当前节点所包括的一个点,即第一点的坐标残差值的确定过程,以及情况2中,当前节点包括多个点时的第一个点的坐标残差值和当前节点所包括的N个重复点中的第i个重复点的坐标残差值的确定过程,以及情况3中当前节点的第一个点的坐标残差值的确定过程进行介绍。也就是说,下面步骤21至步骤25中的目标值可以理解为情况1中的第一点,也可以理解为情况2中的第一个点。The following describes the process of determining the coordinate residual value of a point included in the current node, i.e., the first point, in the above-mentioned case 1, as well as the process of determining the coordinate residual value of the first point when the current node includes multiple points and the coordinate residual value of the i-th repeated point among the N repeated points included in the current node in case 2, and the process of determining the coordinate residual value of the first point of the current node in case 3. That is, the target value in the following steps 21 to 25 can be understood as the first point in case 1, and can also be understood as the first point in case 2.
下面对确定目标点的坐标残差值的具体过程进行介绍。The specific process of determining the coordinate residual value of the target point is introduced below.
步骤21、确定目标点在第一坐标系下的坐标预测值。Step 21: Determine the predicted coordinate value of the target point in the first coordinate system.
在一种可能的实现方式中,基于当前编码点在第一坐标系下的坐标值,确定目标点在第一坐标系下的坐标预测值。例如,将目标点之前的一个或几个已编码点在第一坐标系下的坐标值的算术平均值或加权平均值,确定为目标点在第一坐标系下的坐标预测值。In a possible implementation, based on the coordinate value of the current encoded point in the first coordinate system, the predicted coordinate value of the target point in the first coordinate system is determined. For example, the arithmetic mean or weighted mean of the coordinate values of one or more encoded points before the target point in the first coordinate system is determined as the predicted coordinate value of the target point in the first coordinate system.
在一种可能的实现方式中,,步骤21包括如下步骤21-1和步骤21-2:In a possible implementation, step 21 includes the following steps 21-1 and 21-2:
步骤21-1、确定目标点对应的预测模式;Step 21-1, determining the prediction mode corresponding to the target point;
步骤21-2、基于预测模式,确定目标点在第一坐标系下的坐标预测值。Step 21-2: Based on the prediction model, determine the coordinate prediction value of the target point in the first coordinate system.
在一些实施例中,上述目标点对应的预测模式为默认模式。In some embodiments, the prediction mode corresponding to the target point is a default mode.
在一些实施例中,在L3C2编码时,假设扫描点云的激光雷达包括N个激光,每个激光对应一个预测列表,对应的L3C2对应N个预测列表。对于目标点,假设目标点在第一坐标系下的坐标为
Figure PCTCN2022122116-appb-000081
其中i表示目标点对应的激光标识,这样,可以将目标点的i对应的预测列表,确定为目标点对应的预测列表。假设目标点对应的预测列表中包括M个预测值,使用这M个预测值分别对目标点进行预测,确定M个预测值中每一个预测值对应的代价,进而将低价最小的一个预测值在该预测列表中的索引,确定为目标点对应的预测模式。也就是说,目标点对应的预测模式,为目标点对应的预测列表中,代价最小的预测值的索引。
In some embodiments, when L3C2 is encoded, it is assumed that the laser radar for scanning the point cloud includes N lasers, each laser corresponds to a prediction list, and the corresponding L3C2 corresponds to N prediction lists. For the target point, it is assumed that the coordinates of the target point in the first coordinate system are
Figure PCTCN2022122116-appb-000081
Where i represents the laser mark corresponding to the target point. In this way, the prediction list corresponding to i of the target point can be determined as the prediction list corresponding to the target point. Assuming that the prediction list corresponding to the target point includes M prediction values, the target point is predicted using these M prediction values, and the cost corresponding to each of the M prediction values is determined. Then, the index of the prediction value with the lowest price in the prediction list is determined as the prediction mode corresponding to the target point. In other words, the prediction mode corresponding to the target point is the index of the prediction value with the lowest cost in the prediction list corresponding to the target point.
接着,基于预测模式,确定目标点在第一坐标系下的坐标预测值。例如,将目标点的i对应的预测列表中,预测模式对应的索引所在的预测值,确定为目标点在第一坐标系下的坐标预测值。可选的,该预测值包括r pred
Figure PCTCN2022122116-appb-000082
Next, based on the prediction mode, the coordinate prediction value of the target point in the first coordinate system is determined. For example, the prediction value corresponding to the index of the prediction mode in the prediction list corresponding to the target point i is determined as the coordinate prediction value of the target point in the first coordinate system. Optionally, the prediction value includes r pred and
Figure PCTCN2022122116-appb-000082
在一些实施例中,编码端将目标点对应的预测模式写入几何码流。In some embodiments, the encoder writes the prediction mode corresponding to the target point into the geometry bitstream.
编码端基于上述步骤,确定出目标点在第一坐标系下的坐标预测值后,执行如下步骤22。After the encoder determines the predicted coordinate value of the target point in the first coordinate system based on the above steps, it executes the following step 22.
步骤22、基于目标点在第一坐标系下的坐标预测值和目标点在第一坐标系下的坐标值,确定目标点在第一坐标系下的残差值。Step 22: Determine a 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.
例如,将目标点在第一坐标系下的坐标值与坐标预测值的差值,确定为目标点在第一坐标系下的残差值。For example, the difference between the coordinate value of the target point in the first coordinate system and the predicted coordinate value is determined as the residual value of the target point in the first coordinate system.
在一些实施例中,编码端对目标点在第一坐标系下的残差值进行量化,得到该目标点在第一坐标系下量化后的残差值。In some embodiments, the encoding end quantizes the residual value of the target point in the first coordinate system to obtain the quantized residual value of the target point in the first coordinate system.
在一些实施例中,在对目标点在第一坐标系下的残差值进行量化时,首先需要确定量化因子。例如,基于上述公式(7)和公式(8)确定出量化因子Δr和
Figure PCTCN2022122116-appb-000083
进而基于量化因子Δr对目标点在第一坐标系下的残差值r res进行量化,使用
Figure PCTCN2022122116-appb-000084
对目标点在第一坐标系下的残差值
Figure PCTCN2022122116-appb-000085
进行量化。
In some embodiments, when the residual value of the target point in the first coordinate system is quantized, the quantization factor needs to be determined first. For example, the quantization factors Δr and Δr are determined based on the above formulas (7) and (8).
Figure PCTCN2022122116-appb-000083
Then, based on the quantization factor Δr, the residual value r res of the target point in the first coordinate system is quantized and used
Figure PCTCN2022122116-appb-000084
The residual value of the target point in the first coordinate system
Figure PCTCN2022122116-appb-000085
Quantify.
本申请实施例中,目标点的坐标残差值包括目标点在第一坐标系下的坐标残差值和目标点在第二坐标系下的坐标残差值。基于上述方法,确定出目标点在第一坐标系下的坐标残差值。接着,基于步骤23至步骤25确定出目标点在第二坐标系下的坐标残差值。In the embodiment of the present application, the coordinate residual value of the target point includes the coordinate 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. Based on the above method, the coordinate residual value of the target point in the first coordinate system is determined. Then, based on steps 23 to 25, the coordinate residual value of the target point in the second coordinate system is determined.
步骤23、基于目标点在第一坐标系下的坐标预测值,得到目标点在第一坐标系下的坐标重建值。Step 23: 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.
在一些实施例中,将目标点在第一坐标系下的坐标预测值,作为目标点在第一坐标系下的坐标重建值。In some embodiments, the predicted coordinate value of the target point in the first coordinate system is used as the reconstructed coordinate value of the target point in the first coordinate system.
在一些实施例中,若目标点在第一坐标系下的残差值未进行量化时,则将目标点在第一坐标系下的坐标预测值和残差值的和值,确定为目标点在第一坐标系下的坐标重建值。In some embodiments, if the residual value of the target point in the first coordinate system is not quantized, the sum of the coordinate prediction value and the residual value of the target point in the first coordinate system is determined as the coordinate reconstruction value of the target point in the first coordinate system.
在一些实施例中,若目标点在第一坐标系下的残差值进行量化时,则编码端对量化后的目标点在第一坐标系下量化后的坐标残差值进行反量化,得到目标点在第一坐标系下的坐标残差值;基于目标点在第一坐标系下的坐标预测值和坐标残差值,得到目标点在第一坐标系下的坐标重建值。例如,将目标点在第一坐标系下的坐标预测值和坐标残差值之和,确定为目标点在第一坐标系下的坐标重建值。In some embodiments, if the residual value of the target point in the first coordinate system is quantized, the encoder performs inverse quantization on the quantized residual value of the coordinate of the target point in the first coordinate system to obtain the residual value of the coordinate of the target point in the first coordinate system; based on the predicted value of the coordinate of the target point in the first coordinate system and the residual value of the coordinate, obtain the reconstructed value of the coordinate of the target point in the first coordinate system. For example, the sum of the predicted value of the coordinate of the target point in the first coordinate system and the residual value of the coordinate is determined as the reconstructed value of the coordinate of the target point in the first coordinate system.
步骤24、对目标点在第一坐标系下的坐标重建值进行坐标转换,得到目标点在第二坐标系下的坐标重建值。Step 24: 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.
不同的第一坐标系与不同的第二坐标系对应的转换关系不同。Different first coordinate systems correspond to different second coordinate systems in different conversion relationships.
示例性的,假设第一坐标系为柱面坐标系,第二坐标系为笛卡尔坐标系,则参照上述公式(9)对目标点在第一坐标系下的坐标重建值进行坐标转换,得到目标点在第二坐标系下的坐标重建值。Exemplarily, assuming that the first coordinate system is a cylindrical coordinate system and the second coordinate system is a Cartesian coordinate system, the coordinate reconstruction value of the target point in the first coordinate system is transformed with reference to the above formula (9) to obtain the coordinate reconstruction value of the target point in the second coordinate system.
步骤25、基于目标点在第二坐标系下的坐标重建值和坐标值,确定目标点在第二坐标系下的坐标残差值。Step 25: 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.
例如,将目标点在第二坐标系下的坐标预测值和坐标重建值的差值,确定为目标点在第二坐标系下的坐标残差值。For example, the difference between the predicted coordinate value and the reconstructed coordinate value of the target point in the second coordinate system is determined as the coordinate residual value of the target point in the second coordinate system.
在一些实施例中,编码端将目标点在第一坐标系下的坐标残差值和目标点在第二坐标系下的坐标残差值,写入几何码流。In some embodiments, the encoder writes the coordinate 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 into the geometric code stream.
在一些实施例中,编码端对目标点在第一坐标系下的坐标残差值和目标点在第二坐标系下的坐标残差值中的至少一个进行量化后,写入几何码流。In some embodiments, the encoder quantizes at least one of a coordinate residual value of the target point in the first coordinate system and a coordinate residual value of the target point in the second coordinate system, and then writes the quantized value into a geometric code stream.
在一些实施例中,编码端还基于上述公式(6)确定出目标点在单链结构中的order即o(P)后,对o(P)进行编码。In some embodiments, the encoding end further determines the order of the target point in the single-link structure, that is, o(P), based on the above formula (6), and then encodes o(P).
上述实施例以L3C2中当前节点的几何编码过程为例进行说明,L3C2中的其他节点的编码过程参照当前节点的编码过程即可,进而可以得到重建后的点云几何信息。The above embodiment is described by taking the geometric encoding process of the current node in L3C2 as an example. The encoding process of other nodes in L3C2 can refer to the encoding process of the current node, and then the reconstructed point cloud geometric information can be obtained.
本申请实施例提供的点云编码方法,确定点云的L3C2结构,确定点云的L3C2的节点总数,以及点云的总点数,基于点云的总点数,以及该点云的L3C2的节点总数,确定该点云所包括的重复点总数,这样在编码时,实时记录已编码的重复点的个数,且将已编码的重复点的个数与点云所包括的重复点总数进行比较,以确定在编码当前节点时,是否编码该节点的重复点信息,例如,在编码当前点时,确定已编码的重复点的个数等于点云的重复点总数,说明点云中的重复点已编码结束,剩余节点均不包括重复点,进而不需要编码后续节点的重复点信息,进而降低了点云的编码复杂度,节约了编码时间,进而提升了编码效率。The point cloud encoding method provided in the embodiment of the present application determines the L3C2 structure of the point cloud, determines the total number of nodes of L3C2 of the point cloud, and the total number of points of the point cloud, and determines the total number of repeated points included in the point cloud based on the total number of points of the point cloud and the total number of nodes of L3C2 of the point cloud. In this way, during encoding, the number of encoded repeated points is recorded in real time, and the number of encoded repeated points is compared with the total number of repeated points included in the point cloud to determine whether to encode the repeated point information of the node when encoding the current node. For example, when encoding the current point, it is determined that the number of encoded repeated points is equal to the total number of repeated points in the point cloud, indicating that the repeated points in the point cloud have been encoded, and the remaining nodes do not include repeated points, and thus there is no need to encode the repeated point information of subsequent nodes, thereby reducing the encoding complexity of the point cloud, saving encoding time, and improving encoding efficiency.
应理解,图13至图14仅为本申请的示例,不应理解为对本申请的限制。It should be understood that FIGS. 13 to 14 are merely examples of the present application and should not be construed as limitations to the present application.
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。The preferred embodiments of the present application are described in detail above in conjunction with the accompanying drawings. However, the present application is not limited to the specific details in the above embodiments. Within the technical concept of the present application, the technical solution of the present application can be subjected to a variety of simple modifications, and these simple modifications all belong to the protection scope of the present application. For example, the various specific technical features described in the above specific embodiments can be combined in any suitable manner without contradiction. In order to avoid unnecessary repetition, the present application will not further explain various possible combinations. For another example, the various different embodiments of the present application can also be arbitrarily combined, as long as they do not violate the ideas of the present application, they should also be regarded as the contents disclosed in the present application.
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。It should also be understood that in the various method embodiments of 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 embodiments of the present application. In addition, in the embodiments 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. In addition, the character "/" in this article generally indicates that the objects associated before and after are in an "or" relationship.
上文结合图13至图14,详细描述了本申请的方法实施例,下文结合图15至图18,详细描述本申请的装置实施例。The above text, in combination with Figures 13 to 14 , describes in detail a method embodiment of the present application. The following text, in combination with Figures 15 to 18 , describes in detail a device embodiment of the present application.
图15是本申请实施例提供的点云解码装置的示意性框图。FIG. 15 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application.
如图15所示,该点点云解码装置10可包括:As shown in FIG15 , the point cloud decoding device 10 may include:
第一解码单元11,用于解码点云的几何码流,得到所述点云的低时延低复杂度编码模型L3C2的节点总数,以及所述点云的总点数;The first decoding unit 11 is used to decode the geometric code stream of the point cloud to obtain the total number of nodes of the low-delay and low-complexity coding model L3C2 of the point cloud and the total number of points of the point cloud;
点数确定单元12,用于根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;A point number determination unit 12, configured to determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
重复点确定单元13,用于在解码所述L3C2中的当前节点时,确定已解码重复点的个数;A repeated point determination unit 13, used to determine the number of decoded repeated points when decoding the current node in the L3C2;
第二解码单元14,用于根据所述已解码重复点的个数和所述点云的重复点总数,对所述当前节点进行解码。The second decoding unit 14 is used to decode the current node according to the number of the decoded repeated points and the total number of repeated points in the point cloud.
在一些实施例中,点数确定单元12,具体用于将所述点云的总点数和所述L3C2的节点总数的差值,确定为所述点云的重复点总数。In some embodiments, the point number determination unit 12 is specifically configured to determine the difference between the total number of points of the point cloud and the total number of nodes of the L3C2 as the total number of repeated points of the point cloud.
在一些实施例中,第二解码单元14,具体用于若所述已解码重复点的个数等于所述点云的重复点总数,则跳过解码所述当前节点的重复点信息,并确定所述当前节点所包括的第一点的几何重建值。In some embodiments, the second decoding unit 14 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 the first point included in the current node.
在一些实施例中,若所述重复点信息包括所述当前节点所包括的重复点的个数,则第二解码单元14,具体用于若所述已解码重复点的个数小于所述点云的重复点总数,且所述当前节点为所述L3C2中的最后一个节点时,则跳过解码所述当前节点的重复点信息;将所述点云的重复点总数与所述已解码重复点的个数的差值,确定为所述当前节点所包括的重复点个数。In some embodiments, if the duplicate point information includes the number of duplicate points included in the current node, the second decoding unit 14 is specifically used to skip decoding 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 the current node is the last node in the L3C2; and determine the difference between the total number of duplicate points in the point cloud and the number of decoded duplicate points as the number of duplicate points included in the current node.
在一些实施例中,第二解码单元14,具体用于若所述已解码重复点的个数小于所述点云的重复点总数,且所述当前节点不是所述L3C2中的最后一个节点时,则解码所述当前节点的重复点信息;基于所述重复点信息,确定所述当前节点所包括的N个重复点的几何重建值,所述N为整数。In some embodiments, the second decoding unit 14 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 the current node is not the last node in the L3C2; based on the duplicate point information, determine the geometric reconstruction values of the N duplicate points included in the current node, where N is an integer.
在一些实施例中,第二解码单元14,具体用于确定所述当前节点中第一个点的几何重建值;基于所述重复点信息,以及所述第一个点的几何重建值,确定所述N个重复点的几何重建值。In some embodiments, the second decoding unit 14 is specifically used to determine the geometric reconstruction value of the first point in the current node; based on the repeated point information and the geometric reconstruction value of the first point, determine the geometric reconstruction values of the N repeated points.
在一些实施例中,若N大于0,且所述重复点信息包括第一标志,所述第一标志用于指示所述当前节点中的当前点与前一个点在第二坐标下的坐标是否相同,则第二解码单元14,具体用于针对所述N个重复点中的第i个重复点,解析所述重复点信息,得到所述第i个重复点对应的第一标志,所述i为小于或等于N的正整数,若i为1时,则第i-1个重复点为所述第一个点;基于所述第i个重复点对应的第一标志,确定所述第i个重复点的几何重建值。In some embodiments, if N is greater than 0, and the repeated point information includes a first flag, and the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point at the second coordinate, then the second decoding unit 14 is specifically used to parse the repeated point information for the i-th repeated point among the N repeated points, and obtain the first flag corresponding to the i-th repeated point, where i is a positive integer less than or equal to N, and if i is 1, the i-1th repeated point is the first point; based on the first flag corresponding to the i-th repeated point, determine the geometric reconstruction value of the i-th repeated point.
在一些实施例中,第二解码单元14,具体用于若所述第一标志指示所述第i个重复点与所述第i-1个重复点在所述第二坐标系下的坐标相同,则将所述第i-1个重复点的几何重建值,确定为所述第i个重复点的几何重建值。In some embodiments, the second decoding unit 14 is specifically used to determine the geometric reconstruction value of the i-1th repeated point as the geometric reconstruction value of the i-1th repeated point if the first flag indicates that the coordinates of the i-1th repeated point and the i-1th repeated point in the second coordinate system are the same.
在一些实施例中,第二解码单元14,具体用于若所述第一标志指示所述第i个重复点与所述第i-1个重复点在所述第二坐标系下的坐标不相同,则确定所述第i个重复点的几何重建值。In some embodiments, the second decoding unit 14 is specifically used to determine the geometric reconstruction value of the i-th repeated point if the first flag indicates that the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are different.
在一些实施例中,第二解码单元14,具体用于将所述当前节点所包括的重复点的个数与所述已解码重复点的个数之和,确定为新的已解码重复点的个数。In some embodiments, the second decoding unit 14 is specifically 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.
在一些实施例中,第二解码单元14,具体用于确定目标点在第一坐标系下的坐标预测值,所述目标点为所述当前节点中的第一点,或者为所述当前节点所包括的第一个点,或者为所述当前节点所包括的N个重复点中的第i个重复点;基于所述目标点在第一坐标系下的坐标预测值,确定所述目标点在所述第一坐标系下的坐标重建值;基于所述目标点在所述第一坐标系下的坐标重建值,确定所述目标点在第二坐标系下的坐标重建值;将所述目标点在第二坐标系下的坐标重建值,确定为所述目标点的几何重建值。In some embodiments, the second decoding unit 14 is specifically used to determine a coordinate prediction value of a target point in a first coordinate system, where the target point is the first point in the current node, or the first point included in the current node, or the i-th repeated point among N repeated points included in the current node; based on the coordinate prediction value of the target point in the first coordinate system, determine a coordinate reconstruction value of the target point in the first coordinate system; based on the coordinate reconstruction value of the target point in the first coordinate system, determine a coordinate reconstruction value of the target point in a second 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.
在一些实施例中,第二解码单元14,具体用于解码所述几何码流,得到所述目标点对应的预测模式;基于所述预测模式,确定所述目标点在所述第一坐标系下的坐标预测值。In some embodiments, the second decoding unit 14 is specifically used to decode the geometric code stream to obtain a prediction mode corresponding to the target point; based on the prediction mode, determine a coordinate prediction value of the target point in the first coordinate system.
在一些实施例中,第二解码单元14,具体用于解码所述几何码流,得到所述目标点在所述第一坐标系下量化后的坐标残差值;对所述量化后的坐标残差值进行反量化,得到所述目标点在所述第一坐标系下的坐标残差值;基于所述目标点在所述第一坐标系下的坐标预测值和坐标残差值,得到所述目标点在所述第一坐标系下的坐标重建值。In some embodiments, the second decoding unit 14 is specifically used to decode the geometric code stream to obtain the quantized coordinate residual value of the target point in the first coordinate system; dequantize the quantized coordinate residual value 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.
在一些实施例中,第二解码单元14,具体用于将所述目标点在所述第一坐标系下的坐标预测值和坐标残差值之和,确定为所述目标点在所述第一坐标系下的坐标重建值。In some embodiments, the second decoding unit 14 is specifically configured to determine 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.
在一些实施例中,第二解码单元14,具体用于对所述目标点在所述第一坐标系下的坐标重建值进行坐标转换,得到所述目标点在所述第二坐标系下的坐标预测值;解码所述几何码流,得到所述目标点在所述第二坐标系下的坐标残差值;基于所述目标点在所述第二坐标系下的坐标预测值和坐标残差值,得到所述目标点在第二坐标系下的坐标重建值。In some embodiments, the second decoding unit 14 is specifically used to perform coordinate conversion on the coordinate reconstruction value of the target point in the first coordinate system to obtain a coordinate prediction value of the target point in the second coordinate system; decode the geometric code stream to obtain a coordinate residual value of the target point in the second coordinate system; and obtain a 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.
在一些实施例中,第二解码单元14,具体用于将所述目标点在所述第二坐标系下的坐标预测值和坐标残差值之和,确定为所述目标点在第二坐标系下的坐标重建值。In some embodiments, the second decoding unit 14 is specifically configured to determine the sum of the coordinate prediction value and the coordinate residual value of the target point in the second coordinate system as the coordinate reconstruction value of the target point in the second coordinate system.
在一些实施例中,第一解码单元11,具体用于解码所述点云的几何码流,得到所述L3C2所包括的单链数量,以及每个单链所包括的节点数量;基于所述单链数量,以及每个单链所包括的节点数量,得到所述L3C2的节点总数。In some embodiments, the first decoding unit 11 is specifically used to decode the geometric code stream of the point cloud to obtain the number of single chains included in the L3C2 and the number of nodes included in each single chain; based on the number of single chains and the number of nodes included in each single chain, the total number of nodes of the L3C2 is obtained.
在一些实施例中,第一解码单元11,具体用于解码所述点云的几何数据单元,得到所述点云的总点数。In some embodiments, the first decoding unit 11 is specifically configured to decode the geometric data unit of the point cloud to obtain the total number of points of the point cloud.
在一些实施例中,第一解码单元11,具体用于解码所述几何数据单元,得到第一值,所述第一值为所述点云的点个数减一;对所述第一值加一,得到所述点云的总点数。In some embodiments, the first decoding unit 11 is specifically used to decode the geometric data unit to obtain a first value, where the first value is the 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.
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图15所示的点云解码装置10可以对应于执行本申请实施例的点云解码方法中的相应主体,并且点云解码装置10中的各个单元的前述和其它操作和/或功能分别为了实现点云解码方法中的相应流程,为了简洁,在此不再赘述。It should be understood that 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. Specifically, the point cloud decoding device 10 shown in FIG. 15 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.
图16是本申请实施例提供的点云编码装置的示意性框图。FIG16 is a schematic block diagram of a point cloud encoding device provided in an embodiment of the present application.
如图16所示,点云编码装置20包括:As shown in FIG16 , the point cloud encoding device 20 includes:
结构确定单元21,用于确定点云的低时延低复杂度编码模型L3C2结构;A structure determination unit 21, used to determine a low-delay and low-complexity coding model L3C2 structure of the point cloud;
点数确定单元22,用于确定所述点云的L3C2的节点总数和所述点云的总点数;A point number determination unit 22, used to determine the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud;
重复点确定单元23,用于根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;A repeated point determination unit 23, used to determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
计算单元24,用于在编码所述L3C2中的当前节点时,确定已编码重复点的个数;A calculation unit 24, configured to determine the number of encoded repeated points when encoding the current node in the L3C2;
编码单元25,用于根据所述已编码重复点的个数和所述点云的重复点总数,对所述当前节点进行编码。The encoding unit 25 is used to encode the current node according to the number of the encoded repeated points and the total number of repeated points in the point cloud.
在一些实施例中,点数确定单元22,具体用于将所述点云的总点数和所述L3C2的节点总数的差值,确定为所述点云的重复点总数。In some embodiments, the point number determination unit 22 is specifically configured to determine the difference between the total number of points of the point cloud and the total number of nodes of the L3C2 as the total number of repeated points of the point cloud.
在一些实施例中,编码单元25,具体用于若所述已编码重复点的个数等于所述点云的重复点总数,则跳过确定以及编码所述当前节点的重复点信息;确定所述当前节点所包括的第一点的坐标残差值,将所述第一点的坐标残差值写入所述点云的几何码流。In some embodiments, the encoding unit 25 is specifically used to skip determining and encoding the duplicate point information of the current node if the number of encoded duplicate points is equal to the total number of duplicate points of the point cloud; determine the coordinate residual value of the first point included in the current node, and write the coordinate residual value of the first point into the geometric code stream of the point cloud.
在一些实施例中,若所述重复点信息包括所述当前节点所包括的重复点的个数,则编码单元25,具体用于若所述已编码重复点的个数小于所述点云的重复点总数,且所述当前节点为所述L3C2中的最后一个节点,则跳过编码所述当前节点所包括的重复点个数;确定所述当前节点中第一个点的坐标残差值;将所述第一个点的坐标残差值和所述当前节点的重复点信息写入所述几何码流。In some embodiments, if the duplicate point information includes the number of duplicate points included in the current node, the encoding unit 25 is specifically used to skip encoding the number of duplicate points included in the current node if the number of encoded duplicate points is less than the total number of duplicate points in the point cloud and the current node is the last node in the L3C2; 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.
在一些实施例中,编码单元25,具体用于若所述已编码重复点的个数小于所述点云的重复点总数,且所述当前节点不是所述L3C2中的最后一个节点,则确定所述当前节点的重复点信息;确定所述当前节点中第一个点的坐标残差值;将所述第一个点的坐标残差值和所述当前节点的重复点信息写入所述几何码流。In some embodiments, the encoding unit 25 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 and the current node is not the last node in the L3C2; 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.
在一些实施例中,若N大于0,且所述重复点信息包括第一标志,所述第一标志用于指示所述当前节点中的当前点与前一个点在第二坐标下的坐标是否相同,则编码单元25,具体用于确定所述当前节点所包括的N个重复点的个数;基于所述当前节点所包括的第一个点在第二坐标系下的坐标值,以及所述N个重复点在第二坐标系下的坐标值,确定所述N个重复点分别对应的第一标志;基于所述当前节点所包括的N个重复点的个数和所述N个重复点分别对应的第一标志,确定所述当前节点的重复点信息。In some embodiments, if N is greater than 0, and the repeated point information includes a first flag, and the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point in the second coordinate system, then the encoding unit 25 is specifically used to determine the number of N repeated points included in the current node; based on the coordinate value of the first point included in the current node in the second coordinate system, and the coordinate values of the N repeated points in the second coordinate system, determine the first flags corresponding to the N repeated points respectively; based on the number of N repeated points included in the current node and the first flags corresponding to the N repeated points respectively, determine the repeated point information of the current node.
在一些实施例中,编码单元25,具体用于针对所述N个重复点中的第i个重复点,基于第i-1个重复点在第二坐标系下的坐标值,以及所述第i个重复点在第二坐标系下的坐标值,确定所述第i个重复点对应的第一标志,所述i为大于0且小于或等于N的正整数,若i为1时,则所述第i-1个重复点为所述第一个点。In some embodiments, the encoding unit 25 is specifically used to determine, for the i-th repeated point among the N repeated points, a first mark corresponding to the i-th repeated point based on the coordinate value of the i-1-th repeated point in the second coordinate system and the coordinate value of the i-th repeated point in the second coordinate system, where i is a positive integer greater than 0 and less than or equal to N, and if i is 1, the i-1-th repeated point is the first point.
在一些实施例中,编码单元25,具体用于若所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值相同,则将所述第一标志的值置为第一数值,所述第一数值指示所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值相同。In some embodiments, the encoding unit 25 is specifically used to set the value of the first mark to a first numerical value if the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system, and the first numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system.
在一些实施例中,编码单元25,具体用于若所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值不相同,则将所述第一标志的值置为第二数值,所述第二数值指示所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值不相同。In some embodiments, the encoding unit 25 is specifically used to set the value of the first mark to a second numerical value if the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system, and the second numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system.
在一些实施例中,编码单元25,还用于若所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值不相同,确定所述第i个重复点的坐标残差值;将所述第i个重复点的坐标残差值,写入所述几何码流中。In some embodiments, the encoding unit 25 is also used to determine the coordinate residual value of the i-th repeated point if the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system; and write the coordinate residual value of the i-th repeated point into the geometric code stream.
在一些实施例中,编码单元25,具体用于将所述当前节点所包括的重复点的个数与所述已编码重复点的个数之和, 确定为新的已编码重复点的个数。In some embodiments, the encoding unit 25 is specifically 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.
在一些实施例中,编码单元25,具体用于确定目标点在第一坐标系下的坐标预测值,所述目标点为所述当前节点中的第一点,或者为所述当前节点所包括的第一个点,或者为所述当前节点所包括的N个重复点中的第i个重复点;基于所述目标点在所述第一坐标系下的坐标预测值和所述目标点在所述第一坐标系下的坐标值,确定所述目标点在所述第一坐标系下的残差值;基于所述目标点在所述第一坐标系下的坐标预测值,得到所述目标点在所述第一坐标系下的坐标重建值;对所述目标点在所述第一坐标系下的坐标重建值进行坐标转换,得到所述目标点在所述第二坐标系下的坐标重建值;基于所述目标点在所述第二坐标系下的坐标重建值和坐标值,确定所述目标点在所述第二坐标系下的坐标残差值。In some embodiments, the encoding unit 25 is specifically used to determine a coordinate prediction value of a target point in a first coordinate system, where the target point is the first point in the current node, or the first point included in the current node, or the i-th repeated point among N repeated points included in the current node; 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, 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, obtain the coordinate reconstruction 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; based on the coordinate reconstruction value and coordinate value of the target point in the second coordinate system, determine the coordinate residual value of the target point in the second coordinate system.
在一些实施例中,编码单元25,具体用于对所述目标点在所述第一坐标系下的坐标残差值和所述目标点在所述第二坐标系下的坐标残差值中的至少一个进行量化后,写入所述几何码流。In some embodiments, the encoding unit 25 is specifically configured to quantize at least one of a coordinate residual value of the target point in the first coordinate system and a coordinate residual value of the target point in the second coordinate system, and then write the quantized value into the geometric code stream.
在一些实施例中,编码单元25,具体用于确定所述目标点对应的预测模式;基于所述预测模式,确定所述目标点在所述第一坐标系下的坐标预测值。In some embodiments, the encoding unit 25 is specifically configured to determine a prediction mode corresponding to the target point; and based on the prediction mode, determine a coordinate prediction value of the target point in the first coordinate system.
在一些实施例中,编码单元25,具体用于将所述目标点对应的预测模式写入所述几何码流。In some embodiments, the encoding unit 25 is specifically configured to write the prediction mode corresponding to the target point into the geometric code stream.
在一些实施例中,编码单元25,具体用于对量化后的所述目标点在所述第一坐标系下量化后的坐标残差值进行反量化,得到所述目标点在所述第一坐标系下的坐标残差值;基于所述目标点在所述第一坐标系下的坐标预测值和坐标残差值,得到所述目标点在所述第一坐标系下的坐标重建值。In some embodiments, the encoding unit 25 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.
在一些实施例中,编码单元25,具体用于将所述目标点在所述第一坐标系下的坐标预测值和坐标残差值之和,确定为所述目标点在所述第一坐标系下的坐标重建值。In some embodiments, the encoding unit 25 is specifically configured to determine 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.
在一些实施例中,点数确定单元22,具体用于确定所述L3C2所包括的单链数量,以及每个单链所包括的节点数量;基于所述单链数量,以及每个单链所包括的节点数量,得到所述L3C2的节点总数。In some embodiments, the point determination unit 22 is specifically used to determine the number of single chains included in the L3C2 and the number of nodes included in each single chain; based on the number of single chains and the number of nodes included in each single chain, the total number of nodes of the L3C2 is obtained.
在一些实施例中,编码单元25,还用于将所述L3C2所包括的单链数量,以及每个单链所包括的节点数量写入所述点云的几何码流。In some embodiments, the encoding unit 25 is further used to write the number of single chains included in the L3C2 and the number of nodes included in each single chain into the geometric code stream of the point cloud.
在一些实施例中,编码单元25,还用于将所述点云的总点数,写入几何数据单元中。In some embodiments, the encoding unit 25 is further configured to write the total number of points of the point cloud into the geometry data unit.
在一些实施例中,编码单元25,还用于将所述点云的总点数减1,得到第一值;将所述第一值写入所述几何数据单元中。In some embodiments, the encoding unit 25 is further used 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.
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图16所示的点云编码装置20可以对应于执行本申请实施例的点云编码方法中的相应主体,并且点点云编码装置20中的各个单元的前述和其它操作和/或功能分别为了实现点云编码方法中的相应流程,为了简洁,在此不再赘述。It should be understood that 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. Specifically, the point cloud coding device 20 shown in Figure 16 may correspond to the corresponding subject in the point cloud coding method of the embodiment of the present application, and the aforementioned and other operations and/or functions of each unit in the point cloud coding device 20 are respectively for implementing the corresponding processes in the point cloud coding method. For the sake of brevity, they will not be repeated here.
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。The above describes the device and system of the embodiment of the present application from the perspective of the functional unit in conjunction with the accompanying drawings. It should be understood that 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. Specifically, 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. Optionally, 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.
图17是本申请实施例提供的电子设备的示意性框图。FIG. 17 is a schematic block diagram of an electronic device provided in an embodiment of the present application.
如图17所示,该电子设备30可以为本申请实施例所述的点云解码设备,或者点云编码设备,该电子设备30可包括:As shown in FIG. 17 , 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:
存储器33和处理器32,该存储器33用于存储计算机程序34,并将该程序代码34传输给该处理器32。换言之,该处理器32可以从存储器33中调用并运行计算机程序34,以实现本申请实施例中的方法。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. In other words, 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.
例如,该处理器32可用于根据该计算机程序34中的指令执行上述方法200中的步骤。For example, the processor 32 may be configured to execute the steps in the method 200 according to the instructions in the computer program 34 .
在本申请的一些实施例中,该处理器32可以包括但不限于:In some embodiments of the present application, the processor 32 may include but is not limited to:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。General-purpose processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
在本申请的一些实施例中,该存储器33包括但不限于:In some embodiments of the present application, the memory 33 includes but is not limited to:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。Volatile memory and/or non-volatile memory. Among them, the 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. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link DRAM (SLDRAM) and direct RAM bus random access memory (Direct Rambus RAM, DR RAM).
在本申请的一些实施例中,该计算机程序34可以被分割成一个或多个单元,该一个或者多个单元被存储在该存储器33中,并由该处理器32执行,以完成本申请提供的方法。该一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序34在该电子设备30中的执行过程。In some embodiments of the present application, 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.
如图17所示,该电子设备30还可包括:As shown in FIG. 17 , the electronic device 30 may further include:
收发器33,该收发器33可连接至该处理器32或存储器33。The transceiver 33 may be connected to the processor 32 or the memory 33 .
其中,处理器32可以控制该收发器33与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器33可以包括发射机和接收机。收发器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.
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。It should be understood that the various components in the electronic device 30 are connected via a bus system, wherein the bus system includes not only a data bus but also a power bus, a control bus and a status signal bus.
图18是本申请实施例提供的点云编解码系统的示意性框图。Figure 18 is a schematic block diagram of the point cloud encoding and decoding system provided in an embodiment of the present application.
如图18所示,该点云编解码系统40可包括:点云编码器41和点云解码器42,其中点云编码器41用于执行本申请实施例涉及的点云编码方法,点云解码器42用于执行本申请实施例涉及的点云解码方法。As shown in Figure 18, 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. In other words, 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.
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字点云光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. 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. For example, 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.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the unit is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. 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.
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. For example, 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.
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。The above contents are only specific implementation methods of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims (44)

  1. 一种点云解码方法,其特征在于,包括:A point cloud decoding method, characterized by comprising:
    解码点云的几何码流,得到所述点云的低时延低复杂度编码模型L3C2的节点总数,以及所述点云的总点数;Decode the geometric code stream of the point cloud to obtain the total number of nodes of the low-latency and low-complexity coding model L3C2 of the point cloud and the total number of points of the point cloud;
    根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;Determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
    在解码所述L3C2中的当前节点时,确定已解码重复点的个数;When decoding the current node in the L3C2, determining the number of decoded duplicate points;
    根据所述已解码重复点的个数和所述点云的重复点总数,对所述当前节点进行几何解码。The current node is geometrically decoded according to the number of the decoded repeated points and the total number of repeated points in the point cloud.
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数,包括:The method according to claim 1, characterized in that the determining the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2 comprises:
    将所述点云的总点数和所述L3C2的节点总数的差值,确定为所述点云的重复点总数。The difference between the total number of points of the point cloud and the total number of nodes of the L3C2 is determined as the total number of repeated points of the point cloud.
  3. 根据权利要求1所述的方法,其特征在于,所述根据所述已解码重复点的个数和所述点云的重复点总数,对所述当前节点进行解码,包括:The method according to claim 1, characterized in that decoding the current node according to the number of the decoded repeated points and the total number of repeated points in the point cloud comprises:
    若所述已解码重复点的个数等于所述点云的重复点总数,则跳过解码所述当前节点的重复点信息,确定所述当前节点所包括的第一点的几何重建值。If the number of the decoded repeated points is equal to the total number of repeated points in the point cloud, then the decoding of the repeated point information of the current node is skipped, and the geometric reconstruction value of the first point included in the current node is determined.
  4. 根据权利要求1所述的方法,其特征在于,若所述重复点信息包括所述当前节点所包括的重复点的个数,则所述根据所述已解码重复点的个数和所述点云的重复点总数,对所述当前节点进行解码,包括:The method according to claim 1, characterized in that if the repeated point information includes the number of repeated points included in the current node, then decoding the current node according to the number of decoded repeated points and the total number of repeated points in the point cloud comprises:
    若所述已解码重复点的个数小于所述点云的重复点总数,且所述当前节点为所述L3C2中的最后一个节点时,则跳过解码所述当前节点的重复点信息;If the number of the decoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is the last node in the L3C2, then the decoding of the duplicate point information of the current node is skipped;
    将所述点云的重复点总数与所述已解码重复点的个数的差值,确定为所述当前节点所包括的重复点个数。The difference between the total number of repeated points in the point cloud and the number of decoded repeated points is determined as the number of repeated points included in the current node.
  5. 根据权利要求1所述的方法,其特征在于,所述根据所述已解码重复点的个数和所述点云的重复点总数,对所述当前节点进行解码,包括:The method according to claim 1, characterized in that decoding the current node according to the number of the decoded repeated points and the total number of repeated points in the point cloud comprises:
    若所述已解码重复点的个数小于所述点云的重复点总数,且所述当前节点不是所述L3C2中的最后一个节点时,则解码所述当前节点的重复点信息;If the number of the decoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is not the last node in the L3C2, then decode the duplicate point information of the current node;
    基于所述重复点信息,确定所述当前节点所包括的N个重复点的几何重建值,所述N为整数。Based on the repeated point information, the geometric reconstruction values of N repeated points included in the current node are determined, where N is an integer.
  6. 根据权利要求5所述的方法,其特征在于,所述基于所述重复点信息,确定所述当前节点所包括的N个重复点的几何重建值,包括:The method according to claim 5, characterized in that the step of determining the geometric reconstruction values of the N repeated points included in the current node based on the repeated point information comprises:
    确定所述当前节点中第一个点的几何重建值;Determine a geometric reconstruction value of a first point in the current node;
    基于所述重复点信息,以及所述第一个点的几何重建值,确定所述N个重复点的几何重建值。Based on the repeated point information and the geometric reconstruction value of the first point, the geometric reconstruction values of the N repeated points are determined.
  7. 根据权利要求6所述的方法,其特征在于,若N大于0,且所述重复点信息包括第一标志,所述第一标志用于指示所述当前节点中的当前点与前一个点在第二坐标下的坐标是否相同,则所述基于所述重复点信息,以及所述第一个点的几何重建值,确定所述N个重复点的几何重建值,包括:The method according to claim 6, characterized in that, if N is greater than 0, and the repeated point information includes a first flag, the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point at the second coordinate, then determining the geometric reconstruction values of the N repeated points based on the repeated point information and the geometric reconstruction value of the first point includes:
    针对所述N个重复点中的第i个重复点,解析所述重复点信息,得到所述第i个重复点对应的第一标志,所述i为小于或等于N的正整数,若i为1时,则第i-1个重复点为所述第一个点;For the i-th repeated point among the N repeated points, the repeated point information is parsed to obtain a first flag corresponding to the i-th repeated point, where i is a positive integer less than or equal to N. If i is 1, the i-1-th repeated point is the first point;
    基于所述第i个重复点对应的第一标志,确定所述第i个重复点的几何重建值。Based on the first mark corresponding to the i-th repeated point, a geometric reconstruction value of the i-th repeated point is determined.
  8. 根据权利要求7所述的方法,其特征在于,所述基于所述第i个重复点对应的第一标志,确定所述第i个重复点的几何重建值,包括:The method according to claim 7, characterized in that the step of determining the geometric reconstruction value of the i-th repeated point based on the first mark corresponding to the i-th repeated point comprises:
    若所述第一标志指示所述第i个重复点与所述第i-1个重复点在所述第二坐标系下的坐标相同,则将所述第i-1个重复点的几何重建值,确定为所述第i个重复点的几何重建值。If the first flag indicates that the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are the same, then the geometric reconstruction value of the i-1-th repeated point is determined as the geometric reconstruction value of the i-th repeated point.
  9. 根据权利要求7所述的方法,其特征在于,所述基于所述第i个重复点对应的第一标志,确定所述第i个重复点的几何重建值,包括:The method according to claim 7, characterized in that the step of determining the geometric reconstruction value of the i-th repeated point based on the first mark corresponding to the i-th repeated point comprises:
    若所述第一标志指示所述第i个重复点与所述第i-1个重复点在所述第二坐标系下的坐标不相同,则确定所述第i个重复点的几何重建值。If the first flag indicates that the coordinates of the i-th repeated point and the i-1-th repeated point in the second coordinate system are different, then the geometric reconstruction value of the i-th repeated point is determined.
  10. 根据权利要求5-9任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 5 to 9, characterized in that the method further comprises:
    将所述当前节点所包括的重复点的个数与所述已解码重复点的个数之和,确定为新的已解码重复点的个数。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.
  11. 根据权利要求3或6或9所述的方法,其特征在于,所述方法还包括:The method according to claim 3, 6 or 9, characterized in that the method further comprises:
    确定目标点在第一坐标系下的坐标预测值,所述目标点为所述当前节点中的第一点,或者为所述当前节点所包括的第一个点,或者为所述当前节点所包括的N个重复点中的第i个重复点;Determine a coordinate prediction value of a target point in a first coordinate system, wherein the target point is the first point in the current node, or the first point included in the current node, or the i-th repeated point among N repeated points included in the current node;
    基于所述目标点在第一坐标系下的坐标预测值,确定所述目标点在所述第一坐标系下的坐标重建值;Determining a coordinate reconstruction 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;
    基于所述目标点在所述第一坐标系下的坐标重建值,确定所述目标点在第二坐标系下的坐标重建值;Determine a coordinate reconstruction value of the target point in a second coordinate system based on the coordinate reconstruction value of the target point in the first coordinate system;
    将所述目标点在第二坐标系下的坐标重建值,确定为所述目标点的几何重建值。The coordinate reconstruction value of the target point in the second coordinate system is determined as the geometric reconstruction value of the target point.
  12. 根据权利要求11所述的方法,其特征在于,所述确定所述目标点在第一坐标系下的坐标预测值,包括:The method according to claim 11, characterized in that determining the predicted coordinate value of the target point in the first coordinate system comprises:
    解码所述几何码流,得到所述目标点对应的预测模式;Decoding the geometric code stream to obtain a prediction mode corresponding to the target point;
    基于所述预测模式,确定所述目标点在所述第一坐标系下的坐标预测值。Based on the prediction mode, a coordinate prediction value of the target point in the first coordinate system is determined.
  13. 根据权利要求11所述的方法,其特征在于,所述基于所述目标点在第一坐标系下的坐标预测值,确定所述目标点在所述第一坐标系下的坐标重建值,包括:The method according to claim 11, characterized in that the step of determining 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 comprises:
    解码所述几何码流,得到所述目标点在所述第一坐标系下量化后的坐标残差值;Decoding the geometric code stream to obtain a quantized coordinate residual value of the target point in the first coordinate system;
    对所述量化后的坐标残差值进行反量化,得到所述目标点在所述第一坐标系下的坐标残差值;Dequantizing the quantized coordinate residual value 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, a coordinate reconstruction value of the target point in the first coordinate system is obtained.
  14. 根据权利要求13所述的方法,其特征在于,所述基于所述目标点在所述第一坐标系下的坐标重建值和坐标残差值,得到所述目标点在所述第一坐标系下的坐标重建值,包括:The method according to claim 13, characterized in that the step of obtaining the coordinate reconstruction value of the target point in the first coordinate system based on the coordinate reconstruction value and the coordinate residual value of the target point in the first coordinate system comprises:
    将所述目标点在所述第一坐标系下的坐标预测值和坐标残差值之和,确定为所述目标点在所述第一坐标系下的坐标重建值。The sum of the predicted coordinate value and the residual 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.
  15. 根据权利要求11所述的方法,其特征在于,所述基于所述目标点在所述第一坐标系下的坐标重建值,确定所述目标点在第二坐标系下的坐标重建值,包括:The method according to claim 11, characterized in that the step 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 comprises:
    对所述目标点在所述第一坐标系下的坐标重建值进行坐标转换,得到所述目标点在所述第二坐标系下的坐标预测值;Performing coordinate transformation on the coordinate reconstruction value of the target point in the first coordinate system to obtain the coordinate prediction value of the target point in the second coordinate system;
    解码所述几何码流,得到所述目标点在所述第二坐标系下的坐标残差值;Decoding the geometric code stream to obtain a 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, the coordinate reconstruction value of the target point in the second coordinate system is obtained.
  16. 根据权利要求15所述的方法,其特征在于,所述基于所述目标点在所述第二坐标系下的坐标预测值和坐标残差值,得到所述目标点在第二坐标系下的坐标重建值,包括:The method according to claim 15, characterized in that obtaining 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 comprises:
    将所述目标点在所述第二坐标系下的坐标预测值和坐标残差值之和,确定为所述目标点在第二坐标系下的坐标重建值。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.
  17. 根据权利要求1-9任一项所述的方法,其特征在于,所述解码点云的几何码流,得到所述点云的低时延低复杂度编码模型L3C2的节点总数,包括:The method according to any one of claims 1 to 9, characterized in that the decoding of the geometric code stream of the point cloud to obtain the total number of nodes of the low-delay and low-complexity coding model L3C2 of the point cloud comprises:
    解码所述点云的几何码流,得到所述L3C2所包括的单链数量,以及每个单链所包括的节点数量;Decode the geometric code stream of the point cloud to obtain the number of single chains included in the L3C2 and the number of nodes included in each single chain;
    基于所述单链数量,以及每个单链所包括的节点数量,得到所述L3C2的节点总数。Based on the number of single chains and the number of nodes included in each single chain, the total number of nodes of the L3C2 is obtained.
  18. 根据权利要求1-9任一项所述的方法,其特征在于,解码点云的几何码流,得到所述点云的总点数,包括:The method according to any one of claims 1 to 9, characterized in that decoding the geometric code stream of the point cloud to obtain the total number of points of the point cloud comprises:
    解码所述点云的几何数据单元,得到所述点云的总点数。Decode the geometric data unit of the point cloud to obtain the total number of points of the point cloud.
  19. 根据权利要求18所述的方法,其特征在于,所述解码所述几何数据单元,得到所述点云的总点数,包括:The method according to claim 18, characterized in that the decoding of the geometric data unit to obtain the total number of points of the point cloud comprises:
    解码所述几何数据单元,得到第一值,所述第一值为所述点云的点个数减一;Decoding the geometric data unit to obtain a first value, where the first value is the number of points in the point cloud minus one;
    对所述第一值加一,得到所述点云的总点数。The first value is added by one to obtain the total number of points in the point cloud.
  20. 一种点云编码方法,其特征在于,包括:A point cloud encoding method, characterized by comprising:
    确定点云的低时延低复杂度编码模型L3C2结构;Determine the L3C2 structure of the low-latency and low-complexity coding model for point clouds;
    确定所述点云的L3C2的节点总数和所述点云的总点数;Determine the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud;
    根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;Determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
    在编码所述L3C2中的当前节点时,确定已编码重复点的个数;When encoding the current node in the L3C2, determining the number of encoded repeated points;
    根据所述已编码重复点的个数和所述点云的重复点总数,对所述当前节点进行编码。The current node is encoded according to the number of the encoded repeated points and the total number of repeated points in the point cloud.
  21. 根据权利要求20所述的方法,其特征在于,所述根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数,包括:The method according to claim 20, characterized in that the determining the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2 comprises:
    将所述点云的总点数和所述L3C2的节点总数的差值,确定为所述点云的重复点总数。The difference between the total number of points of the point cloud and the total number of nodes of the L3C2 is determined as the total number of repeated points of the point cloud.
  22. 根据权利要求20所述的方法,其特征在于,所述根据所述已编码重复点的个数和所述点云的重复点总数,对所述当前节点进行编码,包括:The method according to claim 20, characterized in that encoding the current node according to the number of the encoded repeated points and the total number of repeated points in the point cloud comprises:
    若所述已编码重复点的个数等于所述点云的重复点总数,则跳过确定以及编码所述当前节点的重复点信息;If the number of the encoded duplicate points is equal to the total number of duplicate points in the point cloud, then skipping determining and encoding duplicate point information of the current node;
    确定所述当前节点所包括的第一点的坐标残差值,将所述第一点的坐标残差值写入所述点云的几何码流。Determine a coordinate residual value of a first point included in the current node, and write the coordinate residual value of the first point into a geometric code stream of the point cloud.
  23. 根据权利要求20所述的方法,其特征在于,若所述重复点信息包括所述当前节点所包括的重复点的个数,则所述根据所述已编码重复点的个数和所述点云的重复点总数,对所述当前节点进行编码,包括:The method according to claim 20, characterized in that if the repeated point information includes the number of repeated points included in the current node, then encoding the current node according to the number of encoded repeated points and the total number of repeated points in the point cloud comprises:
    若所述已编码重复点的个数小于所述点云的重复点总数,且所述当前节点为所述L3C2中的最后一个节点,则跳过编码所述当前节点所包括的重复点个数;If the number of the encoded repeated points is less than the total number of repeated points in the point cloud, and the current node is the last node in the L3C2, then skip encoding the number of repeated points included in the current node;
    确定所述当前节点中第一个点的坐标残差值;Determine the coordinate residual value of the first point in the current node;
    将所述第一个点的坐标残差值和所述当前节点的重复点信息写入所述几何码流。The coordinate residual value of the first point and the repeated point information of the current node are written into the geometry code stream.
  24. 根据权利要求20所述的方法,其特征在于,所述根据所述已编码重复点的个数和所述点云的重复点总数,对所述当前节点进行编码,包括:The method according to claim 20, characterized in that encoding the current node according to the number of the encoded repeated points and the total number of repeated points in the point cloud comprises:
    若所述已编码重复点的个数小于所述点云的重复点总数,且所述当前节点不是所述L3C2中的最后一个节点,则确定所述当前节点的重复点信息;If the number of the encoded duplicate points is less than the total number of duplicate points in the point cloud, and the current node is not the last node in the L3C2, determining the duplicate point information of the current node;
    确定所述当前节点中第一个点的坐标残差值;Determine the coordinate residual value of the first point in the current node;
    将所述第一个点的坐标残差值和所述当前节点的重复点信息写入所述点云的几何码流。The coordinate residual value of the first point and the repeated point information of the current node are written into the geometric code stream of the point cloud.
  25. 根据权利要求24所述的方法,其特征在于,若N大于0,且所述重复点信息包括第一标志,所述第一标志用于指示所述当前节点中的当前点与前一个点在第二坐标下的坐标是否相同,则所述确定所述当前节点的重复点信息,包括:The method according to claim 24, characterized in that, if N is greater than 0, and the repeated point information includes a first flag, the first flag is used to indicate whether the coordinates of the current point in the current node are the same as those of the previous point under the second coordinate, then determining the repeated point information of the current node includes:
    确定所述当前节点所包括的N个重复点的个数,所述N为整数;Determine the number of N repeated points included in the current node, where N is an integer;
    基于所述当前节点所包括的第一个点在第二坐标系下的坐标值,以及所述N个重复点在第二坐标系下的坐标值,确定所述N个重复点分别对应的第一标志;Determine first marks corresponding to the N repeated points respectively based on the coordinate value of the first point included in the current node in the second coordinate system and the coordinate values of the N repeated points in the second coordinate system;
    基于所述当前节点所包括的N个重复点的个数和所述N个重复点分别对应的第一标志,确定所述当前节点的重复点信息。Based on the number of N repeated points included in the current node and the first flags respectively corresponding to the N repeated points, the repeated point information of the current node is determined.
  26. 根据权利要求25所述的方法,其特征在于,所述基于所述当前节点所包括的第一个点在第二坐标系下的坐标,以及所述N个重复点在第二坐标系下的坐标,确定所述N个重复点分别对应的第一标志,包括:The method according to claim 25, characterized in that the determining the first marks respectively corresponding to the N repeated points based on the coordinates of the first point included in the current node in the second coordinate system and the coordinates of the N repeated points in the second coordinate system comprises:
    针对所述N个重复点中的第i个重复点,基于第i-1个重复点在第二坐标系下的坐标值,以及所述第i个重复点在第二坐标系下的坐标值,确定所述第i个重复点对应的第一标志,所述i为大于0且小于或等于N的正整数,若i为1时,则所述第i-1个重复点为所述第一个点。For the i-th repeated point among the N repeated points, based on the coordinate value of the i-1-th repeated point in the second coordinate system and the coordinate value of the i-th repeated point in the second coordinate system, determine the first mark corresponding to the i-th repeated point, where i is a positive integer greater than 0 and less than or equal to N. If i is 1, the i-1-th repeated point is the first point.
  27. 根据权利要求26所述的方法,其特征在于,所述基于第i-1个重复点在第二坐标系下的坐标值,以及所述第i个重复点在第二坐标系下的坐标值,确定所述第i个重复点对应的第一标志,包括:The method according to claim 26, characterized in that the determining the first mark corresponding to the i-th repeated point based on the coordinate value of the i-1th repeated point in the second coordinate system and the coordinate value of the i-th repeated point in the second coordinate system comprises:
    若所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值相同,则将所述第一标志的值置为第一数值,所述第一数值指示所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值相同。If the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system, the value of the first mark is set to a first numerical value, and the first numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is the same as the coordinate value of the i-1-th repeated point in the second coordinate system.
  28. 根据权利要求26所述的方法,其特征在于,所述基于第i-1个重复点在第二坐标系下的坐标值,以及所述第i个重复点在第二坐标系下的坐标值,确定所述第i个重复点对应的第一标志,包括:The method according to claim 26, characterized in that the determining the first mark corresponding to the i-th repeated point based on the coordinate value of the i-1th repeated point in the second coordinate system and the coordinate value of the i-th repeated point in the second coordinate system comprises:
    若所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值不相同,则将所述第一标志的值置为第二数值,所述第二数值指示所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值不相同。If the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system, the value of the first mark is set to a second numerical value, and the second numerical value indicates that the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system.
  29. 根据权利要求28所述的方法,其特征在于,若所述第i个重复点在第二坐标系下的坐标值与所述第i-1个重复点在第二坐标系下的坐标值不相同,所述方法还包括:The method according to claim 28, characterized in that if the coordinate value of the i-th repeated point in the second coordinate system is different from the coordinate value of the i-1-th repeated point in the second coordinate system, the method further comprises:
    确定所述第i个重复点的坐标残差值;Determine the coordinate residual value of the i-th repeated point;
    将所述第i个重复点的坐标残差值,写入所述几何码流中。The coordinate residual value of the i-th repeated point is written into the geometric code stream.
  30. 根据权利要求24-29任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 24 to 29, characterized in that the method further comprises:
    将所述当前节点所包括的重复点的个数与所述已编码重复点的个数之和,确定为新的已编码重复点的个数。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.
  31. 根据权利要求22或25或29所述的方法,其特征在于,所述方法还包括:The method according to claim 22, 25 or 29, characterized in that the method further comprises:
    确定目标点在第一坐标系下的坐标预测值,所述目标点为所述当前节点中的第一点,或者为所述当前节点所包括的第一个点,或者为所述当前节点所包括的N个重复点中的第i个重复点;Determine a coordinate prediction value of a target point in a first coordinate system, wherein the target point is the first point in the current node, or the first point included in the current node, or the i-th repeated point among N repeated points included in the current node;
    基于所述目标点在所述第一坐标系下的坐标预测值和所述目标点在所述第一坐标系下的坐标值,确定所述目标点在所述第一坐标系下的残差值;Determine a residual value of the target point in the first coordinate system based on a predicted value of the coordinates of the target point in the first coordinate system and a coordinate value of the target point in the first coordinate system;
    基于所述目标点在所述第一坐标系下的坐标预测值,得到所述目标点在所述第一坐标系下的坐标重建值;Obtaining a coordinate reconstruction 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;
    对所述目标点在所述第一坐标系下的坐标重建值进行坐标转换,得到所述目标点在第二坐标系下的坐标重建值;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;
    基于所述目标点在所述第二坐标系下的坐标重建值和坐标值,确定所述目标点在所述第二坐标系下的坐标残差值。Based on the coordinate reconstruction value and the coordinate value of the target point in the second coordinate system, a coordinate residual value of the target point in the second coordinate system is determined.
  32. 根据权利要求31所述的方法,其特征在于,所述方法还包括:The method according to claim 31, characterized in that the method further comprises:
    对所述目标点在所述第一坐标系下的坐标残差值和所述目标点在所述第二坐标系下的坐标残差值中的至少一个进行量化后,写入所述几何码流。After quantizing at least one of the coordinate 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, the residual value is written into the geometric code stream.
  33. 根据权利要求31所述的方法,其特征在于,所述确定所述目标点在第一坐标系下的坐标预测值,包括:The method according to claim 31, characterized in that determining the predicted coordinate value of the target point in the first coordinate system comprises:
    确定所述目标点对应的预测模式;Determining a prediction mode corresponding to the target point;
    基于所述预测模式,确定所述目标点在所述第一坐标系下的坐标预测值。Based on the prediction mode, a coordinate prediction value of the target point in the first coordinate system is determined.
  34. 根据权利要求33所述的方法,其特征在于,所述方法还包括:The method according to claim 33, characterized in that the method further comprises:
    将所述目标点对应的预测模式写入所述几何码流。The prediction mode corresponding to the target point is written into the geometry code stream.
  35. 根据权利要求32所述的方法,其特征在于,所述基于所述目标点在第一坐标系下的坐标预测值,确定所述目标点在所述第一坐标系下的坐标重建值,包括:The method according to claim 32, characterized in that the step of determining 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 comprises:
    对量化后的所述目标点在所述第一坐标系下量化后的坐标残差值进行反量化,得到所述目标点在所述第一坐标系下的坐标残差值;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, a coordinate reconstruction value of the target point in the first coordinate system is obtained.
  36. 根据权利要求35所述的方法,其特征在于,所述基于所述目标点在所述第一坐标系下的坐标重建值和坐标残差值,得到所述目标点在所述第一坐标系下的坐标重建值,包括:The method according to claim 35, characterized in that the step of obtaining the coordinate reconstruction value of the target point in the first coordinate system based on the coordinate reconstruction value and the coordinate residual value of the target point in the first coordinate system comprises:
    将所述目标点在所述第一坐标系下的坐标预测值和坐标残差值之和,确定为所述目标点在所述第一坐标系下的坐标重建值。The sum of the predicted coordinate value and the residual 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.
  37. 根据权利要求20-29任一项所述的方法,其特征在于,所述确定所述点云的L3C2的节点总数和所述点云的总点数,包括:The method according to any one of claims 20 to 29, characterized in that the determining the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud comprises:
    确定所述L3C2所包括的单链数量,以及每个单链所包括的节点数量;Determine the number of single chains included in the L3C2 and the number of nodes included in each single chain;
    基于所述单链数量,以及每个单链所包括的节点数量,得到所述L3C2的节点总数。Based on the number of single chains and the number of nodes included in each single chain, the total number of nodes of the L3C2 is obtained.
  38. 根据权利要求37所述的方法,其特征在于,所述方法还包括:The method according to claim 37, characterized in that the method further comprises:
    将所述L3C2所包括的单链数量,以及每个单链所包括的节点数量写入所述点云的几何码流。The number of single chains included in the L3C2 and the number of nodes included in each single chain are written into the geometric code stream of the point cloud.
  39. 根据权利要求20-29任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 20 to 29, characterized in that the method further comprises:
    将所述点云的总点数,写入几何数据单元中。The total number of points of the point cloud is written into the geometry data unit.
  40. 根据权利要求39所述的方法,其特征在于,所述将所述点云的总点数,写入几何数据单元中,包括:The method according to claim 39, characterized in that writing the total number of points of the point cloud into the geometric data unit comprises:
    将所述点云的总点数减1,得到第一值;Subtract 1 from the total number of points in the point cloud to obtain a first value;
    将所述第一值写入所述几何数据单元中。The first value is written into the geometry data unit.
  41. 一种点云编码装置,其特征在于,包括:A point cloud encoding device, characterized in that it comprises:
    第一解码单元,用于解码点云的几何码流,得到所述点云的低时延低复杂度编码模型L3C2的节点总数,以及所述点云的总点数;A first decoding unit is used to decode the geometric code stream of the point cloud to obtain the total number of nodes of the low-delay and low-complexity coding model L3C2 of the point cloud and the total number of points of the point cloud;
    点数确定单元,用于根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;A point number determination unit, used to determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
    重复点确定单元,用于在解码所述L3C2中的当前节点时,确定已解码重复点的个数;a repeated point determination unit, configured to determine the number of decoded repeated points when decoding the current node in the L3C2;
    第二解码单元,用于根据所述已解码重复点的个数和所述点云的重复点总数,对所述当前节点进行解码。The second decoding unit is used to decode the current node according to the number of the decoded repeated points and the total number of repeated points in the point cloud.
  42. 一种点云编码装置,其特征在于,包括:A point cloud encoding device, characterized in that it comprises:
    结构确定单元,用于确定点云的低时延低复杂度编码模型L3C2结构;A structure determination unit, used to determine the low-latency and low-complexity coding model L3C2 structure of the point cloud;
    点数确定单元,用于确定所述点云的L3C2的节点总数和所述点云的总点数;A point number determination unit, used to determine the total number of nodes of L3C2 of the point cloud and the total number of points of the point cloud;
    重复点确定单元,用于根据所述点云的总点数和所述L3C2的节点总数,确定所述点云的重复点总数;A repeated point determination unit, used to determine the total number of repeated points of the point cloud according to the total number of points of the point cloud and the total number of nodes of the L3C2;
    计算单元,用于在编码所述L3C2中的当前节点时,确定已编码重复点的个数;A calculation unit, configured to determine the number of encoded repeated points when encoding the current node in the L3C2;
    编码单元,用于根据所述已编码重复点的个数和所述点云的重复点总数,对所述当前节点进行编码。The encoding unit is used to encode the current node according to the number of the encoded repeated points and the total number of repeated points in the point cloud.
  43. 一种电子设备,其特征在于,包括:处理器和存储器;An electronic device, characterized in that it comprises: a processor and a memory;
    所述存储器用于存储计算机程序;The memory is used to store computer programs;
    所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如权利要求1至19或20-40任一项所述的方法。The processor is used to call and run the computer program stored in the memory to execute the method according to any one of claims 1 to 19 or 20 to 40.
  44. 一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至19或20-30任一项所述的方法。A computer-readable storage medium, characterized in that it is used to store a computer program, wherein the computer program enables a computer to execute the method according to any one of claims 1 to 19 or 20-30.
PCT/CN2022/122116 2022-09-28 2022-09-28 Point cloud encoding/decoding method and apparatus, and device and storage medium WO2024065271A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/122116 WO2024065271A1 (en) 2022-09-28 2022-09-28 Point cloud encoding/decoding method and apparatus, and device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/122116 WO2024065271A1 (en) 2022-09-28 2022-09-28 Point cloud encoding/decoding method and apparatus, and device and storage medium

Publications (1)

Publication Number Publication Date
WO2024065271A1 true WO2024065271A1 (en) 2024-04-04

Family

ID=90475255

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/122116 WO2024065271A1 (en) 2022-09-28 2022-09-28 Point cloud encoding/decoding method and apparatus, and device and storage medium

Country Status (1)

Country Link
WO (1) WO2024065271A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565794A (en) * 2020-12-03 2021-03-26 西安电子科技大学 Point cloud isolated point encoding and decoding method and device
CN112997498A (en) * 2018-11-13 2021-06-18 松下电器(美国)知识产权公司 Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2021202002A1 (en) * 2020-03-30 2021-10-07 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
CN114402624A (en) * 2019-08-02 2022-04-26 Lg 电子株式会社 Point cloud data processing apparatus and method
CN114598883A (en) * 2020-12-07 2022-06-07 腾讯科技(深圳)有限公司 Point cloud attribute prediction method, encoder, decoder and storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112997498A (en) * 2018-11-13 2021-06-18 松下电器(美国)知识产权公司 Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN114402624A (en) * 2019-08-02 2022-04-26 Lg 电子株式会社 Point cloud data processing apparatus and method
WO2021202002A1 (en) * 2020-03-30 2021-10-07 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
CN112565794A (en) * 2020-12-03 2021-03-26 西安电子科技大学 Point cloud isolated point encoding and decoding method and device
CN114598883A (en) * 2020-12-07 2022-06-07 腾讯科技(深圳)有限公司 Point cloud attribute prediction method, encoder, decoder and storage medium

Similar Documents

Publication Publication Date Title
US11803989B2 (en) Quantization for geometry-based point cloud compression
US11743501B2 (en) High-level syntax design for geometry-based point cloud compression
CN114930858A (en) High level syntax for geometry-based point cloud compression
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
JP2023543752A (en) Point cloud codec method and system, and point cloud encoder and point cloud decoder
WO2024065271A1 (en) Point cloud encoding/decoding method and apparatus, and device and storage medium
WO2024065270A1 (en) Point cloud encoding method and apparatus, point cloud decoding method and apparatus, devices, and storage medium
WO2024065269A1 (en) Point cloud encoding and decoding method and apparatus, device, and storage medium
WO2024065272A1 (en) Point cloud coding method and apparatus, point cloud decoding method and apparatus, and device and storage medium
WO2024065406A1 (en) Encoding and decoding methods, bit stream, encoder, decoder, and storage medium
US20240015325A1 (en) Point cloud coding and decoding methods, coder, decoder and storage medium
WO2022257150A1 (en) Point cloud encoding and decoding methods and apparatus, point cloud codec, and storage medium
WO2024065408A1 (en) Coding method, decoding method, code stream, coder, decoder and storage medium
WO2022257145A1 (en) Point cloud attribute prediction method and apparatus, and codec
WO2023024842A1 (en) Point cloud encoding/decoding method, apparatus and device, and storage medium
WO2024011381A1 (en) Point cloud encoding method and apparatus, point cloud decoding method and apparatus, device and storage medium
US20240087174A1 (en) Coding and decoding point cloud attribute information
TWI806481B (en) Method and device for selecting neighboring points in a point cloud, encoding device, decoding device and computer device
CN115474041B (en) Method and device for predicting point cloud attribute and related equipment
CN117354496A (en) Point cloud encoding and decoding method, device, equipment and storage medium
CN116866615A (en) Point cloud coding method and equipment
WO2024026712A1 (en) Point cloud coding method and apparatus, point cloud decoding method and apparatus, and device and storage medium
US20230377208A1 (en) Geometry coordinate scaling for ai-based dynamic point cloud coding
US20230102401A1 (en) Inter prediction coding for geometry point cloud compression